diff --git a/DEPS b/DEPS
index 2ba50f699..47a9504f 100644
--- a/DEPS
+++ b/DEPS
@@ -241,7 +241,7 @@
   # luci-go CIPD package version.
   # Make sure the revision is uploaded by infra-packagers builder.
   # https://ci.chromium.org/p/infra-internal/g/infra-packagers/console
-  'luci_go': 'git_revision:f8f64a8c560d2bf68a3ad1137979d17cffb36d30',
+  'luci_go': 'git_revision:7a04ca7c0fd3e73cc09c817542a74d947e68b8c9',
 
   # This can be overridden, e.g. with custom_vars, to build clang from HEAD
   # instead of downloading the prebuilt pinned revision.
@@ -295,11 +295,11 @@
   # 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': '38cdadb76f51167869c04860455c76557b047a2a',
+  'skia_revision': '9c396ddae3943c5c2b131855f10871d19f1360f8',
   # 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': '172608cd0d063ebfe6ce341b599b833fb157aa0b',
+  'v8_revision': 'f51cabd93a5702d0abd26f7c8d642106f27b2071',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
@@ -322,7 +322,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
-  'fuchsia_version': 'version:10.20221128.3.1',
+  'fuchsia_version': 'version:10.20221129.0.1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling google-toolbox-for-mac
   # and whatever else without interference from each other.
@@ -374,7 +374,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': '779abc925b3cdc029a1aa543f1f90d564a4e247e',
+  'devtools_frontend_revision': 'd4f431e3dbb5ff8acf671830d0bf12c423735b55',
   # 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.
@@ -414,7 +414,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.
-  'quiche_revision': 'c5c29b5f77bf1927dab1a342d646dc33c876bf65',
+  'quiche_revision': '225e91acc7cb29951ee5829b8ca502ff78bc812c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
@@ -434,7 +434,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
-  'nearby_revision': '6871b9d5a6c5bf74bc1e8f893a4cc4ddef1b6491',
+  'nearby_revision': '82f35a140130c606a36e08b88a182b428e1b0fc3',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling securemessage
   # and whatever else without interference from each other.
@@ -782,7 +782,7 @@
 
   'src/clank': {
     'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' +
-    '7c78acc209669720d96e18a8971ad4b8c23ba549',
+    'c52848b5866622d1b96683cd20b1f2a5fe7e80ed',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -971,7 +971,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'DoMiLWGEPZ6MIrAeFkKaGQqFar0ez6bY0nwhdUVEIMMC',
+          'version': 'YqHXeju2kOGh8x26xULaEyiL6jpRD-vslKaU7czLvKwC',
       },
     ],
     'condition': 'checkout_android',
@@ -1214,13 +1214,13 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'fc04ff162881290c48882bf0ac737db77f91e8f9',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '67828ff1bb688f19ea114e5aa1de812da863c4da',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + 'e16742cf733ef2bce49cd8e15a30b0ee559d8712',
+      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '243270383eb820a7e0ac4c97350a129dbce3ff96',
     'condition': 'checkout_src_internal',
   },
 
@@ -1635,7 +1635,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '36fb00a3c36d9c367f50ba03c9bd9c4f5f45161b',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '600d5270680543bc0657c1371f741547604fea86',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1675,7 +1675,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'WqQE6kGnQ571Jtmn-m9LD7Qnd7nOi46mty5n-fZznKQC',
+              'version': 'RM1MB7AK90GPkspZ5TLRVyJNIC0JB4sz1rWL9JLLdNkC',
           },
       ],
       'condition': 'checkout_android',
@@ -1820,7 +1820,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '40abc040aa4a5fbeb40cb7b1924c18a91fe6ec7e',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'f25076751bd20f630db113c6d61eda6b59afe574',
+    Var('webrtc_git') + '/src.git' + '@' + '7184016a6a17f900be1181ca875268e766f57697',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -1890,7 +1890,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@50981db1f6c18360fa55dddf23f5b941c9be679e',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@b97a6c26dd2b2179a15a66b741e674a7e1fc53f9',
     'condition': 'checkout_src_internal',
   },
 
@@ -1909,7 +1909,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/eche_app/app',
-        'version': 'UQiWEU-Px_U1TNKtR6y93AAEPpF6jc2dxdc4ffJJTEsC',
+        'version': '2vtoS1ckY7efZdk6Efy3mh-a5RbRMzUnvuXXC6L1G64C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1942,7 +1942,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'YuImAHR_I9ZvIdHRT02p_WRMvfyvPRIxdHlBH0Ok9mIC',
+        'version': 'EfLiEtnkGboxUDKgbEHfjt4KppzwuOaEzpbYG_7WYhAC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/ash/constants/ash_switches.cc b/ash/constants/ash_switches.cc
index dece237..5d9f769 100644
--- a/ash/constants/ash_switches.cc
+++ b/ash/constants/ash_switches.cc
@@ -262,10 +262,6 @@
 const char kAshUiModeClamshell[] = "clamshell";
 const char kAshUiModeTablet[] = "touch_view";
 
-// Makes ash use ChromeOS mojo service manager as the mojo broker.
-const char kAshUseCrOSMojoServiceManager[] =
-    "ash-use-cros-mojo-service-manager";
-
 // (Most) Chrome OS hardware reports ACPI power button releases correctly.
 // Standard hardware reports releases immediately after presses.  If set, we
 // lock the screen or shutdown the system immediately in response to a press
diff --git a/ash/constants/ash_switches.h b/ash/constants/ash_switches.h
index 17dfa2e..6084cf336 100644
--- a/ash/constants/ash_switches.h
+++ b/ash/constants/ash_switches.h
@@ -85,8 +85,6 @@
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kAshUiMode[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kAshUiModeClamshell[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kAshUiModeTablet[];
-COMPONENT_EXPORT(ASH_CONSTANTS)
-extern const char kAshUseCrOSMojoServiceManager[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kAuraLegacyPowerButton[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kCellularFirst[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kChildWallpaperLarge[];
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 5a4adf01..81ef54ba 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -555,6 +555,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Af vir program}other{Af vir # prog.'e}}</translation>
 <translation id="4066027111132117168">Aan, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Medium sein</translation>
+<translation id="4086921558679520050">Skakel fisieke mikrofoonskakelaar op jou toestel aan</translation>
 <translation id="4112140312785995938">Soek agtertoe</translation>
 <translation id="4114315158543974537">Skakel Foonsentrum aan</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />; seinsterkte <ph name="SIGNAL_STRENGTH" /> persent</translation>
 <translation id="4378551569595875038">Koppel tans …</translation>
 <translation id="4379531060876907730">Dit is jou stilusnutsgoed</translation>
+<translation id="4381031910344220229">Dit gee mikrofoontoegang vir <ph name="APP_NAME" /> en alle apps en webwerwe met die mikrofoontoestemming</translation>
 <translation id="4389184120735010762">Jy het die sleutelbordkortpad vir die gedokte vergrootglas gedruk. Wil jy dit aanskakel?</translation>
 <translation id="439598569299422042">Onderbreek, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Kan nie skermopname stoor nie</translation>
@@ -729,6 +731,7 @@
 <translation id="4987738733603015246">Lessenaar 16</translation>
 <translation id="5003993274120026347">Volgende sin</translation>
 <translation id="5016558321564993266">Wissel merker. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Toestelmikrofoontoegang is aan</translation>
 <translation id="5030687792513154421">Die tyd is om</translation>
 <translation id="5033299697334913360">Klik enige plek om volskerm vas te vang</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> het aan 'n nuwe foon gekoppel</translation>
@@ -960,9 +963,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> is 'n bestuurde sessie wat deur <ph name="MANAGER" /> bestuur word</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> is gekoppel</translation>
 <translation id="6351032674660237738">PROGRAMVOORSTELLE</translation>
+<translation id="6352082849089527770">Onbekende netwerke</translation>
 <translation id="6359587239691116345">Kry die jongste kenmerke en veiligheidverbeterings. As jy hierdie opdatering weier, sal jou toestel dalk nie meer reg werk nie en kan jy veiligheid- en werkverrigtingkwessies ervaar.</translation>
 <translation id="6376931439017688372">Bluetooth is aan</translation>
 <translation id="6381109794406942707">Voer jou PIN in om die toestel te ontsluit.</translation>
+<translation id="638716340450135524">Skakel kameratoegang aan</translation>
 <translation id="639644700271529076">HOOFLETTERSLOT is af</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistent</translation>
@@ -970,6 +975,7 @@
 <translation id="642644398083277086">Vee alle kennisgewings uit</translation>
 <translation id="643147933154517414">Als klaar</translation>
 <translation id="6431865393913628856">Skermopnemer</translation>
+<translation id="6442259747294754014">Toestelmikrofoontoegang is af</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> op <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> geleentheid</translation>
 <translation id="6449483711453944360">Linux-programme en Incognito-vensters word nie tans gesteun nie</translation>
@@ -1134,6 +1140,7 @@
 <translation id="7360036564632145207">As jy jou datatoegangbeskerming vir randtoestelle se instelling verander, kan dit werkverrigting optimeer</translation>
 <translation id="736045644501761622">Stel muurpapier en styl</translation>
 <translation id="7371404428569700291">Neem venster op</translation>
+<translation id="737315737514430195">Dit gee mikrofoontoegang vir alle apps en webwerwe met die mikrofoontoestemming</translation>
 <translation id="7377169924702866686">Hoofletterslot is aan.</translation>
 <translation id="7377481913241237033">Koppel met 'n kode</translation>
 <translation id="7378203170292176219">Sleep om 'n area te kies om op te neem</translation>
@@ -1202,6 +1209,7 @@
 <translation id="7671610481353807627">Programme word volgens kleur gerangskik</translation>
 <translation id="7672095158465655885">Gekoppel aan <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Kamera-invoer is gestel op <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Dit gee mikrofoontoegang vir <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> en alle apps en webwerwe met die mikrofoontoestemming</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Voeg nuwe selnetwerk by</translation>
 <translation id="7720400844887872976">Aan tot <ph name="TIME" /></translation>
@@ -1365,6 +1373,7 @@
 <translation id="8598235756057743477">Rangskik jou programme volgens naam of kleur</translation>
 <translation id="8614517853887502247"><ph name="APP_1_TITLE" />- en <ph name="APP_2_TITLE" />-kennisgewings word versteek omdat kykbeskerming aan is</translation>
 <translation id="8627191004499078455">Gekoppel aan <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Skakel kameratoegang af</translation>
 <translation id="8631727435199967028">Toeganklikheidinstellings</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, seinsterkte <ph name="SIGNAL_STRENGTH" />, deur jou administrateur bestuur</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> oor</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index d066978..681d8db 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">إعادة المحاولة</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{إشعار واحد}zero{# إشعار}two{إشعاران (#)}few{# إشعارات}many{# إشعارًا}other{# إشعار}}</translation>
 <translation id="7724603315864178912">قص</translation>
+<translation id="7742327441377685481">ما مِن إشعارات</translation>
 <translation id="7745560842763881396">عرض التطبيقات في الرفّ</translation>
 <translation id="7749443890790263709">تم تجاوز أقصى عدد مسموح به من محطات الإرساء.</translation>
 <translation id="776344839111254542">النقر لعرض تفاصيل التحديث</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 033f0dd..349fbc2 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{এটা এপৰ বাবে অফ}one{#টা এপৰ বাবে অফ}other{#টা এপৰ বাবে অফ}}</translation>
 <translation id="4066027111132117168">অন আছে, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">মধ্যম ছিগনেল</translation>
+<translation id="4086921558679520050">আপোনাৰ ডিভাইচত কায়িক মাইকৰ ছুইচটো অন কৰক</translation>
 <translation id="4112140312785995938">পিছলৈ যাওক</translation>
 <translation id="4114315158543974537">ফ’ন হাব অন কৰক</translation>
 <translation id="4115378294792113321">মেজেণ্টা</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" /> শতাংশ</translation>
 <translation id="4378551569595875038">সংযোগ হৈছে...</translation>
 <translation id="4379531060876907730">এইয়া আপোনাৰ ষ্টাইলাছৰ সঁজুলি</translation>
+<translation id="4381031910344220229">এইটোৱে <ph name="APP_NAME" /> আৰু মাইক্ৰ’ফ’নৰ অনুমতি থকা আটাইবোৰ এপ্‌ আৰু ৱেবছাইটৰ বাবে মাইক্ৰ’ফ’ন এক্সেছ কৰাৰ অনুমতি দিয়ে</translation>
 <translation id="4389184120735010762">আপুনি ড'ক কৰা বিৱৰ্ধকৰ বাবে কীব'ৰ্ডৰ শ্বৰ্টকাট টিপিছে। আপুনি এইটো অন কৰিব খোজেনে?</translation>
 <translation id="439598569299422042">পজ কৰা আছে, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">স্ক্ৰীনকাষ্ট ছেভ কৰিব পৰা নগ’ল</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> হৈছে <ph name="MANAGER" />এ পৰিচালনা কৰা এটা পৰিচালিত ছেশ্বন</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> সংযোগ কৰা হৈছে</translation>
 <translation id="6351032674660237738">এপৰ পৰামৰ্শ</translation>
+<translation id="6352082849089527770">অজ্ঞাত নেটৱৰ্ক</translation>
 <translation id="6359587239691116345">শেহতীয়া সুবিধা আৰু সুৰক্ষা সম্পৰ্কীয় উন্নীতকৰণসমূহ লাভ কৰক। যদি আপুনি এই আপডে’টটো প্ৰত্যাখ্যান কৰে, তেন্তে আপোনাৰ ডিভাইচটোৱে আৰু সঠিককৈ কাম নকৰিব পাৰে আৰু আপুনি সুৰক্ষা আৰু কাৰ্যক্ষমতা সম্পৰ্কীয় সমস্যাৰ সন্মুখীন হ’ব পাৰে।</translation>
 <translation id="6376931439017688372">ব্লুটুথ অন কৰা আছে</translation>
 <translation id="6381109794406942707">ডিভাইচটো আনলক কৰিবলৈ, আপোনাৰ পিনটো দিয়ক।</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">পৰিধীয় আহিলাৰ ছেটিঙৰ বাবে আপোনাৰ ডেটা এক্সেছৰ সুৰক্ষা সলনি কৰাটোৱে কাৰ্যক্ষমতা অপ্টিমাইজ কৰিব পাৰে</translation>
 <translation id="736045644501761622">ৱালপেপাৰ আৰু ষ্টাইল ছেট কৰক</translation>
 <translation id="7371404428569700291">ৱিণ্ড’ ৰেকৰ্ড কৰক</translation>
+<translation id="737315737514430195">এইটোৱে মাইক্ৰ’ফ’নৰ অনুমতি থকা আটাইবোৰ এপ্‌ আৰু ৱেবছাইটৰ বাবে মাইক্ৰ’ফ’ন এক্সেছ কৰাৰ অনুমতি দিয়ে</translation>
 <translation id="7377169924702866686">Caps Lock অন আছে।</translation>
 <translation id="7377481913241237033">এটা ক'ডৰ জৰিয়তে সংযোগ কৰক</translation>
 <translation id="7378203170292176219">ৰেকৰ্ড কৰিবৰ বাবে এটা অংশ বাছনি কৰিবলৈ টানি আনি এৰক</translation>
@@ -1201,12 +1205,14 @@
 <translation id="7671610481353807627">ৰং অনুসৰি এপ্ সজোৱা হৈছে</translation>
 <translation id="7672095158465655885"><ph name="NAME" />ৰ সৈতে সংযুক্ত হৈছে, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">কেমেৰাৰ ইনপুট <ph name="CAMERA_NAME" /> হিচাপে ছেট কৰা হৈছে।</translation>
+<translation id="7689817529363080918">এইটোৱে <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> আৰু মাইক্ৰ’ফ’নৰ অনুমতি থকা আটাইবোৰ এপ্‌ আৰু ৱেবছাইটৰ বাবে মাইক্ৰ’ফ’ন এক্সেছ কৰাৰ অনুমতি দিয়ে</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">নতুন চেলুলাৰ নেটৱৰ্ক যোগ দিয়ক</translation>
 <translation id="7720400844887872976"><ph name="TIME" />লৈকে অন হৈ থাকিব</translation>
 <translation id="7720410380936703141">পুনৰ চেষ্টা কৰক</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{১টা জাননী}one{#টা জাননী}other{#টা জাননী}}</translation>
 <translation id="7724603315864178912">কাট কৰক</translation>
+<translation id="7742327441377685481">কোনো জাননী নাই</translation>
 <translation id="7745560842763881396">শ্বেল্‌ফত এপ্‌সমূহ দেখুৱাওক</translation>
 <translation id="7749443890790263709">ডেস্কৰ সৰ্বাধিক সংখ্যাত উপনীত হৈছে।</translation>
 <translation id="776344839111254542">আপডে'টৰ সবিশেষ চাবলৈ ক্লিক কৰক</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index 67afef70..c31f337 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">Працоўны стол 16</translation>
 <translation id="5003993274120026347">Наступны сказ</translation>
 <translation id="5016558321564993266">Уключыць або выключыць маркер. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Доступ да мікрафона прылады дазволены</translation>
 <translation id="5030687792513154421">Час выйшаў</translation>
 <translation id="5033299697334913360">Каб зняць увесь экран, націсніце ў любым яго месцы</translation>
 <translation id="5035236842988137213">Прылада <ph name="DEVICE_NAME" /> падключана да новага тэлефона</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">Усталюйце апошнія функцыі і паляпшэнні сістэмы бяспекі. Калі вы адмовіцеся ад гэтага абнаўлення, ваша прылада можа перастаць працаваць належным чынам. Магчымыя праблемы з прадукцыйнасцю і бяспекай.</translation>
 <translation id="6376931439017688372">Bluetooth уключаны</translation>
 <translation id="6381109794406942707">Каб разблакіраваць прыладу, увядзіце PIN-код.</translation>
+<translation id="638716340450135524">Дазволіць доступ да камеры</translation>
 <translation id="639644700271529076">CAPS LOCK выключаны</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Памочнік Google</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">Выдаліць усе апавяшчэнні</translation>
 <translation id="643147933154517414">Усё гатова</translation>
 <translation id="6431865393913628856">Запіс экрана</translation>
+<translation id="6442259747294754014">Доступ да мікрафона прылады забаронены</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> на <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, падзей: <ph name="NUMBER" /></translation>
 <translation id="6449483711453944360">Вокны ў рэжыме інкогніта і праграмы Linux зараз не падтрымліваюцца</translation>
@@ -1207,6 +1210,7 @@
 <translation id="7720410380936703141">ПАЎТАРЫЦЬ СПРОБУ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 апавяшчэнне}one{# апавяшчэнне}few{# апавяшчэнні}many{# апавяшчэнняў}other{# апавяшчэння}}</translation>
 <translation id="7724603315864178912">Выразаць</translation>
+<translation id="7742327441377685481">Апавяшчэнняў няма</translation>
 <translation id="7745560842763881396">Паказаць праграмы на паліцы</translation>
 <translation id="7749443890790263709">Дасягнута максімальная колькасць сталоў.</translation>
 <translation id="776344839111254542">Каб паглядзець звесткі пра абнаўленне, націсніце тут</translation>
@@ -1363,6 +1367,7 @@
 <translation id="8598235756057743477">Сартаванне праграм па назве або колеры</translation>
 <translation id="8614517853887502247">Апавяшчэнні ад праграм "<ph name="APP_1_TITLE" />" і "<ph name="APP_2_TITLE" />" схаваны, бо ўключаны рэжым абароненага прагляду</translation>
 <translation id="8627191004499078455">Падключана да прылады "<ph name="DEVICE_NAME" />"</translation>
+<translation id="8630991711272431708">Забараніць доступ да камеры</translation>
 <translation id="8631727435199967028">Налады спецыяльных магчымасцей</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />, знаходзіцца пад кіраваннем адміністратара</translation>
 <translation id="8639760480004882931">Засталося: <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index f798e101..ad0d213 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Isklj. za apl.}one{Isklj. za # apl.}few{Isklj. za # apl.}other{Isklj. za # apl.}}</translation>
 <translation id="4066027111132117168">Uključeno, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Signal srednje jačine</translation>
+<translation id="4086921558679520050">Uključite fizički prekidač za mikrofone na uređaju</translation>
 <translation id="4112140312785995938">Pomakni unazad</translation>
 <translation id="4114315158543974537">Uključite hub telefona</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, jačina signala je <ph name="SIGNAL_STRENGTH" /> posto</translation>
 <translation id="4378551569595875038">Povezivanje…</translation>
 <translation id="4379531060876907730">Ovo su vaši alati za korištenje olovke</translation>
+<translation id="4381031910344220229">Omogućuje pristup mikrofonu za aplikaciju <ph name="APP_NAME" /> i sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="4389184120735010762">Pritisnuli ste prečicu na tastaturi za lupu priključne stanice. Želite li je uključiti?</translation>
 <translation id="439598569299422042">Pauzirano, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Nije moguće sačuvati snimanje ekrana</translation>
@@ -728,6 +730,7 @@
 <translation id="4987738733603015246">16. radna površina</translation>
 <translation id="5003993274120026347">Sljedeća rečenica</translation>
 <translation id="5016558321564993266">Uključite/isključite označivač. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Pristup mikrofonu uređaja je uključen</translation>
 <translation id="5030687792513154421">Vrijeme je isteklo</translation>
 <translation id="5033299697334913360">Kliknite na bilo šta da snimite cijeli ekran</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> je povezan na novi telefon</translation>
@@ -959,9 +962,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Uređaj <ph name="DEVICE_NAME" /> je povezan</translation>
 <translation id="6351032674660237738">PRIJEDLOZI APLIKACIJA</translation>
+<translation id="6352082849089527770">Nepoznate mreže</translation>
 <translation id="6359587239691116345">Preuzmite najnovije funkcije i poboljšanja sigurnosti. Ako odbijete ovo ažuriranje, vaš uređaj možda više neće funkcionirati ispravno i možete iskusiti probleme sa sigurnošću i performansama.</translation>
 <translation id="6376931439017688372">Bluetooth je uključen</translation>
 <translation id="6381109794406942707">Da otključate uređaj, unesite PIN.</translation>
+<translation id="638716340450135524">Uključi pristup kameri</translation>
 <translation id="639644700271529076">Tipka CAPS LOCK je isključena</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Asistent</translation>
@@ -969,6 +974,7 @@
 <translation id="642644398083277086">Obrišite sva obavještenja</translation>
 <translation id="643147933154517414">Završeno</translation>
 <translation id="6431865393913628856">Snimanje ekrana</translation>
+<translation id="6442259747294754014">Pristup mikrofonu uređaja je isključen</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> – <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> događaj(a)</translation>
 <translation id="6449483711453944360">Linux aplikacije i anonimni prozori trenutno nisu podržani</translation>
@@ -1133,6 +1139,7 @@
 <translation id="7360036564632145207">Promjenom postavke zaštite pristupa podacima za periferne uređaje možete optimizirati performanse</translation>
 <translation id="736045644501761622">Postavi pozadinsku sliku i stil</translation>
 <translation id="7371404428569700291">Snimite prozor</translation>
+<translation id="737315737514430195">Omogućuje pristup mikrofonu za sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="7377169924702866686">Uključena su velika slova.</translation>
 <translation id="7377481913241237033">Povežite se pomoću koda</translation>
 <translation id="7378203170292176219">Prevucite da odaberete oblast za snimanje</translation>
@@ -1201,6 +1208,7 @@
 <translation id="7671610481353807627">Aplikacije su poredane po boji</translation>
 <translation id="7672095158465655885">Povezano s mrežom <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Ulaz kamere je postavljen na <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Omogućuje pristup mikrofonu za aplikacije <ph name="APP1_NAME" /> i <ph name="APP2_NAME" /> te sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Dodajte novu mobilnu mrežu</translation>
 <translation id="7720400844887872976">Uključeno do <ph name="TIME" /></translation>
@@ -1364,6 +1372,7 @@
 <translation id="8598235756057743477">Poredajte aplikacije po nazivu ili boji</translation>
 <translation id="8614517853887502247">Obavještenja aplikacije <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> su skrivena jer je uključena zaštita pregleda</translation>
 <translation id="8627191004499078455">Povezano na <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Isključi pristup kameri</translation>
 <translation id="8631727435199967028">Postavke pristupačnosti</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />, upravlja vaš administrator</translation>
 <translation id="8639760480004882931">Preostalo <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 50c0e4c..f88e9400 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">Plocha 16</translation>
 <translation id="5003993274120026347">Další věta</translation>
 <translation id="5016558321564993266">Přepnout popisovač. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Přístup k mikrofonu zařízení je zapnutý</translation>
 <translation id="5030687792513154421">Čas vypršel</translation>
 <translation id="5033299697334913360">Snímek celé obrazovky pořídíte klepnutím kamkoliv</translation>
 <translation id="5035236842988137213">Zařízení <ph name="DEVICE_NAME" /> je připojeno k novému telefonu</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">Získejte nejnovější funkce a vylepšení zabezpečení. Pokud tuto aktualizaci odmítnete, vaše zařízení už nemusí pracovat správně a mohou se vyskytnout problémy se zabezpečením a výkonem.</translation>
 <translation id="6376931439017688372">Rozhraní Bluetooth je zapnuté</translation>
 <translation id="6381109794406942707">Chcete-li zařízení odemknout, zadejte PIN.</translation>
+<translation id="638716340450135524">Zapnout přístup k fotoaparátu</translation>
 <translation id="639644700271529076">CAPS LOCK je vypnutý</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Asistent Google</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">Vymazat všechna oznámení</translation>
 <translation id="643147933154517414">Vše je hotovo</translation>
 <translation id="6431865393913628856">Záznam obrazovky</translation>
+<translation id="6442259747294754014">Přístup k mikrofonu zařízení je vypnutý</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na přijímači <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> událost</translation>
 <translation id="6449483711453944360">Linuxové aplikace a anonymní okna v současné době nejsou podporovány</translation>
@@ -1364,6 +1367,7 @@
 <translation id="8598235756057743477">Seřaďte si aplikace podle názvu nebo barvy</translation>
 <translation id="8614517853887502247">Oznámení aplikací <ph name="APP_1_TITLE" /> a <ph name="APP_2_TITLE" /> jsou skryta, protože je zapnutá ochrana před špehováním</translation>
 <translation id="8627191004499078455">Připojeno k zařízení <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Vypnout přístup k fotoaparátu</translation>
 <translation id="8631727435199967028">Nastavení usnadnění přístupu</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" />, spravováno administrátorem</translation>
 <translation id="8639760480004882931">Zbývá <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 9652e5f..dd209cb 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">PRØV IGEN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifikation}one{# notifikation}other{# notifikationer}}</translation>
 <translation id="7724603315864178912">Klip</translation>
+<translation id="7742327441377685481">Ingen notifikationer</translation>
 <translation id="7745560842763881396">Vis apps på hylde</translation>
 <translation id="7749443890790263709">Det maksimale antal skriveborde er nået.</translation>
 <translation id="776344839111254542">Klik for at se opdateringsoplysninger</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 0ffda7e..cc20547 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -1019,6 +1019,7 @@
 <translation id="6670153871843998651">Desktop 3</translation>
 <translation id="6671495933530132209">Bild kopieren</translation>
 <translation id="6671661918848783005">Chromebook kann nicht entsperrt werden</translation>
+<translation id="6683022854667115063">Kopfhörer</translation>
 <translation id="6696025732084565524">Wichtiges Update für deine abnehmbare Tastatur</translation>
 <translation id="6700713906295497288">IME-Menüschaltfläche</translation>
 <translation id="6707693040195709527">Das Gerät wurde noch nicht auf eine frühere Version zurückgesetzt</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 86a40a1a..787eccf 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Ανενεργές για κάποια εφαρμογή}other{Ανενεργές για # εφαρμογές}}</translation>
 <translation id="4066027111132117168">Ενεργό, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Μεσαίο σήμα</translation>
+<translation id="4086921558679520050">Ενεργοποιήστε τον φυσικό διακόπτη μικροφώνου στη συσκευή σας</translation>
 <translation id="4112140312785995938">Αναζήτηση προς τα πίσω</translation>
 <translation id="4114315158543974537">Ενεργοποίηση του Phone Hub</translation>
 <translation id="4115378294792113321">Ματζέντα</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, ισχύς σήματος <ph name="SIGNAL_STRENGTH" /> τοις εκατό</translation>
 <translation id="4378551569595875038">Σύνδεση…</translation>
 <translation id="4379531060876907730">Αυτά είναι τα εργαλεία γραφίδας σας</translation>
+<translation id="4381031910344220229">Αυτό επιτρέπει την πρόσβαση στο μικρόφωνο για την εφαρμογή <ph name="APP_NAME" /> και όλες τις εφαρμογές και τους ιστοτόπους με άδεια μικροφώνου.</translation>
 <translation id="4389184120735010762">Πατήσατε τη συντόμευση πληκτρολογίου για τον μεγεθυντικό φακό σε παράθυρο. Θέλετε να τον ενεργοποιήσετε;</translation>
 <translation id="439598569299422042">Σε παύση, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Δεν είναι δυνατή η αποθήκευση της ψηφιακής εγγραφής οθόνης</translation>
@@ -728,6 +730,7 @@
 <translation id="4987738733603015246">Γραφείο 16</translation>
 <translation id="5003993274120026347">Επόμενη πρόταση</translation>
 <translation id="5016558321564993266">Επιλέξτε τον μαρκαδόρο. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Η πρόσβαση στο μικρόφωνο της συσκευής είναι ενεργοποιημένη</translation>
 <translation id="5030687792513154421">Τέλος χρόνου</translation>
 <translation id="5033299697334913360">Κάντε κλικ σε οποιοδήποτε σημείο για εγγραφή ολόκληρης της οθόνης.</translation>
 <translation id="5035236842988137213">Η συσκευή <ph name="DEVICE_NAME" /> συνδέθηκε σε ένα νέο τηλέφωνο</translation>
@@ -959,9 +962,11 @@
 <translation id="6338485349199627913">Το <ph name="DISPLAY_NAME" /> είναι μια διαχειριζόμενη περίοδος σύνδεσης την οποία διαχειρίζεται ο τομέας <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">Η συσκευή <ph name="DEVICE_NAME" /> συνδέθηκε</translation>
 <translation id="6351032674660237738">ΠΡΟΤΑΣΕΙΣ ΕΦΑΡΜΟΓΩΝ</translation>
+<translation id="6352082849089527770">Άγνωστα δίκτυα</translation>
 <translation id="6359587239691116345">Αποκτήστε τις πιο πρόσφατες λειτουργίες και βελτιώσεις ασφάλειας. Εάν απορρίψετε αυτήν την ενημέρωση, η συσκευή σας ενδέχεται να μην λειτουργεί σωστά πλέον και ίσως αντιμετωπίσετε ζητήματα ασφάλειας και απόδοσης.</translation>
 <translation id="6376931439017688372">Το Bluetooth είναι ενεργοποιημένο</translation>
 <translation id="6381109794406942707">Για να ξεκλειδώσετε τη συσκευή, εισαγάγετε το PIN σας.</translation>
+<translation id="638716340450135524">Ενεργοποίηση πρόσβασης στην κάμερα</translation>
 <translation id="639644700271529076">Το CAPS LOCK είναι απενεργοποιημένο</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Βοηθός Google</translation>
@@ -969,6 +974,7 @@
 <translation id="642644398083277086">Διαγραφή όλων των ειδοποιήσεων</translation>
 <translation id="643147933154517414">Όλα έτοιμα</translation>
 <translation id="6431865393913628856">Εγγραφή οθόνης</translation>
+<translation id="6442259747294754014">Η πρόσβαση στο μικρόφωνο της συσκευής είναι απενεργοποιημένη</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> σε <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> συμβάν</translation>
 <translation id="6449483711453944360">Προς το παρόν, δεν υποστηρίζονται οι εφαρμογές Linux και τα παράθυρα για ανώνυμη περιήγηση</translation>
@@ -1133,6 +1139,7 @@
 <translation id="7360036564632145207">Η αλλαγή της ρύθμισης προστασίας πρόσβασης δεδομένων για περιφερειακά μπορεί να βελτιστοποιήσει την απόδοση</translation>
 <translation id="736045644501761622">Ρύθμιση ταπετσαρίας και στιλ</translation>
 <translation id="7371404428569700291">Εγγραφή παραθύρου</translation>
+<translation id="737315737514430195">Αυτό επιτρέπει την πρόσβαση στο μικρόφωνο για όλες τις εφαρμογές και τους ιστοτόπους με άδεια μικροφώνου.</translation>
 <translation id="7377169924702866686">Το Caps Lock είναι ενεργοποιημένο.</translation>
 <translation id="7377481913241237033">Σύνδεση με κωδικό</translation>
 <translation id="7378203170292176219">Σύρετε, για να επιλέξετε μια περιοχή για εγγραφή</translation>
@@ -1201,6 +1208,7 @@
 <translation id="7671610481353807627">Οι εφαρμογές ταξινομούνται κατά χρώμα</translation>
 <translation id="7672095158465655885">Συνδέθηκε σε <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Η είσοδος κάμερας ρυθμίστηκε σε <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Αυτό επιτρέπει την πρόσβαση στο μικρόφωνο για τις εφαρμογές <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> και όλες τις εφαρμογές και τους ιστοτόπους με άδεια μικροφώνου.</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Προσθήκη νέου δικτύου κινητής τηλεφωνίας</translation>
 <translation id="7720400844887872976">Ενεργή έως τις <ph name="TIME" /></translation>
@@ -1364,6 +1372,7 @@
 <translation id="8598235756057743477">Ταξινόμηση των εφαρμογών σας κατά όνομα ή χρώμα</translation>
 <translation id="8614517853887502247">Έχει γίνει απόκρυψη των ειδοποιήσεων των εφαρμογών <ph name="APP_1_TITLE" /> και <ph name="APP_2_TITLE" /> επειδή η προστασία προβολής είναι ενεργοποιημένη</translation>
 <translation id="8627191004499078455">Συνδέθηκε στη συσκευή <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Απενεργοποίηση πρόσβασης στην κάμερα</translation>
 <translation id="8631727435199967028">Ρυθμίσεις προσβασιμότητας</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, Ισχύς σήματος <ph name="SIGNAL_STRENGTH" />, Διαχειριζόμενο από τον διαχειριστή σας</translation>
 <translation id="8639760480004882931">Απομένει <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index 292fc262..e38af28e 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -730,6 +730,7 @@
 <translation id="4987738733603015246">Desk 16</translation>
 <translation id="5003993274120026347">Next sentence</translation>
 <translation id="5016558321564993266">Toggle marker. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Device microphone access is on</translation>
 <translation id="5030687792513154421">Time is up</translation>
 <translation id="5033299697334913360">Click anywhere to capture full screen</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> connected to a new phone</translation>
@@ -965,6 +966,7 @@
 <translation id="6359587239691116345">Get the latest features and security improvements. If you decline this update, your device may no longer work properly and you may experience security and performance issues.</translation>
 <translation id="6376931439017688372">Bluetooth is on</translation>
 <translation id="6381109794406942707">To unlock the device, enter your PIN.</translation>
+<translation id="638716340450135524">Turn on camera access</translation>
 <translation id="639644700271529076">CAPS LOCK is off</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
@@ -972,6 +974,7 @@
 <translation id="642644398083277086">Clear all notifications</translation>
 <translation id="643147933154517414">All finished</translation>
 <translation id="6431865393913628856">Screen record</translation>
+<translation id="6442259747294754014">Device microphone access is off</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> on <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> event</translation>
 <translation id="6449483711453944360">Linux apps and incognito windows aren’t currently supported</translation>
@@ -1369,6 +1372,7 @@
 <translation id="8598235756057743477">Sort your apps by name or colour</translation>
 <translation id="8614517853887502247"><ph name="APP_1_TITLE" /> and <ph name="APP_2_TITLE" /> notifications are hidden because viewing protection is on</translation>
 <translation id="8627191004499078455">Connected to <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Turn off camera access</translation>
 <translation id="8631727435199967028">Accessibility settings</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, signal strength <ph name="SIGNAL_STRENGTH" />, managed by your administrator</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> remaining</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index ae3688c..9917c1e0 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">VOLVER A INTENTAR</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificación}other{# notificaciones}}</translation>
 <translation id="7724603315864178912">Cortar</translation>
+<translation id="7742327441377685481">No hay notificaciones</translation>
 <translation id="7745560842763881396">Mostrar apps en la barra</translation>
 <translation id="7749443890790263709">Se alcanzó la cantidad máxima de escritorios.</translation>
 <translation id="776344839111254542">Haz clic para ver los detalles de la actualización</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 2e4dc4d..18563fc 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">REINTENTAR</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificación}other{# notificaciones}}</translation>
 <translation id="7724603315864178912">Cortar</translation>
+<translation id="7742327441377685481">No hay notificaciones</translation>
 <translation id="7745560842763881396">Mostrar aplicaciones de la estantería</translation>
 <translation id="7749443890790263709">Has alcanzado el número máximo de escritorios.</translation>
 <translation id="776344839111254542">Haz clic para ver los detalles de la actualización</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index 0281b3c5..c08e649 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">PROOVIGE UUESTI</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 märguanne}other{# märguannet}}</translation>
 <translation id="7724603315864178912">Lõika</translation>
+<translation id="7742327441377685481">Märguandeid pole</translation>
 <translation id="7745560842763881396">Kuva riiulil olevad rakendused</translation>
 <translation id="7749443890790263709">Töölaudade maksimaalne arv on täis.</translation>
 <translation id="776344839111254542">Klõpsake värskenduse üksikasjade vaatamiseks</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 0642bb26..d0d44f9 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">SAIATU BERRIRO</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 jakinarazpen}other{# jakinarazpen}}</translation>
 <translation id="7724603315864178912">Ebaki</translation>
+<translation id="7742327441377685481">Ez dago jakinarazpenik</translation>
 <translation id="7745560842763881396">Bistaratu aplikazioak apalean</translation>
 <translation id="7749443890790263709">Gehieneko lan-eremuen kopurura iritsi zara.</translation>
 <translation id="776344839111254542">Egin klik eguneratzearen xehetasunak ikusteko</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index b40f98c..1983a1e1 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -730,6 +730,7 @@
 <translation id="4987738733603015246">Bureau 16</translation>
 <translation id="5003993274120026347">Phrase suivante</translation>
 <translation id="5016558321564993266">Basculez le marqueur. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">L'accès au microphone de l'appareil est activé</translation>
 <translation id="5030687792513154421">Le temps est écoulé</translation>
 <translation id="5033299697334913360">Cliquez n'importe où pour capturer la totalité de l'écran</translation>
 <translation id="5035236842988137213">L'appareil <ph name="DEVICE_NAME" /> est connecté à un nouveau téléphone</translation>
@@ -965,6 +966,7 @@
 <translation id="6359587239691116345">Bénéficiez des dernières fonctionnalités et améliorations de la sécurité. Si vous refusez cette mise à jour, votre appareil pourrait ne plus fonctionner correctement, et vous pourriez rencontrer des problèmes de sécurité et de performance.</translation>
 <translation id="6376931439017688372">Le Bluetooth est activé</translation>
 <translation id="6381109794406942707">Pour déverrouiller l'appareil, entrez votre NIP.</translation>
+<translation id="638716340450135524">Activer l'accès à l'appareil photo</translation>
 <translation id="639644700271529076">Touche de verrouillage des majuscules désactivée</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Assistant Google</translation>
@@ -972,6 +974,7 @@
 <translation id="642644398083277086">Effacer toutes les notifications</translation>
 <translation id="643147933154517414">Tout est terminé</translation>
 <translation id="6431865393913628856">Enregistrement d'écran</translation>
+<translation id="6442259747294754014">L'accès au microphone de l'appareil est désactivé</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> sur <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> événement</translation>
 <translation id="6449483711453944360">Les applications Linux et les fenêtres de navigation privée ne sont pas prises en charge actuellement</translation>
@@ -1369,6 +1372,7 @@
 <translation id="8598235756057743477">Triez vos applications par nom ou par couleur</translation>
 <translation id="8614517853887502247">Les notifications de <ph name="APP_1_TITLE" /> et de <ph name="APP_2_TITLE" /> sont masquées parce que la protection de l'affichage est activée</translation>
 <translation id="8627191004499078455">Connecté à <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Désactiver l'accès à l'appareil photo</translation>
 <translation id="8631727435199967028">Paramètres d'accessibilité</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> géré par votre administrateur</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restant</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index 2001849..5e1a4024 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">TENTAR DE NOVO</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificación}other{# notificacións}}</translation>
 <translation id="7724603315864178912">Cortar</translation>
+<translation id="7742327441377685481">Non hai notificacións</translation>
 <translation id="7745560842763881396">Mostrar as aplicacións do estante</translation>
 <translation id="7749443890790263709">Alcanzouse o número máximo de escritorios.</translation>
 <translation id="776344839111254542">Fai clic para ver os detalles da actualización</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 5e5ea75..b8033ec 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">ડેસ્ક 16</translation>
 <translation id="5003993274120026347">આગલું વાક્ય</translation>
 <translation id="5016558321564993266">માર્કરને ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">ડિવાઇસના માઇક્રોફોનનો ઍક્સેસ ચાલુ છે</translation>
 <translation id="5030687792513154421">સમય પૂરો થયો</translation>
 <translation id="5033299697334913360">પૂર્ણ સ્ક્રીન કૅપ્ચર કરવા માટે સ્ક્રીન પર ગમે ત્યાં ક્લિક કરો</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" />, નવા ફોન સાથે કનેક્ટ થયું</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">નવીનતમ સુવિધાઓ અને સુરક્ષા સંબંધિત સુધારણાઓ મેળવો. જો તમે આ અપડેટ નકારશો, તો તમારું ડિવાઇસ હવે કદાચ યોગ્ય રીતે કામ કરશે નહીં અને તમે સુરક્ષા તથા પર્ફોર્મન્સ સંબંધિત સમસ્યાઓ અનુભવી શકો છો.</translation>
 <translation id="6376931439017688372">બ્લૂટૂથ ચાલુ છે</translation>
 <translation id="6381109794406942707">ડિવાઇસને અનલૉક કરવા માટે. તમારો પિન દાખલ કરો.</translation>
+<translation id="638716340450135524">કૅમેરાનો ઍક્સેસ ચાલુ કરો</translation>
 <translation id="639644700271529076">CAPS LOCK બંધ છે</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">બધા નોટિફિકેશન સાફ કરો</translation>
 <translation id="643147933154517414">થઈ ગયું</translation>
 <translation id="6431865393913628856">સ્ક્રીન રેકૉર્ડ કરો</translation>
+<translation id="6442259747294754014">ડિવાઇસના માઇક્રોફોનનો ઍક્સેસ બંધ છે</translation>
 <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> પર <ph name="ROUTE_TITLE" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> ઇવેન્ટ</translation>
 <translation id="6449483711453944360">Linux ઍપ અને છૂપી વિન્ડોને હાલમાં સપોર્ટ કરવામાં આવતો નથી</translation>
@@ -1364,6 +1367,7 @@
 <translation id="8598235756057743477">તમારી ઍપને નામ અથવા રંગ અનુસાર સૉર્ટ કરો</translation>
 <translation id="8614517853887502247">જોવા સંબંધિત સુરક્ષા પ્રણાલી ચાલુ હોવાને કારણે <ph name="APP_1_TITLE" /> અને <ph name="APP_2_TITLE" /> નોટિફિકેશન છુપાવેલા છે</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> સાથે કનેક્ટ થયા</translation>
+<translation id="8630991711272431708">કૅમેરાનો ઍક્સેસ બંધ કરો</translation>
 <translation id="8631727435199967028">ઍક્સેસિબિલિટી સેટિંગ</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> બાકી</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index b3ca482..3bf0276 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -553,6 +553,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Isk. za 1 apl.}one{Isk. za # apl.}few{Iskl. za # apl.}other{Isk. za # apl.}}</translation>
 <translation id="4066027111132117168">Uključeno, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Signal srednje jačine</translation>
+<translation id="4086921558679520050">Uključite fizički prekidač za mikrofone na uređaju</translation>
 <translation id="4112140312785995938">Traži unatrag</translation>
 <translation id="4114315158543974537">Uključivanje Phone Huba</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -605,6 +606,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, jačina signala: <ph name="SIGNAL_STRENGTH" /> posto</translation>
 <translation id="4378551569595875038">Povezivanje...</translation>
 <translation id="4379531060876907730">Ovo su vaši alati za pisaljke</translation>
+<translation id="4381031910344220229">Omogućuje pristup mikrofonu za aplikaciju <ph name="APP_NAME" /> i sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="4389184120735010762">Pritisnuli ste tipkovni prečac za usidreno povećalo. Želite li ga uključiti?</translation>
 <translation id="439598569299422042">Pauzirano, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Spremanje zaslonske prezentacije nije uspjelo</translation>
@@ -727,6 +729,7 @@
 <translation id="4987738733603015246">Radna površina 16</translation>
 <translation id="5003993274120026347">Sljedeća rečenica</translation>
 <translation id="5016558321564993266">Prebacite marker. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Pristup mikrofonu uređaja je uključen</translation>
 <translation id="5030687792513154421">Vrijeme je isteklo</translation>
 <translation id="5033299697334913360">Kliknite bilo gdje da biste snimili cijeli zaslon</translation>
 <translation id="5035236842988137213">Uređaj <ph name="DEVICE_NAME" /> povezan je s novim telefonom</translation>
@@ -958,9 +961,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Povezano: <ph name="DEVICE_NAME" /></translation>
 <translation id="6351032674660237738">PRIJEDLOZI APLIKACIJA</translation>
+<translation id="6352082849089527770">Nepoznate mreže</translation>
 <translation id="6359587239691116345">Preuzmite najnovije značajke i sigurnosna poboljšanja. Ako odbijete ovo ažuriranje, vaš uređaj možda više neće pravilno funkcionirati i možda ćete imati problema sa sigurnošću i izvedbom.</translation>
 <translation id="6376931439017688372">Bluetooth je uključen</translation>
 <translation id="6381109794406942707">Da biste otključali uređaj, unesite PIN.</translation>
+<translation id="638716340450135524">Uključi pristup kameri</translation>
 <translation id="639644700271529076">Tipka CAPS LOCK isključena</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google asistent</translation>
@@ -968,6 +973,7 @@
 <translation id="642644398083277086">Brisanje svih obavijesti</translation>
 <translation id="643147933154517414">Dovršeno</translation>
 <translation id="6431865393913628856">Snimanje zaslona</translation>
+<translation id="6442259747294754014">Pristup mikrofonu uređaja je isključen</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na uređaju <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> događaj/događaja</translation>
 <translation id="6449483711453944360">Linux aplikacije i anonimni prozori trenutačno nisu podržani</translation>
@@ -1132,6 +1138,7 @@
 <translation id="7360036564632145207">Promjenom postavke zaštite pristupa podacima za periferne uređaje možete optimizirati rad</translation>
 <translation id="736045644501761622">Postavite pozadinu i stil</translation>
 <translation id="7371404428569700291">Snimanje prozora</translation>
+<translation id="737315737514430195">Omogućuje pristup mikrofonu za sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="7377169924702866686">Uključena je opcija Caps Lock.</translation>
 <translation id="7377481913241237033">Povezivanje pomoću koda</translation>
 <translation id="7378203170292176219">Povucite da biste odabrali područje za snimanje</translation>
@@ -1200,6 +1207,7 @@
 <translation id="7671610481353807627">Aplikacije su poredane po boji</translation>
 <translation id="7672095158465655885">Povezano s: <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Unos kamerom postavljen je na kameru <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Omogućuje pristup mikrofonu za aplikacije <ph name="APP1_NAME" /> i <ph name="APP2_NAME" /> te sve aplikacije i web-lokacije s dopuštenjem za mikrofon</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Dodajte novu mobilnu mrežu</translation>
 <translation id="7720400844887872976">Uključeno do <ph name="TIME" /></translation>
@@ -1363,6 +1371,7 @@
 <translation id="8598235756057743477">Poredajte aplikacije po nazivu ili po boji</translation>
 <translation id="8614517853887502247">Obavijesti aplikacija <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> skrivene su jer je uključena zaštita prikaza.</translation>
 <translation id="8627191004499078455">Povezano s uređajem <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Isključi pristup kameri</translation>
 <translation id="8631727435199967028">Postavke pristupačnosti</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />, upravlja administrator</translation>
 <translation id="8639760480004882931">Preostalo <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index 3c78e07..d6a5138 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -553,6 +553,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Անջատել 1 ծրագրի համար}one{Անջատել # ծրագրի համար}other{Անջատել # ծրագրերի համար}}</translation>
 <translation id="4066027111132117168">Միացված է, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Միջին ուժգնության ազդանշան</translation>
+<translation id="4086921558679520050">Միացրեք խոսափողի ֆիզիկական անջատիչը ձեր սարքում</translation>
 <translation id="4112140312785995938">Հետ գնալ</translation>
 <translation id="4114315158543974537">Միացրեք Phone Hub-ը</translation>
 <translation id="4115378294792113321">Ծիրանեգույն</translation>
@@ -605,6 +606,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, ազդանշանի ուժգնությունը՝ <ph name="SIGNAL_STRENGTH" /> տոկոս</translation>
 <translation id="4378551569595875038">Միացում…</translation>
 <translation id="4379531060876907730">Սրանք ձեր ստիլուսի գործիքներն են</translation>
+<translation id="4381031910344220229">Սա հասանելի է դարձնում խոսափողը <ph name="APP_NAME" /> հավելվածին և բոլոր հավելվածներին ու կայքերին, որոնք ունեն խոսափողի օգտագործման թույլտվություն</translation>
 <translation id="4389184120735010762">Դուք սեղմել եք ամրացված խոշորացույցի դյուրանցման ստեղները: Ուզում եք միացնե՞լ այն:</translation>
 <translation id="439598569299422042">Դադարեցված է, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Չհաջողվեց պահել սքրինքաստը</translation>
@@ -958,6 +960,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> աշխատաշրջանը կառավարվում է <ph name="MANAGER" />-ի կողմից</translation>
 <translation id="6344138931392227467">Զուգակցվեց <ph name="DEVICE_NAME" /> սարքը</translation>
 <translation id="6351032674660237738">ՀԱՎԵԼՎԱԾՆԵՐԻ ԱՌԱՋԱՐԿՆԵՐ</translation>
+<translation id="6352082849089527770">Անհայտ ցանցեր</translation>
 <translation id="6359587239691116345">Օգտվեք վերջին գործառույթներից և բարելավված անվտանգությունից։ Եթե չընդունեք այս թարմացումը, հնարավոր է՝ ձեր սարքն այլևս չաշխատի պատշաճ կերպով, և ձեզ մոտ կարող են առաջանալ անվտանգության և արդյունավետության խնդիրներ։</translation>
 <translation id="6376931439017688372">Bluetooth-ը միացված է</translation>
 <translation id="6381109794406942707">Սարքն ապակողպելու համար մուտքագրեք ձեր PIN կոդը։</translation>
@@ -1131,6 +1134,7 @@
 <translation id="7360036564632145207">Եթե արտաքին սարքերի կարգավորումներում փոխեք տվյալների հասանելիության պաշտպանության պարամետրերը, աշխատանքի արդյունավետությունը կարող է բարձրանալ</translation>
 <translation id="736045644501761622">Ընտրել պաստառ և ոճ</translation>
 <translation id="7371404428569700291">Տեսագրել պատուհանը</translation>
+<translation id="737315737514430195">Սա հասանելի է դարձնում խոսափողը բոլոր հավելվածներին ու կայքերին, որոնք ունեն խոսափողի օգտագործման թույլտվություն</translation>
 <translation id="7377169924702866686">Caps Lock-ը միացված է:</translation>
 <translation id="7377481913241237033">Միացում կոդով</translation>
 <translation id="7378203170292176219">Քաշեք՝ տեսագրման հատվածն ընտրելու համար</translation>
@@ -1199,12 +1203,14 @@
 <translation id="7671610481353807627">Հավելվածները դասավորված են ըստ գույնի</translation>
 <translation id="7672095158465655885">Միացած է <ph name="NAME" /> ցանցին, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Օգտագործվում է «<ph name="CAMERA_NAME" />» տեսախցիկը։</translation>
+<translation id="7689817529363080918">Սա հասանելի է դարձնում խոսափողը <ph name="APP1_NAME" /> և <ph name="APP2_NAME" /> հավելվածներին, ինչպես նաև բոլոր հավելվածներին ու կայքերին, որոնք ունեն խոսափողի օգտագործման թույլտվություն</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Ավելացնել նոր բջջային ցանց</translation>
 <translation id="7720400844887872976">Միացված կլինի մինչև <ph name="TIME" /></translation>
 <translation id="7720410380936703141">ՆՈՐԻՑ ՓՈՐՁԵԼ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ծանուցում}one{# ծանուցում}other{# ծանուցում}}</translation>
 <translation id="7724603315864178912">Կտրել</translation>
+<translation id="7742327441377685481">Ծանուցումներ չկան</translation>
 <translation id="7745560842763881396">Ցուցադրել դարակի հավելվածները</translation>
 <translation id="7749443890790263709">Աշխատասեղանների առավելագույն թույլատրելի քանակը լրացել է:</translation>
 <translation id="776344839111254542">Հպեք՝ թարմացման մանրամասները դիտելու համար</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index c084215a..f514bb16 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">COBA LAGI</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifikasi}other{# notifikasi}}</translation>
 <translation id="7724603315864178912">Potong</translation>
+<translation id="7742327441377685481">Tidak ada notifikasi</translation>
 <translation id="7745560842763881396">Tampilkan aplikasi di rak</translation>
 <translation id="7749443890790263709">Jumlah halaman kerja maksimum tercapai.</translation>
 <translation id="776344839111254542">Klik untuk melihat detail update</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 074023e..48ecc5c 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -555,6 +555,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Off per un'app}other{Off per # app}}</translation>
 <translation id="4066027111132117168">On, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Segnale medio</translation>
+<translation id="4086921558679520050">Attiva l'interruttore fisico del microfono sul dispositivo</translation>
 <translation id="4112140312785995938">Vai indietro</translation>
 <translation id="4114315158543974537">Attiva Phone Hub</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, intensità segnale: <ph name="SIGNAL_STRENGTH" /> percento</translation>
 <translation id="4378551569595875038">Connessione...</translation>
 <translation id="4379531060876907730">Ecco gli strumenti per il tuo stilo</translation>
+<translation id="4381031910344220229">Consente l'accesso al microfono per <ph name="APP_NAME" /> e tutti i siti web e le app che hanno l'autorizzazione di accesso al microfono</translation>
 <translation id="4389184120735010762">Hai premuto la scorciatoia da tastiera per la lente d'ingrandimento ancorata. Vuoi attivarla?</translation>
 <translation id="439598569299422042">In pausa, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Impossibile salvare lo screencast</translation>
@@ -960,6 +962,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> è una sessione gestita da <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> connesso</translation>
 <translation id="6351032674660237738">APP SUGGERITE</translation>
+<translation id="6352082849089527770">Reti sconosciute</translation>
 <translation id="6359587239691116345">Ottieni le funzionalità e i miglioramenti della sicurezza più recenti. Se rifiuti questo aggiornamento, il tuo dispositivo potrebbe non funzionare più correttamente e potresti riscontrare problemi di prestazioni e sicurezza.</translation>
 <translation id="6376931439017688372">Bluetooth attivo.</translation>
 <translation id="6381109794406942707">Per sbloccare il dispositivo, inserisci il PIN.</translation>
@@ -1021,6 +1024,7 @@
 <translation id="6670153871843998651">Scrivania 3</translation>
 <translation id="6671495933530132209">Copia immagine</translation>
 <translation id="6671661918848783005">Impossibile sbloccare Chromebook</translation>
+<translation id="6683022854667115063">Cuffie</translation>
 <translation id="6696025732084565524">La tastiera rimovibile richiede un aggiornamento critico</translation>
 <translation id="6700713906295497288">Pulsante di menu IME</translation>
 <translation id="6707693040195709527">Il termine ultimo per il ripristino della versione precedente del dispositivo è trascorso</translation>
@@ -1133,6 +1137,7 @@
 <translation id="7360036564632145207">La modifica della protezione dell'accesso ai dati per l'impostazione delle periferiche può ottimizzare le prestazioni</translation>
 <translation id="736045644501761622">Imposta sfondo e stile</translation>
 <translation id="7371404428569700291">Finestra di registrazione</translation>
+<translation id="737315737514430195">Consente l'accesso al microfono per tutti i siti web e le app che hanno l'autorizzazione di accesso al microfono</translation>
 <translation id="7377169924702866686">La funzione Bloc maiusc è attiva.</translation>
 <translation id="7377481913241237033">Connessione tramite codice</translation>
 <translation id="7378203170292176219">Trascina per selezionare l'area da registrare</translation>
@@ -1201,6 +1206,7 @@
 <translation id="7671610481353807627">Le app sono ordinate per colore</translation>
 <translation id="7672095158465655885">Connessione a <ph name="NAME" /> stabilita, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Dati fotocamera impostati su <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Consente l'accesso al microfono per <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> e tutti i siti web e le app che hanno l'autorizzazione di accesso al microfono</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Aggiungi una nuova rete mobile</translation>
 <translation id="7720400844887872976">Funzionalità attiva fino alle ore <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 4921104d..9a66e38d 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -1212,6 +1212,7 @@
 <translation id="7720410380936703141">ხელახლა ცდა</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 შეტყობინება}other{# შეტყობინება}}</translation>
 <translation id="7724603315864178912">ამოჭრა</translation>
+<translation id="7742327441377685481">შეტყობინებები არ არის</translation>
 <translation id="7745560842763881396">თაროზე აპების ჩვენება</translation>
 <translation id="7749443890790263709">მიღწეულია სამუშაო მაგიდების მაქსიმალური რაოდენობა.</translation>
 <translation id="776344839111254542">დააწკაპუნეთ განახლების დეტალების სანახავად</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 951ac1c8..21cab20a 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">데스크 16</translation>
 <translation id="5003993274120026347">다음 문장</translation>
 <translation id="5016558321564993266">마커를 전환합니다. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">기기 마이크 액세스 권한 부여됨</translation>
 <translation id="5030687792513154421">시간이 다 됨</translation>
 <translation id="5033299697334913360">전체 화면을 캡처하려면 아무 곳이나 클릭하세요</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" />이(가) 새 휴대전화에 연결되었습니다.</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">최신 기능과 보안 개선 사항을 받습니다. 이 업데이트를 거부하면 기기가 더 이상 제대로 작동하지 않을 수 있으며 보안 및 성능 문제가 발생할 수 있습니다.</translation>
 <translation id="6376931439017688372">블루투스 사용 중</translation>
 <translation id="6381109794406942707">기기의 잠금을 해제하려면 PIN을 입력하세요.</translation>
+<translation id="638716340450135524">카메라 액세스 권한 부여</translation>
 <translation id="639644700271529076">CAPS LOCK이 꺼져 있음</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google 어시스턴트</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">알림 모두 지우기</translation>
 <translation id="643147933154517414">완료</translation>
 <translation id="6431865393913628856">화면 녹화</translation>
+<translation id="6442259747294754014">기기 마이크 액세스 차단됨</translation>
 <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />에 <ph name="ROUTE_TITLE" /> 전송 중</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, 일정 <ph name="NUMBER" />개</translation>
 <translation id="6449483711453944360">Linux 앱 및 시크릿 창은 현재 지원되지 않습니다.</translation>
@@ -1364,6 +1367,7 @@
 <translation id="8598235756057743477">이름 또는 색상별로 앱 정렬</translation>
 <translation id="8614517853887502247">사생활 보호가 켜져 있으므로 <ph name="APP_1_TITLE" /> 및 <ph name="APP_2_TITLE" /> 알림이 숨겨집니다.</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" />에 연결됨</translation>
+<translation id="8630991711272431708">카메라 액세스 차단</translation>
 <translation id="8631727435199967028">접근성 설정</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, 신호 강도 <ph name="SIGNAL_STRENGTH" />, 관리자가 관리함</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> 남음</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index 4c88e564..9f19f4d9 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -1020,6 +1020,7 @@
 <translation id="6670153871843998651">3-иш такта</translation>
 <translation id="6671495933530132209">Сүрөттү көчүрүү</translation>
 <translation id="6671661918848783005">Chromebook'тун кулпусу ачылган жок</translation>
+<translation id="6683022854667115063">Гарнитура</translation>
 <translation id="6696025732084565524">Ажыратылуучу баскычтопко жаңыртуу талап кылынат</translation>
 <translation id="6700713906295497288">IME меню баскычы</translation>
 <translation id="6707693040195709527">Түзмөктү мурунку версияга өзгөртүүнүн мөөнөтү бүттү</translation>
@@ -1206,6 +1207,7 @@
 <translation id="7720410380936703141">КАЙТАЛОО</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 билдирме}other{# билдирме}}</translation>
 <translation id="7724603315864178912">Кесүү</translation>
+<translation id="7742327441377685481">Билдирмелер жок</translation>
 <translation id="7745560842763881396">Текчедеги колдонмолорду көрсөтүү</translation>
 <translation id="7749443890790263709">Иш такталардын саны эң жогорку чегине жетти.</translation>
 <translation id="776344839111254542">Жаңыртуунун чоо-жайын көрүү үчүн чыкылдатыңыз</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 24010fa..0b3627f 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -1020,6 +1020,7 @@
 <translation id="6670153871843998651">3 pultas</translation>
 <translation id="6671495933530132209">Kopijuoti vaizdą</translation>
 <translation id="6671661918848783005">Nepavyko atrakinti „Chromebook“</translation>
+<translation id="6683022854667115063">Ausinės</translation>
 <translation id="6696025732084565524">Atjungiamai klaviatūrai reikia pritaikyti kritinį naujinį</translation>
 <translation id="6700713906295497288">IME meniu mygtukas</translation>
 <translation id="6707693040195709527">Ankstesnės įrenginio versijos grąžinimo terminas jau praėjo</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index 8788e4e..237b373 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -555,6 +555,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Искл. за 1 апл.}one{Искл. за # апл.}other{Искл. за # апл.}}</translation>
 <translation id="4066027111132117168">Вклучено, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Среден сигнал</translation>
+<translation id="4086921558679520050">Вклучете физички прекинувач за микрофонот на вашиот уред</translation>
 <translation id="4112140312785995938">Премотај наназад</translation>
 <translation id="4114315158543974537">Вклучете ја Phone Hub</translation>
 <translation id="4115378294792113321">Магента</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /> %</translation>
 <translation id="4378551569595875038">Се поврзува…</translation>
 <translation id="4379531060876907730">Ова се вашите пенкала</translation>
+<translation id="4381031910344220229">Ова дозволува пристап до микрофонот за <ph name="APP_NAME" /> и сите апликации и веб-сајтови со дозвола за микрофонот</translation>
 <translation id="4389184120735010762">Ја притиснавте кратенката од тастатура за закотвената лупа. Дали сакате да ја вклучите?</translation>
 <translation id="439598569299422042">Паузирано, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Не може да се зачува снимка на екран</translation>
@@ -729,6 +731,7 @@
 <translation id="4987738733603015246">Работна површина 16</translation>
 <translation id="5003993274120026347">Следна реченица</translation>
 <translation id="5016558321564993266">Вклучете/исклучете го означувачот. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Вклучен е пристап до микрофонот на уредот</translation>
 <translation id="5030687792513154421">Времето истече</translation>
 <translation id="5033299697334913360">Кликнете каде било за да го сликате целиот екран</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> е поврзан со нов телефон</translation>
@@ -960,9 +963,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> е управувана сесија со којашто управува <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> е поврзан</translation>
 <translation id="6351032674660237738">ПРЕДЛОЗИ ЗА АПЛИКАЦИИ</translation>
+<translation id="6352082849089527770">Непознати мрежи</translation>
 <translation id="6359587239691116345">Преземете ги најновите функции и подобрувања на безбедноста. Ако го одбиете ажурирањево, можно е уредот да не ви функционира правилно и може да наидете на проблеми со безбедноста и изведбата.</translation>
 <translation id="6376931439017688372">Bluetooth е вклучен</translation>
 <translation id="6381109794406942707">За да го отклучите уредот, внесете го вашиот PIN.</translation>
+<translation id="638716340450135524">Вклучете го пристапот до камерата</translation>
 <translation id="639644700271529076">CAPS LOCK е исклучено</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Помошник на Google</translation>
@@ -970,6 +975,7 @@
 <translation id="642644398083277086">Избриши ги сите известувања</translation>
 <translation id="643147933154517414">Готово</translation>
 <translation id="6431865393913628856">Снимање екран</translation>
+<translation id="6442259747294754014">Исклучен е пристап до микрофонот на уредот</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> се емитува на <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> настан</translation>
 <translation id="6449483711453944360">Апликациите на Linux и прозорците „Инкогнито“ не се поддржани моментално</translation>
@@ -1134,6 +1140,7 @@
 <translation id="7360036564632145207">Ако ја промените поставката за заштита на пристапот до податоци за перфиферните уреди, перформансите може да се оптимизираат</translation>
 <translation id="736045644501761622">Поставете тапет и стил</translation>
 <translation id="7371404428569700291">Снимање прозорец</translation>
+<translation id="737315737514430195">Ова дозволува пристап до микрофонот за сите апликации и веб-сајтови со дозвола за микрофонот</translation>
 <translation id="7377169924702866686">Вклучено е Caps Lock.</translation>
 <translation id="7377481913241237033">Поврзете со код</translation>
 <translation id="7378203170292176219">Повлечете за да изберете област за снимање</translation>
@@ -1202,6 +1209,7 @@
 <translation id="7671610481353807627">Апликациите се подредени по боја</translation>
 <translation id="7672095158465655885">Поврзано со <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Влезот на камерата е поставен на <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Ова дозволува пристап до микрофонот за <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> и сите апликации и веб-сајтови со дозвола за микрофонот</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Додајте нова мобилна мрежа</translation>
 <translation id="7720400844887872976">Вклучено до <ph name="TIME" /></translation>
@@ -1365,6 +1373,7 @@
 <translation id="8598235756057743477">Подредете ги апликациите по име или боја.</translation>
 <translation id="8614517853887502247">Известувањата од <ph name="APP_1_TITLE" /> и <ph name="APP_2_TITLE" /> се сокриени бидејќи има вклучено заштита од прикажување</translation>
 <translation id="8627191004499078455">Поврзан со <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Исклучете го пристапот до камерата</translation>
 <translation id="8631727435199967028">Поставки за пристапност</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" />, управувана од администраторот</translation>
 <translation id="8639760480004882931">Преостануваат <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 9914b61..36b195d 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">ഡെസ്‌ക് 16</translation>
 <translation id="5003993274120026347">അടുത്ത വാചകം</translation>
 <translation id="5016558321564993266">മാർക്കർ ടോഗിൾ ചെയ്യുക. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">ഉപകരണത്തിന്റെ മൈക്രോഫോൺ ആക്‌സസ് ഓണാണ്</translation>
 <translation id="5030687792513154421">സമയം കഴിഞ്ഞു</translation>
 <translation id="5033299697334913360">പൂർണ്ണ സ്ക്രീൻ ക്യാപ്‌ചർ ചെയ്യാൻ എവിടെയെങ്കിലും ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> പുതിയ ഫോണിലേക്ക് കണക്‌റ്റ് ചെയ്‌തു</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">ഏറ്റവും പുതിയ ഫീച്ചറുകളും സുരക്ഷാ മെച്ചപ്പെടുത്തലുകളും നേടുക. ഈ അപ്ഡേറ്റ് നിങ്ങൾ നിരസിക്കുകയാണെങ്കിൽ, ഉപകരണം ഇനി ശരിയായി പ്രവർത്തിച്ചേക്കില്ല, സുരക്ഷയും പ്രകടനവുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ നിങ്ങൾ നേരിട്ടേക്കാം.</translation>
 <translation id="6376931439017688372">Bluetooth ഓണാണ്</translation>
 <translation id="6381109794406942707">ഉപകരണം അൺലോക്ക് ചെയ്യാൻ, നിങ്ങളുടെ പിൻ നൽകുക.</translation>
+<translation id="638716340450135524">ക്യാമറ ആക്‌സസ് ഓണാക്കുക</translation>
 <translation id="639644700271529076">CAPS LOCK ഓഫാണ്</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">എല്ലാ അറിയിപ്പുകളും മായ്ക്കുക</translation>
 <translation id="643147933154517414">എല്ലാം ചെയ്‌തു</translation>
 <translation id="6431865393913628856">സ്‌ക്രീൻ റെക്കോർഡ്</translation>
+<translation id="6442259747294754014">ഉപകരണത്തിന്റെ മൈക്രോഫോൺ ആക്‌സസ് ഓഫാണ്</translation>
 <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />-ൽ <ph name="ROUTE_TITLE" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> ഇവന്റ്</translation>
 <translation id="6449483711453944360">Linux ആപ്പുകൾക്കും അദൃശ്യ വിൻഡോകൾക്കും നിലവിൽ പിന്തുണയില്ല</translation>
@@ -1207,6 +1210,7 @@
 <translation id="7720410380936703141">വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{ഒരു അറിയിപ്പ്}other{# അറിയിപ്പുകൾ}}</translation>
 <translation id="7724603315864178912">മുറിക്കുക</translation>
+<translation id="7742327441377685481">അറിയിപ്പുകൾ ഒന്നുമില്ല</translation>
 <translation id="7745560842763881396">ഷെൽഫിലെ ആപ്പുകൾ കാണിക്കുക</translation>
 <translation id="7749443890790263709">ഡെസ്‌ക്കുകളുടെ പരമാവധി എണ്ണത്തിൽ എത്തിയിരിക്കുന്നു.</translation>
 <translation id="776344839111254542">അപ്‌ഡേറ്റ് ചെയ്‌ത വിശദാംശങ്ങൾ കാണാൻ ‌ക്ലിക്ക് ചെയ്യുക</translation>
@@ -1363,6 +1367,7 @@
 <translation id="8598235756057743477">പേരോ നിറമോ അനുസരിച്ച് ആപ്പുകൾ അടുക്കുക</translation>
 <translation id="8614517853887502247">'കാണുന്നതിൽ നിന്നുള്ള പരിരക്ഷ' ഓണായതിനാൽ <ph name="APP_1_TITLE" />, <ph name="APP_2_TITLE" /> അറിയിപ്പുകൾ മറച്ചിരിക്കുന്നു</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> ഉപകരണത്തിലേക്ക് കണക്റ്റ് ചെയ്‌തു</translation>
+<translation id="8630991711272431708">ക്യാമറ ആക്‌സസ് ഓഫാക്കുക</translation>
 <translation id="8631727435199967028">ഉപയോഗസഹായി ക്രമീകരണം</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />, നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> ശേഷിക്കുന്നു</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 8e1dd6ee2..7e6a991a 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -555,6 +555,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Аппад идэвхгүй}other{# аппад ид.гүй}}</translation>
 <translation id="4066027111132117168">Асаалттай, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Дундаж дохио</translation>
+<translation id="4086921558679520050">Төхөөрөмж дээрээ микрофоны биет унтраалгыг асаана уу</translation>
 <translation id="4112140312785995938">Ухраах</translation>
 <translation id="4114315158543974537">Phone Hub-г асаах</translation>
 <translation id="4115378294792113321">Гүн ягаавтар улаан өнгө</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, дохионы хүч <ph name="SIGNAL_STRENGTH" /> хувь</translation>
 <translation id="4378551569595875038">Холбож байна...</translation>
 <translation id="4379531060876907730">Эдгээр нь таны мэдрэгч үзэгний хэрэгслүүд юм</translation>
+<translation id="4381031910344220229">Энэ нь <ph name="APP_NAME" /> болон микрофоны зөвшөөрөлтэй бүх апп болон вебсайтад микрофоны хандалтыг зөвшөөрнө</translation>
 <translation id="4389184120735010762">Та суурилуулсан томруулагчийн товчлуурын шууд холбоосыг дарсан байна. Үүнийг асаах уу?</translation>
 <translation id="439598569299422042">Түр зогсоосон, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Дэлгэцийн видео бичлэгийг хадгалах боломжгүй</translation>
@@ -729,6 +731,7 @@
 <translation id="4987738733603015246">16-р дэлгэц</translation>
 <translation id="5003993274120026347">Дараагийн өгүүлбэр</translation>
 <translation id="5016558321564993266">Тэмдэглэгчийг асаана уу/унтраана уу. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Төхөөрөмжийн микрофоны хандалт асаалттай байна</translation>
 <translation id="5030687792513154421">Хугацаа дууслаа</translation>
 <translation id="5033299697334913360">Бүтэн дэлгэцийн зургийг авахын тулд дурын газар товшино уу</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> шинэ утсанд холбогдсон байна</translation>
@@ -960,9 +963,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> нь <ph name="MANAGER" />-н удирддаг хяналттай харилцан үйлдэл юм</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> холбогдсон</translation>
 <translation id="6351032674660237738">АППЫН ЗӨВЛӨМЖ</translation>
+<translation id="6352082849089527770">Тодорхойгүй сүлжээ</translation>
 <translation id="6359587239691116345">Онцлог болон аюулгүй байдлын хамгийн сүүлийн үеийн сайжруулалтыг авна уу. Хэрэв та энэ шинэчлэлтээс татгалзвал төхөөрөмж тань цаашид зохих ёсоор ажиллахгүй байж магадгүй бөгөөд та аюулгүй байдал болон гүйцэтгэлийн асуудалтай тулгарч магадгүй.</translation>
 <translation id="6376931439017688372">Bluetooth асаалттай байна</translation>
 <translation id="6381109794406942707">Төхөөрөмжийн түгжээг тайлахын тулд ПИН-ээ оруулна уу.</translation>
+<translation id="638716340450135524">Камерын хандалтыг асаах</translation>
 <translation id="639644700271529076">CAPS LOCK идэвхгүй байна</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google туслах</translation>
@@ -970,6 +975,7 @@
 <translation id="642644398083277086">Бүх мэдэгдлийг устгах</translation>
 <translation id="643147933154517414">Бүгд дууссан</translation>
 <translation id="6431865393913628856">Дэлгэцийн үйлдэл бичих</translation>
+<translation id="6442259747294754014">Төхөөрөмжийн микрофоны хандалт унтраалттай байна</translation>
 <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />-д <ph name="ROUTE_TITLE" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> үйл явдал</translation>
 <translation id="6449483711453944360">Linux аппууд болон Нууцлалтай цонхнуудыг одоогоор дэмждэггүй</translation>
@@ -1134,6 +1140,7 @@
 <translation id="7360036564632145207">Та дагалдах төхөөрөмжүүдийн тохиргооны өгөгдлийн хандалтын хамгаалалтаа өөрчилснөөр гүйцэтгэлийг оновчлох боломжтой</translation>
 <translation id="736045644501761622">Дэлгэцийн зураг ба загвар тохируулах</translation>
 <translation id="7371404428569700291">Цонхыг бичих</translation>
+<translation id="737315737514430195">Энэ нь микрофоны зөвшөөрөлтэй бүх апп болон вебсайтад микрофоны хандалтыг зөвшөөрнө</translation>
 <translation id="7377169924702866686">Caps Lock идэвхжсэн байна.</translation>
 <translation id="7377481913241237033">Кодоор холбогдох</translation>
 <translation id="7378203170292176219">Бичих хэсгийг сонгохын тулд чирнэ үү</translation>
@@ -1202,6 +1209,7 @@
 <translation id="7671610481353807627">Аппуудыг өнгөөр эрэмбэлсэн</translation>
 <translation id="7672095158465655885"><ph name="NAME" />-д холбогдсон, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Камерын өгөгдлийг <ph name="CAMERA_NAME" /> болгож тохируулсан.</translation>
+<translation id="7689817529363080918">Энэ нь <ph name="APP1_NAME" />, <ph name="APP2_NAME" />, болон микрофоны зөвшөөрөлтэй бүх апп болон вебсайтад микрофоны хандалтыг зөвшөөрнө</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Үүрэн холбооны шинэ сүлжээ нэмэх</translation>
 <translation id="7720400844887872976"><ph name="TIME" /> хүртэл асаалттай</translation>
@@ -1366,6 +1374,7 @@
 <translation id="8598235756057743477">Аппуудаа нэр эсвэл өнгөөр эрэмбэлнэ үү</translation>
 <translation id="8614517853887502247">Үзэх хамгаалалт асаалттай тул <ph name="APP_1_TITLE" /> болон <ph name="APP_2_TITLE" />-н мэдэгдлийг нуусан</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" />-д холбогдсон</translation>
+<translation id="8630991711272431708">Камерын хандалтыг унтраах</translation>
 <translation id="8631727435199967028">Хандалтын тохиргоо</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, дохионы хүч <ph name="SIGNAL_STRENGTH" />, таны администратор удирддаг</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> үлдсэн</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 3ba01a2a..1cbabb2 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -729,6 +729,7 @@
 <translation id="4987738733603015246">Meja 16</translation>
 <translation id="5003993274120026347">Ayat seterusnya</translation>
 <translation id="5016558321564993266">Togol penanda. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Akses mikrofon peranti dihidupkan</translation>
 <translation id="5030687792513154421">Masa sudah tamat</translation>
 <translation id="5033299697334913360">Klik mana-mana bahagian untuk menangkap skrin penuh</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> disambungkan ke telefon baharu</translation>
@@ -963,6 +964,7 @@
 <translation id="6359587239691116345">Dapatkan ciri terkini dan peningkatan keselamatan. Jika anda menolak kemaskinian ini, peranti anda mungkin tidak lagi berfungsi dengan betul dan anda mungkin mengalami isu keselamatan dan prestasi.</translation>
 <translation id="6376931439017688372">Bluetooth dihidupkan</translation>
 <translation id="6381109794406942707">Untuk membuka kunci peranti, masukkan PIN anda.</translation>
+<translation id="638716340450135524">Hidupkan akses kamera</translation>
 <translation id="639644700271529076">Kekunci CAPS LOCK dimatikan</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
@@ -970,6 +972,7 @@
 <translation id="642644398083277086">Kosongkan semua pemberitahuan</translation>
 <translation id="643147933154517414">Selesai</translation>
 <translation id="6431865393913628856">Rakaman skrin</translation>
+<translation id="6442259747294754014">Akses mikrofon peranti dimatikan</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> pada <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> acara</translation>
 <translation id="6449483711453944360">Apl Linux dan tetingkap inkognito tidak disokong pada masa ini</translation>
@@ -1208,6 +1211,7 @@
 <translation id="7720410380936703141">CUBA LAGI</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 pemberitahuan}other{# pemberitahuan}}</translation>
 <translation id="7724603315864178912">Potong</translation>
+<translation id="7742327441377685481">Tiada pemberitahuan</translation>
 <translation id="7745560842763881396">Tunjukkan apl dalam rak</translation>
 <translation id="7749443890790263709">Bilangan maksimum meja dicapai.</translation>
 <translation id="776344839111254542">Klik untuk melihat butiran kemas kini</translation>
@@ -1364,6 +1368,7 @@
 <translation id="8598235756057743477">Isih apl anda mengikut nama atau warna</translation>
 <translation id="8614517853887502247">Pemberitahuan <ph name="APP_1_TITLE" /> dan <ph name="APP_2_TITLE" /> disembunyikan kerana perlindungan paparan dihidupkan</translation>
 <translation id="8627191004499078455">Disambungkan ke <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Matikan akses kamera</translation>
 <translation id="8631727435199967028">Tetapan Kebolehaksesan</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />, Diurus oleh Pentadbir anda</translation>
 <translation id="8639760480004882931">Berbaki <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index b19f1ee9..507be43e 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">Bureau 16</translation>
 <translation id="5003993274120026347">Volgende zin</translation>
 <translation id="5016558321564993266">Stift aan-/uitzetten. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Microfoontoegang voor apparaat staat aan</translation>
 <translation id="5030687792513154421">De tijd is voorbij</translation>
 <translation id="5033299697334913360">Klik ergens om een opname van het volledige scherm te maken</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> verbonden met nieuwe telefoon</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">Krijg de nieuwste functies en beveiligingsverbeteringen. Als je deze update weigert, werkt je apparaat misschien niet meer goed en kun je beveiligings- en prestatieproblemen ondervinden.</translation>
 <translation id="6376931439017688372">Bluetooth staat aan</translation>
 <translation id="6381109794406942707">Geef je pincode op om het apparaat te ontgrendelen.</translation>
+<translation id="638716340450135524">Cameratoegang aanzetten</translation>
 <translation id="639644700271529076">CAPS LOCK staat uit</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistent</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">Alle meldingen verwijderen</translation>
 <translation id="643147933154517414">Klaar</translation>
 <translation id="6431865393913628856">Schermopname</translation>
+<translation id="6442259747294754014">Microfoontoegang voor apparaat staat uit</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> in <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> afspraak</translation>
 <translation id="6449483711453944360">Linux-apps en incognitovensters worden momenteel niet ondersteund</translation>
@@ -1361,6 +1364,7 @@
 <translation id="8598235756057743477">Je apps sorteren op naam of kleur</translation>
 <translation id="8614517853887502247">Meldingen van <ph name="APP_1_TITLE" /> en <ph name="APP_2_TITLE" /> zijn verborgen omdat weergavebeveiliging aanstaat</translation>
 <translation id="8627191004499078455">Verbonden met <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Cameratoegang uitzetten</translation>
 <translation id="8631727435199967028">Instellingen voor toegankelijkheid</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, signaalsterkte <ph name="SIGNAL_STRENGTH" />, beheerd door je beheerder</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> resterend</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index 466d5d5..ad93e613 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Av for én app}other{Av for # apper}}</translation>
 <translation id="4066027111132117168">På, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Middels sterkt signal</translation>
+<translation id="4086921558679520050">Slå på den fysiske mikrofonbryteren på enheten</translation>
 <translation id="4112140312785995938">Spol bakover</translation>
 <translation id="4114315158543974537">Slå på Phone Hub</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" /> – signalstyrke <ph name="SIGNAL_STRENGTH" /> prosent.</translation>
 <translation id="4378551569595875038">Kobler til …</translation>
 <translation id="4379531060876907730">Dette er pekepennverktøyene dine</translation>
+<translation id="4381031910344220229">Dette gir mikrofontilgang til <ph name="APP_NAME" /> og alle apper og nettsteder som har mikrofontillatelsen</translation>
 <translation id="4389184120735010762">Du trykket på hurtigtasten for den dokkede lupen. Vil du slå den på?</translation>
 <translation id="439598569299422042">Satt på pause, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Kan ikke lagre skjermopptaket</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> er en administrert økt som administreres av <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> er tilkoblet</translation>
 <translation id="6351032674660237738">APPFORSLAG</translation>
+<translation id="6352082849089527770">Ukjente nettverk</translation>
 <translation id="6359587239691116345">Få de nyeste funksjonene og sikkerhetsforbedringene. Hvis du avviser denne oppdateringen, kan det hende at enheten slutter å fungere som den skal, og du kan oppleve sikkerhets- og ytelsesproblemer.</translation>
 <translation id="6376931439017688372">Bluetooth er på</translation>
 <translation id="6381109794406942707">For å låse opp enheten, skriv inn PIN-koden.</translation>
@@ -1132,6 +1135,7 @@
 <translation id="7360036564632145207">Hvis du endrer innstillingen for datatilgangsbeskyttelse for eksterne enheter, kan det optimalisere ytelsen</translation>
 <translation id="736045644501761622">Angi bakgrunn og stil</translation>
 <translation id="7371404428569700291">Ta opp vinduet</translation>
+<translation id="737315737514430195">Dette gir mikrofontilgang til alle apper og nettsteder som har mikrofontillatelsen</translation>
 <translation id="7377169924702866686">Caps Lock er på.</translation>
 <translation id="7377481913241237033">Tilknytt med en kode</translation>
 <translation id="7378203170292176219">Dra for å velge området du vil ta opp</translation>
@@ -1200,6 +1204,7 @@
 <translation id="7671610481353807627">Appene er sortert etter farge</translation>
 <translation id="7672095158465655885">Koblet til <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Kamerakilden er satt til <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Dette gir mikrofontilgang til <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> og alle apper og nettsteder som har mikrofontillatelsen</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Legg til nytt mobilnettverk</translation>
 <translation id="7720400844887872976">Påslått til <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 629c733..7457d73 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ଏକ ଆପ୍ ପାଇଁ ବନ୍ଦ ଅଛି}other{#ଟି ଆପ୍ସ ପାଇଁ ବନ୍ଦ ଅଛି}}</translation>
 <translation id="4066027111132117168"><ph name="REMAINING_TIME" />ରେ</translation>
 <translation id="4072264167173457037">ମଧ୍ୟମ ସିଗ୍ନାଲ୍</translation>
+<translation id="4086921558679520050">ଆପଣଙ୍କ ଡିଭାଇସରେ ଫିଜିକାଲ ମାଇକ ସ୍ୱିଚକୁ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="4112140312785995938">ପଛକୁ ଆଣନ୍ତୁ</translation>
 <translation id="4114315158543974537">ଫୋନ୍ ହବ୍ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="4115378294792113321">ମାଜେଣ୍ଟା</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, ସିଗନାଲ୍ କ୍ଷମତା <ph name="SIGNAL_STRENGTH" /> ଶତକଡ଼ା</translation>
 <translation id="4378551569595875038">ସଂଯୋଗ କରୁଛି...</translation>
 <translation id="4379531060876907730">ଏଗୁଡ଼ିକ ଆପଣଙ୍କର ଷ୍ଟାଇଲସ୍ ଟୁଲ୍ ଅଟେ</translation>
+<translation id="4381031910344220229">ଏହା <ph name="APP_NAME" /> ଏବଂ ମାଇକ୍ରୋଫୋନ ଅନୁମତି ଥିବା ସମସ୍ତ ଆପ୍ସ ଓ ୱେବସାଇଟ ପାଇଁ ମାଇକ୍ରୋଫୋନ ଆକ୍ସେସକୁ ଅନୁମତି ଦିଏ</translation>
 <translation id="4389184120735010762">ଆପଣ ଡକ୍‍ ହୋ‍ଇଥିବା ମ୍ୟାଗ୍ନିଫାୟର୍‌ ପାଇଁ କୀବୋର୍ଡ ସର୍ଟକଟ୍‍ ଦବାଇଛନ୍ତି। ଆପଣ କ’ଣ ଏହାକୁ ଚାଲୁ କରିବାକୁ ଚାହୁଁଛନ୍ତି?</translation>
 <translation id="439598569299422042">ବିରତ କରାଯାଇଛି, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">ସ୍କ୍ରିନକାଷ୍ଟକୁ ସେଭ କରାଯାଇପାରିବ ନାହିଁ</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ହେଉଛି <ph name="MANAGER" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଥିବା ଏକ ପରିଚାଳିତ ସେସନ୍</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ସଂଯୋଗ କରାଯାଇଛି</translation>
 <translation id="6351032674660237738">ଆପ୍ ପରାମର୍ଶ</translation>
+<translation id="6352082849089527770">ଅଜଣା ନେଟୱାର୍କଗୁଡ଼ିକ</translation>
 <translation id="6359587239691116345">ନବୀନତମ ଫିଚର ଏବଂ ସୁରକ୍ଷା ଉନ୍ନତିଗୁଡ଼ିକୁ ପାଆନ୍ତୁ। ଯଦି ଆପଣ ଏହି ଅପଡେଟକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସ ଆଉ ସଠିକ୍ ଭାବେ କାମ କରିନପାରେ ଏବଂ ଆପଣ ସୁରକ୍ଷା ଓ ପରଫରମାନ୍ସ ସମସ୍ୟାଗୁଡ଼ିକର ସମ୍ମୁଖୀନ ହୋଇପାରନ୍ତି।</translation>
 <translation id="6376931439017688372">ବ୍ଲୁଟୁଥ୍ ଚାଲୁ ଅଛି</translation>
 <translation id="6381109794406942707">ଡିଭାଇସକୁ ଅନଲକ୍ କରିବା ପାଇଁ ଆପଣଙ୍କର PIN ଲେଖନ୍ତୁ।</translation>
@@ -1132,6 +1135,7 @@
 <translation id="7360036564632145207">ପେରିଫେରାଲଗୁଡ଼ିକ ପାଇଁ ଆପଣଙ୍କ ଡାଟା ଆକ୍ସେସ୍ ସୁରକ୍ଷା ସେଟିଂରେ ପରିବର୍ତ୍ତନ କରି ପରଫରମାନ୍ସକୁ ଅପ୍ଟିମାଇଜ୍ କରାଯାଇପାରିବ</translation>
 <translation id="736045644501761622">ୱାଲପେପର ଏବଂ ଷ୍ଟାଇଲ ସେଟ କରନ୍ତୁ</translation>
 <translation id="7371404428569700291">ୱିଣ୍ଡୋ ରେକର୍ଡ କରନ୍ତୁ</translation>
+<translation id="737315737514430195">ଏହା ମାଇକ୍ରୋଫୋନ ଅନୁମତି ଥିବା ସମସ୍ତ ଆପ୍ସ ଓ ୱେବସାଇଟ ପାଇଁ ମାଇକ୍ରୋଫୋନ ଆକ୍ସେସକୁ ଅନୁମତି ଦିଏ</translation>
 <translation id="7377169924702866686">କ୍ୟାପ୍ସ ଲକ୍ ଅନ୍ ଅଛି।</translation>
 <translation id="7377481913241237033">ଏକ କୋଡ ମାଧ୍ୟମରେ ସଂଯୋଗ କରନ୍ତୁ</translation>
 <translation id="7378203170292176219">ରେକର୍ଡ କରିବାର କ୍ଷେତ୍ରକୁ ଚୟନ କରିବାକୁ ଡ୍ରାଗ୍ କରନ୍ତୁ</translation>
@@ -1200,6 +1204,7 @@
 <translation id="7671610481353807627">ଆପଗୁଡ଼ିକୁ ରଙ୍ଗ ଅନୁସାରେ ସର୍ଟ କରାଯାଇଛି</translation>
 <translation id="7672095158465655885"><ph name="NAME" />, <ph name="SUBTEXT" /> ସହ କନେକ୍ଟ କରାଯାଇଛି</translation>
 <translation id="7684531502177797067">କ୍ୟାମେରା ଇନପୁଟ <ph name="CAMERA_NAME" />ରେ ସେଟ ହୋଇଛି।</translation>
+<translation id="7689817529363080918">ଏହା <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> ଏବଂ ମାଇକ୍ରୋଫୋନ ଅନୁମତି ଥିବା ସମସ୍ତ ଆପ୍ସ ଓ ୱେବସାଇଟ ପାଇଁ ମାଇକ୍ରୋଫୋନ ଆକ୍ସେସକୁ ଅନୁମତି ଦିଏ</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">ନୂଆ ସେଲ୍ୟୁଲାର୍ ନେଟୱାର୍କ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="7720400844887872976"><ph name="TIME" /> ପର୍ଯ୍ୟନ୍ତ ଚାଲୁ ଅଛି</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index b4370863..6eed684d 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ਸੂਚਨਾ}one{# ਸੂਚਨਾ}other{# ਸੂਚਨਾਵਾਂ}}</translation>
 <translation id="7724603315864178912">ਕੱਟੋ</translation>
+<translation id="7742327441377685481">ਕੋਈ ਸੂਚਨਾ ਨਹੀਂ</translation>
 <translation id="7745560842763881396">ਐਪਾਂ ਨੂੰ ਸ਼ੈਲਫ ਵਿੱਚ ਦਿਖਾਓ</translation>
 <translation id="7749443890790263709">ਡੈਸਕਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ ਪੂਰੀ ਹੋ ਗਈ।</translation>
 <translation id="776344839111254542">ਅੱਪਡੇਟ ਵੇਰਵਿਆਂ ਨੂੰ ਦੇਖਣ ਲਈ ਕਲਿੱਕ ਕਰੋ</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 7af8232b..2ac013d 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">Biurko 16</translation>
 <translation id="5003993274120026347">Następne zdanie</translation>
 <translation id="5016558321564993266">Włącz lub wyłącz pisak. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Dostęp do mikrofonu urządzenia jest włączony</translation>
 <translation id="5030687792513154421">Czas minął</translation>
 <translation id="5033299697334913360">Aby zrobić zrzut całego ekranu, kliknij w dowolnym miejscu</translation>
 <translation id="5035236842988137213">Urządzenie <ph name="DEVICE_NAME" /> zostało połączone z nowym telefonem</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">Zainstaluj najnowsze funkcje i poprawki zabezpieczeń. Jeśli odrzucisz tę aktualizację, urządzenie może przestać działać prawidłowo i możesz mieć problemy z bezpieczeństwem i wydajnością.</translation>
 <translation id="6376931439017688372">Bluetooth jest włączony</translation>
 <translation id="6381109794406942707">Aby odblokować urządzenie, wpisz kod PIN.</translation>
+<translation id="638716340450135524">Włącz dostęp do aparatu</translation>
 <translation id="639644700271529076">CAPS LOCK jest wyłączony</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Asystent Google</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">Wyczyść wszystkie powiadomienia</translation>
 <translation id="643147933154517414">Wszystko gotowe</translation>
 <translation id="6431865393913628856">Nagrywanie ekranu</translation>
+<translation id="6442259747294754014">Dostęp do mikrofonu urządzenia jest wyłączony</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na urządzeniu <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> zdarzenie</translation>
 <translation id="6449483711453944360">Aplikacje na Linuksa ani okna incognito nie są obecnie obsługiwane</translation>
@@ -1363,6 +1366,7 @@
 <translation id="8598235756057743477">Posortuj aplikacje według nazwy lub koloru</translation>
 <translation id="8614517853887502247">Powiadomienia z aplikacji <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> zostały ukryte, bo masz włączoną ochronę przeglądania</translation>
 <translation id="8627191004499078455">Połączono z urządzeniem <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Wyłącz dostęp do kamery</translation>
 <translation id="8631727435199967028">Ustawienia ułatwień dostępu</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, siła sygnału: <ph name="SIGNAL_STRENGTH" />, zarządzana przez administratora</translation>
 <translation id="8639760480004882931">Pozostało <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 9984d0ff..abc32f37 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">Espaço de trabalho 16</translation>
 <translation id="5003993274120026347">Próxima frase</translation>
 <translation id="5016558321564993266">Alterne o marcador. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">O acesso ao microfone do dispositivo está ativado</translation>
 <translation id="5030687792513154421">Tempo esgotado</translation>
 <translation id="5033299697334913360">Clique em qualquer lugar para capturar a tela cheia</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> conectado a um novo smartphone</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">Instale os recursos e melhorias de segurança mais recentes. Caso você recuse essa atualização, o dispositivo pode deixar de funcionar corretamente e você pode enfrentar problemas de segurança e performance.</translation>
 <translation id="6376931439017688372">Bluetooth ativado</translation>
 <translation id="6381109794406942707">Para desbloquear o dispositivo, digite o PIN.</translation>
+<translation id="638716340450135524">Permitir o acesso à câmera</translation>
 <translation id="639644700271529076">CAPS LOCK está desativado</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistente</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">Limpar todas as notificações</translation>
 <translation id="643147933154517414">Pronto</translation>
 <translation id="6431865393913628856">Gravação de tela</translation>
+<translation id="6442259747294754014">O acesso ao microfone do dispositivo está desativado</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> para <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> evento</translation>
 <translation id="6449483711453944360">No momento, não há suporte para apps do Linux e janelas anônimas</translation>
@@ -1364,6 +1367,7 @@
 <translation id="8598235756057743477">Ordenar seus apps por nome e cor</translation>
 <translation id="8614517853887502247">As notificações dos apps <ph name="APP_1_TITLE" /> e <ph name="APP_2_TITLE" /> estão ocultas porque a proteção de visualização está ativada</translation>
 <translation id="8627191004499078455">Conectado a <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Desativar o acesso à câmera</translation>
 <translation id="8631727435199967028">Configurações de acessibilidade</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />, gerenciada pelo seu administrador</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante(s)</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index d61f5d3a..24b3e96 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -730,6 +730,7 @@
 <translation id="4987738733603015246">Espaço de trabalho 16</translation>
 <translation id="5003993274120026347">Frase seguinte</translation>
 <translation id="5016558321564993266">Ative/desative o marcador. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">O acesso ao microfone do dispositivo está ativado</translation>
 <translation id="5030687792513154421">Acabou o tempo</translation>
 <translation id="5033299697334913360">Clique em qualquer local para capturar o ecrã inteiro.</translation>
 <translation id="5035236842988137213">O dispositivo <ph name="DEVICE_NAME" /> estabeleceu ligação a um novo telemóvel.</translation>
@@ -965,6 +966,7 @@
 <translation id="6359587239691116345">Obtenha as funcionalidades e as melhorias de segurança mais recentes. Se recusar esta atualização, o seu dispositivo pode deixar de funcionar corretamente, e pode deparar-se com problemas de segurança e desempenho.</translation>
 <translation id="6376931439017688372">Bluetooth ativado</translation>
 <translation id="6381109794406942707">Para desbloquear este dispositivo, introduza o seu PIN.</translation>
+<translation id="638716340450135524">Ativar acesso à câmara</translation>
 <translation id="639644700271529076">CAPS LOCK está desativado</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Assistente Google</translation>
@@ -972,6 +974,7 @@
 <translation id="642644398083277086">Limpar todas as notificações</translation>
 <translation id="643147933154517414">Tudo concluído</translation>
 <translation id="6431865393913628856">Gravação de ecrã</translation>
+<translation id="6442259747294754014">O acesso ao microfone do dispositivo está desativado</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> no recetor <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> evento</translation>
 <translation id="6449483711453944360">De momento, as apps para Linux e as janelas de navegação anónima não são suportadas</translation>
@@ -1023,6 +1026,7 @@
 <translation id="6670153871843998651">Secretária 3</translation>
 <translation id="6671495933530132209">Copiar imagem</translation>
 <translation id="6671661918848783005">Não é possível desbloquear o Chromebook</translation>
+<translation id="6683022854667115063">Auscultadores</translation>
 <translation id="6696025732084565524">O teclado amovível necessita de uma atualização crítica</translation>
 <translation id="6700713906295497288">Botão de menu IME</translation>
 <translation id="6707693040195709527">Alteração do dispositivo para a versão anterior vencida</translation>
@@ -1211,6 +1215,7 @@
 <translation id="7720410380936703141">TENTAR NOVAMENTE</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificação}other{# notificações}}</translation>
 <translation id="7724603315864178912">Cortar</translation>
+<translation id="7742327441377685481">Sem notificações</translation>
 <translation id="7745560842763881396">Mostrar apps na prateleira</translation>
 <translation id="7749443890790263709">Atingiu o número máximo de espaços de trabalho.</translation>
 <translation id="776344839111254542">Clique para ver os detalhes da atualização</translation>
@@ -1367,6 +1372,7 @@
 <translation id="8598235756057743477">Ordene as suas apps por nome ou cor</translation>
 <translation id="8614517853887502247">As notificações das apps <ph name="APP_1_TITLE" /> e <ph name="APP_2_TITLE" /> estão ocultas porque a proteção da visualização está ativada</translation>
 <translation id="8627191004499078455">Ligado a <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Desativar acesso à câmara</translation>
 <translation id="8631727435199967028">Definições de acessibilidade</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" />, gerida pelo administrador</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 4f5c231..53a3bd5 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -730,6 +730,7 @@
 <translation id="4987738733603015246">Biroul 16</translation>
 <translation id="5003993274120026347">Propoziția următoare</translation>
 <translation id="5016558321564993266">Comută marcatorul. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Accesul la microfonul dispozitivului este activat</translation>
 <translation id="5030687792513154421">Timpul a expirat</translation>
 <translation id="5033299697334913360">Dă clic oriunde pentru a captura ecranul complet</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> conectat la un telefon nou</translation>
@@ -965,6 +966,7 @@
 <translation id="6359587239691116345">Obține cele mai noi funcții și îmbunătățiri ale securității. Dacă refuzi această actualizare, este posibil ca dispozitivul să nu mai funcționeze corespunzător și să întâmpini probleme de securitate și de performanță.</translation>
 <translation id="6376931439017688372">Bluetooth este activat</translation>
 <translation id="6381109794406942707">Pentru a debloca dispozitivul, introdu codul PIN.</translation>
+<translation id="638716340450135524">Activează accesul la camera foto</translation>
 <translation id="639644700271529076">Tasta CAPS LOCK este dezactivată</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Asistent Google</translation>
@@ -972,6 +974,7 @@
 <translation id="642644398083277086">Șterge toate notificările</translation>
 <translation id="643147933154517414">Gata</translation>
 <translation id="6431865393913628856">Înregistrarea ecranului</translation>
+<translation id="6442259747294754014">Accesul la microfonul dispozitivului este dezactivat</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> pe <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> eveniment</translation>
 <translation id="6449483711453944360">Aplicațiile Linux și ferestrele incognito nu sunt acceptate</translation>
@@ -1023,6 +1026,7 @@
 <translation id="6670153871843998651">Desktop 3</translation>
 <translation id="6671495933530132209">Copiați imaginea</translation>
 <translation id="6671661918848783005">Chromebookul nu a putut fi deblocat</translation>
+<translation id="6683022854667115063">Căști</translation>
 <translation id="6696025732084565524">Tastatura detașabilă necesită o actualizare esențială</translation>
 <translation id="6700713906295497288">Butonul de meniu IME</translation>
 <translation id="6707693040195709527">Ai depășit termenul limită pentru trecerea dispozitivului la versiunea anterioară</translation>
@@ -1368,6 +1372,7 @@
 <translation id="8598235756057743477">Sortează aplicațiile după nume sau culoare</translation>
 <translation id="8614517853887502247">Notificările pentru <ph name="APP_1_TITLE" /> și <ph name="APP_2_TITLE" /> sunt ascunse deoarece este activată protecția la afișare</translation>
 <translation id="8627191004499078455">Conectat la <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Dezactivează accesul la camera foto</translation>
 <translation id="8631727435199967028">Setări de accesibilitate</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" />, gestionată de administratorul tău</translation>
 <translation id="8639760480004882931">Nivelul bateriei: <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index d8fa02d..5c3fdfe 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">ПОВТОРИТЬ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 уведомление}one{# уведомление}few{# уведомления}many{# уведомлений}other{# уведомления}}</translation>
 <translation id="7724603315864178912">Вырезать</translation>
+<translation id="7742327441377685481">Нет уведомлений</translation>
 <translation id="7745560842763881396">Показать приложения на панели запуска</translation>
 <translation id="7749443890790263709">Достигнуто максимально допустимое количество рабочих столов.</translation>
 <translation id="776344839111254542">Нажмите, чтобы просмотреть информацию об обновлении</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index 2d65a23..bbed2bb 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">නැවත උත්සාහ කරන්න</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{දැනුම්දීම් 1ක්}one{දැනුම්දීම් #ක්}other{දැනුම්දීම් #ක්}}</translation>
 <translation id="7724603315864178912">කැපීම</translation>
+<translation id="7742327441377685481">දැනුම්දීම් නැත</translation>
 <translation id="7745560842763881396">රාක්කය තුළ යෙදුම් පෙන්වන්න</translation>
 <translation id="7749443890790263709">උපරිම මේස ගණන ළඟා විය.</translation>
 <translation id="776344839111254542">යාවත්කාලීන විස්තර බැලීමට ක්ලික් කරන්න</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index a7b87f4..50cb292 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Vyp. pre apl.}few{Vyp. pre # apl.}many{Off for # apps}other{Vyp. pre # apl.}}</translation>
 <translation id="4066027111132117168">Zapnuté, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Stredne silný signál</translation>
+<translation id="4086921558679520050">Zapnite fyzický vypínač mikrofónu na zariadení</translation>
 <translation id="4112140312785995938">Pretočiť dozadu</translation>
 <translation id="4114315158543974537">Zapnutie telefonického centra</translation>
 <translation id="4115378294792113321">Purpurová</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, sila signálu: <ph name="SIGNAL_STRENGTH" /> %.</translation>
 <translation id="4378551569595875038">Pripája sa...</translation>
 <translation id="4379531060876907730">Toto sú vaše nástroje pre dotykové pero</translation>
+<translation id="4381031910344220229">Týmto povolíte prístup k mikrofónu aplikácii <ph name="APP_NAME" /> a všetkým aplikáciám a webom s povolením používať mikrofón</translation>
 <translation id="4389184120735010762">Stlačili ste klávesovú skratku ukotvenej lupy. Chcete ju zapnúť?</translation>
 <translation id="439598569299422042">Pozastavené, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Záznam z obrazovky sa nedá uložiť</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je spravovaná relácia, ktorú riadi <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Bolo pripojené zariadenie <ph name="DEVICE_NAME" /></translation>
 <translation id="6351032674660237738">NÁVRHY APLIKÁCIÍ</translation>
+<translation id="6352082849089527770">Neznáme siete</translation>
 <translation id="6359587239691116345">Dostávajte najnovšie funkcie a zlepšenia zabezpečenia. Ak túto aktualizáciu odmietnete, vaše zariadenie už nemusí fungovať správne a môže dochádzať k problémom so zabezpečením a výkonom.</translation>
 <translation id="6376931439017688372">Rozhranie Bluetooth je zapnuté</translation>
 <translation id="6381109794406942707">Ak chcete odomknúť zariadenie, zadajte PIN.</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">Zmenou ochrany prístupu k údajom pre nastavenie periférií môžete optimalizovať výkonnosť</translation>
 <translation id="736045644501761622">Nastaviť tapety a štýl</translation>
 <translation id="7371404428569700291">Okno nahrávania</translation>
+<translation id="737315737514430195">Týmto povolíte prístup k mikrofónu všetkým aplikáciám a webom s povolením používať mikrofón</translation>
 <translation id="7377169924702866686">Kláves Caps Lock je zapnutý.</translation>
 <translation id="7377481913241237033">Pripojiť pomocou kódu</translation>
 <translation id="7378203170292176219">Presunutím vyberte oblasť, ktorú chcete nahrať</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">Aplikácie sú zoradené podľa farby</translation>
 <translation id="7672095158465655885">Pripojené k sieti <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Pre kameru <ph name="CAMERA_NAME" /> je nastavený vstup.</translation>
+<translation id="7689817529363080918">Týmto povolíte prístup k mikrofónu aplikáciám <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> a všetkým aplikáciám a webom s povolením používať mikrofón</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Pridať novú mobilnú sieť</translation>
 <translation id="7720400844887872976">Zapnutý do <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index cbdb3ad8..8d95bac 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Izklop. za eno}one{Izklop. za #}two{Izklop. za #}few{Izklop. za #}other{Izklop. za #}}</translation>
 <translation id="4066027111132117168">Vklopljeno, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Srednje močan signal</translation>
+<translation id="4086921558679520050">Vklopite fizično stikalo za mikrofon v napravi</translation>
 <translation id="4112140312785995938">Išči nazaj</translation>
 <translation id="4114315158543974537">Vklop središča za telefone</translation>
 <translation id="4115378294792113321">Škrlatna</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, moč signala: <ph name="SIGNAL_STRENGTH" /> %</translation>
 <translation id="4378551569595875038">Povezovanje …</translation>
 <translation id="4379531060876907730">To so vaša orodja pisala</translation>
+<translation id="4381031910344220229">To omogoča dostop do mikrofona za aplikacijo <ph name="APP_NAME" /> ter vse aplikacije in spletna mesta z dovoljenjem za mikrofon.</translation>
 <translation id="4389184120735010762">Pritisnili ste bližnjično tipko za zasidrano lupo. Ali jo želite vklopiti?</translation>
 <translation id="439598569299422042">Začasno zaustavljeno, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Snemanja zaslona ni mogoče shraniti</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana seja, ki jo upravlja domena <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">Naprava <ph name="DEVICE_NAME" /> je povezana</translation>
 <translation id="6351032674660237738">PREDLOGI ZA APLIKACIJE</translation>
+<translation id="6352082849089527770">Neznana omrežja</translation>
 <translation id="6359587239691116345">Zagotovite si najnovejše funkcije in varnostne izboljšave. Če zavrnete to posodobitev, naprava morda ne bo več delovala pravilno in boste morda naleteli na varnostne težave in težave z zmogljivostjo.</translation>
 <translation id="6376931439017688372">Bluetooth je vklopljen</translation>
 <translation id="6381109794406942707">Če želite odkleniti napravo, vnesite kodo PIN.</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">S spremembo nastavitve zaščite dostopa do podatkov za zunanje dodatne opreme lahko optimizirate delovanje.</translation>
 <translation id="736045644501761622">Nastavitev zaslonskega ozadja in sloga</translation>
 <translation id="7371404428569700291">Okno za snemanje</translation>
+<translation id="737315737514430195">To omogoča dostop do mikrofona za vse aplikacije in spletna mesta z dovoljenjem za mikrofon.</translation>
 <translation id="7377169924702866686">Tipka Caps Lock je vklopljena.</translation>
 <translation id="7377481913241237033">Povezava s kodo</translation>
 <translation id="7378203170292176219">Povlecite, če želite izbrati območje za posnetek</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">Aplikacije so razvrščene po barvi</translation>
 <translation id="7672095158465655885">Vzpostavljena povezava z omrežjem <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Vnos s fotoaparatom je nastavljen za »<ph name="CAMERA_NAME" />«.</translation>
+<translation id="7689817529363080918">To omogoča dostop do mikrofona za aplikacijo <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> ter vse aplikacije in spletna mesta z dovoljenjem za mikrofon.</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Dodaj novo mobilno omrežje</translation>
 <translation id="7720400844887872976">Vklopljeno do <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index e623b60..7742633a 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">PROVO SËRISH</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 njoftim}other{# njoftime}}</translation>
 <translation id="7724603315864178912">Prite</translation>
+<translation id="7742327441377685481">Asnjë njoftim</translation>
 <translation id="7745560842763881396">Shfaq aplikacionet në raft</translation>
 <translation id="7749443890790263709">Është arritur numri maksimal i tavolinave të punës.</translation>
 <translation id="776344839111254542">Kliko për të parë detajet e përditësimit</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index 62a072584..88fc8881 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Isk. za apl.}one{Isk. za # apl.}few{Isk. za # apl.}other{Isk. za # apl.}}</translation>
 <translation id="4066027111132117168">Uključeno, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Signal srednje jačine</translation>
+<translation id="4086921558679520050">Uključite fizički prekidač za mikrofon na uređaju</translation>
 <translation id="4112140312785995938">Premotaj unazad</translation>
 <translation id="4114315158543974537">Uključite Phone Hub</translation>
 <translation id="4115378294792113321">Ciklama</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, jačina signala <ph name="SIGNAL_STRENGTH" /> posto</translation>
 <translation id="4378551569595875038">Povezuje se...</translation>
 <translation id="4379531060876907730">Ovo su alatke za pisaljku</translation>
+<translation id="4381031910344220229">Ovo dozvoljava pristup mikrofonu za aplikaciju <ph name="APP_NAME" /> i sve aplikacije i veb-sajtove sa dozvolom za mikrofon</translation>
 <translation id="4389184120735010762">Pritisnuli ste tastersku prečicu za montiranu lupu ekrana. Želite li da je uključite?</translation>
 <translation id="439598569299422042">Pauzirano, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Čuvanje video snimka ekrana nije uspelo</translation>
@@ -729,6 +731,7 @@
 <translation id="4987738733603015246">Radna površina 16</translation>
 <translation id="5003993274120026347">Sledeća rečenica</translation>
 <translation id="5016558321564993266">Uključite/isključite marker. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Pristup mikrofonu uređaja je uključen</translation>
 <translation id="5030687792513154421">Vreme je isteklo</translation>
 <translation id="5033299697334913360">Kliknite bilo gde da biste snimili ceo ekran</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> se povezao sa novim telefonom</translation>
@@ -960,9 +963,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> – povezano</translation>
 <translation id="6351032674660237738">PREDLOZI APLIKACIJA</translation>
+<translation id="6352082849089527770">Nepoznate mreže</translation>
 <translation id="6359587239691116345">Dobijajte najnovije funkcije i bezbednosna poboljšanja. Ako odbijete ovo ažuriranje, uređaj možda više neće raditi kako treba, a vi možete da imate problema sa bezbednošću i performansama.</translation>
 <translation id="6376931439017688372">Bluetooth je uključen</translation>
 <translation id="6381109794406942707">Da biste otključali uređaj, unesite PIN.</translation>
+<translation id="638716340450135524">Uključi pristup kameri</translation>
 <translation id="639644700271529076">CAPS LOCK je isključen</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google pomoćnik</translation>
@@ -970,6 +975,7 @@
 <translation id="642644398083277086">Obrišite sva obaveštenja</translation>
 <translation id="643147933154517414">Gotovo</translation>
 <translation id="6431865393913628856">Snimak ekrana</translation>
+<translation id="6442259747294754014">Pristup mikrofonu uređaja je isključen</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na uređaju <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> događaj</translation>
 <translation id="6449483711453944360">Linux aplikacije i prozori bez arhiviranja trenutno nisu podržani</translation>
@@ -1134,6 +1140,7 @@
 <translation id="7360036564632145207">Ako promenite podešavanje zaštite pristupa podacima za periferne uređaje, možete da optimizujete učinak</translation>
 <translation id="736045644501761622">Podesi pozadinu i stil</translation>
 <translation id="7371404428569700291">Snimi prozor</translation>
+<translation id="737315737514430195">Ovo dozvoljava pristup mikrofonu za sve aplikacije i veb-sajtove sa dozvolom za mikrofon</translation>
 <translation id="7377169924702866686">Caps Lock je uključen.</translation>
 <translation id="7377481913241237033">Povežite se pomoću koda</translation>
 <translation id="7378203170292176219">Prevucite da biste izabrali oblast za snimanje</translation>
@@ -1202,6 +1209,7 @@
 <translation id="7671610481353807627">Aplikacije su sortirane prema boji</translation>
 <translation id="7672095158465655885">Uspostavljena je veza sa: <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Unos pomoću kamere je podešen na <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Ovo dozvoljava pristup mikrofonu za aplikacije <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> i sve aplikacije i veb-sajtove sa dozvolom za mikrofon</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Dodajte novu mobilnu mrežu</translation>
 <translation id="7720400844887872976">Uključeno do <ph name="TIME" /></translation>
@@ -1365,6 +1373,7 @@
 <translation id="8598235756057743477">Sortirajte aplikacije prema nazivu ili boji</translation>
 <translation id="8614517853887502247">Obaveštenja aplikacija <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> su skrivena jer je zaštita od pregleda uključena</translation>
 <translation id="8627191004499078455">Povezani ste sa uređajem <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Isključi pristup kameri</translation>
 <translation id="8631727435199967028">Podešavanja pristupačnosti</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />, upravlja administrator</translation>
 <translation id="8639760480004882931">Preostalo je <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index 784d3f8..8a5f240 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Иск. за апл.}one{Иск. за # апл.}few{Иск. за # апл.}other{Иск. за # апл.}}</translation>
 <translation id="4066027111132117168">Укључено, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Сигнал средње јачине</translation>
+<translation id="4086921558679520050">Укључите физички прекидач за микрофон на уређају</translation>
 <translation id="4112140312785995938">Премотај уназад</translation>
 <translation id="4114315158543974537">Укључите Phone Hub</translation>
 <translation id="4115378294792113321">Циклама</translation>
@@ -607,6 +608,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, јачина сигнала <ph name="SIGNAL_STRENGTH" /> посто</translation>
 <translation id="4378551569595875038">Повезује се...</translation>
 <translation id="4379531060876907730">Ово су алатке за писаљку</translation>
+<translation id="4381031910344220229">Ово дозвољава приступ микрофону за апликацију <ph name="APP_NAME" /> и све апликације и веб-сајтове са дозволом за микрофон</translation>
 <translation id="4389184120735010762">Притиснули сте тастерску пречицу за монтирану лупу екрана. Желите ли да је укључите?</translation>
 <translation id="439598569299422042">Паузирано, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Чување видео снимка екрана није успело</translation>
@@ -729,6 +731,7 @@
 <translation id="4987738733603015246">Радна површина 16</translation>
 <translation id="5003993274120026347">Следећа реченица</translation>
 <translation id="5016558321564993266">Укључите/искључите маркер. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Приступ микрофону уређаја је укључен</translation>
 <translation id="5030687792513154421">Време је истекло</translation>
 <translation id="5033299697334913360">Кликните било где да бисте снимили цео екран</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> се повезао са новим телефоном</translation>
@@ -960,9 +963,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> је сесија којом управља <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> – повезанo</translation>
 <translation id="6351032674660237738">ПРЕДЛОЗИ АПЛИКАЦИЈА</translation>
+<translation id="6352082849089527770">Непознате мреже</translation>
 <translation id="6359587239691116345">Добијајте најновије функције и безбедносна побољшања. Ако одбијете ово ажурирање, уређај можда више неће радити како треба, а ви можете да имате проблема са безбедношћу и перформансама.</translation>
 <translation id="6376931439017688372">Bluetooth је укључен</translation>
 <translation id="6381109794406942707">Да бисте откључали уређај, унесите PIN.</translation>
+<translation id="638716340450135524">Укључи приступ камери</translation>
 <translation id="639644700271529076">CAPS LOCK је искључен</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google помоћник</translation>
@@ -970,6 +975,7 @@
 <translation id="642644398083277086">Обришите сва обавештења</translation>
 <translation id="643147933154517414">Готово</translation>
 <translation id="6431865393913628856">Снимак екрана</translation>
+<translation id="6442259747294754014">Приступ микрофону уређаја је искључен</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> на уређају <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> догађај</translation>
 <translation id="6449483711453944360">Linux апликације и прозори без архивирања тренутно нису подржани</translation>
@@ -1134,6 +1140,7 @@
 <translation id="7360036564632145207">Ако промените подешавање заштите приступа подацима за периферне уређаје, можете да оптимизујете учинак</translation>
 <translation id="736045644501761622">Подеси позадину и стил</translation>
 <translation id="7371404428569700291">Сними прозор</translation>
+<translation id="737315737514430195">Ово дозвољава приступ микрофону за све апликације и веб-сајтове са дозволом за микрофон</translation>
 <translation id="7377169924702866686">Caps Lock је укључен.</translation>
 <translation id="7377481913241237033">Повежите се помоћу кода</translation>
 <translation id="7378203170292176219">Превуците да бисте изабрали област за снимање</translation>
@@ -1202,6 +1209,7 @@
 <translation id="7671610481353807627">Апликације су сортиране према боји</translation>
 <translation id="7672095158465655885">Успостављена је веза са: <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Унос помоћу камере је подешен на <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Ово дозвољава приступ микрофону за апликације <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> и све апликације и веб-сајтове са дозволом за микрофон</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Додајте нову мобилну мрежу</translation>
 <translation id="7720400844887872976">Укључено до <ph name="TIME" /></translation>
@@ -1365,6 +1373,7 @@
 <translation id="8598235756057743477">Сортирајте апликације према називу или боји</translation>
 <translation id="8614517853887502247">Обавештења апликација <ph name="APP_1_TITLE" /> и <ph name="APP_2_TITLE" /> су скривена јер је заштита од прегледа укључена</translation>
 <translation id="8627191004499078455">Повезани сте са уређајем <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Искључи приступ камери</translation>
 <translation id="8631727435199967028">Подешавања приступачности</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, јачина сигнала <ph name="SIGNAL_STRENGTH" />, управља администратор</translation>
 <translation id="8639760480004882931">Преостало је <ph name="PERCENTAGE" /></translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 17dbaad..b8416ba 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Av för en app}other{Av för # appar}}</translation>
 <translation id="4066027111132117168">På, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">medelstark signal</translation>
+<translation id="4086921558679520050">Aktivera det fysiska mikrofonreglaget på enheten</translation>
 <translation id="4112140312785995938">Sök bakåt</translation>
 <translation id="4114315158543974537">Aktivera Phone Hub</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> procent</translation>
 <translation id="4378551569595875038">Ansluter ...</translation>
 <translation id="4379531060876907730">Här är dina verktyg för e-penna</translation>
+<translation id="4381031910344220229">Detta tillåter mikrofonåtkomst för <ph name="APP_NAME" /> och alla appar och webbplatser med mikrofonbehörighet</translation>
 <translation id="4389184120735010762">Du tryckte på kortkommandot för dockad skärmförstoring. Vill du aktivera funktionen?</translation>
 <translation id="439598569299422042">Pausad, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Det gick inte att spara screencast</translation>
@@ -728,6 +730,7 @@
 <translation id="4987738733603015246">Skrivbord 16</translation>
 <translation id="5003993274120026347">Nästa mening</translation>
 <translation id="5016558321564993266">Aktivera och inaktivera märkpennan. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Åtkomst till enhetens mikrofon har aktiverats</translation>
 <translation id="5030687792513154421">Tiden är slut</translation>
 <translation id="5033299697334913360">Klicka var som helst för att ta en bild av hela skärmen</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> har anslutits till en ny mobil</translation>
@@ -959,9 +962,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> är en hanterad session som hanteras av <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> har anslutits</translation>
 <translation id="6351032674660237738">APPFÖRSLAG</translation>
+<translation id="6352082849089527770">Okända nätverk</translation>
 <translation id="6359587239691116345">Få de senaste funktionerna och säkerhetsförbättringarna. Om du inte godkänner uppdateringen kan det hända att enheten slutar fungerar som den ska och det kan uppstå säkerhets- och prestandaproblem.</translation>
 <translation id="6376931439017688372">Bluetooth är aktiverat</translation>
 <translation id="6381109794406942707">Lås upp enheten genom att ange pinkoden.</translation>
+<translation id="638716340450135524">Aktivera kameraåtkomst</translation>
 <translation id="639644700271529076">CAPS LOCK är av</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistent</translation>
@@ -969,6 +974,7 @@
 <translation id="642644398083277086">Rensa alla aviseringar</translation>
 <translation id="643147933154517414">Klart</translation>
 <translation id="6431865393913628856">Skärminspelning</translation>
+<translation id="6442259747294754014">Åtkomst till enhetens mikrofon har inaktiverats</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> på <ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> händelse</translation>
 <translation id="6449483711453944360">Linux-appar och inkognitofönster stöds inte för närvarande</translation>
@@ -1133,6 +1139,7 @@
 <translation id="7360036564632145207">Prestandan kan förbättras om du ändrar inställningen för dataåtkomstskydd för kringutrustning</translation>
 <translation id="736045644501761622">Ställ in bakgrund och stil</translation>
 <translation id="7371404428569700291">Spela in fönster</translation>
+<translation id="737315737514430195">Detta tillåter mikrofonåtkomst för alla appar och webbplatser med mikrofonbehörighet</translation>
 <translation id="7377169924702866686">Caps Lock är på.</translation>
 <translation id="7377481913241237033">Anslut med en kod</translation>
 <translation id="7378203170292176219">Välj ett område att spela in genom att dra</translation>
@@ -1201,12 +1208,14 @@
 <translation id="7671610481353807627">Apparna har sorterats efter färg</translation>
 <translation id="7672095158465655885">Ansluten till <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Indata från kameran har ställts in på <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Detta tillåter mikrofonåtkomst för <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> och alla appar och webbplatser med mikrofonbehörighet</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Lägg till nytt mobilnätverk</translation>
 <translation id="7720400844887872976">På till <ph name="TIME" /></translation>
 <translation id="7720410380936703141">FÖRSÖK IGEN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 avisering}other{# aviseringar}}</translation>
 <translation id="7724603315864178912">Klipp ut</translation>
+<translation id="7742327441377685481">Inga aviseringar</translation>
 <translation id="7745560842763881396">Visa appar på hyllan</translation>
 <translation id="7749443890790263709">Det högsta tillåtna antalet skrivbord har uppnåtts.</translation>
 <translation id="776344839111254542">Klicka här om du vill se mer information om uppdateringen</translation>
@@ -1363,6 +1372,7 @@
 <translation id="8598235756057743477">Sortera apparna efter namn eller färg</translation>
 <translation id="8614517853887502247">Aviseringar från <ph name="APP_1_TITLE" /> och <ph name="APP_2_TITLE" /> har dolts eftersom skyddet mot smygtittare har aktiverats</translation>
 <translation id="8627191004499078455">Ansluten till <ph name="DEVICE_NAME" /></translation>
+<translation id="8630991711272431708">Inaktivera kameraåtkomst</translation>
 <translation id="8631727435199967028">Tillgänglighetsinställningar</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" />, hanteras av administratören</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> återstår</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 230f496..5ac5668 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">மீண்டும் முயல்க</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 அறிவிப்பு}other{# அறிவிப்புகள்}}</translation>
 <translation id="7724603315864178912">வெட்டு</translation>
+<translation id="7742327441377685481">அறிவிப்புகள் எதுவுமில்லை</translation>
 <translation id="7745560842763881396">ஆப்ஸை ஷெல்ஃபில் காட்டும்</translation>
 <translation id="7749443890790263709">டெஸ்க்குகளின் எண்ணிக்கை அதிகபட்ச வரம்பை எட்டிவிட்டது.</translation>
 <translation id="776344839111254542">புதுப்பிப்பு விவரங்களைப் பார்க்க, கிளிக் செய்யவும்</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index f67c6de..f7900f99 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">TEKRAR DENE</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 bildirim}other{# bildirim}}</translation>
 <translation id="7724603315864178912">Kes</translation>
+<translation id="7742327441377685481">Bildirim yok</translation>
 <translation id="7745560842763881396">Raftaki uygulamaları göster</translation>
 <translation id="7749443890790263709">Maksimum masa sayısına ulaşıldı.</translation>
 <translation id="776344839111254542">Güncelleme ayrıntılarını görüntülemek için tıklayın</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index 3c11633..4ae4f283 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ایک ایپ کیلئے آف ہے}other{# ایپس کیلئے آف ہے}}</translation>
 <translation id="4066027111132117168"><ph name="REMAINING_TIME" />، آن</translation>
 <translation id="4072264167173457037">اوسط سگنل</translation>
+<translation id="4086921558679520050">اپنے آلے پر فزیکل مائیک سوئچ کو آن کریں</translation>
 <translation id="4112140312785995938">پیچھے کریں</translation>
 <translation id="4114315158543974537">‏Phone Hub آن کریں</translation>
 <translation id="4115378294792113321">میجنٹا</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />، سگنل کی مضبوطی <ph name="SIGNAL_STRENGTH" /> فیصد</translation>
 <translation id="4378551569595875038">منسلک ہو رہا ہے…</translation>
 <translation id="4379531060876907730">یہ آپ کے اسٹائلس ٹولز ہیں</translation>
+<translation id="4381031910344220229">اس سے مائیکروفون کی اجازت کے ساتھ <ph name="APP_NAME" /> اور تمام ایپس اور ویب سائٹس کو مائیکروفون تک رسائی کی اجازت ملتی ہے</translation>
 <translation id="4389184120735010762">آپ نے ڈاک کردہ مکبّر کیلئے کی بورڈ شارٹ کٹ دبایا ہے۔ کیا آپ اسے آن کرنا چاہتے ہیں؟</translation>
 <translation id="439598569299422042">موقوف ہو گیا، <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">اسکرین کاسٹ کو محفوظ نہیں کیا جا سکتا</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> <ph name="MANAGER" /> کے زیر انتظام ایک نظم کردہ سیشن ہے</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> منسلک ہے</translation>
 <translation id="6351032674660237738">ایپ کی تجاویز</translation>
+<translation id="6352082849089527770">نامعلوم نیٹ ورکس</translation>
 <translation id="6359587239691116345">تازہ ترین خصوصیات اور سیکیورٹی میں بہتریاں حاصل کریں۔ اگر آپ اس اپ ڈیٹ کو مسترد کرتے ہیں تو ہو سکتا ہے کہ آپ کا آلہ اب مزید ٹھیک سے کام نہ کرے اور آپ کو سیکیورٹی اور کارکردگی کے مسائل کا سامنا کرنا پڑے۔</translation>
 <translation id="6376931439017688372">بلوٹوتھ آن ہے</translation>
 <translation id="6381109794406942707">‏آلہ غیر مقفل کرنے کے لیے، اپنا PIN درج کریں۔</translation>
@@ -1132,6 +1135,7 @@
 <translation id="7360036564632145207">پیریفیرلزکی ترتیب کیلئے آپ کے ڈیٹا تک رسائی کے تحفظ کی تبدیلی کارکردگی کو بہتر بنا سکتی ہے</translation>
 <translation id="736045644501761622">وال پیپر اور اسٹائل سیٹ کریں</translation>
 <translation id="7371404428569700291">ونڈو ریکارڈ کریں</translation>
+<translation id="737315737514430195">اس سے مائیکروفون کی اجازت کے ساتھ تمام ایپس اور ویب سائٹس کے لیے مائیکروفون تک رسائی کی اجازت ملتی ہے</translation>
 <translation id="7377169924702866686">‏Caps Lock آن ہے۔</translation>
 <translation id="7377481913241237033">کوڈ کے ساتھ منسلک کریں</translation>
 <translation id="7378203170292176219">ریکارڈ کرنے کے لئے کسی علاقے کو منتخب کرنے کیلئے گھسیٹیں</translation>
@@ -1200,6 +1204,7 @@
 <translation id="7671610481353807627">ایپس رنگ کے لحاظ سے ترتیب دی گئی ہیں</translation>
 <translation id="7672095158465655885"><ph name="NAME" />، <ph name="SUBTEXT" /> سے منسلک ہیں</translation>
 <translation id="7684531502177797067">کیمرا ان پٹ <ph name="CAMERA_NAME" /> پر سیٹ ہے۔</translation>
+<translation id="7689817529363080918">اس سے مائیکروفون کی اجازت کے ساتھ <ph name="APP1_NAME" /> ، <ph name="APP2_NAME" /> اور تمام ایپس اور ویب سائٹس کو مائیکروفون تک رسائی کی اجازت ملتی ہے</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">نیا سیلولر نیٹ ورک شامل کریں</translation>
 <translation id="7720400844887872976"><ph name="TIME" /> تک آن</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 48a4fcc..ca58b80 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Tắt, 1 ư.dụng}other{Tắt, # ư.dụng}}</translation>
 <translation id="4066027111132117168">Đang bật, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Tín hiệu trung bình</translation>
+<translation id="4086921558679520050">Bật công tắc micrô thực trên thiết bị</translation>
 <translation id="4112140312785995938">Tua lùi</translation>
 <translation id="4114315158543974537">Bật Phone Hub</translation>
 <translation id="4115378294792113321">Đỏ thẫm</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, cường độ tín hiệu: <ph name="SIGNAL_STRENGTH" />%</translation>
 <translation id="4378551569595875038">Đang kết nối…</translation>
 <translation id="4379531060876907730">Đây là các công cụ bút dành cho bút cảm ứng</translation>
+<translation id="4381031910344220229">Điều này cho phép sử dụng micrô đối với <ph name="APP_NAME" /> cũng như mọi ứng dụng và trang web có quyền sử dụng micrô</translation>
 <translation id="4389184120735010762">Bạn đã nhấn phím tắt của tính năng phóng to ở vị trí cố định. Bạn có muốn bật tính năng này không?</translation>
 <translation id="439598569299422042">Đã tạm dừng, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Không lưu được video ghi lại chuyển động trên màn hình</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> là phiên do <ph name="MANAGER" /> quản lý</translation>
 <translation id="6344138931392227467">Đã kết nối <ph name="DEVICE_NAME" /></translation>
 <translation id="6351032674660237738">ĐỀ XUẤT ỨNG DỤNG</translation>
+<translation id="6352082849089527770">Mạng không xác định</translation>
 <translation id="6359587239691116345">Nhận các tính năng mới nhất và mức độ bảo mật cao hơn. Nếu bạn từ chối bản cập nhật này, thiết bị của bạn có thể sẽ không còn hoạt động bình thường. Đồng thời, bạn có thể gặp các vấn đề về hiệu suất và bảo mật.</translation>
 <translation id="6376931439017688372">Bluetooth đang bật</translation>
 <translation id="6381109794406942707">Để mở khóa thiết bị, hãy nhập mã PIN của bạn.</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">Để tối ưu hóa hiệu suất, hãy tắt chế độ ngăn thiết bị ngoại vi truy cập vào dữ liệu</translation>
 <translation id="736045644501761622">Cài đặt hình nền và phong cách</translation>
 <translation id="7371404428569700291">Ghi hình nội dung của cửa sổ</translation>
+<translation id="737315737514430195">Điều này cho phép sử dụng micrô đối với tất cả ứng dụng và trang web có quyền sử dụng micrô</translation>
 <translation id="7377169924702866686">Caps Lock đang bật.</translation>
 <translation id="7377481913241237033">Kết nối bằng mã</translation>
 <translation id="7378203170292176219">Kéo để chọn một vùng sẽ quay</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">Ứng dụng được sắp xếp theo màu sắc</translation>
 <translation id="7672095158465655885">Đã kết nối với <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Đặt chế độ nhập dữ liệu bằng máy ảnh thành <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Điều này cho phép sử dụng micrô đối với <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> cũng như mọi ứng dụng và trang web có quyền sử dụng micrô</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Thêm mạng di động mới</translation>
 <translation id="7720400844887872976">Bật cho đến <ph name="TIME" /></translation>
diff --git a/ash/webui/camera_app_ui/resources/js/device/stream_manager.ts b/ash/webui/camera_app_ui/resources/js/device/stream_manager.ts
index e502d554..b5f70ba8 100644
--- a/ash/webui/camera_app_ui/resources/js/device/stream_manager.ts
+++ b/ash/webui/camera_app_ui/resources/js/device/stream_manager.ts
@@ -221,7 +221,9 @@
       isRealDeviceChange = true;
     }
     if (isRealDeviceChange) {
-      this.realListeners.map((l) => l(realDevices));
+      for (const listener of this.realListeners) {
+        listener(realDevices);
+      }
     }
     this.realDevices = realDevices;
   }
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 1764489..43d8e7c 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -3668,9 +3668,7 @@
       "android/library_loader/library_prefetcher_unittest.cc",
       "android/linker/linker_jni.cc",
       "android/linker/linker_jni.h",
-      "android/linker/modern_linker_jni.cc",
-      "android/linker/modern_linker_jni.h",
-      "android/linker/modern_linker_unittest.cc",
+      "android/linker/linker_unittest.cc",
       "android/path_utils_unittest.cc",
       "android/radio_utils_unittest.cc",
       "android/reached_addresses_bitset_unittest.cc",
@@ -4614,7 +4612,7 @@
       "android/application_status_listener.h",
       "android/child_process_binding_types.h",
       "android/library_loader/library_loader_hooks.h",
-      "android/linker/modern_linker_jni.h",
+      "android/linker/linker_jni.h",
       "android/task_scheduler/task_runner_android.h",
       "memory/memory_pressure_listener.h",
       "metrics/histogram_base.h",
diff --git a/base/android/android_hardware_buffer_compat.cc b/base/android/android_hardware_buffer_compat.cc
index 998ff1d..eeb87c10b 100644
--- a/base/android/android_hardware_buffer_compat.cc
+++ b/base/android/android_hardware_buffer_compat.cc
@@ -20,7 +20,7 @@
   // be incompatible with pre-Oreo devices, this is unlikely to happen in the
   // foreseeable future, so just unconditionally use dynamic loading.
 
-  // cf. base/android/linker/modern_linker_jni.cc
+  // cf. base/android/linker/linker_jni.cc
   void* main_dl_handle = dlopen(nullptr, RTLD_NOW);
 
   *reinterpret_cast<void**>(&allocate_) =
diff --git a/base/android/linker/BUILD.gn b/base/android/linker/BUILD.gn
index 42d9a7a..539dccc 100644
--- a/base/android/linker/BUILD.gn
+++ b/base/android/linker/BUILD.gn
@@ -12,8 +12,7 @@
     "linker_jni.cc",
     "linker_jni.h",
     "linker_jni_onload.cc",
-    "modern_linker_jni.cc",
-    "modern_linker_jni.h",
+    "linker_minimal_libcxx.cc",
   ]
 
   # The NDK contains the crazy_linker here:
diff --git a/base/android/linker/linker_jni.cc b/base/android/linker/linker_jni.cc
index 9230ac2..99df078b 100644
--- a/base/android/linker/linker_jni.cc
+++ b/base/android/linker/linker_jni.cc
@@ -2,92 +2,36 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// This is a part of the Android-specific Chromium dynamic linker.
-//
-// See linker_jni.h for more details and the dependency rules.
-
 #include "base/android/linker/linker_jni.h"
 
+#include <android/dlext.h>
+#include <dlfcn.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <inttypes.h>
 #include <jni.h>
+#include <link.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
+#include <time.h>
 #include <unistd.h>
 
 #include <memory>
 
 namespace chromium_android_linker {
 
+namespace {
+
 // Variable containing LibInfo for the loaded library.
 LibInfo_class s_lib_info_fields;
 
-String::String(JNIEnv* env, jstring str) {
-  size_ = env->GetStringUTFLength(str);
-  ptr_ = static_cast<char*>(::malloc(size_ + 1));
+// Guarded by |mLock| in Linker.java.
+RelroSharingStatus s_relro_sharing_status = RelroSharingStatus::NOT_ATTEMPTED;
 
-  // Note: This runs before browser native code is loaded, and so cannot
-  // rely on anything from base/. This means that we must use
-  // GetStringUTFChars() and not base::android::ConvertJavaStringToUTF8().
-  //
-  // GetStringUTFChars() suffices because the only strings used here are
-  // paths to APK files or names of shared libraries, all of which are
-  // plain ASCII, defined and hard-coded by the Chromium Android build.
-  //
-  // For more: see
-  //   https://crbug.com/508876
-  //
-  // Note: GetStringUTFChars() returns Java UTF-8 bytes. This is good
-  // enough for the linker though.
-  const char* bytes = env->GetStringUTFChars(str, nullptr);
-  ::memcpy(ptr_, bytes, size_);
-  ptr_[size_] = '\0';
-
-  env->ReleaseStringUTFChars(str, bytes);
-}
-
-bool IsValidAddress(jlong address) {
-  bool result = static_cast<jlong>(static_cast<uintptr_t>(address)) == address;
-  if (!result) {
-    LOG_ERROR("Invalid address 0x%" PRIx64, static_cast<uint64_t>(address));
-  }
-  return result;
-}
-
-// Finds the jclass JNI reference corresponding to a given |class_name|.
-// |env| is the current JNI environment handle.
-// On success, return true and set |*clazz|.
-bool InitClassReference(JNIEnv* env, const char* class_name, jclass* clazz) {
-  *clazz = env->FindClass(class_name);
-  if (!*clazz) {
-    LOG_ERROR("Could not find class for %s", class_name);
-    return false;
-  }
-  return true;
-}
-
-// Initializes a jfieldID corresponding to the field of a given |clazz|,
-// with name |field_name| and signature |field_sig|.
-// |env| is the current JNI environment handle.
-// On success, return true and set |*field_id|.
-bool InitFieldId(JNIEnv* env,
-                 jclass clazz,
-                 const char* field_name,
-                 const char* field_sig,
-                 jfieldID* field_id) {
-  *field_id = env->GetFieldID(clazz, field_name, field_sig);
-  if (!*field_id) {
-    LOG_ERROR("Could not find ID for field '%s'", field_name);
-    return false;
-  }
-  LOG_INFO("Found ID %p for field '%s'", *field_id, field_name);
-  return true;
-}
-
-namespace {
+// Saved JavaVM passed to JNI_OnLoad().
+JavaVM* s_java_vm = nullptr;
 
 // With mmap(2) reserves a range of virtual addresses.
 //
@@ -207,8 +151,182 @@
   }
 }
 
+// Calls the Linker Java methods to record the time intervals in UMA. The calls
+// are made only once pre process, hence there is no need to cache the values
+// obtained from JNIEnv. The class must *not* be reused across different
+// Java->native calls because the |jclass| reference may become invalid in this
+// case.
+class LoadTimeReporterJni : public LoadTimeReporter {
+ public:
+  LoadTimeReporterJni(JNIEnv* env, jclass linker_jni_class)
+      : env_(env), class_(linker_jni_class) {}
+
+  void reportDlopenExtTime(int64_t millis) const override {
+    env_->CallStaticVoidMethod(
+        class_, env_->GetStaticMethodID(class_, "reportDlopenExtTime", "(J)V"),
+        millis);
+  }
+
+  void reportIteratePhdrTime(int64_t millis) const override {
+    env_->CallStaticVoidMethod(
+        class_,
+        env_->GetStaticMethodID(class_, "reportIteratePhdrTime", "(J)V"),
+        millis);
+  }
+
+ private:
+  // Not copyable or movable.
+  LoadTimeReporterJni(const LoadTimeReporterJni&) = delete;
+  LoadTimeReporterJni& operator=(const LoadTimeReporterJni&) = delete;
+
+  JNIEnv* env_;
+  jclass class_;
+};
+
+constexpr int64_t kMillisecondsPerSecond = 1'000;
+constexpr int64_t kNanosecondsPerMillisecond = 1'000'000;
+
+int64_t GetMillisNow() {
+  struct timespec ts;
+  if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) {
+    PLOG_ERROR("clock_gettime");
+    return 0;
+  }
+
+  int64_t result = ts.tv_sec;
+  result *= kMillisecondsPerSecond;
+  result += (ts.tv_nsec / kNanosecondsPerMillisecond);
+  return result;
+}
+
+// Invokes android_dlopen_ext() to load the library into a given address range.
+// Assumes that the address range is already reserved with mmap(2). On success,
+// the |handle| of the loaded library is returned.
+//
+// Returns true iff this operation succeeds.
+bool AndroidDlopenExt(void* mapping_start,
+                      size_t mapping_size,
+                      const char* filename,
+                      void** handle) {
+  android_dlextinfo dlextinfo{};
+  dlextinfo.flags = ANDROID_DLEXT_RESERVED_ADDRESS;
+  dlextinfo.reserved_addr = mapping_start;
+  dlextinfo.reserved_size = mapping_size;
+
+  LOG_INFO(
+      "android_dlopen_ext:"
+      " flags=0x%" PRIx64 ", reserved_addr=%p, reserved_size=%zu",
+      dlextinfo.flags, dlextinfo.reserved_addr, dlextinfo.reserved_size);
+
+  void* rv = android_dlopen_ext(filename, RTLD_NOW, &dlextinfo);
+  if (rv == nullptr) {
+    LOG_ERROR("android_dlopen_ext: %s", dlerror());
+    return false;
+  }
+
+  *handle = rv;
+  return true;
+}
+
+// With munmap(2) unmaps the tail of the given contiguous range of virtual
+// memory. Ignores errors.
+void TrimMapping(uintptr_t address, size_t old_size, size_t new_size) {
+  if (old_size <= new_size) {
+    LOG_ERROR("WARNING: library reservation was too small");
+  } else {
+    // Unmap the part of the reserved address space that is beyond the end of
+    // the loaded library data.
+    const uintptr_t unmap = address + new_size;
+    const size_t length = old_size - new_size;
+    munmap(reinterpret_cast<void*>(unmap), length);
+  }
+}
+
+// Calls JNI_OnLoad() in the library referenced by |handle|.
+// Returns true for success.
+bool CallJniOnLoad(void* handle) {
+  LOG_INFO("Entering");
+  // Locate and if found then call the loaded library's JNI_OnLoad() function.
+  using JNI_OnLoadFunctionPtr = int (*)(void* vm, void* reserved);
+  auto jni_onload =
+      reinterpret_cast<JNI_OnLoadFunctionPtr>(dlsym(handle, "JNI_OnLoad"));
+  if (jni_onload != nullptr) {
+    // Check that JNI_OnLoad returns a usable JNI version.
+    int jni_version = (*jni_onload)(s_java_vm, nullptr);
+    if (jni_version < JNI_VERSION_1_4) {
+      LOG_ERROR("JNI version is invalid: %d", jni_version);
+      return false;
+    }
+  }
+
+  LOG_INFO("Done");
+  return true;
+}
+
 }  // namespace
 
+String::String(JNIEnv* env, jstring str) {
+  size_ = env->GetStringUTFLength(str);
+  ptr_ = static_cast<char*>(::malloc(size_ + 1));
+
+  // Note: This runs before browser native code is loaded, and so cannot
+  // rely on anything from base/. This means that we must use
+  // GetStringUTFChars() and not base::android::ConvertJavaStringToUTF8().
+  //
+  // GetStringUTFChars() suffices because the only strings used here are
+  // paths to APK files or names of shared libraries, all of which are
+  // plain ASCII, defined and hard-coded by the Chromium Android build.
+  //
+  // For more: see
+  //   https://crbug.com/508876
+  //
+  // Note: GetStringUTFChars() returns Java UTF-8 bytes. This is good
+  // enough for the linker though.
+  const char* bytes = env->GetStringUTFChars(str, nullptr);
+  ::memcpy(ptr_, bytes, size_);
+  ptr_[size_] = '\0';
+
+  env->ReleaseStringUTFChars(str, bytes);
+}
+
+bool IsValidAddress(jlong address) {
+  bool result = static_cast<jlong>(static_cast<uintptr_t>(address)) == address;
+  if (!result) {
+    LOG_ERROR("Invalid address 0x%" PRIx64, static_cast<uint64_t>(address));
+  }
+  return result;
+}
+
+// Finds the jclass JNI reference corresponding to a given |class_name|.
+// |env| is the current JNI environment handle.
+// On success, return true and set |*clazz|.
+bool InitClassReference(JNIEnv* env, const char* class_name, jclass* clazz) {
+  *clazz = env->FindClass(class_name);
+  if (!*clazz) {
+    LOG_ERROR("Could not find class for %s", class_name);
+    return false;
+  }
+  return true;
+}
+
+// Initializes a jfieldID corresponding to the field of a given |clazz|,
+// with name |field_name| and signature |field_sig|.
+// |env| is the current JNI environment handle.
+// On success, return true and set |*field_id|.
+bool InitFieldId(JNIEnv* env,
+                 jclass clazz,
+                 const char* field_name,
+                 const char* field_sig,
+                 jfieldID* field_id) {
+  *field_id = env->GetFieldID(clazz, field_name, field_sig);
+  if (!*field_id) {
+    LOG_ERROR("Could not find ID for field '%s'", field_name);
+    return false;
+  }
+  LOG_INFO("Found ID %p for field '%s'", *field_id, field_name);
+  return true;
+}
+
 bool FindWebViewReservation(uintptr_t* out_address, size_t* out_size) {
   // Note: reading /proc/PID/maps or /proc/PID/smaps is inherently racy. Among
   // other things, the kernel provides these guarantees:
@@ -233,7 +351,413 @@
   return result;
 }
 
-// Performs as described in Linker.java.
+// Starting with API level 26 (Android O) the following functions from
+// libandroid.so should be used to create shared memory regions to ensure
+// compatibility with the future versions:
+// * ASharedMemory_create()
+// * ASharedMemory_setProt()
+//
+// This is inspired by //third_party/ashmem/ashmem-dev.c, which cannot be
+// referenced from the linker library to avoid increasing binary size.
+//
+// *Not* threadsafe.
+struct SharedMemoryFunctions {
+  SharedMemoryFunctions() {
+    library_handle = dlopen("libandroid.so", RTLD_NOW);
+    create = reinterpret_cast<CreateFunction>(
+        dlsym(library_handle, "ASharedMemory_create"));
+    set_protection = reinterpret_cast<SetProtectionFunction>(
+        dlsym(library_handle, "ASharedMemory_setProt"));
+  }
+
+  bool IsWorking() const {
+    if (!create || !set_protection) {
+      LOG_ERROR("Cannot get the shared memory functions from libandroid");
+      return false;
+    }
+    return true;
+  }
+
+  ~SharedMemoryFunctions() {
+    if (library_handle)
+      dlclose(library_handle);
+  }
+
+  typedef int (*CreateFunction)(const char*, size_t);
+  typedef int (*SetProtectionFunction)(int fd, int prot);
+
+  CreateFunction create;
+  SetProtectionFunction set_protection;
+
+  void* library_handle = nullptr;
+};
+
+void NativeLibInfo::ExportLoadInfoToJava() const {
+  if (!env_)
+    return;
+  s_lib_info_fields.SetLoadInfo(env_, java_object_, load_address_, load_size_);
+}
+
+void NativeLibInfo::ExportRelroInfoToJava() const {
+  if (!env_)
+    return;
+  s_lib_info_fields.SetRelroInfo(env_, java_object_, relro_start_, relro_size_,
+                                 relro_fd_);
+}
+
+void NativeLibInfo::CloseRelroFd() {
+  if (relro_fd_ == kInvalidFd)
+    return;
+  close(relro_fd_);
+  relro_fd_ = kInvalidFd;
+}
+
+bool NativeLibInfo::FindRelroAndLibraryRangesInElf() {
+  LOG_INFO("Called for 0x%" PRIxPTR, load_address_);
+
+  // Check that an ELF library starts at the |load_address_|.
+  if (memcmp(reinterpret_cast<void*>(load_address_), ELFMAG, SELFMAG) != 0) {
+    LOG_ERROR("Wrong magic number");
+    return false;
+  }
+  auto class_type = *reinterpret_cast<uint8_t*>(load_address_ + EI_CLASS);
+  if (class_type == ELFCLASS32) {
+    LOG_INFO("ELFCLASS32");
+  } else if (class_type == ELFCLASS64) {
+    LOG_INFO("ELFCLASS64");
+  } else {
+    LOG_ERROR("Could not determine ELF class");
+    return false;
+  }
+
+  // Sanitycheck PAGE_SIZE before use.
+  int page_size = sysconf(_SC_PAGESIZE);
+  if (page_size != PAGE_SIZE)
+    abort();
+
+  // Compute the ranges of PT_LOAD segments and the PT_GNU_RELRO. It is possible
+  // to reach for the same information by iterating over all loaded libraries
+  // and their program headers using dl_iterate_phdr(3). Instead here the
+  // iteration goes through the array |e_phoff[e_phnum]| to avoid acquisition of
+  // the global lock in Bionic (dlfcn.cpp).
+  //
+  // The code relies on (1) having RELRO in the PT_GNU_RELRO segment, and (2)
+  // the fact that the address *range* occupied by the library is the minimal
+  // address range containing all of the PT_LOAD and PT_GNU_RELRO segments.
+  // This is a contract between the static linker and the dynamic linker which
+  // seems unlikely to get broken. It might break though as a result of
+  // post-processing the DSO, which has historically happened for a few
+  // occasions (eliminating the unwind tables and splitting the library into
+  // DFMs).
+  auto min_vaddr = std::numeric_limits<ElfW(Addr)>::max();
+  auto min_relro_vaddr = min_vaddr;
+  ElfW(Addr) max_vaddr = 0;
+  ElfW(Addr) max_relro_vaddr = 0;
+  const auto* ehdr = reinterpret_cast<const ElfW(Ehdr)*>(load_address_);
+  const auto* phdrs =
+      reinterpret_cast<const ElfW(Phdr)*>(load_address_ + ehdr->e_phoff);
+  for (int i = 0; i < ehdr->e_phnum; i++) {
+    const ElfW(Phdr)* phdr = &phdrs[i];
+    switch (phdr->p_type) {
+      case PT_LOAD:
+        if (phdr->p_vaddr < min_vaddr)
+          min_vaddr = phdr->p_vaddr;
+        if (phdr->p_vaddr + phdr->p_memsz > max_vaddr)
+          max_vaddr = phdr->p_vaddr + phdr->p_memsz;
+        break;
+      case PT_GNU_RELRO:
+        min_relro_vaddr = PAGE_START(phdr->p_vaddr);
+        max_relro_vaddr = phdr->p_vaddr + phdr->p_memsz;
+
+        // As of 2020-11 in libmonochrome.so RELRO is covered by a LOAD segment.
+        // It is not clear whether this property is going to be guaranteed in
+        // the future. Include the RELRO segment as part of the 'load size'.
+        // This way a potential future change in layout of LOAD segments would
+        // not open address space for racy mmap(MAP_FIXED).
+        if (min_relro_vaddr < min_vaddr)
+          min_vaddr = min_relro_vaddr;
+        if (max_vaddr < max_relro_vaddr)
+          max_vaddr = max_relro_vaddr;
+        break;
+      default:
+        break;
+    }
+  }
+
+  // Fill out size and RELRO information.
+  load_size_ = PAGE_END(max_vaddr) - PAGE_START(min_vaddr);
+  relro_size_ = PAGE_END(max_relro_vaddr) - PAGE_START(min_relro_vaddr);
+  relro_start_ = load_address_ + PAGE_START(min_relro_vaddr);
+  return true;
+}
+
+bool NativeLibInfo::LoadWithDlopenExt(const String& path,
+                                      const LoadTimeReporter& reporter,
+                                      void** handle) {
+  LOG_INFO("Entering");
+
+  // The address range must be reserved during initialization in Linker.java.
+  if (!load_address_) {
+    // TODO(pasko): measure how often this happens.
+    return false;
+  }
+
+  // Remember the memory reservation size. Starting from this point load_size_
+  // changes the meaning to reflect the size of the loaded library.
+  size_t reservation_size = load_size_;
+  auto* address = reinterpret_cast<void*>(load_address_);
+
+  // Invoke android_dlopen_ext.
+  int64_t ticks_initial = GetMillisNow();
+  void* local_handle = nullptr;
+  if (!AndroidDlopenExt(address, reservation_size, path.c_str(),
+                        &local_handle)) {
+    LOG_ERROR("android_dlopen_ext() error");
+    munmap(address, load_size_);
+    return false;
+  }
+  int64_t ticks_after_dlopen_ext = GetMillisNow();
+  reporter.reportDlopenExtTime(ticks_after_dlopen_ext - ticks_initial);
+
+  // Determine the library address ranges and the RELRO region.
+  if (!FindRelroAndLibraryRangesInElf()) {
+    // Fail early if PT_GNU_RELRO is not found. It likely indicates a
+    // build misconfiguration.
+    LOG_ERROR("Could not find RELRO in the loaded library: %s", path.c_str());
+    abort();
+  }
+  reporter.reportIteratePhdrTime(GetMillisNow() - ticks_after_dlopen_ext);
+
+  // Release the unused parts of the memory reservation.
+  TrimMapping(load_address_, reservation_size, load_size_);
+
+  *handle = local_handle;
+  return true;
+}
+
+bool NativeLibInfo::CreateSharedRelroFd(
+    const SharedMemoryFunctions& functions) {
+  LOG_INFO("Entering");
+  if (!relro_start_ || !relro_size_) {
+    LOG_ERROR("RELRO region is not populated");
+    return false;
+  }
+
+  // Create a writable shared memory region.
+  int shared_mem_fd = functions.create("cr_relro", relro_size_);
+  if (shared_mem_fd == -1) {
+    LOG_ERROR("Cannot create the shared memory file");
+    return false;
+  }
+  int rw_flags = PROT_READ | PROT_WRITE;
+  functions.set_protection(shared_mem_fd, rw_flags);
+
+  // Map the region as writable.
+  void* relro_copy_addr =
+      mmap(nullptr, relro_size_, rw_flags, MAP_SHARED, shared_mem_fd, 0);
+  if (relro_copy_addr == MAP_FAILED) {
+    PLOG_ERROR("failed to allocate space for copying RELRO");
+    close(shared_mem_fd);
+    return false;
+  }
+
+  // Populate the shared memory region with the contents of RELRO.
+  void* relro_addr = reinterpret_cast<void*>(relro_start_);
+  memcpy(relro_copy_addr, relro_addr, relro_size_);
+
+  // Protect the underlying physical pages from further modifications from all
+  // processes including the forked ones.
+  //
+  // Setting protection flags on the region to read-only guarantees that the
+  // memory can no longer get mapped as writable, for any FD pointing to the
+  // region, for any process. It is necessary to also munmap(2) the existing
+  // writable memory mappings, since they are not directly affected by the
+  // change of region's protection flags.
+  munmap(relro_copy_addr, relro_size_);
+  if (functions.set_protection(shared_mem_fd, PROT_READ) == -1) {
+    LOG_ERROR("Failed to set the RELRO FD as read-only.");
+    close(shared_mem_fd);
+    return false;
+  }
+
+  relro_fd_ = shared_mem_fd;
+  return true;
+}
+
+bool NativeLibInfo::ReplaceRelroWithSharedOne(
+    const SharedMemoryFunctions& functions) const {
+  LOG_INFO("Entering");
+  if (relro_fd_ == -1 || !relro_start_ || !relro_size_) {
+    LOG_ERROR("Replacement RELRO not ready");
+    return false;
+  }
+
+  // Map as read-only to *atomically* replace the RELRO region provided by the
+  // dynamic linker. To avoid memory corruption it is important that the
+  // contents of both memory regions is identical.
+  void* new_addr = mmap(reinterpret_cast<void*>(relro_start_), relro_size_,
+                        PROT_READ, MAP_FIXED | MAP_SHARED, relro_fd_, 0);
+  if (new_addr == MAP_FAILED) {
+    PLOG_ERROR("mmap: replace RELRO");
+    return false;
+  }
+
+  LOG_INFO("Replaced RELRO at 0x%" PRIxPTR, relro_start_);
+  return true;
+}
+
+NativeLibInfo::NativeLibInfo(JNIEnv* env, jobject java_object)
+    : env_(env), java_object_(java_object) {}
+
+bool NativeLibInfo::CopyFromJavaObject() {
+  if (!env_)
+    return false;
+
+  if (!s_lib_info_fields.GetLoadInfo(env_, java_object_, &load_address_,
+                                     &load_size_)) {
+    return false;
+  }
+  s_lib_info_fields.GetRelroInfo(env_, java_object_, &relro_start_,
+                                 &relro_size_, &relro_fd_);
+  return true;
+}
+
+bool NativeLibInfo::LoadLibrary(const String& library_path,
+                                bool spawn_relro_region,
+                                const LoadTimeReporter& reporter) {
+  // Load the library.
+  void* handle = nullptr;
+  if (!LoadWithDlopenExt(library_path, reporter, &handle)) {
+    LOG_ERROR("Failed to load native library: %s", library_path.c_str());
+    return false;
+  }
+  if (!CallJniOnLoad(handle))
+    return false;
+
+  // Publish the library size and load address back to LibInfo in Java.
+  ExportLoadInfoToJava();
+
+  if (!spawn_relro_region)
+    return true;
+
+  // Spawn RELRO to a shared memory region by copying and remapping on top of
+  // itself.
+  SharedMemoryFunctions functions;
+  if (!functions.IsWorking())
+    return false;
+  if (!CreateSharedRelroFd(functions)) {
+    LOG_ERROR("Failed to create shared RELRO");
+    return false;
+  }
+  if (!ReplaceRelroWithSharedOne(functions)) {
+    LOG_ERROR("Failed to convert RELRO to shared memory");
+    CloseRelroFd();
+    return false;
+  }
+
+  LOG_INFO(
+      "Created and converted RELRO to shared memory: relro_fd=%d, "
+      "relro_start=0x%" PRIxPTR,
+      relro_fd_, relro_start_);
+  ExportRelroInfoToJava();
+  return true;
+}
+
+bool NativeLibInfo::RelroIsIdentical(
+    const NativeLibInfo& other_lib_info,
+    const SharedMemoryFunctions& functions) const {
+  // Abandon sharing if contents of the incoming RELRO region does not match the
+  // current one. This can be useful for debugging, but should never happen in
+  // the field.
+  if (other_lib_info.relro_start_ != relro_start_ ||
+      other_lib_info.relro_size_ != relro_size_ ||
+      other_lib_info.load_size_ != load_size_) {
+    LOG_ERROR("Incoming RELRO size does not match RELRO of the loaded library");
+    return false;
+  }
+  void* shared_relro_address =
+      mmap(nullptr, other_lib_info.relro_size_, PROT_READ, MAP_SHARED,
+           other_lib_info.relro_fd_, 0);
+  if (shared_relro_address == MAP_FAILED) {
+    PLOG_ERROR("mmap: check RELRO is identical");
+    return false;
+  }
+  void* current_relro_address = reinterpret_cast<void*>(relro_start_);
+  int not_equal =
+      memcmp(shared_relro_address, current_relro_address, relro_size_);
+  munmap(shared_relro_address, relro_size_);
+  if (not_equal) {
+    LOG_ERROR("Relocations are not identical, giving up.");
+    return false;
+  }
+  return true;
+}
+
+bool NativeLibInfo::CompareRelroAndReplaceItBy(
+    const NativeLibInfo& other_lib_info) {
+  if (other_lib_info.relro_fd_ == -1) {
+    LOG_ERROR("No shared region to use");
+    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_RELRO_FD_NOT_PROVIDED;
+    return false;
+  }
+
+  if (load_address_ == 0) {
+    LOG_ERROR("Load address reset. Second attempt to load the library?");
+    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_LOAD_ADDRESS_RESET;
+    return false;
+  }
+
+  if (!FindRelroAndLibraryRangesInElf()) {
+    LOG_ERROR("Could not find RELRO from externally provided address: 0x%p",
+              reinterpret_cast<void*>(other_lib_info.load_address_));
+    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_RELRO_NOT_FOUND;
+    return false;
+  }
+
+  SharedMemoryFunctions functions;
+  if (!functions.IsWorking()) {
+    s_relro_sharing_status = RelroSharingStatus::NO_SHMEM_FUNCTIONS;
+    return false;
+  }
+  if (!RelroIsIdentical(other_lib_info, functions)) {
+    LOG_ERROR("RELRO is not identical");
+    s_relro_sharing_status = RelroSharingStatus::NOT_IDENTICAL;
+    return false;
+  }
+
+  // Make it shared.
+  //
+  // The alternative approach to invoke mprotect+mremap is probably faster than
+  // munmap+mmap here. The advantage of the latter is that it removes all
+  // formerly writable mappings, so:
+  //  * It does not rely on disallowing mprotect(PROT_WRITE)
+  //  * This way |ReplaceRelroWithSharedOne()| is reused across spawning RELRO
+  //    and receiving it
+  if (!other_lib_info.ReplaceRelroWithSharedOne(functions)) {
+    LOG_ERROR("Failed to use relro_fd");
+    s_relro_sharing_status = RelroSharingStatus::REMAP_FAILED;
+    return false;
+  }
+
+  s_relro_sharing_status = RelroSharingStatus::SHARED;
+  return true;
+}
+
+bool NativeLibInfo::CreateSharedRelroFdForTesting() {
+  // The library providing these functions will be dlclose()-ed after returning
+  // from this context. The extra overhead of dlopen() is OK for testing.
+  SharedMemoryFunctions functions;
+  if (!functions.IsWorking())
+    abort();
+  return CreateSharedRelroFd(functions);
+}
+
+// static
+bool NativeLibInfo::SharedMemoryFunctionsSupportedForTesting() {
+  SharedMemoryFunctions functions;
+  return functions.IsWorking();
+}
+
 JNI_GENERATOR_EXPORT void
 Java_org_chromium_base_library_1loader_LinkerJni_nativeFindMemoryRegionAtRandomAddress(
     JNIEnv* env,
@@ -246,7 +770,6 @@
   s_lib_info_fields.SetLoadInfo(env, lib_info_obj, address, size);
 }
 
-// Performs as described in Linker.java.
 JNI_GENERATOR_EXPORT void
 Java_org_chromium_base_library_1loader_LinkerJni_nativeReserveMemoryForLibrary(
     JNIEnv* env,
@@ -260,7 +783,6 @@
   s_lib_info_fields.SetLoadInfo(env, lib_info_obj, address, size);
 }
 
-// Performs as described in Linker.java.
 JNI_GENERATOR_EXPORT jboolean
 Java_org_chromium_base_library_1loader_LinkerJni_nativeFindRegionReservedByWebViewZygote(
     JNIEnv* env,
@@ -275,4 +797,69 @@
   return true;
 }
 
+JNI_GENERATOR_EXPORT jboolean
+Java_org_chromium_base_library_1loader_LinkerJni_nativeLoadLibrary(
+    JNIEnv* env,
+    jclass clazz,
+    jstring jdlopen_ext_path,
+    jobject lib_info_obj,
+    jboolean spawn_relro_region) {
+  LOG_INFO("Entering");
+
+  // Copy the contents from the Java-side LibInfo object.
+  NativeLibInfo lib_info = {env, lib_info_obj};
+  if (!lib_info.CopyFromJavaObject())
+    return false;
+
+  String library_path(env, jdlopen_ext_path);
+  LoadTimeReporterJni reporter = {env, clazz};
+  if (!lib_info.LoadLibrary(library_path, spawn_relro_region, reporter)) {
+    return false;
+  }
+  return true;
+}
+
+JNI_GENERATOR_EXPORT jboolean
+Java_org_chromium_base_library_1loader_LinkerJni_nativeUseRelros(
+    JNIEnv* env,
+    jclass clazz,
+    jlong local_load_address,
+    jobject remote_lib_info_obj) {
+  LOG_INFO("Entering");
+  // Copy the contents from the Java-side LibInfo object.
+  NativeLibInfo incoming_lib_info = {env, remote_lib_info_obj};
+  if (!incoming_lib_info.CopyFromJavaObject()) {
+    s_relro_sharing_status = RelroSharingStatus::CORRUPTED_IN_JAVA;
+    return false;
+  }
+
+  // Create an empty NativeLibInfo to extract the current information about the
+  // loaded library and later compare with the contents of the
+  // |incoming_lib_info|.
+  NativeLibInfo lib_info = {nullptr, nullptr};
+  lib_info.set_load_address(static_cast<uintptr_t>(local_load_address));
+
+  if (!lib_info.CompareRelroAndReplaceItBy(incoming_lib_info)) {
+    return false;
+  }
+  return true;
+}
+
+JNI_GENERATOR_EXPORT jint
+Java_org_chromium_base_library_1loader_LinkerJni_nativeGetRelroSharingResult(
+    JNIEnv* env,
+    jclass clazz) {
+  return static_cast<jint>(s_relro_sharing_status);
+}
+
+bool LinkerJNIInit(JavaVM* vm, JNIEnv* env) {
+  // Find LibInfo field ids.
+  if (!s_lib_info_fields.Init(env)) {
+    return false;
+  }
+
+  s_java_vm = vm;
+  return true;
+}
+
 }  // namespace chromium_android_linker
diff --git a/base/android/linker/linker_jni.h b/base/android/linker/linker_jni.h
index b19c67f2..c324883 100644
--- a/base/android/linker/linker_jni.h
+++ b/base/android/linker/linker_jni.h
@@ -19,7 +19,6 @@
 
 #include <android/log.h>
 #include <jni.h>
-#include <stddef.h>
 #include <stdlib.h>
 
 #include "build/build_config.h"
@@ -226,10 +225,180 @@
   }
 };
 
-// Variable containing LibInfo accessors for the loaded library.
-extern LibInfo_class s_lib_info_fields;
+// Used to find out whether RELRO sharing is often rejected due to mismatch of
+// the contents.
+//
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused. Must be kept in sync with the enum
+// in enums.xml. A java @IntDef is generated from this.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base.library_loader
+enum class RelroSharingStatus {
+  NOT_ATTEMPTED = 0,
+  SHARED = 1,
+  NOT_IDENTICAL = 2,
+  EXTERNAL_RELRO_FD_NOT_PROVIDED = 3,
+  EXTERNAL_RELRO_NOT_FOUND = 4,
+  NO_SHMEM_FUNCTIONS = 5,
+  REMAP_FAILED = 6,
+  CORRUPTED_IN_JAVA = 7,
+  EXTERNAL_LOAD_ADDRESS_RESET = 8,
+  COUNT = 9,
+};
 
-jint JNI_OnLoad(JavaVM* vm, void* reserved);
+struct SharedMemoryFunctions;
+
+// Abstract class for NativeLibInfo to use for miscellaneous time measurements.
+// Best to be provided with values from the same clock as
+// SystemClock.uptimeMillis().
+//
+// *Not* threadsafe.
+class LoadTimeReporter {
+ public:
+  virtual ~LoadTimeReporter() = default;
+
+  // Report the time it took to run android_dlopen_ext().
+  virtual void reportDlopenExtTime(int64_t milliseconds_since_boot) const = 0;
+
+  // Report the time it took to find the RELRO region using dl_iterate_phdr().
+  virtual void reportIteratePhdrTime(int64_t milliseconds_since_boot) const = 0;
+};
+
+// Holds address ranges of the loaded native library, its RELRO region, along
+// with the RELRO FD identifying the shared memory region. Carries the same
+// members as the Java-side LibInfo (without mLibFilePath), allowing to
+// internally import/export the member values from/to the Java-side counterpart.
+//
+// Does *not* own the RELRO FD as soon as the latter gets exported to Java
+// (as a result of 'spawning' the RELRO region as shared memory.
+//
+// *Not* threadsafe.
+class NativeLibInfo {
+ public:
+  // Constructs an empty instance. The |java_object| indicates the handle to
+  // import and export member fields.
+  //
+  // Having |env| as |nullptr| disables export to java for the lifetime of the
+  // instance. This is useful as a scratch info that is gradually populated for
+  // comparison with another NativeLibInfo, and then discarded.
+  NativeLibInfo(JNIEnv* env, jobject java_object);
+
+  // Copies the java-side object state to this native instance. Returns false
+  // iff an imported value is invalid.
+  bool CopyFromJavaObject();
+
+  void set_load_address(uintptr_t a) { load_address_ = a; }
+
+  uintptr_t load_address() const { return load_address_; }
+
+  // Loads the native library using android_dlopen_ext and invokes JNI_OnLoad().
+  //
+  // On a successful load exports the address range of the library to the
+  // Java-side LibInfo.
+  //
+  // Iff |spawn_relro_region| is true, also finds the RELRO region in the
+  // library (PT_GNU_RELRO), converts it to be backed by a shared memory region
+  // (here referred as "RELRO FD") and exports the RELRO information to Java
+  // (the address range and the RELRO FD).
+  //
+  // When spawned, the shared memory region is exported only after sealing as
+  // read-only and without writable memory mappings. This allows any process to
+  // provide RELRO FD before it starts processing arbitrary input. For example,
+  // an App Zygote can create a RELRO FD in a sufficiently trustworthy way to
+  // make the Browser/Privileged processes share the region with it.
+  bool LoadLibrary(const String& library_path,
+                   bool spawn_relro_region,
+                   const LoadTimeReporter& reporter);
+
+  // Finds the RELRO region in the native library identified by
+  // |this->load_address()| and replaces it with the shared memory region
+  // identified by |other_lib_info|.
+  //
+  // The external NativeLibInfo can arrive from a different process.
+  //
+  // Note on security: The RELRO region is treated as *trusted*, no untrusted
+  // user/website/network input can be processed in an isolated process before
+  // it sends the RELRO FD. This is because there is no way to check whether the
+  // process has a writable mapping of the region remaining.
+  bool CompareRelroAndReplaceItBy(const NativeLibInfo& other_lib_info);
+
+  void set_relro_info_for_testing(uintptr_t start, size_t size) {
+    relro_start_ = start;
+    relro_size_ = size;
+  }
+
+  // Creates a shared RELRO region as it normally would during LoadLibrary()
+  // with |spawn_relro_region=true|. Exposed here because it is difficult to
+  // unittest LoadLibrary() directly.
+  bool CreateSharedRelroFdForTesting();
+
+  void set_relro_fd_for_testing(int fd) { relro_fd_ = fd; }
+  int get_relro_fd_for_testing() const { return relro_fd_; }
+  size_t get_relro_start_for_testing() const { return relro_start_; }
+  size_t get_load_size_for_testing() const { return load_size_; }
+
+  static bool SharedMemoryFunctionsSupportedForTesting();
+
+  bool FindRelroAndLibraryRangesInElfForTesting() {
+    return FindRelroAndLibraryRangesInElf();
+  }
+
+ private:
+  NativeLibInfo() = delete;
+
+  // Not copyable or movable.
+  NativeLibInfo(const NativeLibInfo&) = delete;
+  NativeLibInfo& operator=(const NativeLibInfo&) = delete;
+
+  // Exports the address range of the library described by |this| to the
+  // Java-side LibInfo.
+  void ExportLoadInfoToJava() const;
+
+  // Exports the address range of the RELRO region and RELRO FD described by
+  // |this| to the Java-side LibInfo.
+  void ExportRelroInfoToJava() const;
+
+  void CloseRelroFd();
+
+  // Determines the minimal address ranges for the union of all the loadable
+  // (and RELRO) segments by parsing ELF starting at |load_address()|. May fail
+  // or return incorrect results for some creative ELF libraries.
+  bool FindRelroAndLibraryRangesInElf();
+
+  // Loads and initializes the load address ranges: |load_address_|,
+  // |load_size_|. Assumes that the memory range is reserved (in Linker.java).
+  bool LoadWithDlopenExt(const String& path,
+                         const LoadTimeReporter& reporter,
+                         void** handle);
+
+  // Initializes |relro_fd_| with a newly created read-only shared memory region
+  // sized as the library's RELRO and with identical data.
+  bool CreateSharedRelroFd(const SharedMemoryFunctions& functions);
+
+  // Assuming that RELRO-related information is populated, memory-maps the RELRO
+  // FD on top of the library's RELRO.
+  bool ReplaceRelroWithSharedOne(const SharedMemoryFunctions& functions) const;
+
+  // Returns true iff the RELRO address and size, along with the contents are
+  // equal among the two.
+  bool RelroIsIdentical(const NativeLibInfo& external_lib_info,
+                        const SharedMemoryFunctions& functions) const;
+
+  static constexpr int kInvalidFd = -1;
+  uintptr_t load_address_ = 0;
+  size_t load_size_ = 0;
+  uintptr_t relro_start_ = 0;
+  size_t relro_size_ = 0;
+  int relro_fd_ = kInvalidFd;
+  JNIEnv* const env_;
+  const jobject java_object_;
+};
+
+// JNI_OnLoad() initialization hook for the linker.
+// Sets up JNI and other initializations for native linker code.
+// |vm| is the Java VM handle passed to JNI_OnLoad().
+// |env| is the current JNI environment handle.
+// On success, returns true.
+bool LinkerJNIInit(JavaVM* vm, JNIEnv* env);
 
 }  // namespace chromium_android_linker
 
diff --git a/base/android/linker/linker_jni_onload.cc b/base/android/linker/linker_jni_onload.cc
index 94da7292..c4eecbb 100644
--- a/base/android/linker/linker_jni_onload.cc
+++ b/base/android/linker/linker_jni_onload.cc
@@ -10,22 +10,8 @@
 #include <jni.h>
 
 #include "base/android/linker/linker_jni.h"
-#include "base/android/linker/modern_linker_jni.h"
 
 namespace chromium_android_linker {
-namespace {
-
-bool LinkerJNIInit(JavaVM* vm, JNIEnv* env) {
-  // Find LibInfo field ids.
-  LOG_INFO("Caching field IDs");
-  if (!s_lib_info_fields.Init(env)) {
-    return false;
-  }
-
-  return true;
-}
-
-}  // namespace
 
 // JNI_OnLoad() is called when the linker library is loaded through the regular
 // System.LoadLibrary) API. This shall save the Java VM handle and initialize
@@ -37,9 +23,8 @@
     LOG_ERROR("Could not create JNIEnv");
     return -1;
   }
-  if (!LinkerJNIInit(vm, env) || !ModernLinkerJNIInit(vm, env)) {
+  if (!LinkerJNIInit(vm, env))
     return -1;
-  }
   LOG_INFO("Done");
   return JNI_VERSION_1_4;
 }
diff --git a/base/android/linker/linker_minimal_libcxx.cc b/base/android/linker/linker_minimal_libcxx.cc
new file mode 100644
index 0000000..6969005
--- /dev/null
+++ b/base/android/linker/linker_minimal_libcxx.cc
@@ -0,0 +1,79 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <android/log.h>
+#include <unistd.h>
+#include <cstddef>
+#include <cstdlib>
+
+// Custom implementation of new and delete, this prevents dragging
+// the libc++ implementation, which drags exception-related machine
+// code that is not needed here. This helps reduce the size of the
+// final binary considerably.
+
+// These symbols are not exported, thus this does not affect the libraries that
+// it will load, only the linker binary itself.
+void* operator new(size_t size) {
+  void* ptr = ::malloc(size);
+  if (ptr != nullptr)
+    return ptr;
+
+  // Don't assume it is possible to call any C library function like
+  // snprintf() here, since it might allocate heap memory and crash at
+  // runtime. Hence our fatal message does not contain the number of
+  // bytes requested by the allocation.
+  static const char kFatalMessage[] = "Out of memory!";
+#ifdef __ANDROID__
+  __android_log_write(ANDROID_LOG_FATAL, "linker", kFatalMessage);
+#else
+  ::write(STDERR_FILENO, kFatalMessage, sizeof(kFatalMessage) - 1);
+#endif
+  _exit(1);
+#if defined(__GNUC__)
+  __builtin_unreachable();
+#endif
+
+  // Adding a 'return nullptr' here will make the compiler error with a message
+  // stating that 'operator new(size_t)' is not allowed to return nullptr.
+  //
+  // Indeed, an new expression like 'new T' shall never return nullptr,
+  // according to the C++ specification, and an optimizing compiler will gladly
+  // remove any null-checks after them (something the Fuschsia team had to
+  // learn the hard way when writing their kernel in C++). What is meant here
+  // is something like:
+  //
+  //   Foo* foo = new Foo(10);
+  //   if (!foo) {                             <-- entire check and branch
+  //      ... Handle out-of-memory condition.  <-- removed by an optimizing
+  //   }                                       <-- compiler.
+  //
+  // Note that some C++ library implementations (e.g. recent libc++) recognize
+  // when they are compiled with -fno-exceptions and provide a simpler version
+  // of operator new that can return nullptr. However, it is very hard to
+  // guarantee at build time that this code is linked against such a version
+  // of the runtime. Moreoever, technically disabling exceptions is completely
+  // out-of-spec regarding the C++ language, and what the compiler is allowed
+  // to do in this case is mostly implementation-defined, so better be safe
+  // than sorry here.
+  //
+  // C++ provides a non-throwing new expression that can return a nullptr
+  // value, but it must be written as 'new (std::nothrow) T' instead of
+  // 'new T', and thus nobody uses this. This ends up calling
+  // 'operator new(size_t, const std::nothrow_t&)' which is not implemented
+  // here.
+}
+
+void* operator new[](size_t size) {
+  return operator new(size);
+}
+
+void operator delete(void* ptr) {
+  // The compiler-generated code already checked that |ptr != nullptr|
+  // so don't to it a second time.
+  ::free(ptr);
+}
+
+void operator delete[](void* ptr) {
+  ::free(ptr);
+}
diff --git a/base/android/linker/modern_linker_unittest.cc b/base/android/linker/linker_unittest.cc
similarity index 93%
rename from base/android/linker/modern_linker_unittest.cc
rename to base/android/linker/linker_unittest.cc
index d9b03a7..f6b1abe 100644
--- a/base/android/linker/modern_linker_unittest.cc
+++ b/base/android/linker/linker_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <link.h>
 #include <sys/mman.h>
 #include <sys/prctl.h>
 #include <sys/utsname.h>
 
 #include "base/android/linker/linker_jni.h"
-#include "base/android/linker/modern_linker_jni.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
 #include "base/system/sys_info.h"
@@ -131,20 +131,18 @@
 // These tests get linked with base_unittests and leave JNI uninitialized. The
 // tests must not execute any parts relying on initialization with JNI_Onload().
 
-class ModernLinkerTest : public testing::Test {
+class LinkerTest : public testing::Test {
  public:
-  ModernLinkerTest() = default;
-  ~ModernLinkerTest() override = default;
+  LinkerTest() = default;
+  ~LinkerTest() override = default;
 };
 
 // Checks that NativeLibInfo::CreateSharedRelroFd() creates a shared memory
 // region that is 'sealed' as read-only.
-TEST_F(ModernLinkerTest, CreatedRegionIsSealed) {
+TEST_F(LinkerTest, CreatedRegionIsSealed) {
   if (!NativeLibInfo::SharedMemoryFunctionsSupportedForTesting()) {
-    // The ModernLinker uses functions from libandroid.so that are not available
-    // on old Android releases. TODO(pasko): Add a fallback to ashmem for L-M,
-    // as it is done in crazylinker and enable the testing below for these
-    // devices.
+    // The Linker uses functions from libandroid.so that are not available
+    // on Android releases before O. Disable unittests for old releases.
     return;
   }
 
@@ -184,7 +182,7 @@
             mmap(nullptr, kRelroSize, PROT_WRITE, MAP_PRIVATE, relro_fd, 0));
 }
 
-TEST_F(ModernLinkerTest, FindReservedMemoryRegion) {
+TEST_F(LinkerTest, FindReservedMemoryRegion) {
   size_t address, size;
 
   // Find the existing reservation in the current process. The unittest runner
@@ -219,7 +217,7 @@
   munmap(synthetic_region_start, kSize);
 }
 
-TEST_F(ModernLinkerTest, FindLibraryRanges) {
+TEST_F(LinkerTest, FindLibraryRanges) {
   static int var_inside = 3;
 
   NativeLibInfo lib_info = {0, 0};
@@ -239,7 +237,7 @@
             lib_info.load_address() + lib_info.get_load_size_for_testing());
 }
 
-TEST_F(ModernLinkerTest, FindLibraryRangesWhenLoadAddressWasReset) {
+TEST_F(LinkerTest, FindLibraryRangesWhenLoadAddressWasReset) {
   NativeLibInfo other_lib_info = {0, 0};
   uintptr_t executable_start = reinterpret_cast<uintptr_t>(&__executable_start);
   other_lib_info.set_load_address(executable_start);
@@ -251,7 +249,7 @@
 // Check that discovering RELRO segment address ranges and the DSO ranges agrees
 // with the method based on dl_iterate_phdr(3). The check is performed on the
 // test library, not on libmonochrome.
-TEST_F(ModernLinkerTest, LibraryRangesViaIteratePhdr) {
+TEST_F(LinkerTest, LibraryRangesViaIteratePhdr) {
   // Find the ranges using dl_iterate_phdr().
   if (!dl_iterate_phdr) {
     ASSERT_TRUE(false) << "dl_iterate_phdr() not found";
diff --git a/base/android/linker/modern_linker_jni.cc b/base/android/linker/modern_linker_jni.cc
deleted file mode 100644
index 09850c3..0000000
--- a/base/android/linker/modern_linker_jni.cc
+++ /dev/null
@@ -1,720 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Uses android_dlopen_ext() to share relocations.
-//
-// See linker_jni.h for more details and the dependency rules.
-
-#include "base/android/linker/modern_linker_jni.h"
-
-#include <dlfcn.h>
-#include <elf.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <jni.h>
-#include <limits.h>
-#include <link.h>
-#include <stddef.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/syscall.h>
-#include <sys/types.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <limits>
-#include <memory>
-
-#include <android/dlext.h>
-#include "base/android/linker/linker_jni.h"
-
-extern "C" {
-// <android/dlext.h> does not declare android_dlopen_ext() if __ANDROID_API__
-// is smaller than 21, so declare it here as a weak function. This will allow
-// detecting its availability at runtime. For API level 21 or higher, the
-// attribute is ignored due to the previous declaration.
-void* android_dlopen_ext(const char*, int, const android_dlextinfo*)
-    __attribute__((weak_import));
-
-}  // extern "C"
-
-namespace chromium_android_linker {
-namespace {
-
-// Record of the Java VM passed to JNI_OnLoad().
-JavaVM* s_java_vm = nullptr;
-
-// Guarded by |mLock| in Linker.java.
-RelroSharingStatus s_relro_sharing_status = RelroSharingStatus::NOT_ATTEMPTED;
-
-// Calls the ModernLinker Java methods to record the time intervals in UMA. The
-// calls are made only once pre process, hence there is no need to cache the
-// values obtained from JNIEnv. The class must *not* be reused across different
-// Java->native calls because the |jclass| reference may become invalid in this
-// case.
-class LoadTimeReporterJni : public LoadTimeReporter {
- public:
-  LoadTimeReporterJni(JNIEnv* env, jclass modern_linker_jni_class)
-      : env_(env), class_(modern_linker_jni_class) {}
-
-  void reportDlopenExtTime(int64_t millis) const override {
-    env_->CallStaticVoidMethod(
-        class_, env_->GetStaticMethodID(class_, "reportDlopenExtTime", "(J)V"),
-        millis);
-  }
-
-  void reportIteratePhdrTime(int64_t millis) const override {
-    env_->CallStaticVoidMethod(
-        class_,
-        env_->GetStaticMethodID(class_, "reportIteratePhdrTime", "(J)V"),
-        millis);
-  }
-
- private:
-  // Not copyable or movable.
-  LoadTimeReporterJni(const LoadTimeReporterJni&) = delete;
-  LoadTimeReporterJni& operator=(const LoadTimeReporterJni&) = delete;
-
-  JNIEnv* env_;
-  jclass class_;
-};
-
-constexpr int64_t kMillisecondsPerSecond = 1'000;
-constexpr int64_t kNanosecondsPerMillisecond = 1'000'000;
-
-int64_t GetMillisNow() {
-  struct timespec ts;
-  if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) {
-    PLOG_ERROR("clock_gettime");
-    return 0;
-  }
-
-  int64_t result = ts.tv_sec;
-  result *= kMillisecondsPerSecond;
-  result += (ts.tv_nsec / kNanosecondsPerMillisecond);
-  return result;
-}
-
-}  // namespace
-
-// Starting with API level 26 (Android O) the following functions from
-// libandroid.so should be used to create shared memory regions to ensure
-// compatibility with the future versions:
-// * ASharedMemory_create()
-// * ASharedMemory_setProt()
-//
-// This is inspired by //third_party/ashmem/ashmem-dev.c, which cannot be
-// referenced from the linker library to avoid increasing binary size. Also
-// there is no need to support API level <26 for ModernLinker.
-//
-// *Not* threadsafe.
-struct SharedMemoryFunctions {
-  SharedMemoryFunctions() {
-    library_handle = dlopen("libandroid.so", RTLD_NOW);
-    create = reinterpret_cast<CreateFunction>(
-        dlsym(library_handle, "ASharedMemory_create"));
-    set_protection = reinterpret_cast<SetProtectionFunction>(
-        dlsym(library_handle, "ASharedMemory_setProt"));
-  }
-
-  bool IsWorking() const {
-    if (!create || !set_protection) {
-      LOG_ERROR("Cannot get the shared memory functions from libandroid");
-      return false;
-    }
-    return true;
-  }
-
-  ~SharedMemoryFunctions() {
-    if (library_handle)
-      dlclose(library_handle);
-  }
-
-  typedef int (*CreateFunction)(const char*, size_t);
-  typedef int (*SetProtectionFunction)(int fd, int prot);
-
-  CreateFunction create;
-  SetProtectionFunction set_protection;
-
-  void* library_handle = nullptr;
-};
-
-namespace {
-
-// Invokes android_dlopen_ext() to load the library into a given address range.
-// Assumes that the address range is already reserved with mmap(2). On success,
-// the |handle| of the loaded library is returned.
-//
-// Returns true iff this operation succeeds.
-bool AndroidDlopenExt(void* mapping_start,
-                      size_t mapping_size,
-                      const char* filename,
-                      void** handle) {
-  if (!android_dlopen_ext) {
-    LOG_ERROR("android_dlopen_ext is not found");
-    return false;
-  }
-
-  android_dlextinfo dlextinfo{};
-  dlextinfo.flags = ANDROID_DLEXT_RESERVED_ADDRESS;
-  dlextinfo.reserved_addr = mapping_start;
-  dlextinfo.reserved_size = mapping_size;
-
-  LOG_INFO(
-      "android_dlopen_ext:"
-      " flags=0x%" PRIx64 ", reserved_addr=%p, reserved_size=%zu",
-      dlextinfo.flags, dlextinfo.reserved_addr, dlextinfo.reserved_size);
-
-  void* rv = android_dlopen_ext(filename, RTLD_NOW, &dlextinfo);
-  if (rv == nullptr) {
-    LOG_ERROR("android_dlopen_ext: %s", dlerror());
-    return false;
-  }
-
-  *handle = rv;
-  return true;
-}
-
-// With munmap(2) unmaps the tail of the given contiguous range of virtual
-// memory. Ignores errors.
-void TrimMapping(uintptr_t address, size_t old_size, size_t new_size) {
-  if (old_size <= new_size) {
-    LOG_ERROR("WARNING: library reservation was too small");
-  } else {
-    // Unmap the part of the reserved address space that is beyond the end of
-    // the loaded library data.
-    const uintptr_t unmap = address + new_size;
-    const size_t length = old_size - new_size;
-    munmap(reinterpret_cast<void*>(unmap), length);
-  }
-}
-
-// Calls JNI_OnLoad() in the library referenced by |handle|.
-// Returns true for success.
-bool CallJniOnLoad(void* handle) {
-  LOG_INFO("Entering");
-  // Locate and if found then call the loaded library's JNI_OnLoad() function.
-  using JNI_OnLoadFunctionPtr = int (*)(void* vm, void* reserved);
-  auto jni_onload =
-      reinterpret_cast<JNI_OnLoadFunctionPtr>(dlsym(handle, "JNI_OnLoad"));
-  if (jni_onload != nullptr) {
-    // Check that JNI_OnLoad returns a usable JNI version.
-    int jni_version = (*jni_onload)(s_java_vm, nullptr);
-    if (jni_version < JNI_VERSION_1_4) {
-      LOG_ERROR("JNI version is invalid: %d", jni_version);
-      return false;
-    }
-  }
-
-  LOG_INFO("Done");
-  return true;
-}
-
-}  // namespace
-
-void NativeLibInfo::ExportLoadInfoToJava() const {
-  if (!env_)
-    return;
-  s_lib_info_fields.SetLoadInfo(env_, java_object_, load_address_, load_size_);
-}
-
-void NativeLibInfo::ExportRelroInfoToJava() const {
-  if (!env_)
-    return;
-  s_lib_info_fields.SetRelroInfo(env_, java_object_, relro_start_, relro_size_,
-                                 relro_fd_);
-}
-
-void NativeLibInfo::CloseRelroFd() {
-  if (relro_fd_ == kInvalidFd)
-    return;
-  close(relro_fd_);
-  relro_fd_ = kInvalidFd;
-}
-
-bool NativeLibInfo::FindRelroAndLibraryRangesInElf() {
-  LOG_INFO("Called for 0x%" PRIxPTR, load_address_);
-
-  // Check that an ELF library starts at the |load_address_|.
-  if (memcmp(reinterpret_cast<void*>(load_address_), ELFMAG, SELFMAG) != 0) {
-    LOG_ERROR("Wrong magic number");
-    return false;
-  }
-  auto class_type = *reinterpret_cast<uint8_t*>(load_address_ + EI_CLASS);
-  if (class_type == ELFCLASS32) {
-    LOG_INFO("ELFCLASS32");
-  } else if (class_type == ELFCLASS64) {
-    LOG_INFO("ELFCLASS64");
-  } else {
-    LOG_ERROR("Could not determine ELF class");
-    return false;
-  }
-
-  // Sanitycheck PAGE_SIZE before use.
-  int page_size = sysconf(_SC_PAGESIZE);
-  if (page_size != PAGE_SIZE)
-    abort();
-
-  // Compute the ranges of PT_LOAD segments and the PT_GNU_RELRO. It is possible
-  // to reach for the same information by iterating over all loaded libraries
-  // and their program headers using dl_iterate_phdr(3). Instead here the
-  // iteration goes through the array |e_phoff[e_phnum]| to avoid acquisition of
-  // the global lock in Bionic (dlfcn.cpp).
-  //
-  // The code relies on (1) having RELRO in the PT_GNU_RELRO segment, and (2)
-  // the fact that the address *range* occupied by the library is the minimal
-  // address range containing all of the PT_LOAD and PT_GNU_RELRO segments.
-  // This is a contract between the static linker and the dynamic linker which
-  // seems unlikely to get broken. It might break though as a result of
-  // post-processing the DSO, which has historically happened for a few
-  // occasions (eliminating the unwind tables and splitting the library into
-  // DFMs).
-  auto min_vaddr = std::numeric_limits<ElfW(Addr)>::max();
-  auto min_relro_vaddr = min_vaddr;
-  ElfW(Addr) max_vaddr = 0;
-  ElfW(Addr) max_relro_vaddr = 0;
-  const auto* ehdr = reinterpret_cast<const ElfW(Ehdr)*>(load_address_);
-  const auto* phdrs =
-      reinterpret_cast<const ElfW(Phdr)*>(load_address_ + ehdr->e_phoff);
-  for (int i = 0; i < ehdr->e_phnum; i++) {
-    const ElfW(Phdr)* phdr = &phdrs[i];
-    switch (phdr->p_type) {
-      case PT_LOAD:
-        if (phdr->p_vaddr < min_vaddr)
-          min_vaddr = phdr->p_vaddr;
-        if (phdr->p_vaddr + phdr->p_memsz > max_vaddr)
-          max_vaddr = phdr->p_vaddr + phdr->p_memsz;
-        break;
-      case PT_GNU_RELRO:
-        min_relro_vaddr = PAGE_START(phdr->p_vaddr);
-        max_relro_vaddr = phdr->p_vaddr + phdr->p_memsz;
-
-        // As of 2020-11 in libmonochrome.so RELRO is covered by a LOAD segment.
-        // It is not clear whether this property is going to be guaranteed in
-        // the future. Include the RELRO segment as part of the 'load size'.
-        // This way a potential future change in layout of LOAD segments would
-        // not open address space for racy mmap(MAP_FIXED).
-        if (min_relro_vaddr < min_vaddr)
-          min_vaddr = min_relro_vaddr;
-        if (max_vaddr < max_relro_vaddr)
-          max_vaddr = max_relro_vaddr;
-        break;
-      default:
-        break;
-    }
-  }
-
-  // Fill out size and RELRO information.
-  load_size_ = PAGE_END(max_vaddr) - PAGE_START(min_vaddr);
-  relro_size_ = PAGE_END(max_relro_vaddr) - PAGE_START(min_relro_vaddr);
-  relro_start_ = load_address_ + PAGE_START(min_relro_vaddr);
-  return true;
-}
-
-bool NativeLibInfo::LoadWithDlopenExt(const String& path,
-                                      const LoadTimeReporter& reporter,
-                                      void** handle) {
-  LOG_INFO("Entering");
-
-  // The address range must be reserved during initialization in Linker.java.
-  if (!load_address_) {
-    // TODO(pasko): measure how often this happens.
-    return false;
-  }
-
-  // Remember the memory reservation size. Starting from this point load_size_
-  // changes the meaning to reflect the size of the loaded library.
-  size_t reservation_size = load_size_;
-  auto* address = reinterpret_cast<void*>(load_address_);
-
-  // Invoke android_dlopen_ext.
-  int64_t ticks_initial = GetMillisNow();
-  void* local_handle = nullptr;
-  if (!AndroidDlopenExt(address, reservation_size, path.c_str(),
-                        &local_handle)) {
-    LOG_ERROR("android_dlopen_ext() error");
-    munmap(address, load_size_);
-    return false;
-  }
-  int64_t ticks_after_dlopen_ext = GetMillisNow();
-  reporter.reportDlopenExtTime(ticks_after_dlopen_ext - ticks_initial);
-
-  // Determine the library address ranges and the RELRO region.
-  if (!FindRelroAndLibraryRangesInElf()) {
-    // Fail early if PT_GNU_RELRO is not found. It likely indicates a
-    // build misconfiguration.
-    LOG_ERROR("Could not find RELRO in the loaded library: %s", path.c_str());
-    abort();
-  }
-  reporter.reportIteratePhdrTime(GetMillisNow() - ticks_after_dlopen_ext);
-
-  // Release the unused parts of the memory reservation.
-  TrimMapping(load_address_, reservation_size, load_size_);
-
-  *handle = local_handle;
-  return true;
-}
-
-bool NativeLibInfo::CreateSharedRelroFd(
-    const SharedMemoryFunctions& functions) {
-  LOG_INFO("Entering");
-  if (!relro_start_ || !relro_size_) {
-    LOG_ERROR("RELRO region is not populated");
-    return false;
-  }
-
-  // Create a writable shared memory region.
-  int shared_mem_fd = functions.create("cr_relro", relro_size_);
-  if (shared_mem_fd == -1) {
-    LOG_ERROR("Cannot create the shared memory file");
-    return false;
-  }
-  int rw_flags = PROT_READ | PROT_WRITE;
-  functions.set_protection(shared_mem_fd, rw_flags);
-
-  // Map the region as writable.
-  void* relro_copy_addr =
-      mmap(nullptr, relro_size_, rw_flags, MAP_SHARED, shared_mem_fd, 0);
-  if (relro_copy_addr == MAP_FAILED) {
-    PLOG_ERROR("failed to allocate space for copying RELRO");
-    close(shared_mem_fd);
-    return false;
-  }
-
-  // Populate the shared memory region with the contents of RELRO.
-  void* relro_addr = reinterpret_cast<void*>(relro_start_);
-  memcpy(relro_copy_addr, relro_addr, relro_size_);
-
-  // Protect the underlying physical pages from further modifications from all
-  // processes including the forked ones.
-  //
-  // Setting protection flags on the region to read-only guarantees that the
-  // memory can no longer get mapped as writable, for any FD pointing to the
-  // region, for any process. It is necessary to also munmap(2) the existing
-  // writable memory mappings, since they are not directly affected by the
-  // change of region's protection flags.
-  munmap(relro_copy_addr, relro_size_);
-  if (functions.set_protection(shared_mem_fd, PROT_READ) == -1) {
-    LOG_ERROR("Failed to set the RELRO FD as read-only.");
-    close(shared_mem_fd);
-    return false;
-  }
-
-  relro_fd_ = shared_mem_fd;
-  return true;
-}
-
-bool NativeLibInfo::ReplaceRelroWithSharedOne(
-    const SharedMemoryFunctions& functions) const {
-  LOG_INFO("Entering");
-  if (relro_fd_ == -1 || !relro_start_ || !relro_size_) {
-    LOG_ERROR("Replacement RELRO not ready");
-    return false;
-  }
-
-  // Map as read-only to *atomically* replace the RELRO region provided by the
-  // dynamic linker. To avoid memory corruption it is important that the
-  // contents of both memory regions is identical.
-  void* new_addr = mmap(reinterpret_cast<void*>(relro_start_), relro_size_,
-                        PROT_READ, MAP_FIXED | MAP_SHARED, relro_fd_, 0);
-  if (new_addr == MAP_FAILED) {
-    PLOG_ERROR("mmap: replace RELRO");
-    return false;
-  }
-
-  LOG_INFO("Replaced RELRO at 0x%" PRIxPTR, relro_start_);
-  return true;
-}
-
-NativeLibInfo::NativeLibInfo(JNIEnv* env, jobject java_object)
-    : env_(env), java_object_(java_object) {}
-
-bool NativeLibInfo::CopyFromJavaObject() {
-  if (!env_)
-    return false;
-
-  if (!s_lib_info_fields.GetLoadInfo(env_, java_object_, &load_address_,
-                                     &load_size_)) {
-    return false;
-  }
-  s_lib_info_fields.GetRelroInfo(env_, java_object_, &relro_start_,
-                                 &relro_size_, &relro_fd_);
-  return true;
-}
-
-bool NativeLibInfo::LoadLibrary(const String& library_path,
-                                bool spawn_relro_region,
-                                const LoadTimeReporter& reporter) {
-  // Load the library.
-  void* handle = nullptr;
-  if (!LoadWithDlopenExt(library_path, reporter, &handle)) {
-    LOG_ERROR("Failed to load native library: %s", library_path.c_str());
-    return false;
-  }
-  if (!CallJniOnLoad(handle))
-    return false;
-
-  // Publish the library size and load address back to LibInfo in Java.
-  ExportLoadInfoToJava();
-
-  if (!spawn_relro_region)
-    return true;
-
-  // Spawn RELRO to a shared memory region by copying and remapping on top of
-  // itself.
-  SharedMemoryFunctions functions;
-  if (!functions.IsWorking())
-    return false;
-  if (!CreateSharedRelroFd(functions)) {
-    LOG_ERROR("Failed to create shared RELRO");
-    return false;
-  }
-  if (!ReplaceRelroWithSharedOne(functions)) {
-    LOG_ERROR("Failed to convert RELRO to shared memory");
-    CloseRelroFd();
-    return false;
-  }
-
-  LOG_INFO(
-      "Created and converted RELRO to shared memory: relro_fd=%d, "
-      "relro_start=0x%" PRIxPTR,
-      relro_fd_, relro_start_);
-  ExportRelroInfoToJava();
-  return true;
-}
-
-bool NativeLibInfo::RelroIsIdentical(
-    const NativeLibInfo& other_lib_info,
-    const SharedMemoryFunctions& functions) const {
-  // Abandon sharing if contents of the incoming RELRO region does not match the
-  // current one. This can be useful for debugging, but should never happen in
-  // the field.
-  if (other_lib_info.relro_start_ != relro_start_ ||
-      other_lib_info.relro_size_ != relro_size_ ||
-      other_lib_info.load_size_ != load_size_) {
-    LOG_ERROR("Incoming RELRO size does not match RELRO of the loaded library");
-    return false;
-  }
-  void* shared_relro_address =
-      mmap(nullptr, other_lib_info.relro_size_, PROT_READ, MAP_SHARED,
-           other_lib_info.relro_fd_, 0);
-  if (shared_relro_address == MAP_FAILED) {
-    PLOG_ERROR("mmap: check RELRO is identical");
-    return false;
-  }
-  void* current_relro_address = reinterpret_cast<void*>(relro_start_);
-  int not_equal =
-      memcmp(shared_relro_address, current_relro_address, relro_size_);
-  munmap(shared_relro_address, relro_size_);
-  if (not_equal) {
-    LOG_ERROR("Relocations are not identical, giving up.");
-    return false;
-  }
-  return true;
-}
-
-bool NativeLibInfo::CompareRelroAndReplaceItBy(
-    const NativeLibInfo& other_lib_info) {
-  if (other_lib_info.relro_fd_ == -1) {
-    LOG_ERROR("No shared region to use");
-    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_RELRO_FD_NOT_PROVIDED;
-    return false;
-  }
-
-  if (load_address_ == 0) {
-    LOG_ERROR("Load address reset. Second attempt to load the library?");
-    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_LOAD_ADDRESS_RESET;
-    return false;
-  }
-
-  if (!FindRelroAndLibraryRangesInElf()) {
-    LOG_ERROR("Could not find RELRO from externally provided address: 0x%p",
-              reinterpret_cast<void*>(other_lib_info.load_address_));
-    s_relro_sharing_status = RelroSharingStatus::EXTERNAL_RELRO_NOT_FOUND;
-    return false;
-  }
-
-  SharedMemoryFunctions functions;
-  if (!functions.IsWorking()) {
-    s_relro_sharing_status = RelroSharingStatus::NO_SHMEM_FUNCTIONS;
-    return false;
-  }
-  if (!RelroIsIdentical(other_lib_info, functions)) {
-    LOG_ERROR("RELRO is not identical");
-    s_relro_sharing_status = RelroSharingStatus::NOT_IDENTICAL;
-    return false;
-  }
-
-  // Make it shared.
-  //
-  // The alternative approach to invoke mprotect+mremap is probably faster than
-  // munmap+mmap here. The advantage of the latter is that it removes all
-  // formerly writable mappings, so:
-  //  * It does not rely on disallowing mprotect(PROT_WRITE)
-  //  * This way |ReplaceRelroWithSharedOne()| is reused across spawning RELRO
-  //    and receiving it
-  if (!other_lib_info.ReplaceRelroWithSharedOne(functions)) {
-    LOG_ERROR("Failed to use relro_fd");
-    s_relro_sharing_status = RelroSharingStatus::REMAP_FAILED;
-    return false;
-  }
-
-  s_relro_sharing_status = RelroSharingStatus::SHARED;
-  return true;
-}
-
-bool NativeLibInfo::CreateSharedRelroFdForTesting() {
-  // The library providing these functions will be dlclose()-ed after returning
-  // from this context. The extra overhead of dlopen() is OK for testing.
-  SharedMemoryFunctions functions;
-  if (!functions.IsWorking())
-    abort();
-  return CreateSharedRelroFd(functions);
-}
-
-// static
-bool NativeLibInfo::SharedMemoryFunctionsSupportedForTesting() {
-  SharedMemoryFunctions functions;
-  return functions.IsWorking();
-}
-
-JNI_GENERATOR_EXPORT jboolean
-Java_org_chromium_base_library_1loader_LinkerJni_nativeLoadLibrary(
-    JNIEnv* env,
-    jclass clazz,
-    jstring jdlopen_ext_path,
-    jobject lib_info_obj,
-    jboolean spawn_relro_region) {
-  LOG_INFO("Entering");
-
-  // Copy the contents from the Java-side LibInfo object.
-  NativeLibInfo lib_info = {env, lib_info_obj};
-  if (!lib_info.CopyFromJavaObject())
-    return false;
-
-  String library_path(env, jdlopen_ext_path);
-  LoadTimeReporterJni reporter = {env, clazz};
-  if (!lib_info.LoadLibrary(library_path, spawn_relro_region, reporter)) {
-    return false;
-  }
-  return true;
-}
-
-JNI_GENERATOR_EXPORT jboolean
-Java_org_chromium_base_library_1loader_LinkerJni_nativeUseRelros(
-    JNIEnv* env,
-    jclass clazz,
-    jlong local_load_address,
-    jobject remote_lib_info_obj) {
-  LOG_INFO("Entering");
-  // Copy the contents from the Java-side LibInfo object.
-  NativeLibInfo incoming_lib_info = {env, remote_lib_info_obj};
-  if (!incoming_lib_info.CopyFromJavaObject()) {
-    s_relro_sharing_status = RelroSharingStatus::CORRUPTED_IN_JAVA;
-    return false;
-  }
-
-  // Create an empty NativeLibInfo to extract the current information about the
-  // loaded library and later compare with the contents of the
-  // |incoming_lib_info|.
-  NativeLibInfo lib_info = {nullptr, nullptr};
-  lib_info.set_load_address(static_cast<uintptr_t>(local_load_address));
-
-  if (!lib_info.CompareRelroAndReplaceItBy(incoming_lib_info)) {
-    return false;
-  }
-  return true;
-}
-
-JNI_GENERATOR_EXPORT jint
-Java_org_chromium_base_library_1loader_LinkerJni_nativeGetRelroSharingResult(
-    JNIEnv* env,
-    jclass clazz) {
-  return static_cast<jint>(s_relro_sharing_status);
-}
-
-bool ModernLinkerJNIInit(JavaVM* vm, JNIEnv* env) {
-  s_java_vm = vm;
-  return true;
-}
-
-}  // namespace chromium_android_linker
-
-// Custom implementation of new and delete, this prevents dragging
-// the libc++ implementation, which drags exception-related machine
-// code that is not needed here. This helps reduce the size of the
-// final binary considerably.
-
-// Avoid these definitions in unittests because they link against the C++
-// library causing symbol duplication.
-#if !defined(UNIT_TEST)
-
-// These symbols are not exported, thus this does not affect the libraries that
-// it will load, only the linker binary itself.
-void* operator new(size_t size) {
-  void* ptr = ::malloc(size);
-  if (ptr != nullptr)
-    return ptr;
-
-  // Don't assume it is possible to call any C library function like
-  // snprintf() here, since it might allocate heap memory and crash at
-  // runtime. Hence our fatal message does not contain the number of
-  // bytes requested by the allocation.
-  static const char kFatalMessage[] = "Out of memory!";
-#ifdef __ANDROID__
-  __android_log_write(ANDROID_LOG_FATAL, "linker", kFatalMessage);
-#else
-  ::write(STDERR_FILENO, kFatalMessage, sizeof(kFatalMessage) - 1);
-#endif
-  _exit(1);
-#if defined(__GNUC__)
-  __builtin_unreachable();
-#endif
-
-  // Adding a 'return nullptr' here will make the compiler error with a message
-  // stating that 'operator new(size_t)' is not allowed to return nullptr.
-  //
-  // Indeed, an new expression like 'new T' shall never return nullptr,
-  // according to the C++ specification, and an optimizing compiler will gladly
-  // remove any null-checks after them (something the Fuschsia team had to
-  // learn the hard way when writing their kernel in C++). What is meant here
-  // is something like:
-  //
-  //   Foo* foo = new Foo(10);
-  //   if (!foo) {                             <-- entire check and branch
-  //      ... Handle out-of-memory condition.  <-- removed by an optimizing
-  //   }                                       <-- compiler.
-  //
-  // Note that some C++ library implementations (e.g. recent libc++) recognize
-  // when they are compiled with -fno-exceptions and provide a simpler version
-  // of operator new that can return nullptr. However, it is very hard to
-  // guarantee at build time that this code is linked against such a version
-  // of the runtime. Moreoever, technically disabling exceptions is completely
-  // out-of-spec regarding the C++ language, and what the compiler is allowed
-  // to do in this case is mostly implementation-defined, so better be safe
-  // than sorry here.
-  //
-  // C++ provides a non-throwing new expression that can return a nullptr
-  // value, but it must be written as 'new (std::nothrow) T' instead of
-  // 'new T', and thus nobody uses this. This ends up calling
-  // 'operator new(size_t, const std::nothrow_t&)' which is not implemented
-  // here.
-}
-
-void* operator new[](size_t size) {
-  return operator new(size);
-}
-
-void operator delete(void* ptr) {
-  // The compiler-generated code already checked that |ptr != nullptr|
-  // so don't to it a second time.
-  ::free(ptr);
-}
-
-void operator delete[](void* ptr) {
-  ::free(ptr);
-}
-#endif  // UNIT_TEST
diff --git a/base/android/linker/modern_linker_jni.h b/base/android/linker/modern_linker_jni.h
deleted file mode 100644
index 72465b6..0000000
--- a/base/android/linker/modern_linker_jni.h
+++ /dev/null
@@ -1,192 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_ANDROID_LINKER_MODERN_LINKER_JNI_H_
-#define BASE_ANDROID_LINKER_MODERN_LINKER_JNI_H_
-
-#include <jni.h>
-#include <link.h>
-
-namespace chromium_android_linker {
-
-class String;
-
-// Used to find out whether RELRO sharing is often rejected due to mismatch of
-// the contents.
-//
-// These values are persisted to logs. Entries should not be renumbered and
-// numeric values should never be reused. Must be kept in sync with the enum
-// in enums.xml. A java @IntDef is generated from this.
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base.library_loader
-enum class RelroSharingStatus {
-  NOT_ATTEMPTED = 0,
-  SHARED = 1,
-  NOT_IDENTICAL = 2,
-  EXTERNAL_RELRO_FD_NOT_PROVIDED = 3,
-  EXTERNAL_RELRO_NOT_FOUND = 4,
-  NO_SHMEM_FUNCTIONS = 5,
-  REMAP_FAILED = 6,
-  CORRUPTED_IN_JAVA = 7,
-  EXTERNAL_LOAD_ADDRESS_RESET = 8,
-  COUNT = 9,
-};
-
-struct SharedMemoryFunctions;
-
-// Abstract class for NativeLibInfo to use for miscellaneous time measurements.
-// Best to be provided with values from the same clock as
-// SystemClock.uptimeMillis().
-//
-// *Not* threadsafe.
-class LoadTimeReporter {
- public:
-  virtual ~LoadTimeReporter() = default;
-
-  // Report the time it took to run android_dlopen_ext().
-  virtual void reportDlopenExtTime(int64_t milliseconds_since_boot) const = 0;
-
-  // Report the time it took to find the RELRO region using dl_iterate_phdr().
-  virtual void reportIteratePhdrTime(int64_t milliseconds_since_boot) const = 0;
-};
-
-// Holds address ranges of the loaded native library, its RELRO region, along
-// with the RELRO FD identifying the shared memory region. Carries the same
-// members as the Java-side LibInfo (without mLibFilePath), allowing to
-// internally import/export the member values from/to the Java-side counterpart.
-//
-// Does *not* own the RELRO FD as soon as the latter gets exported to Java
-// (as a result of 'spawning' the RELRO region as shared memory.
-//
-// *Not* threadsafe.
-class NativeLibInfo {
- public:
-  // Constructs an empty instance. The |java_object| indicates the handle to
-  // import and export member fields.
-  //
-  // Having |env| as |nullptr| disables export to java for the lifetime of the
-  // instance. This is useful as a scratch info that is gradually populated for
-  // comparison with another NativeLibInfo, and then discarded.
-  NativeLibInfo(JNIEnv* env, jobject java_object);
-
-  // Copies the java-side object state to this native instance. Returns false
-  // iff an imported value is invalid.
-  bool CopyFromJavaObject();
-
-  void set_load_address(uintptr_t a) { load_address_ = a; }
-
-  uintptr_t load_address() const { return load_address_; }
-
-  // Loads the native library using android_dlopen_ext and invokes JNI_OnLoad().
-  //
-  // On a successful load exports the address range of the library to the
-  // Java-side LibInfo.
-  //
-  // Iff |spawn_relro_region| is true, also finds the RELRO region in the
-  // library (PT_GNU_RELRO), converts it to be backed by a shared memory region
-  // (here referred as "RELRO FD") and exports the RELRO information to Java
-  // (the address range and the RELRO FD).
-  //
-  // When spawned, the shared memory region is exported only after sealing as
-  // read-only and without writable memory mappings. This allows any process to
-  // provide RELRO FD before it starts processing arbitrary input. For example,
-  // an App Zygote can create a RELRO FD in a sufficiently trustworthy way to
-  // make the Browser/Privileged processes share the region with it.
-  bool LoadLibrary(const String& library_path,
-                   bool spawn_relro_region,
-                   const LoadTimeReporter& reporter);
-
-  // Finds the RELRO region in the native library identified by
-  // |this->load_address()| and replaces it with the shared memory region
-  // identified by |other_lib_info|.
-  //
-  // The external NativeLibInfo can arrive from a different process.
-  //
-  // Note on security: The RELRO region is treated as *trusted*, no untrusted
-  // user/website/network input can be processed in an isolated process before
-  // it sends the RELRO FD. This is because there is no way to check whether the
-  // process has a writable mapping of the region remaining.
-  bool CompareRelroAndReplaceItBy(const NativeLibInfo& other_lib_info);
-
-  void set_relro_info_for_testing(uintptr_t start, size_t size) {
-    relro_start_ = start;
-    relro_size_ = size;
-  }
-
-  // Creates a shared RELRO region as it normally would during LoadLibrary()
-  // with |spawn_relro_region=true|. Exposed here because it is difficult to
-  // unittest LoadLibrary() directly.
-  bool CreateSharedRelroFdForTesting();
-
-  void set_relro_fd_for_testing(int fd) { relro_fd_ = fd; }
-  int get_relro_fd_for_testing() const { return relro_fd_; }
-  size_t get_relro_start_for_testing() const { return relro_start_; }
-  size_t get_load_size_for_testing() const { return load_size_; }
-
-  static bool SharedMemoryFunctionsSupportedForTesting();
-
-  bool FindRelroAndLibraryRangesInElfForTesting() {
-    return FindRelroAndLibraryRangesInElf();
-  }
-
- private:
-  NativeLibInfo() = delete;
-
-  // Not copyable or movable.
-  NativeLibInfo(const NativeLibInfo&) = delete;
-  NativeLibInfo& operator=(const NativeLibInfo&) = delete;
-
-  // Exports the address range of the library described by |this| to the
-  // Java-side LibInfo.
-  void ExportLoadInfoToJava() const;
-
-  // Exports the address range of the RELRO region and RELRO FD described by
-  // |this| to the Java-side LibInfo.
-  void ExportRelroInfoToJava() const;
-
-  void CloseRelroFd();
-
-  // Determines the minimal address ranges for the union of all the loadable
-  // (and RELRO) segments by parsing ELF starting at |load_address()|. May fail
-  // or return incorrect results for some creative ELF libraries.
-  bool FindRelroAndLibraryRangesInElf();
-
-  // Loads and initializes the load address ranges: |load_address_|,
-  // |load_size_|. Assumes that the memory range is reserved (in Linker.java).
-  bool LoadWithDlopenExt(const String& path,
-                         const LoadTimeReporter& reporter,
-                         void** handle);
-
-  // Initializes |relro_fd_| with a newly created read-only shared memory region
-  // sized as the library's RELRO and with identical data.
-  bool CreateSharedRelroFd(const SharedMemoryFunctions& functions);
-
-  // Assuming that RELRO-related information is populated, memory-maps the RELRO
-  // FD on top of the library's RELRO.
-  bool ReplaceRelroWithSharedOne(const SharedMemoryFunctions& functions) const;
-
-  // Returns true iff the RELRO address and size, along with the contents are
-  // equal among the two.
-  bool RelroIsIdentical(const NativeLibInfo& external_lib_info,
-                        const SharedMemoryFunctions& functions) const;
-
-  static constexpr int kInvalidFd = -1;
-  uintptr_t load_address_ = 0;
-  size_t load_size_ = 0;
-  uintptr_t relro_start_ = 0;
-  size_t relro_size_ = 0;
-  int relro_fd_ = kInvalidFd;
-  JNIEnv* const env_;
-  const jobject java_object_;
-};
-
-// JNI_OnLoad() initialization hook for the modern linker.
-// Sets up JNI and other initializations for native linker code.
-// |vm| is the Java VM handle passed to JNI_OnLoad().
-// |env| is the current JNI environment handle.
-// On success, returns true.
-extern bool ModernLinkerJNIInit(JavaVM* vm, JNIEnv* env);
-
-}  // namespace chromium_android_linker
-
-#endif  // BASE_ANDROID_LINKER_MODERN_LINKER_JNI_H_
diff --git a/build/android/gyp/lint.py b/build/android/gyp/lint.py
index fdef7935..9666fa5 100755
--- a/build/android/gyp/lint.py
+++ b/build/android/gyp/lint.py
@@ -29,6 +29,7 @@
     "InflateParams",  # Null is ok when inflating views for dialogs.
     "InlinedApi",  # Constants are copied so they are always available.
     "LintBaseline",  # Don't warn about using baseline.xml files.
+    "MissingInflatedId",  # False positives https://crbug.com/1394222
     "MissingApplicationIcon",  # False positive for non-production targets.
     "ObsoleteLintCustomCheck",  # We have no control over custom lint checks.
     "SwitchIntDef",  # Many C++ enums are not used at all in java.
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1
index dc8fcca7..747fdf0 100644
--- a/build/fuchsia/linux_internal.sdk.sha1
+++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@
-10.20221128.2.1
+10.20221129.0.1
diff --git a/chrome/android/expectations/chrome_modern_public_bundle.arm64.libs_and_assets.expected b/chrome/android/expectations/chrome_modern_public_bundle.arm64.libs_and_assets.expected
index 4999cda..5100197 100644
--- a/chrome/android/expectations/chrome_modern_public_bundle.arm64.libs_and_assets.expected
+++ b/chrome/android/expectations/chrome_modern_public_bundle.arm64.libs_and_assets.expected
@@ -1,6 +1,5 @@
 apk_path=lib/arm64-v8a/libchrome.so, compress=False, alignment=4096
 apk_path=lib/arm64-v8a/libchrome_crashpad_handler.so, compress=True, alignment=0
-apk_path=lib/arm64-v8a/libchromium_android_linker.so, compress=True, alignment=0
 apk_path=lib/arm64-v8a/liboptimization_guide_internal.so, compress=False, alignment=4096
 apk_path=assets/chrome_100_percent.pak, compress=False, alignment=4
 apk_path=assets/icudtl.dat, compress=False, alignment=4
diff --git a/chrome/android/expectations/monochrome_public_bundle.arm64.libs_and_assets.expected b/chrome/android/expectations/monochrome_public_bundle.arm64.libs_and_assets.expected
index 1fe86148..63949774 100644
--- a/chrome/android/expectations/monochrome_public_bundle.arm64.libs_and_assets.expected
+++ b/chrome/android/expectations/monochrome_public_bundle.arm64.libs_and_assets.expected
@@ -3,7 +3,6 @@
 apk_path=lib/armeabi-v7a/libarcore_sdk_c.so, compress=False, alignment=4096
 apk_path=lib/armeabi-v7a/libcrashpad_handler_trampoline.so, compress=False, alignment=4096
 apk_path=lib/armeabi-v7a/libmonochrome.so, compress=False, alignment=4096
-apk_path=lib/armeabi-v7a/liboptimization_guide_internal.so, compress=False, alignment=4096
 apk_path=assets/chrome_100_percent.pak, compress=False, alignment=4
 apk_path=assets/icudtl.dat, compress=False, alignment=4
 apk_path=assets/locales/af.pak, compress=False, alignment=4
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index e2f4b54..9f4a3ba4 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -1299,6 +1299,7 @@
 <translation id="2157875535253991059">Hierdie bladsy is nou volskerm.</translation>
 <translation id="2158475082070321257">Kopieer skakel na hoogtepunt</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Omvang van <ph name="SHORTCUT" /> vir <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Voeg Wi-Fi by …</translation>
 <translation id="2162155940152307086">Sinkronisering sal begin sodra jy sinkroniseringinstellings verlaat</translation>
 <translation id="2162705204091149050">Lees inligting oor jou blaaier, bedryfstelsel, toestel, geïnstalleerde sagteware en lêers</translation>
@@ -2090,7 +2091,6 @@
 <translation id="2852385257476173980">’n Lys werwe wat jy besoek, kan hier verskyn terwyl jy deur die web blaai</translation>
 <translation id="285241945869362924">Skep outomaties onderskrifte vir oudio en video. Oudio en onderskrifte verlaat nooit jou toestel nie.</translation>
 <translation id="2856776373509145513">Skep 'n nuwe houer</translation>
-<translation id="2858138569776157458">Topwerwe</translation>
 <translation id="2861301611394761800">Stelselopdatering voltooi. Herbegin asseblief die stelsel.</translation>
 <translation id="2861941300086904918">Toestelspesifieke kliënt se sekuriteitsbestuurder</translation>
 <translation id="2862815659905780618">Verwyder Linux-ontwikkelingomgewing</translation>
@@ -2377,6 +2377,7 @@
 <translation id="3129173833825111527">Linkerkantlyn</translation>
 <translation id="3129215702932019810">Kon nie program begin nie</translation>
 <translation id="3130528281680948470">Jou toestel sal teruggestel word en alle gebruikerrekeninge en plaaslike data sal verwyder word. Dit kan nie ontdoen word nie.</translation>
+<translation id="3130863904455712965">Geskiedenis en meer</translation>
 <translation id="313205617302240621">Het jy jou wagwoord vergeet?</translation>
 <translation id="3132277757485842847">Ons kon nie 'n verbinding met jou foon behou nie. Maak seker dat jou foon in die omtrek is en ontsluit is, en dat Bluetooth en wi-fi aangeskakel is.</translation>
 <translation id="3132896062549112541">Reël</translation>
@@ -2390,7 +2391,6 @@
 <translation id="3143515551205905069">Kanselleer sinkronisering</translation>
 <translation id="3143754809889689516">Speel van die begin af</translation>
 <translation id="3144647712221361880">Maak skakel oop as</translation>
-<translation id="3144896554017119333">UItbreidings en meer</translation>
 <translation id="3149510190863420837">Chrome-programme</translation>
 <translation id="3150693969729403281">Doen veiligheidskontrole nou</translation>
 <translation id="3150927491400159470">Harde-herlaai</translation>
@@ -2688,6 +2688,7 @@
 <translation id="3445047461171030979">Vinnige antwoorde in Google Assistent</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min.</translation>
 <translation id="344537926140058498">Jou organisasie het hierdie lêer geblokkeer omdat dit sensitiewe of gevaarlike inhoud het. Vra die eienaar om dit reg te stel.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Toestemmings is verwyder vir <ph name="BEGIN_BOLD" />1 werf<ph name="END_BOLD" /> wat jy nie onlangs besoek het nie}other{Toestemmings is verwyder vir <ph name="BEGIN_BOLD" />{NUM_SITES} werwe<ph name="END_BOLD" /> wat jy nie onlangs besoek het nie}}</translation>
 <translation id="3445925074670675829">USB C-toestel</translation>
 <translation id="3446274660183028131">Begin Parallels Desktop om Windows te installeer.</translation>
 <translation id="344630545793878684">Lees jou data op 'n aantal webwerwe</translation>
@@ -2899,6 +2900,7 @@
 <translation id="3642699533549879077">Jy sal ’n opletberig kry en kennisgewinginhoud sal versteek word wanneer iemand anders na jou skerm kyk.</translation>
 <translation id="3643962751030964445">Hierdie toestel word deur <ph name="DEVICE_MANAGER" /> bestuur. <ph name="DEVICE_MANAGER" /> vereis ’n nuwe profiel vir die rekening <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Beweeg effens om 'n ander deel van die vingerafdruk vas te vang.</translation>
+<translation id="3647051300407077858">Gaan kennisgewingtoestemmings na</translation>
 <translation id="3647654707956482440">Kan nie hierdie skakel gebruik nie. Kyk vir tikfoute of gebruik ’n ander skakel om weer te probeer.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> is van <ph name="DEVICE_NAME" /> af ontvang}other{<ph name="ATTACHMENTS" /> is van <ph name="DEVICE_NAME" /> af ontvang}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> bespeur</translation>
@@ -3078,6 +3080,7 @@
 <translation id="380408572480438692">As die insameling van prestasiedata geaktiveer word, sal dit Google help om die stelsel oor tyd te verbeter. Geen data word gestuur totdat jy 'n terugvoeringverslag (Alt-Shift-I) indien en prestasiedata insluit nie. Jy kan te eniger tyd na hierdie skerm terugkeer om insameling te deaktiveer.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (uitbreiding-ID "<ph name="EXTENSION_ID" />") word nie op 'n aanmeldskerm toegelaat nie.</translation>
 <translation id="3807747707162121253">Kanselleer</translation>
+<translation id="3808202562160426447">Verdonker agtergrondinhoud</translation>
 <translation id="3808443763115411087">Android-programontwikkeling in Crostini</translation>
 <translation id="38089336910894858">Wys waarskuwing voordat jy uitgaan by ⌘Q</translation>
 <translation id="3809272675881623365">Haas</translation>
@@ -3669,6 +3672,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deel tans 'n venster.</translation>
 <translation id="4364830672918311045">Wys kennisgewings</translation>
 <translation id="4366138410738374926">Drukwerk het begin</translation>
+<translation id="4367513928820380646">Gaan verwyderde toestemmings na</translation>
 <translation id="4369121877634339065">Sleep oor enige prent om te soek</translation>
 <translation id="4369215744064167350">Webwerfversoek is goedgekeur</translation>
 <translation id="4370975561335139969">Die e-posadres en wagwoord wat jy ingevoer het, pas nie</translation>
@@ -4389,6 +4393,7 @@
 <translation id="5045550434625856497">Verkeerde wagwoord</translation>
 <translation id="504561833207953641">Maak tans in bestaande blaaiersessie oop.</translation>
 <translation id="5049614114599109018">Gebruik invoergeskiedenis</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Hierdie werf het onlangs baie kennisgewings gestuur. Jy kan dit keer om in die toekoms kennisgewings te stuur.}other{Hierdie werwe het onlangs baie kennisgewings gestuur. Jy kan hulle keer om in die toekoms kennisgewings te stuur.}}</translation>
 <translation id="5051836348807686060">Speltoets word nie gesteun vir die tale wat jy gekies het nie</translation>
 <translation id="5052499409147950210">Redigeer werf</translation>
 <translation id="505347685865235222">Naamlose groep – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7286,6 +7291,7 @@
 <translation id="7775694664330414886">Oortjie is geskuif na naamlose groep – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> sal lêers in <ph name="FOLDERNAME" /> kan bekyk totdat jy alle oortjies vir hierdie werf toemaak</translation>
 <translation id="7776701556330691704">Geen stemme gevind nie</translation>
+<translation id="7777624210360383048">Kortpad <ph name="SHORTCUT" /> vir <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Alle gebruikerrekeninge en plaaslike data sal verwyder word.</translation>
 <translation id="7782102568078991263">Nie nog voorstelle van Google af nie</translation>
 <translation id="7782717250816686129">Berg aanhoudende data op die aanmeldskerm en voeg eiebewyse by die sessie.</translation>
@@ -7318,6 +7324,7 @@
 <translation id="7807711621188256451">Laat <ph name="HOST" /> altyd toe om by jou kamera in te gaan</translation>
 <translation id="7810202088502699111">Opspringers is op hierdie bladsy geblokkeer.</translation>
 <translation id="7814458197256864873">Kopieer</translation>
+<translation id="7815583197273433531">Wysig kortpad <ph name="SHORTCUT" /> vir <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Gevaarlike aflaai is geblokkeer</translation>
 <translation id="7817361223956157679">Die skermsleutelbord werk nog nie in Linux-programme nie</translation>
 <translation id="7818135753970109980">Nuwe tema bygevoeg (<ph name="EXTENSION_NAME" />)</translation>
@@ -7392,6 +7399,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Bekyk rekening</translation>
 <translation id="7883792253546618164">Teken enige tyd uit.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Gaan 1 werf na wat baie kennisgewings gestuur het}other{Gaan {NUM_SITES} werwe na wat baie kennisgewings gestuur het}}</translation>
 <translation id="788453346724465748">Laai tans rekeninginligting …</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{'n item}other{# items}}</translation>
 <translation id="7886605625338676841">e-SIM</translation>
@@ -8446,6 +8454,7 @@
 <translation id="8859174528519900719">Subraam: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8859402192569844210">Kon nie diensbepalings laai nie</translation>
 <translation id="8859662783913000679">Ouerrekening</translation>
+<translation id="8860973272057162405">{COUNT,plural, =1{{COUNT} rekening}other{{COUNT} rekeninge}}</translation>
 <translation id="8861568709166518036">Gebruik skermknoppies om na die tuisblad toe te gaan, terug te gaan en tussen programme te wissel. Skakel outomaties aan as ChromeVox of outomatiese klikke aangeskakel is.</translation>
 <translation id="8862003515646449717">Wissel na 'n vinnige blaaier</translation>
 <translation id="8863753581171631212">Maak skakel in nuwe <ph name="APP" /> oop</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 0e1daec..190d6a04 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -2082,7 +2082,6 @@
 <translation id="2852385257476173980">ድሩን ሲያስሱ የሚጎበኟቸው የጣቢያዎች ዝርዝር እዚህ ሊታይ ይችላል</translation>
 <translation id="285241945869362924">ለኦዲዮ እና ለቪዲዮ የመግለጫ ጽሑፎችን በራስ-ሰር ይፈጥራል። ኦዲዮ እና መግለጫ ጽሑፎች መሣሪያዎን በጭራሽ አይተዉም።</translation>
 <translation id="2856776373509145513">አዲስ መያዣ ይፍጠሩ</translation>
-<translation id="2858138569776157458">ከፍተኛ ጣቢያዎች</translation>
 <translation id="2861301611394761800">የስርዓት ዝማኔ ተጠናቅቋል። እባክዎ ስርዓቱን ዳግም ያስጀምሩት።</translation>
 <translation id="2861941300086904918">ቤተኛ የደንበኛ ደህንነት አቀናባሪ</translation>
 <translation id="2862815659905780618">የLinux ግንባታ አካባቢን አስወግድ</translation>
@@ -2368,6 +2367,7 @@
 <translation id="3129173833825111527">የግራ ኅዳግ</translation>
 <translation id="3129215702932019810">መተግበሪያን ማስጀመር ላይ ስስህተት</translation>
 <translation id="3130528281680948470">የእርስዎ መሣሪያ ዳግመኛ ይዘጋጃል እና ሁሉም የተጠቃሚ መለያዎች እና የአካባቢ ውሂቦች ይወገዳሉ። ይህ አንዴ ከተደረገ በኋላ ሊቀለበስ አይችልም።</translation>
+<translation id="3130863904455712965">ታሪክ እና ተጨማሪ</translation>
 <translation id="313205617302240621">የይለፍ ቃል ረሱ?</translation>
 <translation id="3132277757485842847">ከስልክዎ ጋር ያለውን ግንኙነት ማቆየት አልቻልንም። ስልክዎ በአቅራቢያ እንዳለ፣ የተከፈተ መሆኑን እና ብሉቱዝ እና Wi-Fi እንደበራ ያረጋግጡ።</translation>
 <translation id="3132896062549112541">ደንብ</translation>
@@ -2381,7 +2381,6 @@
 <translation id="3143515551205905069">ስምረትን ሰርዝ</translation>
 <translation id="3143754809889689516">ከመጀመሪያው አጫውት</translation>
 <translation id="3144647712221361880">አገናኙን ክፈት እንደ</translation>
-<translation id="3144896554017119333">ቅጥያዎች እና ሌሎችም</translation>
 <translation id="3149510190863420837">Chrome መተግበሪያዎች</translation>
 <translation id="3150693969729403281">የደህንነት ፍተሻን አሁን አሂድ</translation>
 <translation id="3150927491400159470">ከባድ ዳግም መጫን</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 4de169f8..f9e1f3d 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -2079,7 +2079,6 @@
 <translation id="2852385257476173980">أثناء تصفّحك للويب، قد تظهر هنا قائمة بالمواقع الإلكترونية التي تزورها.</translation>
 <translation id="285241945869362924">تعمل هذه الميزة على إنشاء مقاطع الشرح تلقائيًا لملفات الصوت والفيديو. وتظل ملفات الصوت ومقاطع الشرح محفوظة على جهازك.</translation>
 <translation id="2856776373509145513">إنشاء حاوية جديدة</translation>
-<translation id="2858138569776157458">أهم المواقع</translation>
 <translation id="2861301611394761800">اكتمل تحديث النظام. يُرجى إعادة تشغيل النظام.</translation>
 <translation id="2861941300086904918">‏إدارة الأمان لـ Native Client</translation>
 <translation id="2862815659905780618">‏إزالة بيئة تطوير نظام التشغيل Linux</translation>
@@ -2343,6 +2342,7 @@
 <translation id="3105796011181310544">‏هل تريد التغيير مرة أخرى إلى Google؟</translation>
 <translation id="310671807099593501">يستخدم الموقع الإلكتروني البلوتوث.</translation>
 <translation id="3108931485517391283">يتعذّر تلقّي الملف</translation>
+<translation id="3108957152224931571">لون التمييز</translation>
 <translation id="3109206895301430738">مجموعات علامات التبويب المحفوظة</translation>
 <translation id="3109724472072898302">مصغّر</translation>
 <translation id="3112292765614504292">حجم التطبيق: <ph name="APP_SIZE" /></translation>
@@ -2365,6 +2365,7 @@
 <translation id="3129173833825111527">الهامش الأيسر</translation>
 <translation id="3129215702932019810">حدث خطأ أثناء تشغيل التطبيق</translation>
 <translation id="3130528281680948470">ستتم إعادة ضبط جهازك وستتم إزالة كل حسابات المستخدمين والبيانات المحلية. ولا يمكن التراجع عن ذلك.</translation>
+<translation id="3130863904455712965">السجلّ وغير ذلك</translation>
 <translation id="313205617302240621">هل نسيت كلمة المرور؟</translation>
 <translation id="3132277757485842847">‏تعذَّر علينا المحافظة على الاتصال بهاتفك. يُرجى التأكد من أن هاتفك قريب وغير مُقفل وتم تفعيل بلوتوث وWi-Fi فيه.</translation>
 <translation id="3132896062549112541">القاعدة</translation>
@@ -2378,7 +2379,6 @@
 <translation id="3143515551205905069">إلغاء المزامنة</translation>
 <translation id="3143754809889689516">التشغيل من البداية</translation>
 <translation id="3144647712221361880">فتح الرابط كـ</translation>
-<translation id="3144896554017119333">الإضافات والمزيد</translation>
 <translation id="3149510190863420837">‏تطبيقات Chrome</translation>
 <translation id="3150693969729403281">بدء التحقق من الأمان الآن</translation>
 <translation id="3150927491400159470">تحديث بشكل كامل</translation>
@@ -4578,6 +4578,7 @@
 <translation id="5260334392110301220">الاقتباسات الذكية</translation>
 <translation id="5260508466980570042">للأسف، تعذر التحقق من البريد الإلكتروني أو كلمة المرور. يُرجى المحاولة مرة أخرى.</translation>
 <translation id="5260958083445173099">سيظهر لك محتوى المواقع الإلكترونية بلغاتك المفضَّلة إن أمكن ذلك.</translation>
+<translation id="5261619498868361045">لا يمكن ترك اسم الحاوية فارغًا.</translation>
 <translation id="5261683757250193089">فتح في السوق الإلكتروني</translation>
 <translation id="5262178194499261222">إزالة كلمة المرور</translation>
 <translation id="5262784498883614021">الاتصال بالشبكة تلقائيًا</translation>
@@ -4984,6 +4985,7 @@
 <translation id="562935524653278697">لقد أوقف مشرفك مزامنة الإشارات المرجعية والسجل وكلمات المرور والإعدادات الأخرى.</translation>
 <translation id="5631017369956619646">استخدام وحدة المعالجة المركزية</translation>
 <translation id="5632059346822207074">‏تم طلب الإذن، اضغط على Ctrl + السهم المتجه للأمام للاستجابة للطلب</translation>
+<translation id="5632221585574759616">مزيد من المعلومات حول أذونات الإضافات</translation>
 <translation id="5632566673632479864">لم يعد حسابك <ph name="EMAIL" /> مسموحًا به كحساب أساسي. بما أنّ النطاق <ph name="DOMAIN" /> يدير هذا الحساب، سيتم محو الإشارات المرجعية والسِجلّ وكلمات المرور والإعدادات الأخرى من هذا الجهاز.</translation>
 <translation id="5632592977009207922">جارٍ التنزيل، تَبقَّى<ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">مزيد من المعلومات حول متطلبات النظام</translation>
@@ -5604,6 +5606,7 @@
 <translation id="6218058416316985984">جهاز <ph name="DEVICE_TYPE" /> غير متّصل بالإنترنت. يُرجى الاتصال بالإنترنت وإعادة المحاولة.</translation>
 <translation id="6220413761270491930">خطأ في تحميل الإضافة</translation>
 <translation id="6224481128663248237">انتهت عملية التنسيق بنجاح.</translation>
+<translation id="622474711739321877">تتوفّر حاوية بهذا الاسم حاليًا.</translation>
 <translation id="622537739776246443">سيتم حذف الملف الشخصي</translation>
 <translation id="6225475702458870625">اتصال البيانات متاح من جهاز <ph name="PHONE_NAME" /> التابع لك</translation>
 <translation id="6226777517901268232">ملف مفتاح خاص (اختياري)</translation>
@@ -6410,6 +6413,7 @@
 <translation id="696780070563539690">لن يسمح هذا الإجراء للمواقع الإلكترونية باستخدام ملفات تعريف الارتباط للاطّلاع على نشاط التصفُّح على المواقع الإلكترونية المختلفة، وذلك لتقديم إعلانات مخصَّصة لك مثلاً.</translation>
 <translation id="6968288415730398122">أدخل كلمة المرور لإعداد قفل الشاشة</translation>
 <translation id="6969047215179982698">إيقاف ميزة "المشاركة عن قرب"</translation>
+<translation id="6969216690072714773">يجب إدخال معلومات جديدة أو تعديل المعلومات الحالية لتكون مرتبطة بهذا الجهاز.</translation>
 <translation id="6970480684834282392">نوع التشغيل</translation>
 <translation id="6970543303783413625">يتعذّر استيراد كلمات المرور. يمكنك استيراد ما يصل إلى <ph name="COUNT" /> كلمة مرور فقط في كل مرة.</translation>
 <translation id="6970856801391541997">طباعة صفحات محددة</translation>
@@ -6817,6 +6821,7 @@
 <translation id="7377481913241237033">الربط باستخدام رمز</translation>
 <translation id="7378611153938412599">من السهل تخمين كلمات المرور الضعيفة. يُرجى الحرص على إنشاء كلمات مرور قوية. <ph name="BEGIN_LINK" />الاطّلاع على مزيد من نصائح الأمان<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">‏فتح سوق Chrome الإلكتروني</translation>
+<translation id="7380272457268061606">هل تريد إيقاف استرداد البيانات المحلية؟</translation>
 <translation id="7380459290951585794">‏يُرجى التأكُّد من أنّ هاتفك قريب وغير مُقفَل وتم تفعيل البلوتوث وWi-Fi فيه.</translation>
 <translation id="7380622428988553498">يحتوي اسم الجهاز على أحرف غير صالحة.</translation>
 <translation id="7380768571499464492">آخر تحديث: <ph name="PRINTER_NAME" /></translation>
@@ -7066,6 +7071,7 @@
 <translation id="7617263010641145920">‏تفعيل "متجر Play"</translation>
 <translation id="7617648809369507487">استخدام طريقة أقل بروزًا لإرسال الإشعارات</translation>
 <translation id="7621382409404463535">تعذّر على النظام حفظ ضبط الجهاز.</translation>
+<translation id="7621595347123595643">لن تتمكّن من استرداد البيانات المحلّية في حال نسيان كلمة المرور أو رقم التعريف الشخصي.</translation>
 <translation id="7622114377921274169">جارٍ الشحن.</translation>
 <translation id="7622768823216805500">تعمل المواقع الإلكترونية عادةً على تثبيت معالجات الدفع لتتيح ميزات التسوّق، مثل الدفع بسهولة.</translation>
 <translation id="7622903810087708234">تفاصيل كلمة المرور</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index e6a78e7..1c3a31f 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -1297,6 +1297,7 @@
 <translation id="2157875535253991059">এই পৃষ্ঠাটো এতিয়া সম্পূর্ণ স্ক্ৰীনত আছে।</translation>
 <translation id="2158475082070321257">হাইলাইটৰ লিংকৰ প্ৰতিলিপি কৰক</translation>
 <translation id="2159488579268505102">ইউএছবি-চি</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" />ৰ বাবে <ph name="SHORTCUT" />ৰ পৰিসৰ</translation>
 <translation id="216169395504480358">ৱাই-ফাই যোগ কৰক…</translation>
 <translation id="2162155940152307086">আপুনি ছিংকৰ ছেটিংসমূহৰ পৰা আঁতৰি যোৱাৰ লগে লগে ছিংক আৰম্ভ হ‘ব</translation>
 <translation id="2162705204091149050">আপোনাৰ ব্ৰাউজাৰ, OS, ডিভাইচ, ইনষ্টল কৰি থোৱা ছফ্টৱেৰ আৰু ফাইলৰ বিষয়ে তথ্য পঢ়ক</translation>
@@ -2088,7 +2089,6 @@
 <translation id="2852385257476173980">আপুনি ৱেব ব্ৰাউজ কৰোঁতে ইয়াত আপুনি চোৱা ছাইটসমূহৰ এখন তালিকা প্ৰদৰ্শিত হ’ব পাৰে</translation>
 <translation id="285241945869362924">অডিঅ’ আৰু ভিডিঅ’ৰ বাবে স্বয়ংক্ৰিয়ভাৱে কেপশ্বন সৃষ্টি কৰে। অডিঅ’ আৰু কেপশ্বন আপোনাৰ ডিভাইচটোৰ পৰা কেতিয়াও আঁতৰি নাযায়।</translation>
 <translation id="2856776373509145513">এটা নতুন কণ্টেনাৰ সৃষ্টি কৰক</translation>
-<translation id="2858138569776157458">শীৰ্ষ ছাইট</translation>
 <translation id="2861301611394761800">ছিষ্টেম আপডে’ট সম্পূৰ্ণ হ’ল। অনুগ্ৰহ কৰি ছিষ্টেমটো ৰিষ্টাৰ্ট কৰক।</translation>
 <translation id="2861941300086904918">স্থানীয় ক্লায়েণ্টৰ সুৰক্ষা পৰিচালক</translation>
 <translation id="2862815659905780618">Linux বিকাশৰ পৰিবেশ আঁতৰাওক</translation>
@@ -2352,6 +2352,7 @@
 <translation id="3105796011181310544">পুনৰ Googleলৈ সলনি কৰিবনে?</translation>
 <translation id="310671807099593501">ছাইটটোৱে ব্লুটুথ ব্যৱহাৰ কৰি আছে</translation>
 <translation id="3108931485517391283">লাভ কৰিব নোৱাৰি</translation>
+<translation id="3108957152224931571">হাইলাইটৰ ৰং</translation>
 <translation id="3109206895301430738">ছেভ হৈ থকা টেবৰ গোট</translation>
 <translation id="3109724472072898302">সংকুচিত কৰা আছে</translation>
 <translation id="3112292765614504292">এপৰ আকাৰ: <ph name="APP_SIZE" /></translation>
@@ -2374,6 +2375,7 @@
 <translation id="3129173833825111527">বাওঁ মাৰ্জিন</translation>
 <translation id="3129215702932019810">এপ্লিকেশ্বন লঞ্চ কৰাৰ সময়ত আসোঁৱাহ হৈছে</translation>
 <translation id="3130528281680948470">আপোনাৰ ডিভাইচটো ৰিছেট কৰা হ’ব আৰু সকলো ব্যৱহাৰকাৰীৰ একাউণ্ট আৰু ল’কেল ডেটা আঁতৰোৱা হ’ব। এই কাৰ্যটো আনডু কৰিব নোৱাৰি।</translation>
+<translation id="3130863904455712965">ইতিহাস আৰু অধিক</translation>
 <translation id="313205617302240621">পাছৱৰ্ড পাহৰিলে নেকি?</translation>
 <translation id="3132277757485842847">আমি আপোনাৰ ফ’নটোৰ সৈতে সংযোগ বজাই ৰাখিব নোৱাৰিলোঁ। নিশ্চিত হৈ লওক যে আপোনাৰ ফ’নটো ওচৰত আছে, আনলক কৰা আছে আৰু ব্লুটুথ আৰু ৱাই-ফাই অন কৰা আছে।</translation>
 <translation id="3132896062549112541">নিয়ম</translation>
@@ -2387,7 +2389,6 @@
 <translation id="3143515551205905069">ছিংক বাতিল কৰক</translation>
 <translation id="3143754809889689516">আৰম্ভণিৰ পৰা প্লে’ কৰক</translation>
 <translation id="3144647712221361880">লিংকটো এই হিচাপে খোলক</translation>
-<translation id="3144896554017119333">এক্সটেনশ্বন আৰু আন বহুতো</translation>
 <translation id="3149510190863420837">Chromeৰ এপ্‌</translation>
 <translation id="3150693969729403281">এতিয়াই সুৰক্ষা পৰীক্ষা চলাওক</translation>
 <translation id="3150927491400159470">হাৰ্ড ৰিল’ড</translation>
@@ -2685,6 +2686,7 @@
 <translation id="3445047461171030979">Google Assistantৰ দ্ৰুত উত্তৰসমূহ</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> মিনিট</translation>
 <translation id="344537926140058498">এই ফাইলটোত সংবেদনশীল অথবা বিপজ্জনক সমল থকাৰ বাবে আপোনাৰ প্ৰতিষ্ঠানে ইয়াক অৱৰোধ কৰিছে। এইটোৰ গৰাকীক সমাধান কৰিবলৈ কওক।</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{আপুনি শেহতীয়াকৈ নোচোৱা <ph name="BEGIN_BOLD" />১ টা ছাইট<ph name="END_BOLD" />ৰ পৰা অনুমতি আঁতৰোৱা হৈছে}one{আপুনি শেহতীয়াকৈ নোচোৱা <ph name="BEGIN_BOLD" />{NUM_SITES} টা ছাইট<ph name="END_BOLD" />ৰ পৰা অনুমতি আঁতৰোৱা হৈছে}other{আপুনি শেহতীয়াকৈ নোচোৱা <ph name="BEGIN_BOLD" />{NUM_SITES} টা ছাইট<ph name="END_BOLD" />ৰ পৰা অনুমতি আঁতৰোৱা হৈছে}}</translation>
 <translation id="3445925074670675829">ইউএছবি চি ডিভাইচ</translation>
 <translation id="3446274660183028131">Windows ইনষ্টল কৰিবলৈ অনুগ্ৰহ কৰি Parallels Desktop লঞ্চ কৰক।</translation>
 <translation id="344630545793878684">আপোনাৰ ডেটা ৱেবছাইটসমূহত পঢ়ে</translation>
@@ -2896,6 +2898,7 @@
 <translation id="3642699533549879077">অন্য কোনোবাই আপোনাৰ স্ক্ৰীনলৈ চালে আপুনি এটা সতৰ্কবাৰ্তা পাব আৰু জাননী সম্পৰ্কীয় সমল লুকুওৱা হ’ব।</translation>
 <translation id="3643962751030964445">এই ডিভাইচটো <ph name="DEVICE_MANAGER" />এ পৰিচালনা কৰে। <ph name="DEVICE_MANAGER" />ক <ph name="USER_EMAIL_ADDRESS" /> একাউণ্টৰ বাবে এটা নতুন প্ৰ’ফাইলৰ প্ৰয়োজন</translation>
 <translation id="3645372836428131288">ফিংগাৰপ্ৰিণ্টটোৰ বেলেগ এটা অংশ কেপচাৰ কৰিবলৈ সামান্য লৰচৰ কৰক।</translation>
+<translation id="3647051300407077858">জাননীৰ অনুমতি পৰ্যালোচনা কৰক</translation>
 <translation id="3647654707956482440">এই লিংকটো ব্যৱহাৰ কৰিব নোৱাৰি। টাইপ কৰোঁতে হ’ব পৰা ভুল আছে নেকি চাওক অথবা পুনৰ চেষ্টা কৰিবলৈ অন্য এটা লিংক ব্যৱহাৰ কৰক।</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />ৰ পৰা <ph name="ATTACHMENTS" /> লাভ কৰা হৈছে}one{<ph name="DEVICE_NAME" />ৰ পৰা <ph name="ATTACHMENTS" /> লাভ কৰা হৈছে}other{<ph name="DEVICE_NAME" />ৰ পৰা <ph name="ATTACHMENTS" /> লাভ কৰা হৈছে}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" />ক চিনাক্ত কৰা হ’ল</translation>
@@ -3075,6 +3078,7 @@
 <translation id="380408572480438692">কার্যদক্ষতাৰ ডেটা সংগ্ৰহ কৰাটো সক্ষম কৰা কার্যটোৱে Googleক সময়ৰ লগে লগে ছিষ্টেম উন্নত কৰাত সহায় কৰে। আপুনি মতামতৰ ৰিপর্ট (Alt-Shift-I) নকৰা আৰু কার্যদক্ষতাৰ ডেটা অন্তর্ভুক্ত নকৰা পর্যন্ত কোনো ডেটা পঠিওৱা নহয়। আপুনি সংগ্ৰহ অক্ষম কৰিবলৈ যিকোনো সময়তে এই স্ক্ৰীণলৈ উভতি যাব পাৰে।</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (এক্সটেনশ্বন আইডি "<ph name="EXTENSION_ID" />")ক লগইন স্ক্ৰীনত অনুমোদন জনোৱা নহয়৷</translation>
 <translation id="3807747707162121253">&amp;বাতিল কৰক</translation>
+<translation id="3808202562160426447">নেপথ্যৰ সমল অস্পষ্ট কৰক</translation>
 <translation id="3808443763115411087">Crostini Android এপৰ বিকাশ</translation>
 <translation id="38089336910894858">⌘Qৰ জৰিয়তে অন্ত পেলোৱাৰ পূর্বে সতর্ক বার্তা দেখুৱাওক</translation>
 <translation id="3809272675881623365">শহা</translation>
@@ -3665,6 +3669,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" />এ এখন ৱিণ্ড' শ্বেয়াৰ কৰি আছে।</translation>
 <translation id="4364830672918311045">জাননী দেখুওৱা</translation>
 <translation id="4366138410738374926">প্ৰিণ্ট কৰা আৰম্ভ হৈছে</translation>
+<translation id="4367513928820380646">আঁতৰোৱা অনুমতিসমূহ পৰ্যালোচনা কৰক</translation>
 <translation id="4369121877634339065">সন্ধান কৰিবলৈ যিকোনো প্ৰতিচ্ছবিৰ ওপৰেদি টানি আনি এৰক</translation>
 <translation id="4369215744064167350">ৱেবছাইটৰ অনুৰোধত অনুমোদন জনোৱা হৈছে</translation>
 <translation id="4370975561335139969">আপুনি দিয়া ইমেইল আৰু পাছৱৰ্ড মিলা নাই</translation>
@@ -4385,6 +4390,7 @@
 <translation id="5045550434625856497">ভুল পাছৱৰ্ড</translation>
 <translation id="504561833207953641">পূর্বে থকা ব্ৰাউজাৰ ছেশ্বনত খুলি আছে।</translation>
 <translation id="5049614114599109018">ইনপুটৰ ইতিহাস ব্যৱহাৰ কৰক</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{এই ছাইটটোৱে শেহতীয়াকৈ বহুত জাননী পঠিয়াইছে। আপুনি সেইটোৱে ভৱিষ্যতে জাননী পঠিওৱা কাৰ্যটো বন্ধ কৰিব পাৰে।}one{এই ছাইটসমূহে শেহতীয়াকৈ বহুত জাননী পঠিয়াইছে। আপুনি সেইসমূহে ভৱিষ্যতে জাননী পঠিওৱা কাৰ্যটো বন্ধ কৰিব পাৰে।}other{এই ছাইটসমূহে শেহতীয়াকৈ বহুত জাননী পঠিয়াইছে। আপুনি সেইসমূহে ভৱিষ্যতে জাননী পঠিওৱা কাৰ্যটো বন্ধ কৰিব পাৰে।}}</translation>
 <translation id="5051836348807686060">আপুনি বাছনি কৰা ভাষাৰ ক্ষেত্ৰত বানান পৰীক্ষক সমৰ্থিত নহয়</translation>
 <translation id="5052499409147950210">ছাইট সম্পাদনা কৰক</translation>
 <translation id="505347685865235222">নামবিহীন গোট - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -4596,6 +4602,7 @@
 <translation id="5260334392110301220">স্মাৰ্ট ঊৰ্ধ্বকমাসমূহ</translation>
 <translation id="5260508466980570042">দুঃখিত, আপোনাৰ ইমেইল বা পাছৱর্ড সত্যাপন কৰিব পৰা নগ'ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation>
 <translation id="5260958083445173099">ৱেবছাইটসমূহে যেতিয়া সম্ভৱ হয় তেতিয়া আপুনি অগ্ৰাধিকাৰ দিয়া ভাষাসমূহত সমল দেখুৱাব</translation>
+<translation id="5261619498868361045">কণ্টেইনাৰৰ নাম খালী থাকিব নোৱাৰে।</translation>
 <translation id="5261683757250193089">Web Storeত খোলক</translation>
 <translation id="5262178194499261222">পাছৱৰ্ড আঁতৰাওক</translation>
 <translation id="5262784498883614021">স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্কৰ সৈতে সংযোগ কৰক</translation>
@@ -5002,6 +5009,7 @@
 <translation id="562935524653278697">আপোনাৰ প্ৰশাসকে আপোনাৰ বুকমার্ক, ইতিহাস, পাছৱর্ড আৰু অন্য ছেটিংসমূহ ছিংক কৰা সুবিধাটো অক্ষম কৰিছে।</translation>
 <translation id="5631017369956619646">চিপিইউৰ ব্যৱহাৰ</translation>
 <translation id="5632059346822207074">অনুমতিৰ বাবে অনুৰোধ জনোৱা হৈছে, সঁহাৰি জনাবলৈ ক’ণ্ট্ৰল + ফৰৱাৰ্ডত টিপক</translation>
+<translation id="5632221585574759616">এক্সটেনশ্বনৰ অনুমতিৰ বিষয়ে অধিক জানক</translation>
 <translation id="5632566673632479864">আপোনাৰ একাউণ্ট <ph name="EMAIL" />ক প্ৰাথমিক একাউণ্ট হিচাপে আৰু ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়া নহয়। কাৰণ এই একাউণ্টটো <ph name="DOMAIN" />এ পৰিচালনা কৰে, আপোনাৰ বুকমাৰ্ক, ইতিহাস, পাছৱৰ্ড আৰু অন্য ছেটিংসমূহ এই ডিভাইচৰ পৰা মচা হ’ব।</translation>
 <translation id="5632592977009207922">ডাউনল’ড কৰি থকা হৈছে, <ph name="PERCENT_REMAINING" />% বাকী আছে</translation>
 <translation id="5633149627228920745">ছিষ্টেমৰ আৱশ্যকতাৰ বিষয়ে অধিক জানক</translation>
@@ -5622,6 +5630,7 @@
 <translation id="6218058416316985984">’<ph name="DEVICE_TYPE" />’ অফলাইন আছে। ইণ্টাৰনেটৰ লগত সংযোগ কৰি আকৌ চেষ্টা কৰক।</translation>
 <translation id="6220413761270491930">এক্সটেনশ্বন ল’ড কৰোতে আসোঁৱাহ হৈছে</translation>
 <translation id="6224481128663248237">ফৰ্মেট কৰাটো সফলভাৱে সম্পূৰ্ণ হ’ল!</translation>
+<translation id="622474711739321877">এই কণ্টেইনাৰটো ইতিমধ্যে আছে।</translation>
 <translation id="622537739776246443">প্ৰ'ফাইল মচা হ'ব</translation>
 <translation id="6225475702458870625">আপোনাৰ <ph name="PHONE_NAME" />ৰ পৰা ডেটা ইণ্টাৰনেট উপলব্ধ আছে</translation>
 <translation id="6226777517901268232">ব্যক্তিগত চাবিৰ ফাইল (ঐচ্ছিক)</translation>
@@ -6423,6 +6432,7 @@
 <translation id="696780070563539690">আপুনি বিভিন্ন ছাইটসমূহত কৰা ব্ৰাউজিঙৰ কার্যকলাপ চাবলৈ ছাইটসমূহে কুকিসমূহ ব্যৱহাৰ কৰিব নোৱাৰে, যেনে, বিজ্ঞাপন ব্যক্তিগতকৃত কৰিবলৈ</translation>
 <translation id="6968288415730398122">স্ক্ৰীন লক কনফিগাৰ কৰিবলৈ নিজৰ পাছৱৰ্ড দিয়ক</translation>
 <translation id="6969047215179982698">Nearby Share সুবিধাটো অফ কৰক</translation>
+<translation id="6969216690072714773">এই ডিভাইচটোৰ সৈতে সংযুক্ত হ’বলৈ নতুন তথ্য দিয়ক অথবা আগৰেপৰা থকা তথ্য আপডে’ট কৰক।</translation>
 <translation id="6970480684834282392">ষ্টার্ট আপৰ প্ৰকাৰ</translation>
 <translation id="6970543303783413625">পাছৱৰ্ড আমদানি কৰিব নোৱাৰি। আপুনি এবাৰত মাত্ৰ <ph name="COUNT" /> টালৈকে পাছৱৰ্ড আমদানি কৰিব পাৰে।</translation>
 <translation id="6970856801391541997">নির্দিষ্ট পৃষ্ঠা প্ৰিণ্ট কৰক</translation>
@@ -6829,6 +6839,7 @@
 <translation id="7377481913241237033">এটা ক'ডৰ জৰিয়তে সংযোগ কৰক</translation>
 <translation id="7378611153938412599">দুৰ্বল পাছৱৰ্ডসমূহ অনুমান কৰিবলৈ সহজ। আপুনি শক্তিশালী পাছৱৰ্ড সৃষ্টি কৰি আছে বুলি নিশ্চিত হৈ লওক। <ph name="BEGIN_LINK" />সুৰক্ষা সম্পৰ্কীয় অধিক কিটিপ চাওক।<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store খোলক</translation>
+<translation id="7380272457268061606">স্থানীয় ডেটা পুনৰুদ্ধাৰ কৰাৰ সুবিধাটো অক্ষম কৰিবনে?</translation>
 <translation id="7380459290951585794">নিশ্চিত হৈ লওক যে, আপোনাৰ ফ’নটো ওচৰত আছে, আনলক কৰা আছে আৰু ব্লুটুথ আৰু ৱাই-ফাই অন কৰা আছে</translation>
 <translation id="7380622428988553498">ডিভাইচৰ নামত অমান্য বৰ্ণ আছে</translation>
 <translation id="7380768571499464492">আপডে’ট কৰা <ph name="PRINTER_NAME" /></translation>
@@ -7079,6 +7090,7 @@
 <translation id="7617263010641145920">Play Store অন কৰক</translation>
 <translation id="7617648809369507487">বেছি নীৰৱ বাৰ্তা বিনিময় ব্যৱহাৰ কৰক</translation>
 <translation id="7621382409404463535">ছিষ্টেমটোৱে ডিভাইচৰ কনফিগাৰেশ্বন ছেভ কৰিব নোৱাৰিলে।</translation>
+<translation id="7621595347123595643">আপুনি আপোনাৰ পাছৱৰ্ড অথবা পিন পাহৰিলে, আপুনি স্থানীয় ডেটা পুনৰুদ্ধাৰ কৰিব নোৱাৰিব।</translation>
 <translation id="7622114377921274169">চ্চার্জ কৰি থকা হৈছে।</translation>
 <translation id="7622768823216805500">অধিক সহজে চেকআউট কৰাৰ দৰে শ্ব'পিঙৰ সুবিধাসমূহৰ বাবে ছাইটসমূহে সচৰাচৰ পৰিশোধ নিয়ন্ত্ৰক ইনষ্টল কৰে</translation>
 <translation id="7622903810087708234">পাছৱৰ্ডৰ সবিশেষ</translation>
@@ -7277,6 +7289,7 @@
 <translation id="7775694664330414886">নামবিহীন গোটলৈ টেবটো নিয়া হৈছে - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">আপুনি এই ছাইটটোৰ বাবে সকলো টেব বন্ধ নকৰা পর্যন্ত <ph name="ORIGIN" />এ <ph name="FOLDERNAME" />ত ফাইলসমূহ চাব পাৰিব</translation>
 <translation id="7776701556330691704">কোনো কণ্ঠধ্বনি পোৱা নগ'ল</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" />ৰ বাবে শ্বৰ্টকাট <ph name="SHORTCUT" /></translation>
 <translation id="7781335840981796660">সকলো ব্যৱহাৰকাৰী একাউণ্ট আৰু স্থানীয় ডেটা আঁতৰোৱা হ’ব।</translation>
 <translation id="7782102568078991263">Googleৰ পৰা আৰু কোনো প্ৰস্তাৱ নাই</translation>
 <translation id="7782717250816686129">লগ ইন স্ক্ৰীনত স্থিৰ ডেটা ষ্ট'ৰ কৰক আৰু ছেশ্বনটোৰত ক্ৰেডেনশ্বিয়েলসমূহ দিয়ক।</translation>
@@ -7309,6 +7322,7 @@
 <translation id="7807711621188256451"><ph name="HOST" />ক সদায় আপোনাৰ কেমেৰালৈ এক্সেছ দিয়ক</translation>
 <translation id="7810202088502699111">এই পৃষ্ঠাটোট পপ্-আপ অৱৰোধ কৰা হৈছে।</translation>
 <translation id="7814458197256864873">&amp;প্ৰতিলিপি কৰক</translation>
+<translation id="7815583197273433531"><ph name="EXTENSION_NAME" />ৰ বাবে শ্বৰ্টকাট <ph name="SHORTCUT" /> সম্পাদনা কৰক</translation>
 <translation id="7815680994978050279">ক্ষতিকাৰক সমলৰ ডাউনল’ড অৱৰোধ কৰা হৈছে</translation>
 <translation id="7817361223956157679">অন-স্ক্রীণ কীব’ৰ্ডখনে এতিয়ালৈকে Linux এপত কাম কৰা হোৱা নাই</translation>
 <translation id="7818135753970109980">নতুন থীম যোগ কৰা হৈছে (<ph name="EXTENSION_NAME" />)</translation>
@@ -7383,6 +7397,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">একাউণ্টটো চাওক</translation>
 <translation id="7883792253546618164">যিকোনো সময়তে আনছাবস্ক্ৰাইব কৰক।</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{বহুতো জাননী পঠিওৱা ১ টা ছাইট পৰ্যালোচনা কৰক}one{বহুতো জাননী পঠিওৱা {NUM_SITES} টা ছাইট পৰ্যালোচনা কৰক}other{বহুতো জাননী পঠিওৱা {NUM_SITES} টা ছাইট পৰ্যালোচনা কৰক}}</translation>
 <translation id="788453346724465748">একাউণ্টৰ তথ্য ল'ড কৰি থকা হৈছে...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{এটা বস্তু}one{# টা বস্তু}other{# টা বস্তু}}</translation>
 <translation id="7886605625338676841">ই-ছিম</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 121ff31..3d2c76e 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -2074,7 +2074,6 @@
 <translation id="2852385257476173980">Vebdə axtarış etdiyiniz zaman ziyarət etdiyiniz saytların siyahısı burada görünə bilər</translation>
 <translation id="285241945869362924">Audio və video üçün avtomatik olaraq altyazılar yaradır. Audio və altyazılar heç vaxt paylaşılmır.</translation>
 <translation id="2856776373509145513">Yeni konteyner yaradın</translation>
-<translation id="2858138569776157458">Populyar saytlar</translation>
 <translation id="2861301611394761800">Sistem güncəlləməsi tamamdır. Lütfən, sistemi yenidən başladın.</translation>
 <translation id="2861941300086904918">Doğma Klient təhlükəsizlik meneceri</translation>
 <translation id="2862815659905780618">Linux tərtibat mühitini silin</translation>
@@ -2361,6 +2360,7 @@
 <translation id="3129173833825111527">Sol margin</translation>
 <translation id="3129215702932019810">Proqramı işə salan zaman xəta baş verdi</translation>
 <translation id="3130528281680948470">Cihazınız sıfırlanacaq və bütün istifadəçi hesabları və lokal data silinəcək. Bu geri qaytarıla bilməz.</translation>
+<translation id="3130863904455712965">Tarixçə və digərləri</translation>
 <translation id="313205617302240621">Şifrəni unutdunuz?</translation>
 <translation id="3132277757485842847">Telefonunuzla bağlantını itirdik. Telefonunuzun yaxınlıqda olduğuna, kiliddən çıxarılmış olduğuna, Bluetooth və Wi-Fi'ın aktiv olduğuna əmin olun.</translation>
 <translation id="3132896062549112541">Qayda</translation>
@@ -2374,7 +2374,6 @@
 <translation id="3143515551205905069">Sinxronizasiyanı ləğv edin</translation>
 <translation id="3143754809889689516">Başdan oxudun</translation>
 <translation id="3144647712221361880">Linki bu formada açın:</translation>
-<translation id="3144896554017119333">Artırmalar və s.</translation>
 <translation id="3149510190863420837">Chrome Tətbiqləri</translation>
 <translation id="3150693969729403281">Təhlükəsizlik yoxlanışını indi icra edin</translation>
 <translation id="3150927491400159470">Çətin yenidən yükləmə</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 0c8e65a..75988f2 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -2078,7 +2078,6 @@
 <translation id="2852385257476173980">Сайты, якія вы наведваеце, могуць з'яўляцца тут у выглядзе спіса па меры прагляду вамі вэб-старонак</translation>
 <translation id="285241945869362924">Аўтаматычнае стварэнне субцітраў для аўдыя і відэа. Аўдыяфайлы і субцітры захоўваюцца на прыладзе і нікуды не адпраўляюцца.</translation>
 <translation id="2856776373509145513">Стварэнне новага кантэйнера</translation>
-<translation id="2858138569776157458">Топ сайтаў</translation>
 <translation id="2861301611394761800">Абнаўленне сістэмы завершана. Перазапусціце сістэму.</translation>
 <translation id="2861941300086904918">Менеджар бяспекі Native Client</translation>
 <translation id="2862815659905780618">Выдаліць асяроддзе распрацоўкі Linux</translation>
@@ -2342,6 +2341,7 @@
 <translation id="3105796011181310544">Зноў зрабіць Google стандартнай пошукавай сістэмай?</translation>
 <translation id="310671807099593501">Сайт выкарыстоўвае Bluetooth</translation>
 <translation id="3108931485517391283">Не ўдалося атрымаць</translation>
+<translation id="3108957152224931571">Колер вылучэння</translation>
 <translation id="3109206895301430738">Захаваныя групы ўкладак</translation>
 <translation id="3109724472072898302">Згорнута</translation>
 <translation id="3112292765614504292">Памер праграмы: <ph name="APP_SIZE" /></translation>
@@ -2364,6 +2364,7 @@
 <translation id="3129173833825111527">Левае поле</translation>
 <translation id="3129215702932019810">Памылка пры запуску праграмы</translation>
 <translation id="3130528281680948470">Налады вашай прылады будуць скінуты, а ўліковыя запісы карыстальнікаў і іх даныя будуць выдалены. Адрабіць гэта дзеянне нельга.</translation>
+<translation id="3130863904455712965">Гісторыя і іншыя даныя</translation>
 <translation id="313205617302240621">Забылі пароль?</translation>
 <translation id="3132277757485842847">Нам не ўдалося захаваць падключэнне да вашага тэлефона. Упэўніцеся, што ён разблакіраваны, знаходзіцца паблізу і на ім уключаны Bluetooth і Wi-Fi.</translation>
 <translation id="3132896062549112541">Правіла</translation>
@@ -2377,7 +2378,6 @@
 <translation id="3143515551205905069">Скасаваць сінхранізацыю</translation>
 <translation id="3143754809889689516">Прайграць з пачатку</translation>
 <translation id="3144647712221361880">Адкрыць спасылку як</translation>
-<translation id="3144896554017119333">Пашырэнні і не толькі</translation>
 <translation id="3149510190863420837">Праграмы Chrome</translation>
 <translation id="3150693969729403281">Запусціць праверку бяспекі</translation>
 <translation id="3150927491400159470">Халодная перазагрузка</translation>
@@ -4586,6 +4586,7 @@
 <translation id="5260334392110301220">Пераўтварэнне двукоссяў</translation>
 <translation id="5260508466980570042">На жаль, адрас вашай электроннай пошты або ваш пароль спраўдзіць не ўдалося. Паўтарыце спробу.</translation>
 <translation id="5260958083445173099">Вэб-сайты будуць паказваць змесціва на мовах, выбраных вамі ў якасці прыярытэтных, калі гэта магчыма</translation>
+<translation id="5261619498868361045">Назва кантэйнера не можа адсутнічаць.</translation>
 <translation id="5261683757250193089">Адкрыць у Вэб-краме</translation>
 <translation id="5262178194499261222">Выдаліць пароль</translation>
 <translation id="5262784498883614021">Падключацца да сеткі аўтаматычна</translation>
@@ -4992,6 +4993,7 @@
 <translation id="562935524653278697">Адміністратар выключыў сінхранізацыю закладак, гісторыі, пароляў і іншых налад.</translation>
 <translation id="5631017369956619646">Выкарыстанне ЦП</translation>
 <translation id="5632059346822207074">Запытаны дазвол. Каб адказаць, націсніце Ctrl + Forward</translation>
+<translation id="5632221585574759616">Даведацца больш пра дазволы для пашырэнняў</translation>
 <translation id="5632566673632479864">Уліковы запіс <ph name="EMAIL" /> больш не дазволена выкарыстоўваць як асноўны. Гэты ўліковы запіс знаходзіцца пад кіраваннем дамена <ph name="DOMAIN" />, таму з прылады будуць выдалены вашы закладкі, гісторыя, паролі і іншыя налады.</translation>
 <translation id="5632592977009207922">Ідзе спампоўванне, засталося <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Даведацца больш пра сістэмныя патрабаванні</translation>
@@ -5612,6 +5614,7 @@
 <translation id="6218058416316985984">Прылада <ph name="DEVICE_TYPE" /> не падключана да інтэрнэту. Падключыцеся да інтэрнэту і паўтарыце спробу.</translation>
 <translation id="6220413761270491930">Памылка загрузкі пашырэння</translation>
 <translation id="6224481128663248237">Фармаціраванне завершана!</translation>
+<translation id="622474711739321877">Такі кантэйнер ужо існуе.</translation>
 <translation id="622537739776246443">Профіль будзе выдалены</translation>
 <translation id="6225475702458870625">Злучэнне для перадачы даных даступнае з вашай прылады <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Файл закрытага ключа (неабавязкова)</translation>
@@ -6417,6 +6420,7 @@
 <translation id="696780070563539690">Сайты не могуць выкарыстоўваць файлы cookie для адсочвання вашых дзеянняў у браўзеры на розных сайтах, напрыклад, каб персаналізаваць рэкламу</translation>
 <translation id="6968288415730398122">Каб наладзіць блакіроўку экрана, увядзіце пароль.</translation>
 <translation id="6969047215179982698">Выключыць функцыю "Абагульванне паблізу"</translation>
+<translation id="6969216690072714773">Увядзіце новую або абнавіце існуючую інфармацыю, якую трэба звязаць з гэтай прыладай. (Неабавязкова.)</translation>
 <translation id="6970480684834282392">Тып запуску</translation>
 <translation id="6970543303783413625">Не ўдалося імпартаваць паролі. За адзін раз можна імпартаваць толькі наступную колькасць пароляў: <ph name="COUNT" />.</translation>
 <translation id="6970856801391541997">Друк канкрэтных старонак</translation>
@@ -6823,6 +6827,7 @@
 <translation id="7377481913241237033">Падключыцца з дапамогай кода</translation>
 <translation id="7378611153938412599">Ненадзейныя паролі лёгка адгадаць. Выкарыстоўвайце толькі надзейныя паролі. <ph name="BEGIN_LINK" />Праглядзець іншыя парады па бяспецы.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Адкрыць Вэб-краму Chrome</translation>
+<translation id="7380272457268061606">Адключыць аднаўленне лакальных даных?</translation>
 <translation id="7380459290951585794">Упэўніцеся, што тэлефон разблакіраваны, знаходзіцца паблізу і на ім уключаны Bluetooth і Wi-Fi</translation>
 <translation id="7380622428988553498">Назва прылады змяшчае недапушчальныя сімвалы</translation>
 <translation id="7380768571499464492">Прынтар "<ph name="PRINTER_NAME" />" абноўлены</translation>
@@ -7073,6 +7078,7 @@
 <translation id="7617263010641145920">Уключыць Краму Play</translation>
 <translation id="7617648809369507487">Выкарыстоўваць ціхі рэжым для паведамленняў</translation>
 <translation id="7621382409404463535">Сістэме не ўдалося захаваць канфігурацыю прылады.</translation>
+<translation id="7621595347123595643">Вы не зможаце аднавіць лакальныя даныя, калі забудзеце пароль або PIN-код.</translation>
 <translation id="7622114377921274169">Ідзе зарадка.</translation>
 <translation id="7622768823216805500">Сайты звычайна ўсталёўваюць апрацоўшчыкі плацяжоў для рэалізацыі функцый купляў, напрыклад для спрашчэння афармлення заказу</translation>
 <translation id="7622903810087708234">Падрабязныя звесткі аб паролі</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 05258575..aa6ca64 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2086,7 +2086,6 @@
 <translation id="2852385257476173980">Когато сърфирате в мрежата, тук може да се показва списък с посетените от вас сайтове</translation>
 <translation id="285241945869362924">Автоматично създава надписи за аудио- и видеосъдържание. Аудиозаписите и надписите остават на устройството ви.</translation>
 <translation id="2856776373509145513">Създаване на нов контейнер</translation>
-<translation id="2858138569776157458">Водещи сайтове</translation>
 <translation id="2861301611394761800">Системната актуализация е завършена. Моля, рестартирайте системата.</translation>
 <translation id="2861941300086904918">Диспечер на сигурността за клиенти с директно изпълнение</translation>
 <translation id="2862815659905780618">Премахване на Linux средата на програмиране</translation>
@@ -2373,6 +2372,7 @@
 <translation id="3129173833825111527">Ляво поле</translation>
 <translation id="3129215702932019810">Грешка при стартирането на приложението</translation>
 <translation id="3130528281680948470">Настройките на устройството ви ще бъдат нулирани и всички профили на потребители и локални данни ще бъдат премахнати. Това действие не може да се отмени.</translation>
+<translation id="3130863904455712965">История и др.</translation>
 <translation id="313205617302240621">Забравили сте паролата си?</translation>
 <translation id="3132277757485842847">Връзката с телефона ви прекъсна. Проверете дали е наблизо, отключен е и Bluetooth и функцията за Wi-Fi са включени.</translation>
 <translation id="3132896062549112541">Правило</translation>
@@ -2386,7 +2386,6 @@
 <translation id="3143515551205905069">Анулиране на синхронизирането</translation>
 <translation id="3143754809889689516">Възпроизвеждане от началото</translation>
 <translation id="3144647712221361880">Отваряне на връзката като</translation>
-<translation id="3144896554017119333">Разширения и др.</translation>
 <translation id="3149510190863420837">Приложения в Chrome</translation>
 <translation id="3150693969729403281">Старт на функцията за проверка за безопасността</translation>
 <translation id="3150927491400159470">Твърдо презареждане</translation>
@@ -8444,6 +8443,7 @@
 <translation id="8859174528519900719">Подрамка: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8859402192569844210">Общите условия не се заредиха</translation>
 <translation id="8859662783913000679">Профил на родител</translation>
+<translation id="8860973272057162405">{COUNT,plural, =1{{COUNT} профил}other{{COUNT} профила}}</translation>
 <translation id="8861568709166518036">Използвайте софтуерните бутони, за да навигирате към началния екран, да се връщате назад и да превключвате между приложенията. Те се включват автоматично, ако ChromeVox или функцията за автоматични кликвания са включени.</translation>
 <translation id="8862003515646449717">Преминете към бърз браузър</translation>
 <translation id="8863753581171631212">Отваряне на връзката в нов прозорец на <ph name="APP" /></translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index eb11bf2..cfd40e1 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">আপনি ওয়েব ব্রাউজ করার সাথে সাথে আপনার ভিজিট করা সাইটগুলির একটি তালিকা এখানে দেখা যেতে পারে</translation>
 <translation id="285241945869362924">অডিও এবং ভিডিওর জন্য ইংরেজিতে ক্যাপশন অটোমেটিক তৈরি হয়। অডিও এবং ক্যাপশন আপনার ডিভাইসেই থাকে।</translation>
 <translation id="2856776373509145513">নতুন একটি কন্টেনার তৈরি করুন</translation>
-<translation id="2858138569776157458">সেরা সাইট</translation>
 <translation id="2861301611394761800">সিস্টেম আপডেট সম্পূর্ণ৷ দয়া করে সিস্টেমটি পুনরায় শুরু করুন৷</translation>
 <translation id="2861941300086904918">নেটিভ ক্লায়েন্ট সুরক্ষা পরিচালক</translation>
 <translation id="2862815659905780618">Linux ডেভেলপ করার বিকল্প সরান</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">বাঁ মার্জিন</translation>
 <translation id="3129215702932019810">অ্যাপ্লিকেশনটি চালু করার সময় কোনও সমস্যা হয়েছে</translation>
 <translation id="3130528281680948470">আপনার ডিভাইস আবার সেট করা হবে এবং সব ব্যবহারকারীর অ্যাকাউন্ট এবং স্থানীয় তথ্য মুছে ফেলা হবে। এটিকে পূর্বাবস্থায় ফেরানো যাবে না।</translation>
+<translation id="3130863904455712965">ইতিহাস ও আরও অনেক কিছু</translation>
 <translation id="313205617302240621">পাসওয়ার্ড ভুলে গেছেন?</translation>
 <translation id="3132277757485842847">আমরা আপনার ফোনে সাথে কানেক্ট করে রাখতে পারছি না। আপনার ফোন কাছাকাছি, আনলক অবস্থায় রয়েছে কিনা এবং তাতে ব্লুটুথ আর ওয়াই-ফাই চালু আছে কিনা দেখে নিন।</translation>
 <translation id="3132896062549112541">নিয়ম</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">সিঙ্ক বাতিল করুন</translation>
 <translation id="3143754809889689516">শুরু থেকে চালান</translation>
 <translation id="3144647712221361880">এই হিসেবে লিঙ্ক খুলুন</translation>
-<translation id="3144896554017119333">এক্সটেনশন এবং আরও অনেক কিছু</translation>
 <translation id="3149510190863420837">Chrome অ্যাপগুলি</translation>
 <translation id="3150693969729403281">এখনই নিরাপত্তা সংক্রান্ত পরীক্ষা চালান</translation>
 <translation id="3150927491400159470">কঠিন রিলোড</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 72466a2..b9601c2d 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1298,6 +1298,7 @@
 <translation id="2157875535253991059">Ova stranica se sada prikazuje preko cijelog ekrana.</translation>
 <translation id="2158475082070321257">Kopiraj link za istaknuti tekst</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Opseg prečaca <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Dodaj WiFi...</translation>
 <translation id="2162155940152307086">Sinhronizacija će se pokrenuti kada zatvorite postavke sinhronizacije</translation>
 <translation id="2162705204091149050">Čitanje informacija o vašem pregledniku, OS-u, uređaju, instaliranom softveru i fajlovima</translation>
@@ -2089,7 +2090,6 @@
 <translation id="2852385257476173980">Lista lokacija koje posjećujete se može pojaviti ovdje dok pregledate web</translation>
 <translation id="285241945869362924">Automatski kreira titlove za audio i videozapise. Zvuk i titlovi nikada ne napuštaju uređaj.</translation>
 <translation id="2856776373509145513">Kreirajte novi spremnik</translation>
-<translation id="2858138569776157458">Popularno</translation>
 <translation id="2861301611394761800">Ažuriranje sistema je završeno. Ponovo pokrenite sistem.</translation>
 <translation id="2861941300086904918">Upravitelj sigurnosti izvornog klijenta</translation>
 <translation id="2862815659905780618">Uklonite Linuxovo okruženje za razvoj</translation>
@@ -2376,6 +2376,7 @@
 <translation id="3129173833825111527">Lijeva margina</translation>
 <translation id="3129215702932019810">Greška pri pokretanju aplikacije</translation>
 <translation id="3130528281680948470">Vaš uređaj će se ponovo pokrenuti i svi korisnički računi i lokalni podaci će se ukloniti. Ova radnja se ne može poništiti.</translation>
+<translation id="3130863904455712965">Historija i još mnogo toga</translation>
 <translation id="313205617302240621">Zaboravili ste lozinku?</translation>
 <translation id="3132277757485842847">Nije moguće održati vezu s vašim telefonom. Provjerite nalazi li se telefon u blizini, je li otključan i jesu li Bluetooth i WiFi uključeni.</translation>
 <translation id="3132896062549112541">Pravilo</translation>
@@ -2389,7 +2390,6 @@
 <translation id="3143515551205905069">Otkaži sinhronizaciju</translation>
 <translation id="3143754809889689516">Reproduciraj od početka</translation>
 <translation id="3144647712221361880">Otvori link kao</translation>
-<translation id="3144896554017119333">Ekstenzije i još mnogo toga</translation>
 <translation id="3149510190863420837">Chromeove aplikacije</translation>
 <translation id="3150693969729403281">Odmah pokrenite sigurnosnu provjeru</translation>
 <translation id="3150927491400159470">Ponovno učitavanje bez keš memorije</translation>
@@ -2687,6 +2687,7 @@
 <translation id="3445047461171030979">Brzi odgovori Google Asistenta</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Vaša organizacija je blokirala ovaj fajl jer sadrži osjetljiv ili opasan sadržaj. Zatražite od vlasnika da ispravi grešku.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />1 web-lokacije<ph name="END_BOLD" /> koju niste posjećivali u posljednje vrijeme}one{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacije<ph name="END_BOLD" /> koju niste posjećivali u posljednje vrijeme}few{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacije<ph name="END_BOLD" /> koje niste posjećivali u posljednje vrijeme}other{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacija<ph name="END_BOLD" /> koje niste posjećivali u posljednje vrijeme}}</translation>
 <translation id="3445925074670675829">USB-C uređaj</translation>
 <translation id="3446274660183028131">Pokrenite Parallels Desktop da instalirate Windows.</translation>
 <translation id="344630545793878684">Čitati vaše podatke na nizu web lokacija</translation>
@@ -2898,6 +2899,7 @@
 <translation id="3642699533549879077">Kad neko drugi pogleda vaš ekran, primit ćete upozorenje, a sadržaj obavještenja će biti sakriven.</translation>
 <translation id="3643962751030964445">Ovim uređajem upravlja <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> traži novi profil za račun <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Pomjerite malo udesno da snimite drugi dio otiska prsta.</translation>
+<translation id="3647051300407077858">Pregledajte dopuštenja za obavijesti</translation>
 <translation id="3647654707956482440">Nije moguće koristiti ovaj link. Provjerite je li ispravno napisano ili koristite drugi link da ponovo pokušate.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> je primljena s uređaja <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> je primljena s uređaja <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> su primljene s uređaja <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> je primljeno s uređaja <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Prepoznat je USB uređaj <ph name="USB_DEVICE_NAME" /></translation>
@@ -3077,6 +3079,7 @@
 <translation id="380408572480438692">Omogućavanje prikupljanja podataka o performansama će pomoći Googleu da poboljša sistem tokom vremena. Podaci se ne šalju dok vi ne dostavite izvještaj o povratnim informacijama (Alt + Shift + I) u koji ste uključili podatke o performansama. Uvijek se možete vratiti na ovaj ekran da onemogućite prikupljanje.</translation>
 <translation id="3807249107536149332">Ekstenzija <ph name="EXTENSION_NAME" /> (ID ekstenzije "<ph name="EXTENSION_ID" />") nije dozvoljena na ekranu za prijavu.</translation>
 <translation id="3807747707162121253">Otkaži</translation>
+<translation id="3808202562160426447">Zatamni pozadinski sadržaj</translation>
 <translation id="3808443763115411087">Razvoj Android aplikacija na Crostiniju</translation>
 <translation id="38089336910894858">Prikaži upozorenje prije nego što izađeš sa ⌘Q</translation>
 <translation id="3809272675881623365">Zec</translation>
@@ -3668,6 +3671,7 @@
 <translation id="4364567974334641491">Aplikacija <ph name="APP_NAME" /> dijeli prozor.</translation>
 <translation id="4364830672918311045">Prikaži obavještenja</translation>
 <translation id="4366138410738374926">Štampanje je započelo</translation>
+<translation id="4367513928820380646">Pregledajte uklonjena dopuštenja</translation>
 <translation id="4369121877634339065">Prevucite bilo koju sliku da pretražujete</translation>
 <translation id="4369215744064167350">Zahtjev za web lokaciju je odobren</translation>
 <translation id="4370975561335139969">Unijeli ste e-adresu i zaporku koje se ne podudaraju</translation>
@@ -4388,6 +4392,7 @@
 <translation id="5045550434625856497">Pogrešna lozinka</translation>
 <translation id="504561833207953641">Otvaranje u postojećoj sesiji preglednika.</translation>
 <translation id="5049614114599109018">Koristi historiju unosa</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Ova je web-lokacija nedavno poslala mnogo obavijesti. Možete spriječiti da ubuduće šalje obavijesti.}one{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}few{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}other{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}}</translation>
 <translation id="5051836348807686060">Alat za provjeru pravopisa nije podržan za odabrane jezike</translation>
 <translation id="5052499409147950210">Uredite web lokaciju</translation>
 <translation id="505347685865235222">Neimenovana grupa – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7288,6 +7293,7 @@
 <translation id="7775694664330414886">Kartica je premještena u neimenovanu grupu – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> će moći prikazivati fajlove u folderu <ph name="FOLDERNAME" /> dok ne zatvorite sve kartice za ovu web lokaciju</translation>
 <translation id="7776701556330691704">Nije pronađen nijedan glas</translation>
+<translation id="7777624210360383048">Prečac <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Uklonit će se računi svih korisnika i svi lokalni podaci.</translation>
 <translation id="7782102568078991263">Google nema više prijedloga</translation>
 <translation id="7782717250816686129">Pohrani trajne podatke na ekranu za prijavu i ubaci akreditive u sesiju.</translation>
@@ -7320,6 +7326,7 @@
 <translation id="7807711621188256451">Uvijek dozvolite web lokaciji <ph name="HOST" /> da pristupa vašoj kameri</translation>
 <translation id="7810202088502699111">Skočni prozori su blokirani na ovoj stranici.</translation>
 <translation id="7814458197256864873">&amp;Kopiraj</translation>
+<translation id="7815583197273433531">Uredite prečac <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Opasno preuzimanje je blokirano</translation>
 <translation id="7817361223956157679">Tastatura na ekranu još uvijek ne radi u aplikacijama za Linux</translation>
 <translation id="7818135753970109980">Dodana je nova tema (<ph name="EXTENSION_NAME" />)</translation>
@@ -7394,6 +7401,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Prikaži račun</translation>
 <translation id="7883792253546618164">Otkažite pretplatu bilo kada.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Pregledajte jednu web-lokaciju koja je poslala mnogo obavijesti}one{Pregledajte {NUM_SITES} web-lokaciju koja je poslala mnogo obavijesti}few{Pregledajte {NUM_SITES} web-lokacije koje su poslale mnogo obavijesti}other{Pregledajte {NUM_SITES} web-lokacija koje su poslale mnogo obavijesti}}</translation>
 <translation id="788453346724465748">Učitavanje informacija o računu...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{stavku}one{# stavka}few{# stavke}other{# stavki}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 70dcf1f..27732a2 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2073,7 +2073,6 @@
 <translation id="2852385257476173980">És possible que aquí aparegui una llista dels llocs web que visites a mesura que naveguis pel web</translation>
 <translation id="285241945869362924">Crea subtítols automàticament per a àudios i vídeos. L'àudio i els subtítols no surten mai del dispositiu.</translation>
 <translation id="2856776373509145513">Crea un contenidor nou</translation>
-<translation id="2858138569776157458">Llocs populars</translation>
 <translation id="2861301611394761800">Actualització del sistema completada. Reinicieu el sistema.</translation>
 <translation id="2861941300086904918">Administrador de seguretat de Native Client</translation>
 <translation id="2862815659905780618">Suprimeix l'entorn de desenvolupament de Linux</translation>
@@ -2360,6 +2359,7 @@
 <translation id="3129173833825111527">Marge esquerre</translation>
 <translation id="3129215702932019810">S'ha produït un error en iniciar l'aplicació</translation>
 <translation id="3130528281680948470">El dispositiu es restablirà i tots els comptes d'usuari i les dades del dispositiu s'eliminaran. Aquesta acció no es pot desfer.</translation>
+<translation id="3130863904455712965">Historial i més</translation>
 <translation id="313205617302240621">Has oblidat la contrasenya?</translation>
 <translation id="3132277757485842847">No hem pogut mantenir la connexió amb el teu telèfon. Comprova que sigui a prop teu, que estigui desbloquejat i que tingui el Bluetooth i la Wi‑Fi activats.</translation>
 <translation id="3132896062549112541">Regla</translation>
@@ -2373,7 +2373,6 @@
 <translation id="3143515551205905069">Cancel·la la sincronització</translation>
 <translation id="3143754809889689516">Reprodueix des del principi</translation>
 <translation id="3144647712221361880">Obre l'enllaç com a</translation>
-<translation id="3144896554017119333">Extensions i més</translation>
 <translation id="3149510190863420837">Aplicacions de Chrome</translation>
 <translation id="3150693969729403281">Executa la comprovació de seguretat ara</translation>
 <translation id="3150927491400159470">Torna a carregar de manera forçada</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 2327f841..c8af93a 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2077,7 +2077,6 @@
 <translation id="2852385257476173980">Zde se může zobrazovat seznam webů zjištěných z procházení internetu</translation>
 <translation id="285241945869362924">Automatické vytváření titulků pro zvuk a videa. Zvuk ani titulky nikdy neopouštějí zařízení.</translation>
 <translation id="2856776373509145513">Vytvoření nového kontejneru</translation>
-<translation id="2858138569776157458">Top weby</translation>
 <translation id="2861301611394761800">Aktualizace systému byla dokončena. Restartujte prosím systém.</translation>
 <translation id="2861941300086904918">Správce zabezpečení nativního klienta</translation>
 <translation id="2862815659905780618">Odstranění vývojářského prostředí Linuxu</translation>
@@ -2364,6 +2363,7 @@
 <translation id="3129173833825111527">Levý okraj</translation>
 <translation id="3129215702932019810">Při spouštění aplikace došlo k chybě</translation>
 <translation id="3130528281680948470">Zařízení bude resetováno a budou odstraněny veškeré uživatelské účty a místní data. Tuto operaci nelze vrátit zpět.</translation>
+<translation id="3130863904455712965">Historie a další</translation>
 <translation id="313205617302240621">Zapomněli jste heslo?</translation>
 <translation id="3132277757485842847">Nepodařilo se nám zachovat spojení s telefonem. Zkontrolujte, zda je telefon poblíž, zda je odemknutý a zda na něm je zapnuté rozhraní Bluetooth a Wi-Fi.</translation>
 <translation id="3132896062549112541">Pravidlo</translation>
@@ -2377,7 +2377,6 @@
 <translation id="3143515551205905069">Zrušit synchronizaci</translation>
 <translation id="3143754809889689516">Přehrát od začátku</translation>
 <translation id="3144647712221361880">Otevřít odkaz jako</translation>
-<translation id="3144896554017119333">Rozšíření a další</translation>
 <translation id="3149510190863420837">Aplikace Chrome</translation>
 <translation id="3150693969729403281">Spustit bezpečnostní kontrolu</translation>
 <translation id="3150927491400159470">Úplné opětovné načtení</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index a9233814..e3bc0833 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2093,7 +2093,6 @@
 <translation id="2852385257476173980">Mae'n bosib y bydd rhestr o'r gwefannau rydych yn ymweld â nhw yn ymddangos yma wrth i chi bori'r we</translation>
 <translation id="285241945869362924">Yn creu capsiynau yn awtomatig ar gyfer sain a fideo. Nid yw sain na chapsiynau byth yn gadael eich dyfais.</translation>
 <translation id="2856776373509145513">Creu cynhwysydd newydd</translation>
-<translation id="2858138569776157458">Gwefannau poblogaidd</translation>
 <translation id="2861301611394761800">Wedi gorffen diweddaru'r system. Ailgychwynnwch y system.</translation>
 <translation id="2861941300086904918">Rheolwr Diogelwch Cleient Brodorol</translation>
 <translation id="2862815659905780618">Tynnu amgylchedd datblygu Linux</translation>
@@ -2380,6 +2379,7 @@
 <translation id="3129173833825111527">Ymyl chwith</translation>
 <translation id="3129215702932019810">Bu gwall wrth lansio'r ap</translation>
 <translation id="3130528281680948470">Bydd eich dyfais yn cael ei hailosod a bydd yr holl gyfrifon defnyddwyr a data lleol yn cael eu tynnu. Nid oes modd dadwneud hyn.</translation>
+<translation id="3130863904455712965">Hanes a rhagor</translation>
 <translation id="313205617302240621">Wedi anghofio'ch cyfrinair?</translation>
 <translation id="3132277757485842847">Nid oeddem yn gallu cynnal cysylltiad â'ch ffôn. Gwnewch yn siŵr bod eich ffôn gerllaw, wedi'i ddatgloi, a bod Bluetooth a Wi-Fi wedi'u troi ymlaen.</translation>
 <translation id="3132896062549112541">Rheol</translation>
@@ -2393,7 +2393,6 @@
 <translation id="3143515551205905069">Canslo cysoni</translation>
 <translation id="3143754809889689516">Chwarae o'r dechrau</translation>
 <translation id="3144647712221361880">Agor Dolen fel</translation>
-<translation id="3144896554017119333">Estyniadau a rhagor</translation>
 <translation id="3149510190863420837">Apiau Chrome</translation>
 <translation id="3150693969729403281">Rhedeg y gwiriad diogelwch nawr</translation>
 <translation id="3150927491400159470">Ail-lwytho Caled</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 1f03cd5b6..55f38ff 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">En liste over websites, du besøger, kan vises her, når du surfer på nettet</translation>
 <translation id="285241945869362924">Der genereres automatisk undertekster til lyd- og videoindhold. Lyden og underteksterne forlader aldrig enheden.</translation>
 <translation id="2856776373509145513">Opret en ny container</translation>
-<translation id="2858138569776157458">Topwebsites</translation>
 <translation id="2861301611394761800">Opdateringen af systemet er fuldført. Genstart systemet.</translation>
 <translation id="2861941300086904918">Sikkerhedsadministrator for Native Client</translation>
 <translation id="2862815659905780618">Fjern Linux-udviklingsmiljø</translation>
@@ -2355,6 +2354,7 @@
 <translation id="3105796011181310544">Vil du skifte tilbage til Google?</translation>
 <translation id="310671807099593501">Websitet anvender Bluetooth</translation>
 <translation id="3108931485517391283">Kan ikke modtage</translation>
+<translation id="3108957152224931571">Fremhævningsfarve</translation>
 <translation id="3109206895301430738">Gemte fanegrupper</translation>
 <translation id="3109724472072898302">Skjult</translation>
 <translation id="3112292765614504292">Appstørrelse: <ph name="APP_SIZE" /></translation>
@@ -2377,6 +2377,7 @@
 <translation id="3129173833825111527">Venstre margen</translation>
 <translation id="3129215702932019810">Der opstod en fejl ved appens opstart</translation>
 <translation id="3130528281680948470">Enheden nulstilles, og alle brugerkonti og lokale data fjernes. Du kan ikke fortryde denne handling.</translation>
+<translation id="3130863904455712965">Historik m.m.</translation>
 <translation id="313205617302240621">Har du glemt din adgangskode?</translation>
 <translation id="3132277757485842847">Vi kunne ikke bevare forbindelsen til din telefon. Sørg for, at din telefon er i nærheden, at den er låst op, og at Bluetooth og Wi-Fi er aktiveret.</translation>
 <translation id="3132896062549112541">Regel</translation>
@@ -2390,7 +2391,6 @@
 <translation id="3143515551205905069">Annuller synkronisering</translation>
 <translation id="3143754809889689516">Afspil fra begyndelsen</translation>
 <translation id="3144647712221361880">Åbn linket som</translation>
-<translation id="3144896554017119333">Udvidelser m.m.</translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
 <translation id="3150693969729403281">Kør sikkerhedstjek nu</translation>
 <translation id="3150927491400159470">Genindlæs fuldstændig</translation>
@@ -4600,6 +4600,7 @@
 <translation id="5260334392110301220">Smarte citationstegn</translation>
 <translation id="5260508466980570042">Din mail eller adgangskode blev ikke bekræftet. Prøv igen.</translation>
 <translation id="5260958083445173099">Websites viser indhold på dine foretrukne sprog, hvis det er muligt</translation>
+<translation id="5261619498868361045">Containernavnet skal udfyldes.</translation>
 <translation id="5261683757250193089">Åbn i Webshop</translation>
 <translation id="5262178194499261222">Fjern adgangskode</translation>
 <translation id="5262784498883614021">Opret automatisk forbindelse til netværket</translation>
@@ -5006,6 +5007,7 @@
 <translation id="562935524653278697">Din administrator har deaktiveret synkroniseringen af bogmærker, historik, adgangskoder og andre indstillinger.</translation>
 <translation id="5631017369956619646">CPU-forbrug</translation>
 <translation id="5632059346822207074">Der er anmodet om tilladelse. Tryk på Ctrl + skåstregtasten for at svare</translation>
+<translation id="5632221585574759616">Få flere oplysninger om tilladelser for udvidelser</translation>
 <translation id="5632566673632479864">Din konto, <ph name="EMAIL" />, kan ikke længere være den primære konto. Da denne konto administreres af <ph name="DOMAIN" />, ryddes dine bogmærker, din historik, dine adgangskoder og andre indstillinger fra denne enhed.</translation>
 <translation id="5632592977009207922">Downloader. <ph name="PERCENT_REMAINING" /> % tilbage</translation>
 <translation id="5633149627228920745">Få flere oplysninger om systemkrav</translation>
@@ -5626,6 +5628,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> er offline. Opret forbindelse til internettet, og prøv igen.</translation>
 <translation id="6220413761270491930">Der opstod en fejl ved indlæsning af udvidelsen</translation>
 <translation id="6224481128663248237">Formateringen er nu fuldført.</translation>
+<translation id="622474711739321877">Denne container findes allerede.</translation>
 <translation id="622537739776246443">Profilen slettes</translation>
 <translation id="6225475702458870625">Dataforbindelse er tilgængelig via <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Privat nøglefil (valgfrit)</translation>
@@ -6427,6 +6430,7 @@
 <translation id="696780070563539690">Websites kan ikke anvende dine cookies til at se din browseraktivitet på forskellige websites for f.eks. at tilpasse annoncer</translation>
 <translation id="6968288415730398122">Angiv din adgangskode for at konfigurere skærmlåsen</translation>
 <translation id="6969047215179982698">Deaktiver Deling tæt på</translation>
+<translation id="6969216690072714773">Angiv nye oplysninger, eller opdater de eksisterende oplysninger, der skal tilknyttes denne enhed.</translation>
 <translation id="6970480684834282392">Starttype</translation>
 <translation id="6970543303783413625">Adgangskoderne kan ikke importeres. Du kan kun importere op til <ph name="COUNT" /> adgangskoder ad gangen.</translation>
 <translation id="6970856801391541997">Udskriv bestemte sider</translation>
@@ -6833,6 +6837,7 @@
 <translation id="7377481913241237033">Opret forbindelse med en kode</translation>
 <translation id="7378611153938412599">Svage adgangskoder er nemme at gætte. Sørg for at oprette en stærk adgangskode. <ph name="BEGIN_LINK" />Se flere sikkerhedstips<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Åbn Chrome Webshop</translation>
+<translation id="7380272457268061606">Vil du deaktivere gendannelse af lokale data?</translation>
 <translation id="7380459290951585794">Sørg for, at din telefon er i nærheden, at den er låst op, og at Bluetooth og Wi-Fi er aktiveret</translation>
 <translation id="7380622428988553498">Enhedsnavnet indeholder ugyldige tegn</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> blev opdateret</translation>
@@ -7083,6 +7088,7 @@
 <translation id="7617263010641145920">Slå Play Butik til</translation>
 <translation id="7617648809369507487">Få lydløse meddelelser</translation>
 <translation id="7621382409404463535">Systemet kunne ikke gemme enhedskonfigurationen.</translation>
+<translation id="7621595347123595643">Du kan ikke gendanne lokale data, hvis du glemmer din adgangskode eller pinkode.</translation>
 <translation id="7622114377921274169">Oplader.</translation>
 <translation id="7622768823216805500">Websites installerer normalt betalingshandlere til shoppingformål såsom nemmere betaling</translation>
 <translation id="7622903810087708234">Oplysninger om adgangskode</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 7dd3a9a3..0554ced 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -617,6 +617,7 @@
 <translation id="1573117025466282241">Smartphone mit QR-Code verwenden</translation>
 <translation id="1575741822946219011">Sprachen und Eingaben</translation>
 <translation id="1576594961618857597">Weißer Standardavatar</translation>
+<translation id="1576729678809834061">Dieses Suchergebnis melden</translation>
 <translation id="1578558981922970608">Schließen erzwingen</translation>
 <translation id="1580772913177567930">Wende dich an deinen Administrator</translation>
 <translation id="1581962803218266616">Im Finder anzeigen</translation>
@@ -1008,6 +1009,7 @@
 <translation id="1909880997794698664">Möchtest du das Gerät wirklich dauerhaft im Kioskmodus betreiben?</translation>
 <translation id="1910721550319506122">Willkommen!</translation>
 <translation id="1910736334623230603">Eine Suche in mehreren Bildern ist nicht möglich. Füge ein Bild nach dem anderen hinzu.</translation>
+<translation id="1910908536872421421">Chrome for Testing v<ph name="BROWSER_VERSION" /> ist nur für automatisierte Tests vorgesehen. Verwende für deine normalen Surfaktivitäten eine Standardversion von Chrome, die automatisch aktualisiert wird.</translation>
 <translation id="1915073950770830761">Canary</translation>
 <translation id="1915307458270490472">Auflegen</translation>
 <translation id="1916502483199172559">Roter Standardavatar</translation>
@@ -2070,7 +2072,6 @@
 <translation id="2852385257476173980">Wenn du im Web surfst, kann hier eine Liste mit von dir besuchten Websites angezeigt werden</translation>
 <translation id="285241945869362924">Erstellt automatisch Untertitel für Audioinhalte und Videos. Audioinhalte und Untertitel werden ausschließlich auf dem Gerät verarbeitet.</translation>
 <translation id="2856776373509145513">Neuen Container erstellen</translation>
-<translation id="2858138569776157458">Top-Websites</translation>
 <translation id="2861301611394761800">Systemupdate abgeschlossen. Starte das System jetzt neu.</translation>
 <translation id="2861941300086904918">Sicherheitsmanager für native Clients</translation>
 <translation id="2862815659905780618">Linux-Entwicklungsumgebung entfernen</translation>
@@ -2357,6 +2358,7 @@
 <translation id="3129173833825111527">Linker Rand</translation>
 <translation id="3129215702932019810">Fehler beim Starten der App</translation>
 <translation id="3130528281680948470">Dein Gerät wird zurückgesetzt und alle Nutzerkonten und lokalen Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.</translation>
+<translation id="3130863904455712965">Verlauf und mehr</translation>
 <translation id="313205617302240621">Passwort vergessen?</translation>
 <translation id="3132277757485842847">Die Verbindung zu deinem Smartphone konnte nicht aufrechterhalten werden. Dein Smartphone muss sich in der Nähe befinden, entsperrt sein und Bluetooth und WLAN müssen aktiviert sein.</translation>
 <translation id="3132896062549112541">Regel</translation>
@@ -2370,7 +2372,6 @@
 <translation id="3143515551205905069">Synchronisierung abbrechen</translation>
 <translation id="3143754809889689516">Von vorne abspielen</translation>
 <translation id="3144647712221361880">Link öffnen als</translation>
-<translation id="3144896554017119333">Erweiterungen und mehr</translation>
 <translation id="3149510190863420837">Chrome-Apps</translation>
 <translation id="3150693969729403281">Sicherheitscheck jetzt durchführen</translation>
 <translation id="3150927491400159470">Vollständiges Aktualisieren (Hard Reload)</translation>
@@ -3049,6 +3050,7 @@
 <translation id="3798449238516105146">Version</translation>
 <translation id="3798632811625902122">Das Bluetooth-Gerät „<ph name="DEVICE" />“ bittet um Erlaubnis für Kopplung.</translation>
 <translation id="3799128412641261490">Einstellungen für Schalterzugriff</translation>
+<translation id="3800030395703848668">Sortieroptionen anzeigen</translation>
 <translation id="3800806661949714323">Alle anzeigen (empfohlen)</translation>
 <translation id="3800828618615365228">Google Chrome und Chrome OS – zusätzliche Nutzungsbedingungen</translation>
 <translation id="3802486193901166966">Diese Erweiterung erfordert keine speziellen Berechtigungen und ermöglicht keinen zusätzlichen Websitezugriff</translation>
@@ -3243,6 +3245,7 @@
 <translation id="3965811923470826124">Mit</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> beenden</translation>
 <translation id="3966072572894326936">Anderen Ordner wählen...</translation>
+<translation id="3966094581547899417">Hotspot-Details</translation>
 <translation id="3967822245660637423">Download abgeschlossen</translation>
 <translation id="3967841595862839006">Sprache und Tastatur wählen</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3294,6 +3297,7 @@
 <translation id="4014432863917027322">"<ph name="EXTENSION_NAME" />" reparieren?</translation>
 <translation id="4015163439792426608">Du nutzt Erweiterungen? Diese kannst du jetzt <ph name="BEGIN_LINK" />ganz einfach an einem Ort verwalten<ph name="END_LINK" />.</translation>
 <translation id="4017225831995090447">QR-Code für diesen Link erstellen</translation>
+<translation id="4019983356493507433">Lesezeichenliste bearbeiten</translation>
 <translation id="4020327272915390518">Menü für Optionen</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3505,6 +3509,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Diese Erweiterung ist nicht zulässig}other{Einige Erweiterungen sind nicht zulässig}}</translation>
 <translation id="4231095370974836764">Apps und Spiele von Google Play auf dem <ph name="DEVICE_TYPE" /> installieren. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Spielsteuerung schließen</translation>
+<translation id="4231542173270219144">Wenn Tests aktiviert sind, werden für die Spam- und Betrugsreduzierung Private Stake Tokens verwendet, um Websites bei der Betrugsbekämpfung und der Unterscheidung zwischen Bots und Personen zu unterstützen.</translation>
 <translation id="4232375817808480934">Kerberos konfigurieren</translation>
 <translation id="4235965441080806197">Anmeldung abbrechen</translation>
 <translation id="4236163961381003811">Mehr Erweiterungen entdecken</translation>
@@ -3700,6 +3705,7 @@
 <translation id="4412698727486357573">Hilfe</translation>
 <translation id="44141919652824029">"<ph name="APP_NAME" />" erlauben, die Liste der angeschlossenen USB-Geräte abzurufen?</translation>
 <translation id="4414232939543644979">Neues &amp;Inkognito-Fenster</translation>
+<translation id="4414648713167199100">Hierfür wird die mobile Datenverbindung deines Chromebooks verwendet und dein Mobilfunkanbieter berechnet möglicherweise zusätzliche Gebühren. Kann auch den Akkuverbrauch erhöhen. <ph name="BEGIN_LINK_LEARN_MORE" />Weitere Informationen<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">Du kannst dein Gerät (<ph name="DEVICE_TYPE" />) jetzt nutzen.</translation>
 <translation id="4415245286584082850">Keine Geräte gefunden. Durch Klicken wird ein Hilfe-Artikel in einem neuen Tab geöffnet.</translation>
 <translation id="4415276339145661267">Google-Konto verwalten</translation>
@@ -4209,6 +4215,7 @@
 <translation id="4885692421645694729">Diese Erweiterung ermöglicht keinen zusätzlichen Websitezugriff.</translation>
 <translation id="4887424188275796356">Mit System Viewer öffnen</translation>
 <translation id="488785315393301722">Details ansehen</translation>
+<translation id="488862352499217187">Neuen Ordner erstellen</translation>
 <translation id="4890773143211625964">Erweiterte Druckereinstellungen anzeigen</translation>
 <translation id="4891089016822695758">Beta-Forum</translation>
 <translation id="4892229439761351791">Website kann Bluetooth verwenden</translation>
@@ -4330,6 +4337,7 @@
 <translation id="5009463889040999939">Profil wird umbenannt. Das kann einige Minuten dauern.</translation>
 <translation id="5010043101506446253">Zertifizierungsstelle</translation>
 <translation id="501057610015570208">App mit Manifest-Attribut „kiosk_only“ muss im Chrome OS Flex-Kioskmodus installiert werden</translation>
+<translation id="5010886807652684893">Visuelle Ansicht</translation>
 <translation id="5015344424288992913">Proxy auflösen...</translation>
 <translation id="5016491575926936899">Du kannst SMS von deinem Computer senden, deine Internetverbindung teilen, auf Unterhaltungsbenachrichtigungen antworten und dein <ph name="DEVICE_TYPE" /> mit deinem Smartphone entsperren.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Du kannst dich mit einem Textcursor auf den Seiten bewegen. Drücke die Tastenkombination Strg + Suchtaste + 7, um die Tastaturnavigation zu deaktivieren.</translation>
@@ -6074,6 +6082,7 @@
 <translation id="6674571176963658787">Gib deine Passphrase ein, um die Synchronisierung zu starten</translation>
 <translation id="6675665718701918026">Zeigegerät verbunden</translation>
 <translation id="6676212663108450937">Es ist ratsam, beim Trainieren deiner Stimme Kopfhörer zu verwenden</translation>
+<translation id="6677942524382973058">Private Stake Tokens verbessern den Datenschutz im Web und können nicht dazu verwendet werden, deine Identität zu ermitteln.</translation>
 <translation id="6678717876183468697">Abfrage-URL</translation>
 <translation id="6680442031740878064">Verfügbar: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Geschwindigkeit</translation>
@@ -6903,6 +6912,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# offener Tab; zum Ein- oder Ausblenden der Tableiste tippen}other{# offene Tabs; zum Ein- oder Ausblenden der Tableiste tippen}}</translation>
 <translation id="7465635034594602553">Ein Fehler ist aufgetreten. Bitte warte ein paar Minuten und führe <ph name="APP_NAME" /> dann noch einmal aus.</translation>
 <translation id="7465778193084373987">URL zum Zurückrufen von Netscape-Zertifikaten</translation>
+<translation id="7466431077154602932">Kompaktansicht</translation>
 <translation id="746861123368584540">Erweiterung geladen</translation>
 <translation id="7470424110735398630">Dürfen auf meine Zwischenablage zugreifen</translation>
 <translation id="747114903913869239">Fehler: Erweiterung kann nicht entschlüsselt werden.</translation>
@@ -7822,6 +7832,7 @@
 <translation id="8288539437195337464">Achte darauf, dass dein Gerät auf dem neuesten Stand ist, und versuche es noch einmal</translation>
 <translation id="8289128870594824098">Laufwerkgröße</translation>
 <translation id="8289509909262565712">Willkommen bei <ph name="DEVICE_OS" /></translation>
+<translation id="8291415872436043161">Chrome herunterladen</translation>
 <translation id="8293206222192510085">Lesezeichen hinzufügen</translation>
 <translation id="8294431847097064396">Quelle</translation>
 <translation id="8298429963694909221">Du kannst jetzt Benachrichtigungen von deinem Smartphone auf deinem Gerät (<ph name="DEVICE_TYPE" />) erhalten. Wenn du auf <ph name="DEVICE_TYPE" /> Benachrichtigungen schließt, werden diese auch auf deinem Smartphone geschlossen. Achte darauf, dass dein Smartphone sich in der Nähe befindet und Bluetooth und WLAN aktiviert sind.</translation>
@@ -8125,6 +8136,7 @@
 <translation id="8602674530529411098">Apps (Beta)</translation>
 <translation id="8602851771975208551">Ein anderes Programm auf deinem Computer hat eine App hinzugefügt, die sich möglicherweise auf die Funktionsweise von Chrome auswirkt.</translation>
 <translation id="8605428685123651449">SQLite-Speicher</translation>
+<translation id="8607326572516521315">Für die Spam- und Betrugsreduzierung werden Private Stake Tokens verwendet, um Websites bei der Betrugsbekämpfung und der Unterscheidung zwischen Bots und Personen zu unterstützen.</translation>
 <translation id="8608618451198398104">Kerberos-Ticket hinzufügen</translation>
 <translation id="8609465669617005112">Nach oben</translation>
 <translation id="8610103157987623234">Fehlerhaftes Format. Bitte versuche es noch einmal.</translation>
@@ -8449,6 +8461,7 @@
 <translation id="8890170499370378450">Es können Gebühren für mobile Daten anfallen</translation>
 <translation id="8890516388109605451">Quellen</translation>
 <translation id="8890529496706615641">Das Profil konnte nicht umbenannt werden. Bitte versuche es noch einmal oder wende dich an den technischen Support.</translation>
+<translation id="8891996167592415151">Auf Grundlage deiner Interaktion mit einer Website, z. B. wenn du dich regelmäßig in einem Konto anmeldest, kann diese Website ein Private Stake Token für deinen Browser ausstellen. Wenn andere von dir besuchte Websites später dann ein gültiges Private Stake Token finden, ist die Wahrscheinlichkeit höher, dass du als Person und nicht als Bot eingestuft wirst.</translation>
 <translation id="8892168913673237979">Fertig!</translation>
 <translation id="8893801527741465188">Deinstallation abgeschlossen</translation>
 <translation id="8893928184421379330">Das Gerät <ph name="DEVICE_LABEL" /> wurde nicht erkannt.</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index e746276..f72587b 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1299,6 +1299,7 @@
 <translation id="2157875535253991059">Αυτή η σελίδα εμφανίζεται σε πλήρη οθόνη</translation>
 <translation id="2158475082070321257">Αντιγραφή συνδέσμου προς την επισήμανση</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Εύρος <ph name="SHORTCUT" /> για <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Προσθήκη Wi-Fi…</translation>
 <translation id="2162155940152307086">Ο συγχρονισμός θα ξεκινήσει μόλις αποχωρήσετε από τις ρυθμίσεις συγχρονισμού</translation>
 <translation id="2162705204091149050">Διαβάστε πληροφορίες σχετικά με το πρόγραμμα περιήγησης, το λειτουργικό σύστημα, τη συσκευή, το εγκατεστημένο λογισμικό και τα αρχεία σας</translation>
@@ -2090,7 +2091,6 @@
 <translation id="2852385257476173980">Μια λίστα των ιστοτόπων που επισκέπτεστε μπορεί να εμφανίζεται εδώ κατά την περιήγησή σας στον ιστό</translation>
 <translation id="285241945869362924">Δημιουργεί αυτόματα υπότιτλους για ήχο και βίντεο. Ο ήχος και οι υπότιτλοι παραμένουν πάντα στη συσκευή σας.</translation>
 <translation id="2856776373509145513">Δημιουργήστε ένα νέο κοντέινερ</translation>
-<translation id="2858138569776157458">Κορ. ιστότοποι</translation>
 <translation id="2861301611394761800">Η ενημέρωση του συστήματος ολοκληρώθηκε. Επανεκκινήστε το σύστημα.</translation>
 <translation id="2861941300086904918">Πρόγραμμα διαχείρισης ασφαλείας Native Client</translation>
 <translation id="2862815659905780618">Κατάργηση περιβάλλοντος ανάπτυξης Linux</translation>
@@ -2377,6 +2377,7 @@
 <translation id="3129173833825111527">Αριστερό περιθώριο</translation>
 <translation id="3129215702932019810">Σφάλμα εκκίνησης εφαρμογής</translation>
 <translation id="3130528281680948470">Θα γίνει επαναφορά της συσκευής σας και θα καταργηθούν όλοι οι λογαριασμοί χρηστών και τα τοπικά δεδομένα. Αυτή η ενέργεια δεν είναι δυνατό να αναιρεθεί.</translation>
+<translation id="3130863904455712965">Ιστορικό και άλλα</translation>
 <translation id="313205617302240621">Ξεχάσατε τον κωδικό πρόσβασης;</translation>
 <translation id="3132277757485842847">Δεν ήταν δυνατή η διατήρηση της σύνδεσης με το τηλέφωνό σας. Βεβαιωθείτε ότι το τηλέφωνο βρίσκεται κοντά σας, είναι ξεκλειδωμένο και έχει ενεργοποιημένες τις λειτουργίες Bluetooth και Wi-Fi.</translation>
 <translation id="3132896062549112541">Κανόνας</translation>
@@ -2390,7 +2391,6 @@
 <translation id="3143515551205905069">Ακύρωση συγχρονισμού</translation>
 <translation id="3143754809889689516">Αναπαραγωγή από την αρχή</translation>
 <translation id="3144647712221361880">Άνοιγμα συνδέσμου ως</translation>
-<translation id="3144896554017119333">Επεκτάσεις και άλλα</translation>
 <translation id="3149510190863420837">Εφαρμογές Chrome</translation>
 <translation id="3150693969729403281">Εκτέλεση ελέγχου ασφαλείας τώρα</translation>
 <translation id="3150927491400159470">Υποχρεωτική επανάληψη φόρτωσης</translation>
@@ -2688,6 +2688,7 @@
 <translation id="3445047461171030979">Γρήγορες απαντήσεις Βοηθού Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> λεπτά</translation>
 <translation id="344537926140058498">Ο οργανισμός σας απέκλεισε αυτό το αρχείο επειδή έχει ευαίσθητο ή επικίνδυνο περιεχόμενο. Ζητήστε από τον κάτοχο να το διορθώσει.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Οι άδειες καταργήθηκαν από <ph name="BEGIN_BOLD" />1 ιστότοπο<ph name="END_BOLD" /> που δεν έχετε επισκεφτεί πρόσφατα}other{Οι άδειες καταργήθηκαν από <ph name="BEGIN_BOLD" />{NUM_SITES} ιστοτόπους<ph name="END_BOLD" /> που δεν έχετε επισκεφτεί πρόσφατα}}</translation>
 <translation id="3445925074670675829">Συσκευή USB-C</translation>
 <translation id="3446274660183028131">Εκκινήστε το Parallels Desktop για να εγκαταστήσετε τα Windows.</translation>
 <translation id="344630545793878684">Ανάγνωση των δεδομένων σας σε ορισμένους ιστότοπους</translation>
@@ -2899,6 +2900,7 @@
 <translation id="3642699533549879077">Όταν κάποιος άλλος κοιτάζει την οθόνη σας, θα εμφανίζεται μια σχετική προειδοποίηση και το περιεχόμενο της ειδοποίησης θα αποκρύπτεται.</translation>
 <translation id="3643962751030964445">Η διαχείριση της συσκευής γίνεται από τον διαχειριστή <ph name="DEVICE_MANAGER" />. Απαιτείται νέο προφίλ για τον λογαριασμό <ph name="USER_EMAIL_ADDRESS" /> από τον διαχειριστή <ph name="DEVICE_MANAGER" />.</translation>
 <translation id="3645372836428131288">Μετακινήστε ελαφρώς για να αποτυπώσετε ένα διαφορετικό τμήμα του δακτυλικού αποτυπώματος.</translation>
+<translation id="3647051300407077858">Έλεγχος αδειών ειδοποίησης</translation>
 <translation id="3647654707956482440">Δεν είναι δυνατή η χρήση αυτού του συνδέσμου. Ελέγξτε για τυπογραφικά λάθη ή χρησιμοποιήστε άλλον σύνδεσμο, για να προσπαθήσετε ξανά.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Ελήφθη <ph name="ATTACHMENTS" /> από τη συσκευή <ph name="DEVICE_NAME" />}other{Ελήφθησαν <ph name="ATTACHMENTS" /> από τη συσκευή <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Εντοπίστηκε συσκευή <ph name="USB_DEVICE_NAME" /></translation>
@@ -3078,6 +3080,7 @@
 <translation id="380408572480438692">Η ενεργοποίηση της συλλογής δεδομένων απόδοσης θα διευκολύνει την Google να βελτιώσει το σύστημα με την πάροδο του χρόνου. Δεν αποστέλλονται δεδομένα χωρίς να καταθέσετε πρώτα αναφορά σχολίων (Alt-Shift-I) και να συμπεριλάβετε τα δεδομένα απόδοσης. Μπορείτε να επιστρέψετε σε αυτήν την οθόνη για να απενεργοποιήσετε τη συλλογή ανά πάσα στιγμή.</translation>
 <translation id="3807249107536149332">Η επέκταση <ph name="EXTENSION_NAME" /> (αναγνωριστικό επέκτασης "<ph name="EXTENSION_ID" />") δεν επιτρέπεται σε μια οθόνη σύνδεσης.</translation>
 <translation id="3807747707162121253">&amp;Ακύρωση</translation>
+<translation id="3808202562160426447">Μείωση φωτεινότητας περιεχομένου παρασκηνίου</translation>
 <translation id="3808443763115411087">Ανάπτυξη εφαρμογών Android Crostini</translation>
 <translation id="38089336910894858">Εμφάνιση προειδοποίησης πριν από τον τερματισμό με το ⌘Q</translation>
 <translation id="3809272675881623365">Κουνέλι</translation>
@@ -3669,6 +3672,7 @@
 <translation id="4364567974334641491">Η εφαρμογή <ph name="APP_NAME" /> μοιράζεται ένα παράθυρο.</translation>
 <translation id="4364830672918311045">Εμφάνιση ειδοποιήσεων</translation>
 <translation id="4366138410738374926">Έναρξη εκτύπωσης</translation>
+<translation id="4367513928820380646">Έλεγχος καταργημένων αδειών</translation>
 <translation id="4369121877634339065">Σύρετε πάνω από την οθόνη για αναζήτηση.</translation>
 <translation id="4369215744064167350">Το αίτημα ιστοτόπου εγκρίθηκε</translation>
 <translation id="4370975561335139969">Η διεύθυνση ηλεκτρονικού ταχυδρομείου και ο κωδικός πρόσβασης δεν ταιριάζουν</translation>
@@ -4389,6 +4393,7 @@
 <translation id="5045550434625856497">Λανθασμένος κωδικός πρόσβασης</translation>
 <translation id="504561833207953641">Άνοιγμα σε υπάρχουσα περίοδο σύνδεσης προγράμματος περιήγησης.</translation>
 <translation id="5049614114599109018">Χρήση ιστορικού εισαγωγής</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Αυτός ο ιστότοπος έστειλε πολλές ειδοποιήσεις πρόσφατα. Μπορείτε να τον σταματήσετε, ώστε να μην στέλνει ειδοποιήσεις στο μέλλον.}other{Αυτοί οι ιστότοποι έστειλαν πολλές ειδοποιήσεις πρόσφατα. Μπορείτε να τους σταματήσετε, ώστε να μην στέλνουν ειδοποιήσεις στο μέλλον.}}</translation>
 <translation id="5051836348807686060">Δεν υποστηρίζεται ορθογραφικός έλεγχος για τις γλώσσες που επιλέξατε</translation>
 <translation id="5052499409147950210">Επεξεργασία ιστοτόπου</translation>
 <translation id="505347685865235222">Ομάδα χωρίς όνομα - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7286,6 +7291,7 @@
 <translation id="7775694664330414886">Η καρτέλα μεταφέρθηκε σε ομάδα χωρίς όνομα - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">Ο ιστότοπος <ph name="ORIGIN" /> θα μπορεί να βλέπει αρχεία στον φάκελο <ph name="FOLDERNAME" /> μέχρι να κλείσετε όλες τις καρτέλες για αυτόν τον ιστότοπο</translation>
 <translation id="7776701556330691704">Δεν βρέθηκαν φωνές</translation>
+<translation id="7777624210360383048">Συντόμευση <ph name="SHORTCUT" /> για <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Θα καταργηθούν όλοι οι λογαριασμοί χρηστών και τα τοπικά δεδομένα.</translation>
 <translation id="7782102568078991263">Δεν υπάρχουν άλλες προτάσεις από την Google</translation>
 <translation id="7782717250816686129">Αποθήκευση σταθερών δεδομένων στην οθόνη σύνδεσης και ενσωμάτωση διαπιστευτηρίων στην περίοδο σύνδεσης.</translation>
@@ -7318,6 +7324,7 @@
 <translation id="7807711621188256451">Να επιτρέπεται πάντα στο <ph name="HOST" /> η πρόσβαση στην κάμερά σας</translation>
 <translation id="7810202088502699111">Έγινε αποκλεισμός των αναδυόμενων παραθύρων σε αυτήν τη σελίδα.</translation>
 <translation id="7814458197256864873">&amp;Αντιγραφή</translation>
+<translation id="7815583197273433531">Επεξεργασία συντόμευσης <ph name="SHORTCUT" /> για την εφαρμογή <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Αποκλεισμός επικίνδυνης λήψης</translation>
 <translation id="7817361223956157679">Το πληκτρολόγιο οθόνης δεν λειτουργεί ακόμη σε εφαρμογές Linux.</translation>
 <translation id="7818135753970109980">Προστέθηκε νέο θέμα (<ph name="EXTENSION_NAME" />)</translation>
@@ -7392,6 +7399,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Προβολή λογαριασμού</translation>
 <translation id="7883792253546618164">Καταργήστε την εγγραφή σας ανά πάσα στιγμή.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Έλεγχος ενός ιστοτόπου που έστειλε πρόσφατα πολλές ειδοποιήσεις}other{Έλεγχος {NUM_SITES} ιστοτόπων που έστειλαν πρόσφατα πολλές ειδοποιήσεις}}</translation>
 <translation id="788453346724465748">Φόρτωση πληροφοριών λογαριασμού…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ένα στοιχείο}other{# στοιχεία}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 7d7b4fda..5eb89b67 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">A list of sites that you visit may appear here as you browse the web</translation>
 <translation id="285241945869362924">Automatically creates captions for audio and video. Audio and captions never leave your device.</translation>
 <translation id="2856776373509145513">Create a new container</translation>
-<translation id="2858138569776157458">Top sites</translation>
 <translation id="2861301611394761800">System update complete. Please restart the system.</translation>
 <translation id="2861941300086904918">Native Client security manager</translation>
 <translation id="2862815659905780618">Remove Linux development environment</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">Left margin</translation>
 <translation id="3129215702932019810">Error launching application</translation>
 <translation id="3130528281680948470">Your device will be reset and all user accounts and local data will be removed. This cannot be undone.</translation>
+<translation id="3130863904455712965">History and more</translation>
 <translation id="313205617302240621">Forgot password?</translation>
 <translation id="3132277757485842847">We were unable to maintain a connection with your phone. Make sure that your phone is nearby, unlocked and has Bluetooth and Wi-Fi turned on.</translation>
 <translation id="3132896062549112541">Rule</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">Cancel sync</translation>
 <translation id="3143754809889689516">Play from the beginning</translation>
 <translation id="3144647712221361880">Open link as</translation>
-<translation id="3144896554017119333">Extensions and more</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150693969729403281">Run safety check now</translation>
 <translation id="3150927491400159470">Hard Reload</translation>
@@ -8455,6 +8454,7 @@
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8859402192569844210">Terms of Service could not be loaded</translation>
 <translation id="8859662783913000679">Parent account</translation>
+<translation id="8860973272057162405">{COUNT,plural, =1{{COUNT} account}other{{COUNT} accounts}}</translation>
 <translation id="8861568709166518036">Use on-screen buttons to navigate home, back and switch apps. Turns on automatically if ChromeVox or automatic clicks is turned on.</translation>
 <translation id="8862003515646449717">Switch to a fast browser</translation>
 <translation id="8863753581171631212">Open link in new <ph name="APP" /></translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 87ee89c..552a33e 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2072,7 +2072,6 @@
 <translation id="2852385257476173980">Es posible que aparezca una lista de sitios que visitas aquí mientras navegas en la Web.</translation>
 <translation id="285241945869362924">Crea subtítulos de forma automática para audio y video. El audio y los subtítulos permanecen en el dispositivo.</translation>
 <translation id="2856776373509145513">Crea un contenedor nuevo</translation>
-<translation id="2858138569776157458">Populares</translation>
 <translation id="2861301611394761800">Se completó la actualización del sistema. Reinicie el sistema.</translation>
 <translation id="2861941300086904918">Administrador de seguridad NATIVE_CLIENT</translation>
 <translation id="2862815659905780618">Quita el entorno de desarrollo de Linux</translation>
@@ -2336,6 +2335,7 @@
 <translation id="3105796011181310544">¿Deseas volver a Google?</translation>
 <translation id="310671807099593501">El sitio está usando la conexión Bluetooth</translation>
 <translation id="3108931485517391283">No se puede recibir el archivo</translation>
+<translation id="3108957152224931571">Color de resaltado</translation>
 <translation id="3109206895301430738">Grupos de pestañas guardados</translation>
 <translation id="3109724472072898302">Contraído</translation>
 <translation id="3112292765614504292">Tamaño de la app: <ph name="APP_SIZE" /></translation>
@@ -2358,6 +2358,7 @@
 <translation id="3129173833825111527">Margen izquierdo</translation>
 <translation id="3129215702932019810">Error al iniciar la aplicación</translation>
 <translation id="3130528281680948470">El dispositivo se restablecerá y todas las cuentas de usuario y los datos locales se eliminarán. Esta acción no se puede deshacer.</translation>
+<translation id="3130863904455712965">Historial y más</translation>
 <translation id="313205617302240621">¿Olvidaste la contraseña?</translation>
 <translation id="3132277757485842847">No se pudo mantener la conexión con tu teléfono. Asegúrate de que esté cerca, desbloqueado y tenga las conexiones Bluetooth y Wi-Fi activadas.</translation>
 <translation id="3132896062549112541">Regla</translation>
@@ -2371,7 +2372,6 @@
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde el principio</translation>
 <translation id="3144647712221361880">Abrir vínculo como</translation>
-<translation id="3144896554017119333">Extensiones y más</translation>
 <translation id="3149510190863420837">Aplicaciones de Chrome</translation>
 <translation id="3150693969729403281">Ejecuta la verificación de seguridad ahora</translation>
 <translation id="3150927491400159470">Volver a cargar de manera forzada</translation>
@@ -4580,6 +4580,7 @@
 <translation id="5260334392110301220">Comillas inteligentes</translation>
 <translation id="5260508466980570042">No es posible verificar tu correo electrónico o contraseña. Inténtalo nuevamente.</translation>
 <translation id="5260958083445173099">Los sitios web mostrarán contenido en estos idiomas cuando sea posible</translation>
+<translation id="5261619498868361045">El nombre del contenedor no puede quedar vacío.</translation>
 <translation id="5261683757250193089">Abrir en Web Store</translation>
 <translation id="5262178194499261222">Quitar contraseña</translation>
 <translation id="5262784498883614021">Conectarse a una red de forma automática</translation>
@@ -4986,6 +4987,7 @@
 <translation id="562935524653278697">Tu administrador inhabilitó la sincronización de tus favoritos, historial, contraseñas y otras opciones de configuración.</translation>
 <translation id="5631017369956619646">Uso de la CPU</translation>
 <translation id="5632059346822207074">Se solicitó un permiso; para responder, presiona Ctrl + flecha hacia adelante</translation>
+<translation id="5632221585574759616">Más información sobre los permisos de extensiones</translation>
 <translation id="5632566673632479864">Ya no es posible usar tu cuenta <ph name="EMAIL" /> como la principal. Como <ph name="DOMAIN" /> administra esta cuenta, se borrarán tus favoritos, historial, contraseñas y otras opciones de configuración de este dispositivo.</translation>
 <translation id="5632592977009207922">Descargando. Falta <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">Más información sobre los requisitos del sistema</translation>
@@ -5606,6 +5608,7 @@
 <translation id="6218058416316985984">El dispositivo <ph name="DEVICE_TYPE" /> no está conectado a Internet. Conéctalo y vuelve a intentarlo.</translation>
 <translation id="6220413761270491930">Error al cargar la extensión</translation>
 <translation id="6224481128663248237">El formato ha finalizado con éxito.</translation>
+<translation id="622474711739321877">Este contenedor ya existe.</translation>
 <translation id="622537739776246443">Se borrará el perfil</translation>
 <translation id="6225475702458870625">Conexión de datos disponibles de tu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Archivo de clave privada (opcional)</translation>
@@ -6405,6 +6408,7 @@
 <translation id="696780070563539690">Los sitios no pueden usar tus cookies para ver la actividad de navegación en diferentes sitios, por ejemplo, con el fin de personalizar anuncios</translation>
 <translation id="6968288415730398122">Ingresa tu contraseña para configurar el bloqueo de pantalla</translation>
 <translation id="6969047215179982698">Desactivar Compartir con Nearby</translation>
+<translation id="6969216690072714773">Ingresa información nueva o actualiza la existente para asociarla con este dispositivo.</translation>
 <translation id="6970480684834282392">Tipo de inicio</translation>
 <translation id="6970543303783413625">No se pudieron importar las contraseñas. Solo puedes importar hasta <ph name="COUNT" /> contraseñas a la vez.</translation>
 <translation id="6970856801391541997">Imprimir páginas específicas</translation>
@@ -6811,6 +6815,7 @@
 <translation id="7377481913241237033">Conéctate con un código</translation>
 <translation id="7378611153938412599">Las contraseñas poco seguras son fáciles de adivinar. Asegúrate de crear contraseñas seguras. <ph name="BEGIN_LINK" />Obtén más sugerencias de seguridad.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Abrir Chrome Web Store</translation>
+<translation id="7380272457268061606">¿Quieres inhabilitar la recuperación de datos locales?</translation>
 <translation id="7380459290951585794">Asegúrate de que el teléfono esté cerca, desbloqueado y tenga las conexiones Bluetooth y Wi-Fi activadas</translation>
 <translation id="7380622428988553498">El nombre del dispositivo incluye caracteres no válidos</translation>
 <translation id="7380768571499464492">Se actualizó <ph name="PRINTER_NAME" /></translation>
@@ -7061,6 +7066,7 @@
 <translation id="7617263010641145920">Activar Play Store</translation>
 <translation id="7617648809369507487">Usar notificaciones más discretas</translation>
 <translation id="7621382409404463535">El sistema no pudo guardar la configuración del dispositivo.</translation>
+<translation id="7621595347123595643">No podrás recuperar datos locales si olvidas tu contraseña o PIN.</translation>
 <translation id="7622114377921274169">Cargando</translation>
 <translation id="7622768823216805500">Por lo general los sitios instalan controladores de pago para habilitar funciones de compra, por ejemplo, a fin de facilitar la confirmación de las compras.</translation>
 <translation id="7622903810087708234">Detalles de la contraseña</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 0d44c9e..fca332b 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2076,7 +2076,6 @@
 <translation id="2852385257476173980">Una lista de sitios que visites puede aparecer aquí a medida que navegues por la Web</translation>
 <translation id="285241945869362924">Crea subtítulos de forma automática para contenido de audio y vídeo. El audio y los subtítulos no saldrán de tu dispositivo en ningún momento.</translation>
 <translation id="2856776373509145513">Crear un contenedor</translation>
-<translation id="2858138569776157458">Populares</translation>
 <translation id="2861301611394761800">Se ha completado la actualización del sistema. Reinícialo.</translation>
 <translation id="2861941300086904918">Administrador de seguridad de cliente nativo</translation>
 <translation id="2862815659905780618">Quitar entorno de desarrollo de Linux</translation>
@@ -2340,6 +2339,7 @@
 <translation id="3105796011181310544">¿Cambiar de nuevo a Google?</translation>
 <translation id="310671807099593501">El sitio web está usando el Bluetooth</translation>
 <translation id="3108931485517391283">Error al recibir</translation>
+<translation id="3108957152224931571">Color de resaltado</translation>
 <translation id="3109206895301430738">Grupos de pestañas guardados</translation>
 <translation id="3109724472072898302">Contraído</translation>
 <translation id="3112292765614504292">Tamaño de la aplicación: <ph name="APP_SIZE" /></translation>
@@ -2362,6 +2362,7 @@
 <translation id="3129173833825111527">Margen izquierdo</translation>
 <translation id="3129215702932019810">No se ha podido ejecutar la aplicación</translation>
 <translation id="3130528281680948470">Tu dispositivo se restablecerá y se eliminarán todas las cuentas de usuario y todos los datos locales. Esta acción no se puede deshacer.</translation>
+<translation id="3130863904455712965">Historial y más</translation>
 <translation id="313205617302240621">¿Has olvidado tu contraseña?</translation>
 <translation id="3132277757485842847">No se ha podido mantener la conexión con tu teléfono. Asegúrate de que tengas el teléfono cerca, de que esté desbloqueado y de que el Bluetooth y el Wi‑Fi estén activados.</translation>
 <translation id="3132896062549112541">Regla</translation>
@@ -2375,7 +2376,6 @@
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde el principio</translation>
 <translation id="3144647712221361880">Abrir enlace como</translation>
-<translation id="3144896554017119333">Extensiones y más</translation>
 <translation id="3149510190863420837">Aplicaciones de Chrome</translation>
 <translation id="3150693969729403281">Comprobar seguridad ahora</translation>
 <translation id="3150927491400159470">Volver a cargar de manera forzada</translation>
@@ -4583,6 +4583,7 @@
 <translation id="5260334392110301220">Comillas tipográficas</translation>
 <translation id="5260508466980570042">Tu dirección de correo electrónico y tu contraseña no se han podido verificar. Vuelve a intentarlo.</translation>
 <translation id="5260958083445173099">Si es posible, los sitios web mostrarán contenido en tus idiomas preferidos</translation>
+<translation id="5261619498868361045">El nombre del contenedor no puede estar vacío.</translation>
 <translation id="5261683757250193089">Abrir en Web Store</translation>
 <translation id="5262178194499261222">Quitar contraseña</translation>
 <translation id="5262784498883614021">Conectarse automáticamente a la red</translation>
@@ -4989,6 +4990,7 @@
 <translation id="562935524653278697">Tu administrador ha inhabilitado la sincronización de tus marcadores, tus contraseñas, tu historial y otros ajustes.</translation>
 <translation id="5631017369956619646">Uso de la CPU</translation>
 <translation id="5632059346822207074">Permiso solicitado, pulsa Ctrl + Adelante para responder</translation>
+<translation id="5632221585574759616">Más información sobre los permisos de extensiones</translation>
 <translation id="5632566673632479864">Tu cuenta <ph name="EMAIL" /> ya no puede ser tu cuenta principal. Dado que <ph name="DOMAIN" /> administra esta cuenta, tus marcadores, tu historial, tus contraseñas y otros ajustes se borrarán de este dispositivo.</translation>
 <translation id="5632592977009207922">Descargando, queda un <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Más información sobre requisitos del sistema</translation>
@@ -5609,6 +5611,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> no tiene conexión. Conéctate a Internet e inténtalo de nuevo.</translation>
 <translation id="6220413761270491930">Error al cargar extensión</translation>
 <translation id="6224481128663248237">El proceso de formateo se ha realizado correctamente.</translation>
+<translation id="622474711739321877">Este contenedor ya existe.</translation>
 <translation id="622537739776246443">Se eliminará el perfil</translation>
 <translation id="6225475702458870625">Conexión de datos disponible desde tu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Archivo de clave privada (opcional)</translation>
@@ -6408,6 +6411,7 @@
 <translation id="696780070563539690">Los sitios no pueden usar cookies para ver tu actividad de navegación en otros sitios, por ejemplo, para personalizar anuncios</translation>
 <translation id="6968288415730398122">Introduce tu contraseña para configurar el bloqueo de pantalla</translation>
 <translation id="6969047215179982698">Desactivar Compartir con Nearby</translation>
+<translation id="6969216690072714773">Introduce nueva información o actualiza la ya proporcionada para asociarla a este dispositivo.</translation>
 <translation id="6970480684834282392">Tipo de inicio</translation>
 <translation id="6970543303783413625">No se pueden importar las contraseñas. Solo puedes importar un máximo de <ph name="COUNT" /> contraseñas a la vez.</translation>
 <translation id="6970856801391541997">Imprimir páginas específicas</translation>
@@ -6814,6 +6818,7 @@
 <translation id="7377481913241237033">Conectar con un código</translation>
 <translation id="7378611153938412599">Las contraseñas poco seguras son fáciles de adivinar. Asegúrate de que tus contraseñas sean seguras. <ph name="BEGIN_LINK" />Ver más consejos de seguridad<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Abrir Chrome Web Store</translation>
+<translation id="7380272457268061606">¿Inhabilitar la recuperación de datos locales?</translation>
 <translation id="7380459290951585794">Comprueba que tengas el teléfono cerca, que esté desbloqueado y que el Bluetooth y el Wi‑Fi estén activados</translation>
 <translation id="7380622428988553498">El nombre del dispositivo contiene caracteres no válidos</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> se ha actualizado</translation>
@@ -7064,6 +7069,7 @@
 <translation id="7617263010641145920">Activar Play Store</translation>
 <translation id="7617648809369507487">Usar notificaciones más discretas</translation>
 <translation id="7621382409404463535">El sistema no ha podido guardar la configuración del dispositivo.</translation>
+<translation id="7621595347123595643">No podrás recuperar los datos locales si olvidas tu contraseña o PIN.</translation>
 <translation id="7622114377921274169">Cargando.</translation>
 <translation id="7622768823216805500">Los sitios suelen instalar controladores de pago para utilizarlos en funciones relacionadas con compras, como facilitar los pagos.</translation>
 <translation id="7622903810087708234">Detalles de la contraseña</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 620b45f8..30a5e624 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -2081,7 +2081,6 @@
 <translation id="2852385257476173980">Siin võidakse kuvada loend saitidest, mida veebi sirvides külastate</translation>
 <translation id="285241945869362924">Heli ja video puhul luuakse automaatselt subtiitrid. Heli ja subtiitreid ei saadeta kunagi seadmest väljapoole.</translation>
 <translation id="2856776373509145513">Uue konteineri loomine</translation>
-<translation id="2858138569776157458">Popid saidid</translation>
 <translation id="2861301611394761800">Süsteemi värskendus on lõpule viidud. Taaskäivitage süsteem.</translation>
 <translation id="2861941300086904918">Native Clienti turvalisuse haldur</translation>
 <translation id="2862815659905780618">Linuxi arenduskeskkonna eemaldamine</translation>
@@ -2345,6 +2344,7 @@
 <translation id="3105796011181310544">Kas muuta tagasi Google'ile?</translation>
 <translation id="310671807099593501">Sait kasutab Bluetoothi</translation>
 <translation id="3108931485517391283">Ei saa vastu võtta</translation>
+<translation id="3108957152224931571">Esiletõstu värv</translation>
 <translation id="3109206895301430738">Salvestatud vahelehegrupid</translation>
 <translation id="3109724472072898302">Ahendatud</translation>
 <translation id="3112292765614504292">Rakenduse maht: <ph name="APP_SIZE" /></translation>
@@ -2367,6 +2367,7 @@
 <translation id="3129173833825111527">Vasak veeris</translation>
 <translation id="3129215702932019810">Viga rakenduse käivitamisel</translation>
 <translation id="3130528281680948470">Teie seade lähtestatakse ja kõik kasutajakontod ja kohalikud andmed kustutatakse. Seda ei saa tagasi võtta.</translation>
+<translation id="3130863904455712965">Ajalugu ja muu</translation>
 <translation id="313205617302240621">Kas olete parooli unustanud?</translation>
 <translation id="3132277757485842847">Meil ei õnnestunud teie telefoniga ühendust hoida. Veenduge, et teie telefon oleks läheduses, avatud ning Bluetooth ja WiFi oleksid sisse lülitatud.</translation>
 <translation id="3132896062549112541">Reegel</translation>
@@ -2380,7 +2381,6 @@
 <translation id="3143515551205905069">Tühista sünkroonimine</translation>
 <translation id="3143754809889689516">Esita algusest</translation>
 <translation id="3144647712221361880">Ava link kasutajana</translation>
-<translation id="3144896554017119333">Laiendused ja muu</translation>
 <translation id="3149510190863420837">Chrome'i rakendused</translation>
 <translation id="3150693969729403281">Käitage ohutuskontrolli kohe</translation>
 <translation id="3150927491400159470">Põhjalik uuestilaadimine</translation>
@@ -4589,6 +4589,7 @@
 <translation id="5260334392110301220">Nutikad jutumärgid</translation>
 <translation id="5260508466980570042">Kahjuks ei õnnestunud teie meili või parooli kinnitada. Proovige uuesti.</translation>
 <translation id="5260958083445173099">Veebisaitide sisu kuvatakse võimaluse korral teie eelistatud keeles</translation>
+<translation id="5261619498868361045">Konteineri nimi ei tohi olla tühi.</translation>
 <translation id="5261683757250193089">Ava veebipoes</translation>
 <translation id="5262178194499261222">Eemalda parool</translation>
 <translation id="5262784498883614021">Automaatne ühendamine võrguga</translation>
@@ -4995,6 +4996,7 @@
 <translation id="562935524653278697">Teie administraator on järjehoidjate, ajaloo, paroolide ja muude seadete sünkroonimise keelanud.</translation>
 <translation id="5631017369956619646">Keskprotsessori kasutus</translation>
 <translation id="5632059346822207074">Taotleti luba, vastamiseks vajutage klahvikombinatsiooni Ctrl + edasinool</translation>
+<translation id="5632221585574759616">Lisateave laienduse lubade kohta</translation>
 <translation id="5632566673632479864">Teie konto <ph name="EMAIL" /> ei ole enam peamise kontona lubatud. Kuna seda kontot haldab domeen <ph name="DOMAIN" />, kustutatakse sellest seadmest teie järjehoidjad, ajalugu, paroolid ja muud seaded.</translation>
 <translation id="5632592977009207922">Allalaadimine, <ph name="PERCENT_REMAINING" />% jäänud</translation>
 <translation id="5633149627228920745">Lugege lisateavet süsteemi nõuete kohta</translation>
@@ -5615,6 +5617,7 @@
 <translation id="6218058416316985984">Seadmel <ph name="DEVICE_TYPE" /> puudub võrguühendus. Looge ühendus Internetiga ja proovige uuesti.</translation>
 <translation id="6220413761270491930">Viga laienduse laadimisel</translation>
 <translation id="6224481128663248237">Vormindamine õnnestus.</translation>
+<translation id="622474711739321877">See konteiner on juba olemas.</translation>
 <translation id="622537739776246443">Profiil kustutatakse</translation>
 <translation id="6225475702458870625">Andmesideühendus on teie telefonis <ph name="PHONE_NAME" /> saadaval</translation>
 <translation id="6226777517901268232">Privaatvõtme fail (valikuline)</translation>
@@ -6414,6 +6417,7 @@
 <translation id="696780070563539690">Saidid ei saa reklaamide isikupärastamiseks küpsisefailide abil eri saitidel teie sirvimistegevust jälgida</translation>
 <translation id="6968288415730398122">Ekraaniluku seadistamiseks sisestage parool</translation>
 <translation id="6969047215179982698">Läheduses jagamise väljalülitamine</translation>
+<translation id="6969216690072714773">Sisestage uus teave või värskendage olemasolevat teavet, mis selle seadmega seostatakse.</translation>
 <translation id="6970480684834282392">Käivitamistüüp</translation>
 <translation id="6970543303783413625">Ei saa paroole importida. Saate korraga importida vaid kuni <ph name="COUNT" /> parooli.</translation>
 <translation id="6970856801391541997">Prindi valitud leheküljed</translation>
@@ -6820,6 +6824,7 @@
 <translation id="7377481913241237033">Ühendamine koodiga</translation>
 <translation id="7378611153938412599">Nõrku paroole on lihtne ära arvata. Veenduge, et looksite tugevad paroolid. <ph name="BEGIN_LINK" />Vaadake rohkem turvanõuandeid.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Ava Chrome'i veebipood</translation>
+<translation id="7380272457268061606">Kas keelata kohalike andmete taastamine?</translation>
 <translation id="7380459290951585794">Veenduge, et teie telefon oleks läheduses, avatud ning Bluetooth ja WiFi oleksid sisse lülitatud</translation>
 <translation id="7380622428988553498">Seadme nimi sisaldab sobimatuid tähemärke</translation>
 <translation id="7380768571499464492">Printerit <ph name="PRINTER_NAME" /> värskendati</translation>
@@ -7070,6 +7075,7 @@
 <translation id="7617263010641145920">Play poe sisselülitamine</translation>
 <translation id="7617648809369507487">Kasuta vaiksemat sõnumsidet</translation>
 <translation id="7621382409404463535">Süsteemil ei õnnestunud seadme seadistust salvestada.</translation>
+<translation id="7621595347123595643">Te ei saa kohalikke andmeid taastada, kui parooli või PIN-koodi unustate.</translation>
 <translation id="7622114377921274169">Laadimine.</translation>
 <translation id="7622768823216805500">Saidid installivad maksetöötlejaid tavaliselt ostufunktsioonide jaoks, näiteks hõlpsamaks maksmiseks</translation>
 <translation id="7622903810087708234">Parooli üksikasjad</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 60115e0..f8f4397 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2075,7 +2075,6 @@
 <translation id="2852385257476173980">Sarea arakatu ahala, baliteke bisitatzen dituzun webguneen zerrenda bat agertzea hemen</translation>
 <translation id="285241945869362924">Automatikoki sortzen ditu audioaren eta bideoen azpitituluak. Audioa eta azpitituluak ez dira beste inora bidaltzen.</translation>
 <translation id="2856776373509145513">Sortu edukiontzi bat</translation>
-<translation id="2858138569776157458">Webgune nagusiak</translation>
 <translation id="2861301611394761800">Sistema eguneratu da. Berrabiarazi sistema.</translation>
 <translation id="2861941300086904918">Bezero natiboaren segurtasun-kudeatzailea</translation>
 <translation id="2862815659905780618">Kendu Linux-eko garapen-ingurunea</translation>
@@ -2339,6 +2338,7 @@
 <translation id="3105796011181310544">Google-ra itzuli nahi duzu?</translation>
 <translation id="310671807099593501">Webgunea Bluetootha erabiltzen ari da</translation>
 <translation id="3108931485517391283">Ezin da jaso</translation>
+<translation id="3108957152224931571">Nabarmentze-kolorea</translation>
 <translation id="3109206895301430738">Gordetako fitxa taldeak</translation>
 <translation id="3109724472072898302">Tolestuta</translation>
 <translation id="3112292765614504292">Aplikazioaren tamaina: <ph name="APP_SIZE" /></translation>
@@ -2361,6 +2361,7 @@
 <translation id="3129173833825111527">Ezkerreko marjina</translation>
 <translation id="3129215702932019810">Errore bat gertatu da aplikazioa abiaraztean</translation>
 <translation id="3130528281680948470">Gailua berrezarri egingo da, eta erabiltzaile-kontu eta tokiko datu guztiak kendu egingo dira. Ekintza hau ezin da desegin.</translation>
+<translation id="3130863904455712965">Historia eta beste</translation>
 <translation id="313205617302240621">Pasahitza ahaztu zaizu?</translation>
 <translation id="3132277757485842847">Ezin izan dugu mantendu gailua telefonoarekin konektatuta. Ziurtatu telefonoa hurbil eta desblokeatuta dagoela, eta Bluetootha eta wifia aktibatuta dauzkala.</translation>
 <translation id="3132896062549112541">Araua</translation>
@@ -2374,7 +2375,6 @@
 <translation id="3143515551205905069">Utzi sinkronizazioa bertan behera</translation>
 <translation id="3143754809889689516">Erreproduzitu hasieratik</translation>
 <translation id="3144647712221361880">Ireki esteka honela:</translation>
-<translation id="3144896554017119333">Luzapenak eta beste</translation>
 <translation id="3149510190863420837">Chrome-ren aplikazioak</translation>
 <translation id="3150693969729403281">Egin segurtasun-egiaztapena</translation>
 <translation id="3150927491400159470">Behartu berriro kargatzera</translation>
@@ -4583,6 +4583,7 @@
 <translation id="5260334392110301220">Komatxo adimendunak</translation>
 <translation id="5260508466980570042">Ezin izan da helbide elektronikoa edo pasahitza egiaztatu. Saiatu berriro.</translation>
 <translation id="5260958083445173099">Webguneak hizkuntza hobetsietan erakutsiko dira, ahal denean</translation>
+<translation id="5261619498868361045">Edukiontziaren izena ezin da hutsik utzi.</translation>
 <translation id="5261683757250193089">Ireki Web Store dendan</translation>
 <translation id="5262178194499261222">Kendu pasahitza</translation>
 <translation id="5262784498883614021">Konektatu automatikoki sarera</translation>
@@ -4987,6 +4988,7 @@
 <translation id="562935524653278697">Laster-marken, historiaren, pasahitzen eta bestelako ezarpen batzuen sinkronizazioa desgaitu du administratzaileak.</translation>
 <translation id="5631017369956619646">PUZren erabilera</translation>
 <translation id="5632059346822207074">Baimena eskatu da. Erantzuteko, sakatu Kontrol eta Aurrera.</translation>
+<translation id="5632221585574759616">Lortu luzapenen baimenei buruzko informazio gehiago</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> kontua ezin da erabili jada kontu nagusi gisa. Kontu hau <ph name="DOMAIN" /> domeinuak kudeatzen duenez, kendu egingo dira gailutik laster-markak, historia, pasahitzak eta bestelako ezarpenak.</translation>
 <translation id="5632592977009207922">Deskargatzen; % <ph name="PERCENT_REMAINING" /> geratzen da</translation>
 <translation id="5633149627228920745">Lortu sistemaren eskakizunei buruzko informazio gehiago</translation>
@@ -5606,6 +5608,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ez dago konektatuta Internetera. Konekta ezazu eta saiatu berriro.</translation>
 <translation id="6220413761270491930">Errore bat gertatu da luzapena kargatzean</translation>
 <translation id="6224481128663248237">Behar bezala amaitu da</translation>
+<translation id="622474711739321877">Badago edukiontzi hori.</translation>
 <translation id="622537739776246443">Profila ezabatu egingo da</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> telefonoaren datu-konexioa erabil dezakezu</translation>
 <translation id="6226777517901268232">Gako pribatuaren fitxategia (aukerakoa)</translation>
@@ -6405,6 +6408,7 @@
 <translation id="696780070563539690">Webguneek ezin dituzte erabili cookieak beste webguneetan egiten dituzun arakatze-jarduerak ikusteko, hala nola iragarkiak pertsonalizatzeko.</translation>
 <translation id="6968288415730398122">Idatzi pasahitza pantailaren blokeoa konfiguratzeko</translation>
 <translation id="6969047215179982698">Desaktibatu Nearby Share</translation>
+<translation id="6969216690072714773">Idatzi gailu honekin erlazionatu nahi duzun informazio berria edo eguneratu lehendik dagoena.</translation>
 <translation id="6970480684834282392">Abio mota</translation>
 <translation id="6970543303783413625">Ezin dira inportatu pasahitzak. Gehienez <ph name="COUNT" /> pasahitz inporta ditzakezu aldi berean.</translation>
 <translation id="6970856801391541997">Inprimatu orri zehatz batzuk</translation>
@@ -6811,6 +6815,7 @@
 <translation id="7377481913241237033">Konektatu kode bat erabilita</translation>
 <translation id="7378611153938412599">Seguruak ez diren pasahitzak erraz asmatzen dira. Ziurtatu pasahitz konplexuak sortzen dituzula. <ph name="BEGIN_LINK" />Ikusi segurtasun-aholku gehiago.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Ireki Chrome Web Store</translation>
+<translation id="7380272457268061606">Gailuko datuak berreskuratzeko zerbitzua desgaitu nahi duzu?</translation>
 <translation id="7380459290951585794">Ziurtatu telefonoa hurbil eta desblokeatuta dagoela, eta Bluetootha eta wifia aktibatuta dauzkala</translation>
 <translation id="7380622428988553498">Balio ez duten karaktereak ditu gailuaren izenak</translation>
 <translation id="7380768571499464492">Eguneratu da <ph name="PRINTER_NAME" /></translation>
@@ -7061,6 +7066,7 @@
 <translation id="7617263010641145920">Aktibatu Play Store</translation>
 <translation id="7617648809369507487">Erabili jakinarazpenak</translation>
 <translation id="7621382409404463535">Sistemak ezin izan du gorde gailuaren konfigurazioa.</translation>
+<translation id="7621595347123595643">Pasahitza edo PINa ahazten baduzu, ezin izango dituzu berreskuratu gailuko datuak.</translation>
 <translation id="7622114377921274169">Kargatzen.</translation>
 <translation id="7622768823216805500">Webguneek ordainketa-kudeatzaileak instalatu ohi dituzte ordainketa erraza eta antzeko erosketa-eginbideak eskaintzeko</translation>
 <translation id="7622903810087708234">Pasahitzaren xehetasunak</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 7ef245b..42fbab3 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -2087,7 +2087,6 @@
 <translation id="2852385257476173980">وقتی وب را مرور می‌کنید، ممکن است فهرست سایت‌هایی که بازدید می‌کنید در اینجا نشان داده شود</translation>
 <translation id="285241945869362924">به‌طور خودکار زیرنویس ناشنوایان برای صدا و ویدیو ایجاد می‌کند. صداها و زیرنویس ناشنوایان هرگز از دستگاهتان خارج نمی‌شوند.</translation>
 <translation id="2856776373509145513">ایجاد محتوی جدید</translation>
-<translation id="2858138569776157458">سایت‌های برتر</translation>
 <translation id="2861301611394761800">به‌روزرسانی سیستم کامل شد. لطفاً سیستم را راه‌اندازی مجدد کنید.</translation>
 <translation id="2861941300086904918">‏مدیر امنیت Native Client</translation>
 <translation id="2862815659905780618">‏برداشتن محیط برنامه‌نویسی Linux</translation>
@@ -2374,6 +2373,7 @@
 <translation id="3129173833825111527">حاشیه چپ</translation>
 <translation id="3129215702932019810">خطا هنگام راه‌اندازی برنامه</translation>
 <translation id="3130528281680948470">دستگاه شما بازنشانی می‌شود و همه حساب‌های کاربری و داده‌های محلی حذف می‌شوند. این کار قابل بازگشت نیست.</translation>
+<translation id="3130863904455712965">سابقه و موارد بیشتر</translation>
 <translation id="313205617302240621">گذرواژه را فراموش کردید؟</translation>
 <translation id="3132277757485842847">‏نتوانستیم اتصال با تلفنتان را حفظ کنیم. مطمئن شوید تلفنتان نزدیک باشد، قفل آن باز، و بلوتوث و Wi-Fi در آن روشن باشد.</translation>
 <translation id="3132896062549112541">قانون</translation>
@@ -2387,7 +2387,6 @@
 <translation id="3143515551205905069">لغو همگام‌سازی</translation>
 <translation id="3143754809889689516">پخش از ابتدا</translation>
 <translation id="3144647712221361880">بازکردن پیوند به‌عنوان</translation>
-<translation id="3144896554017119333">افزونه‌ها و موارد دیگر</translation>
 <translation id="3149510190863420837">‏برنامه‌های Chrome</translation>
 <translation id="3150693969729403281">همین‌حالا «بررسی ایمنی» اجرا شود</translation>
 <translation id="3150927491400159470">تازه سازی سخت</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 7da64638..b80aa356 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">Avaamiasi sivustoja voidaan lisätä tähän sitä mukaa, kun selaat internetiä</translation>
 <translation id="285241945869362924">Tekstittää audiota ja videota automaattisesti. Audio ja tekstitykset eivät koskaan poistu laitteelta.</translation>
 <translation id="2856776373509145513">Luo uusi säilö</translation>
-<translation id="2858138569776157458">Suosituimmat</translation>
 <translation id="2861301611394761800">Järjestelmän päivitys valmis. Käynnistä järjestelmä uudelleen.</translation>
 <translation id="2861941300086904918">Asiakkaan tietosuojahallinnoija</translation>
 <translation id="2862815659905780618">Poista Linux-kehitysympäristö</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">Vasen reuna</translation>
 <translation id="3129215702932019810">Sovelluksen käynnistysvirhe</translation>
 <translation id="3130528281680948470">Laitteesi nollataan ja kaikki käyttäjätilit ja paikalliset tiedot poistetaan. Tätä ei voi kumota.</translation>
+<translation id="3130863904455712965">Historia ja muita</translation>
 <translation id="313205617302240621">Unohditko salasanasi?</translation>
 <translation id="3132277757485842847">Menetimme yhteyden puhelimeesi. Varmista, että puhelin on lähellä, sen lukitus on avattu ja Bluetooth ja Wi-Fi ovat päällä.</translation>
 <translation id="3132896062549112541">Sääntö</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">Peru synkronointi</translation>
 <translation id="3143754809889689516">Toista alusta</translation>
 <translation id="3144647712221361880">Avaa linkki käyttäjänä</translation>
-<translation id="3144896554017119333">Laajennukset ja paljon muuta</translation>
 <translation id="3149510190863420837">Chrome-sovellukset</translation>
 <translation id="3150693969729403281">Tee turvatarkistus nyt</translation>
 <translation id="3150927491400159470">Pakotettu päivitys</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index f7f720a5..46a9ada 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -2092,7 +2092,6 @@
 <translation id="2852385257476173980">Posibleng may lumabas dito na listahan ng mga site na iyong binibisita habang nagba-browse ka sa web</translation>
 <translation id="285241945869362924">Awtomatikong gumagawa ng mga caption para sa audio at video. Hindi kailanman lumalabas sa iyong device ang audio at mga caption.</translation>
 <translation id="2856776373509145513">Gumawa ng bagong container</translation>
-<translation id="2858138569776157458">Top na sites</translation>
 <translation id="2861301611394761800">Kumpleto na ang pag-update ng system. Paki-restart ang system.</translation>
 <translation id="2861941300086904918">Tagapamahala ng seguridad ng Native Client</translation>
 <translation id="2862815659905780618">Alisin ang environment sa pag-develop ng Linux</translation>
@@ -2379,6 +2378,7 @@
 <translation id="3129173833825111527">Kaliwang margin</translation>
 <translation id="3129215702932019810">Nagka-error sa paglulunsad ng application</translation>
 <translation id="3130528281680948470">Ire-reset ang iyong device at maaalis ang lahat ng user account at lokal na data. Hindi na ito maaaring bawiin.</translation>
+<translation id="3130863904455712965">History at higit pa</translation>
 <translation id="313205617302240621">Nakalimutan mo ba ang iyong password?</translation>
 <translation id="3132277757485842847">Hindi namin mapanatili ang pagkakakonekta sa iyong telepono. Tiyaking nasa malapit at naka-unlock ang iyong telepono at naka-on ang Bluetooth at Wi-Fi nito.</translation>
 <translation id="3132896062549112541">Panuntunan</translation>
@@ -2392,7 +2392,6 @@
 <translation id="3143515551205905069">Kanselahin ang pag-sync</translation>
 <translation id="3143754809889689516">I-play mula sa simula</translation>
 <translation id="3144647712221361880">Buksan ang link bilang</translation>
-<translation id="3144896554017119333">Mga extension at higit pa</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150693969729403281">Magpatakbo ng pag-check sa kaligtasan ngayon</translation>
 <translation id="3150927491400159470">I-hard Reload</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index d6184e1..b6959ba 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -2078,7 +2078,6 @@
 <translation id="2852385257476173980">Une liste de sites que vous visitez peut s'afficher ici au fur et à mesure que vous naviguez sur le Web</translation>
 <translation id="285241945869362924">Génère automatiquement des sous-titres pour les contenus audio et vidéo. L'audio et les sous-titres ne quittent jamais votre appareil.</translation>
 <translation id="2856776373509145513">Créer un conteneur</translation>
-<translation id="2858138569776157458">Sites populaires</translation>
 <translation id="2861301611394761800">Mise à jour terminée. Veuillez redémarrer le système.</translation>
 <translation id="2861941300086904918">Gestionnaire de sécurité de Native Client</translation>
 <translation id="2862815659905780618">Supprimer l'environnement de conception Linux</translation>
@@ -2365,6 +2364,7 @@
 <translation id="3129173833825111527">Marge de gauche</translation>
 <translation id="3129215702932019810">Une erreur s'est produite lors du lancement de l'application</translation>
 <translation id="3130528281680948470">Votre appareil sera réinitialisé, et la totalité des comptes d'utilisateur et des données locales sera supprimée. Cette opération est définitive.</translation>
+<translation id="3130863904455712965">Historique et plus</translation>
 <translation id="313205617302240621">Mot de passe oublié?</translation>
 <translation id="3132277757485842847">Nous n'avons pas pu maintenir une connexion avec votre téléphone. Assurez-vous que votre téléphone est à proximité, qu'il est déverrouillé et que le Bluetooth et le Wi-Fi sont activés.</translation>
 <translation id="3132896062549112541">Règle</translation>
@@ -2378,7 +2378,6 @@
 <translation id="3143515551205905069">Annuler la synchronisation</translation>
 <translation id="3143754809889689516">Faire jouer depuis le début</translation>
 <translation id="3144647712221361880">Ouvrir le lien en tant que</translation>
-<translation id="3144896554017119333">Extensions et plus</translation>
 <translation id="3149510190863420837">Applications Chrome</translation>
 <translation id="3150693969729403281">Exécuter la vérification de sécurité maintenant</translation>
 <translation id="3150927491400159470">Actualisation forcée</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 02ebb1c..214f96b 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2076,7 +2076,6 @@
 <translation id="2852385257476173980">La liste des sites que vous consulterez pourra s'afficher ici dès que vous naviguerez sur le Web</translation>
 <translation id="285241945869362924">Crée automatiquement des sous-titres pour les contenus audio et vidéo. Les contenus audio et les sous-titres ne quittent pas votre appareil.</translation>
 <translation id="2856776373509145513">Créer un conteneur</translation>
-<translation id="2858138569776157458">Sites populaires</translation>
 <translation id="2861301611394761800">Mise à jour terminée. Veuillez redémarrer le système.</translation>
 <translation id="2861941300086904918">Gestionnaire de sécurité Native Client</translation>
 <translation id="2862815659905780618">Supprimer l'environnement de développement Linux</translation>
@@ -2363,6 +2362,7 @@
 <translation id="3129173833825111527">Marge gauche</translation>
 <translation id="3129215702932019810">Erreur lors du lancement de l'application</translation>
 <translation id="3130528281680948470">Votre appareil va être réinitialisé. Les données locales et les comptes utilisateur qu'il contient vont être supprimés. Cette opération est irréversible.</translation>
+<translation id="3130863904455712965">Historique et plus</translation>
 <translation id="313205617302240621">Mot de passe oublié ?</translation>
 <translation id="3132277757485842847">Nous n'avons pas pu maintenir la connexion avec votre téléphone. Vérifiez qu'il est déverrouillé et à proximité, et que le Bluetooth et le Wi-Fi sont activés.</translation>
 <translation id="3132896062549112541">Règle</translation>
@@ -2376,7 +2376,6 @@
 <translation id="3143515551205905069">Annuler la synchronisation</translation>
 <translation id="3143754809889689516">Lire depuis le début</translation>
 <translation id="3144647712221361880">Ouvrir le lien avec le compte</translation>
-<translation id="3144896554017119333">Extensions et autres</translation>
 <translation id="3149510190863420837">Applications Chrome</translation>
 <translation id="3150693969729403281">Lancer le contrôle de sécurité</translation>
 <translation id="3150927491400159470">Actualisation forcée</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 52a7594..ce0ef470 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -2074,7 +2074,6 @@
 <translation id="2852385257476173980">A medida que navegues pola Web, aquí poderá aparecer unha lista dos sitios que visites</translation>
 <translation id="285241945869362924">Crea subtítulos automaticamente para o contido de audio e de vídeo. O audio e os subtítulos nunca saen do dispositivo.</translation>
 <translation id="2856776373509145513">Crear un contedor novo</translation>
-<translation id="2858138569776157458">Populares</translation>
 <translation id="2861301611394761800">Actualización do sistema completada. Reinicia o sistema.</translation>
 <translation id="2861941300086904918">Xestor de seguranza de cliente nativo</translation>
 <translation id="2862815659905780618">Quitar o contorno de programación de Linux</translation>
@@ -2338,6 +2337,7 @@
 <translation id="3105796011181310544">Queres volver cambiar a Google?</translation>
 <translation id="310671807099593501">O sitio está usando o Bluetooth</translation>
 <translation id="3108931485517391283">Non se puido recibir o ficheiro</translation>
+<translation id="3108957152224931571">Cor de realzado</translation>
 <translation id="3109206895301430738">Grupos de pestanas gardados</translation>
 <translation id="3109724472072898302">Contraído</translation>
 <translation id="3112292765614504292">Tamaño da aplicación: <ph name="APP_SIZE" /></translation>
@@ -2360,6 +2360,7 @@
 <translation id="3129173833825111527">Marxe esquerda</translation>
 <translation id="3129215702932019810">Produciuse un erro ao iniciar a aplicación</translation>
 <translation id="3130528281680948470">Restablecerase o teu dispositivo e eliminaranse todas as contas de usuario e os datos locais. Non se pode desfacer esta acción.</translation>
+<translation id="3130863904455712965">Historial e moito máis</translation>
 <translation id="313205617302240621">Esqueciches o contrasinal?</translation>
 <translation id="3132277757485842847">Non puidemos manter a conexión co teu teléfono. Asegúrate de que estea preto e desbloqueado, e comproba que teña o Bluetooth e a wifi activados.</translation>
 <translation id="3132896062549112541">Norma</translation>
@@ -2373,7 +2374,6 @@
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde o principio</translation>
 <translation id="3144647712221361880">Abrir ligazón como</translation>
-<translation id="3144896554017119333">Extensións e máis</translation>
 <translation id="3149510190863420837">Aplicacións de Chrome</translation>
 <translation id="3150693969729403281">Realizar agora a comprobación de seguranza</translation>
 <translation id="3150927491400159470">Volver cargar de maneira forzada</translation>
@@ -4582,6 +4582,7 @@
 <translation id="5260334392110301220">Comiñas intelixentes</translation>
 <translation id="5260508466980570042">Non se puido verificar o teu correo electrónico ou contrasinal. Téntao de novo.</translation>
 <translation id="5260958083445173099">Sempre que sexa posible, os sitios web mostraranche contido neses idiomas</translation>
+<translation id="5261619498868361045">O nome do contedor non pode estar baleiro.</translation>
 <translation id="5261683757250193089">Abrir en Web Store</translation>
 <translation id="5262178194499261222">Quitar contrasinal</translation>
 <translation id="5262784498883614021">Conectarse á rede de forma automática</translation>
@@ -4986,6 +4987,7 @@
 <translation id="562935524653278697">O administrador desactivou a sincronización dos marcadores, o historial, os contrasinais e outras opcións de configuración.</translation>
 <translation id="5631017369956619646">Uso da CPU</translation>
 <translation id="5632059346822207074">Permiso solicitado; preme Control + tecla de avance para responder</translation>
+<translation id="5632221585574759616">Máis información sobre os permisos de extensións</translation>
 <translation id="5632566673632479864">A túa conta <ph name="EMAIL" /> xa non é a principal. Dado que a xestiona <ph name="DOMAIN" />, eliminaranse deste dispositivo os teus marcadores, historial, contrasinais e outras opcións de configuración.</translation>
 <translation id="5632592977009207922">Descargando, porcentaxe restante: <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Máis información sobre os requisitos do sistema</translation>
@@ -5605,6 +5607,7 @@
 <translation id="6218058416316985984">O dispositivo <ph name="DEVICE_TYPE" /> está sen conexión. Conéctate a Internet e téntao de novo.</translation>
 <translation id="6220413761270491930">Erro ao cargar a extensión</translation>
 <translation id="6224481128663248237">Formatado finalizado correctamente.</translation>
+<translation id="622474711739321877">Xa existe este contedor.</translation>
 <translation id="622537739776246443">O perfil eliminarase</translation>
 <translation id="6225475702458870625">Hai unha conexión de datos dispoñible desde o teléfono <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Ficheiro de clave privada (opcional)</translation>
@@ -6404,6 +6407,7 @@
 <translation id="696780070563539690">Os sitios web non poden utilizar cookies para ver a túa actividade de navegación en distintos sitios (por exemplo, para personalizar os anuncios)</translation>
 <translation id="6968288415730398122">Introduce o contrasinal para configurar o bloqueo da pantalla</translation>
 <translation id="6969047215179982698">Desactivar Compartir por Nearby</translation>
+<translation id="6969216690072714773">Engade información nova ou actualiza a que haxa para asociala con este dispositivo.</translation>
 <translation id="6970480684834282392">Tipo de inicio</translation>
 <translation id="6970543303783413625">Non se puideron importar os contrasinais. Podes importar ata <ph name="COUNT" /> á vez.</translation>
 <translation id="6970856801391541997">Imprimir páxinas específicas</translation>
@@ -6810,6 +6814,7 @@
 <translation id="7377481913241237033">Conectar cun código</translation>
 <translation id="7378611153938412599">Os contrasinais pouco seguros son fáciles de adiviñar. Asegúrate de crear contrasinais seguros. <ph name="BEGIN_LINK" />Ver máis consellos de seguranza<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Abrir Chrome Web Store</translation>
+<translation id="7380272457268061606">Queres desactivar a recuperación de datos locais?</translation>
 <translation id="7380459290951585794">Asegúrate de ter o teléfono preto, desbloqueado e co Bluetooth e a wifi activados</translation>
 <translation id="7380622428988553498">O nome do dispositivo contén caracteres non válidos</translation>
 <translation id="7380768571499464492">Actualizouse a impresora <ph name="PRINTER_NAME" /></translation>
@@ -7060,6 +7065,7 @@
 <translation id="7617263010641145920">Activar Play Store</translation>
 <translation id="7617648809369507487">Usar notificacións máis silenciosas para as mensaxes</translation>
 <translation id="7621382409404463535">Produciuse un erro no sistema e non se puido gardar a configuración do dispositivo.</translation>
+<translation id="7621595347123595643">Non poderás recuperar os datos locais se esqueces o contrasinal ou o PIN.</translation>
 <translation id="7622114377921274169">Cargando.</translation>
 <translation id="7622768823216805500">Os sitios adoitan instalar controladores de pago para ofrecerche determinadas funcións relacionadas coas compras (por exemplo, procesar as compras de forma máis fácil)</translation>
 <translation id="7622903810087708234">Detalles do contrasinal</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index fce9ba1..c180236 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2073,7 +2073,6 @@
 <translation id="2852385257476173980">જ્યારે તમે વેબ બ્રાઉઝ કરશો, ત્યારે તમે મુલાકાત લો છો તે સાઇટની સૂચિ અહીં દેખાઈ શકે છે</translation>
 <translation id="285241945869362924">ઑડિયો અને વીડિયો માટે ઑટોમૅટિક રીતે કૅપ્શન બનાવે છે. ઑડિયો અને કૅપ્શન તમારા ડિવાઇસમાં હંમેશાં રહે છે.</translation>
 <translation id="2856776373509145513">નવું કન્ટેનર બનાવો</translation>
-<translation id="2858138569776157458">લોકપ્રિય સાઇટ</translation>
 <translation id="2861301611394761800">સિસ્ટમ અપડેટ પૂર્ણ થયું. કૃપા કરીને સિસ્ટમ પુનઃપ્રારંભ કરો.</translation>
 <translation id="2861941300086904918">નેટિવ ક્લાયન્ટ સિક્યુરિટી મેનેજર</translation>
 <translation id="2862815659905780618">Linux ડેવલપમેન્ટ વાતાવરણ કાઢી નાખો</translation>
@@ -2360,6 +2359,7 @@
 <translation id="3129173833825111527">ડાબો હાસિયો</translation>
 <translation id="3129215702932019810">ઍપ્લિકેશન લૉન્ચ કરવામાં ભૂલ આવી</translation>
 <translation id="3130528281680948470">તમારું ઉપકરણ ફરીથી સેટ કરવામાં આવશે અને તમામ વપરાશકર્તા એકાઉન્ટ્સ અને સ્થાનિક ડેટા દૂર કરવામાં આવશે. આ પૂર્વવત્‌ કરી શકાતું નથી.</translation>
+<translation id="3130863904455712965">ઇતિહાસ અને વધુ</translation>
 <translation id="313205617302240621">પાસવર્ડ ભૂલી ગયા?</translation>
 <translation id="3132277757485842847">અમે તમારા ફોન સાથે સંપર્ક જાળવી શક્યા નથી. ખાતરી કરો કે તમારો ફોન નજીકમાં હોય, અનલૉક કરેલો હોય અને તેમાં બ્લૂટૂથ અને વાઇ-ફાઇની સુવિધા ચાલુ હોય.</translation>
 <translation id="3132896062549112541">નિયમ</translation>
@@ -2373,7 +2373,6 @@
 <translation id="3143515551205905069">સિંક કરવાનું રદ કરો</translation>
 <translation id="3143754809889689516">શરૂઆતથી ચલાવો</translation>
 <translation id="3144647712221361880">આ રીતે લિંક ખોલો</translation>
-<translation id="3144896554017119333">એક્સ્ટેન્શન અને બીજું ઘણું</translation>
 <translation id="3149510190863420837">Chrome ઍપ્લિકેશનો</translation>
 <translation id="3150693969729403281">હમણાં જ સલામતી માટે તપાસ ચલાવો</translation>
 <translation id="3150927491400159470">સખત રીતે ફરીથી લોડ કરો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index e6fc0442..af88843 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">वेब को ब्राउज़ करने पर, आपने जिन साइटों को देखा है उनकी सूची यहां दिख सकती है</translation>
 <translation id="285241945869362924">इस सुविधा की मदद से, ऑडियो और वीडियो के लिए अपने-आप कैप्शन बनते हैं. साथ ही, ऑडियो और कैप्शन आपके डिवाइस से कभी नहीं हटते.</translation>
 <translation id="2856776373509145513">नया कंटेनर बनाएं</translation>
-<translation id="2858138569776157458">मुख्य साइटें</translation>
 <translation id="2861301611394761800">सिस्टम अपडेट पूरा हुआ. कृपया सिस्टम को रीस्टार्ट करें.</translation>
 <translation id="2861941300086904918">नेटिव क्लाइंट सुरक्षा मैनेजर</translation>
 <translation id="2862815659905780618">Linux डेवलपमेंट एनवायरमेंट हटाएं</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">बायां हाशिया</translation>
 <translation id="3129215702932019810">ऐप्लिकेशन को लॉन्च करने में गड़बड़ी हुई</translation>
 <translation id="3130528281680948470">आपका डिवाइस रीसेट कर दिया जाएगा और सभी उपयोगकर्ता खाते और स्‍थानीय डेटा हटा दिए जाएंगे. इसे पहले जैसा नहीं किया जा सकता.</translation>
+<translation id="3130863904455712965">इतिहास वगैरह</translation>
 <translation id="313205617302240621">पासवर्ड याद नहीं है?</translation>
 <translation id="3132277757485842847">डिवाइस आपके फ़ोन से बार-बार डिसकनेक्ट हो रहा है. पक्का करें कि आपका फ़ोन आस-पास है और अनलॉक है. साथ ही, यह भी कि उस पर ब्लूटूथ और वाई-फ़ाई चालू हैं.</translation>
 <translation id="3132896062549112541">नियम</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">लिंक करना रोक दें</translation>
 <translation id="3143754809889689516">शुरू से चलाएं</translation>
 <translation id="3144647712221361880">लिंक को इस रूप में खोलें</translation>
-<translation id="3144896554017119333">एक्सटेंशन वगैरह</translation>
 <translation id="3149510190863420837">Chrome ऐप्स</translation>
 <translation id="3150693969729403281">अभी सुरक्षा जांच करें</translation>
 <translation id="3150927491400159470">फिर से लोड करना मुश्किल</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index a16968d..690649c3 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1289,6 +1289,7 @@
 <translation id="2157875535253991059">Ova je stranica sada na cijelom zaslonu.</translation>
 <translation id="2158475082070321257">Kopiraj vezu na istaknuti tekst</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Opseg prečaca <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Dodaj Wi-Fi...</translation>
 <translation id="2162155940152307086">Sinkronizacija će se pokrenuti kad napustite postavke sinkronizacije</translation>
 <translation id="2162705204091149050">Čitati podatke o vašem pregledniku, OS-u, uređaju, instaliranom softveru i datotekama</translation>
@@ -2078,7 +2079,6 @@
 <translation id="2852385257476173980">Popis web-lokacija koje posjetite može se pojaviti ovdje kad budete pregledavali na webu.</translation>
 <translation id="285241945869362924">Automatski izrađuje titlove za zvuk i videozapise. Audiozapisi i titlovi nikad se ne šalju s uređaja.</translation>
 <translation id="2856776373509145513">Izrada novog spremnika</translation>
-<translation id="2858138569776157458">Najpopularnije web-lokacije</translation>
 <translation id="2861301611394761800">Ažuriranje sustava dovršeno. Ponovno pokrenite sustav.</translation>
 <translation id="2861941300086904918">Sigurnosni upravitelj izvornog klijenta</translation>
 <translation id="2862815659905780618">Uklanjanje razvojnog okruženja za Linux</translation>
@@ -2365,6 +2365,7 @@
 <translation id="3129173833825111527">Lijeva margina</translation>
 <translation id="3129215702932019810">Pogreška pri pokretanju aplikacije</translation>
 <translation id="3130528281680948470">Uređaj će se vratiti na zadane postavke, a svi korisnički računi i lokalni podaci bit će uklonjeni. Tu radnju nije moguće poništiti.</translation>
+<translation id="3130863904455712965">Povijest i drugo</translation>
 <translation id="313205617302240621">Zaboravili ste zaporku?</translation>
 <translation id="3132277757485842847">Nismo uspjeli održati vezu s vašim telefonom. Provjerite je li telefon u blizini, je li otključan i jesu li na njemu uključeni Bluetooth i Wi-Fi.</translation>
 <translation id="3132896062549112541">Pravilo</translation>
@@ -2378,7 +2379,6 @@
 <translation id="3143515551205905069">Otkaži sinkronizaciju</translation>
 <translation id="3143754809889689516">Reproduciraj od početka</translation>
 <translation id="3144647712221361880">Otvori vezu kao</translation>
-<translation id="3144896554017119333">Proširenja i drugo</translation>
 <translation id="3149510190863420837">Aplikacije sustava Chrome</translation>
 <translation id="3150693969729403281">Odmah pokrenite sigurnosnu provjeru</translation>
 <translation id="3150927491400159470">Tvrdo ponovno učitavanje</translation>
@@ -2676,6 +2676,7 @@
 <translation id="3445047461171030979">Brzi odgovori Google asistenta</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Vaša je organizacija blokirala ovu datoteku jer ima osjetljiv ili opasan sadržaj. Recite vlasniku da ispravi pogrešku.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />1 web-lokacije<ph name="END_BOLD" /> koju niste posjećivali u posljednje vrijeme}one{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacije<ph name="END_BOLD" /> koju niste posjećivali u posljednje vrijeme}few{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacije<ph name="END_BOLD" /> koje niste posjećivali u posljednje vrijeme}other{Dopuštenja su uklonjena s <ph name="BEGIN_BOLD" />{NUM_SITES} web-lokacija<ph name="END_BOLD" /> koje niste posjećivali u posljednje vrijeme}}</translation>
 <translation id="3445925074670675829">USB-C uređaj</translation>
 <translation id="3446274660183028131">Pokrenite Parallels Desktop da biste instalirali Windows.</translation>
 <translation id="344630545793878684">čitati vaše podatke s raznih web-lokacija</translation>
@@ -2887,6 +2888,7 @@
 <translation id="3642699533549879077">Kad netko drugi pogleda vaš zaslon, prikazat će se upozorenje i sadržaj obavijesti bit će skriven.</translation>
 <translation id="3643962751030964445">Ovim uređajem upravlja <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> zahtijeva novi profil za račun <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Lagano pomaknite prst da biste snimili različite dijelove otiska prsta.</translation>
+<translation id="3647051300407077858">Pregledajte dopuštenja za obavijesti</translation>
 <translation id="3647654707956482440">Ta se veza ne može upotrijebiti. Da biste pokušali ponovo, provjerite je li točno napisana ili upotrijebite neku drugu vezu.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> primljena s uređaja <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> primljena s uređaja <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> primljene s uređaja <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> primljeno s uređaja <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Otkriven je uređaj <ph name="USB_DEVICE_NAME" /></translation>
@@ -3066,6 +3068,7 @@
 <translation id="380408572480438692">Omogućavanje prikupljanja podatka o izvedbi pomoći će Googleu da vremenom poboljša sustav. Podaci se ne šalju dok ne podnesete izvješće o povratnim informacijama (Alt+Shift+I) i uključite podatke o izvedbi. Uvijek se možete vratiti na taj zaslon i onemogućiti prikupljanje.</translation>
 <translation id="3807249107536149332">Proširenje <ph name="EXTENSION_NAME" /> (ID proširenja "<ph name="EXTENSION_ID" />") nije dopušteno na zaslonu za prijavu.</translation>
 <translation id="3807747707162121253">&amp;Odustani</translation>
+<translation id="3808202562160426447">Zatamni pozadinski sadržaj</translation>
 <translation id="3808443763115411087">Crostinijev razvoj Android aplikacija</translation>
 <translation id="38089336910894858">Prikaži upozorenje prije zatvaranja prečacem ⌘Q</translation>
 <translation id="3809272675881623365">Zec</translation>
@@ -3657,6 +3660,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> dijeli prozor.</translation>
 <translation id="4364830672918311045">Prikaži obavijesti</translation>
 <translation id="4366138410738374926">Ispis je započeo</translation>
+<translation id="4367513928820380646">Pregledajte uklonjena dopuštenja</translation>
 <translation id="4369121877634339065">Povucite preko bilo koje slike da biste pretraživali</translation>
 <translation id="4369215744064167350">Zahtjev za web-lokaciju odobren</translation>
 <translation id="4370975561335139969">Unijeli ste e-adresu i zaporku koje se ne podudaraju</translation>
@@ -4376,6 +4380,7 @@
 <translation id="5045550434625856497">Pogrešna zaporka</translation>
 <translation id="504561833207953641">Otvaranje u postojećoj sesiji preglednika.</translation>
 <translation id="5049614114599109018">Koristi povijest unosa</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Ova je web-lokacija nedavno poslala mnogo obavijesti. Možete spriječiti da ubuduće šalje obavijesti.}one{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}few{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}other{Te su web-lokacije nedavno poslale mnogo obavijesti. Možete spriječiti da ubuduće šalju obavijesti.}}</translation>
 <translation id="5051836348807686060">Provjera pravopisa nije podržana za jezike koje ste odabrali</translation>
 <translation id="5052499409147950210">Uređivanje web-lokacije</translation>
 <translation id="505347685865235222">Neimenovana grupa – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7273,6 +7278,7 @@
 <translation id="7775694664330414886">Kartica je premještena u grupu bez naziva – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> moći će pregledavati datoteke u mapi <ph name="FOLDERNAME" /> dok ne zatvorite sve kartice za ovu web-lokaciju</translation>
 <translation id="7776701556330691704">Nije pronađen nijedan glas</translation>
+<translation id="7777624210360383048">Prečac <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Uklonit će se svi korisnički računi i lokalni podaci.</translation>
 <translation id="7782102568078991263">Nema više prijedloga iz Googlea</translation>
 <translation id="7782717250816686129">Pohrani trajne podatke na zaslonu za prijavu, a vjerodajnice umetni u sesiju.</translation>
@@ -7305,6 +7311,7 @@
 <translation id="7807711621188256451">Uvijek dopusti hostu <ph name="HOST" /> pristup kameri</translation>
 <translation id="7810202088502699111">Na ovoj su stranici blokirani skočni prozori.</translation>
 <translation id="7814458197256864873">&amp;Kopiraj</translation>
+<translation id="7815583197273433531">Uredite prečac <ph name="SHORTCUT" /> za proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Blokirano je opasno preuzimanje</translation>
 <translation id="7817361223956157679">Tipkovnica na zaslonu još uvijek ne funkcionira u Linux aplikacijama</translation>
 <translation id="7818135753970109980">Dodana je nova tema (<ph name="EXTENSION_NAME" />)</translation>
@@ -7379,6 +7386,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Prikaz računa</translation>
 <translation id="7883792253546618164">Pretplatu otkažite kad god želite.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Pregledajte jednu web-lokaciju koja je poslala mnogo obavijesti}one{Pregledajte {NUM_SITES} web-lokaciju koja je poslala mnogo obavijesti}few{Pregledajte {NUM_SITES} web-lokacije koje su poslale mnogo obavijesti}other{Pregledajte {NUM_SITES} web-lokacija koje su poslale mnogo obavijesti}}</translation>
 <translation id="788453346724465748">Učitavanje podataka o računu...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{stavku}one{# stavku}few{# stavke}other{# stavki}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index dad1e72..2d6931b 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">A felkeresett webhelyeket tartalmazó lista itt jelenhet meg az interneten való böngészés folyományaként</translation>
 <translation id="285241945869362924">Automatikus feliratkészítés az audio- és videótartalmakhoz. A hanganyagok és a feliratok sosem kerülnek ki az eszközről.</translation>
 <translation id="2856776373509145513">Új tároló létrehozása</translation>
-<translation id="2858138569776157458">Népszerűek</translation>
 <translation id="2861301611394761800">A rendszerfrissítés befejeződött. Kérjük, indítsa újra a rendszert.</translation>
 <translation id="2861941300086904918">Natív kliens biztonságkezelő</translation>
 <translation id="2862815659905780618">Linux fejlesztői környezet eltávolítása</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">Bal margó</translation>
 <translation id="3129215702932019810">Hiba történt az alkalmazás indítása során</translation>
 <translation id="3130528281680948470">A rendszer alaphelyzetbe állítja eszközét, valamint eltávolítja valamennyi felhasználói fiókot és helyi adatot. A műveletet nem lehet visszavonni.</translation>
+<translation id="3130863904455712965">Előzmények és egyebek</translation>
 <translation id="313205617302240621">Elfelejtette a jelszavát?</translation>
 <translation id="3132277757485842847">Nem tudtuk fenntartani a kapcsolatot a telefonjával. Gondoskodjon arról, hogy telefonja fel legyen oldva, és a közelben legyen, bekapcsolt Bluetooth és Wi-Fi funkcióval.</translation>
 <translation id="3132896062549112541">Szabály</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">Szinkronizálás megszakítása</translation>
 <translation id="3143754809889689516">Lejátszás az elejétől</translation>
 <translation id="3144647712221361880">Link megnyitása mint</translation>
-<translation id="3144896554017119333">Bővítmények és egyebek</translation>
 <translation id="3149510190863420837">Chrome-alkalmazások</translation>
 <translation id="3150693969729403281">Biztonsági ellenőrzés végrehajtása most</translation>
 <translation id="3150927491400159470">Teljes újratöltés</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index f796293..a9b56adb 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -1289,6 +1289,7 @@
 <translation id="2157875535253991059">Այս էջն այժմ լիաէկրան ռեժիմում է:</translation>
 <translation id="2158475082070321257">Պատճենել հղումը որպես ընդգծված տեքստ</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" /> ընդլայնման <ph name="SHORTCUT" /> դյուրանցման գործողության շրջանակը</translation>
 <translation id="216169395504480358">Ավելացնել Wi-Fi…</translation>
 <translation id="2162155940152307086">Համաժամացումը կսկսվի, երբ դուրս գաք համաժամացման կարգավորումներից</translation>
 <translation id="2162705204091149050">Կարդալ տեղեկություններ ձեր դիտարկիչի, օպերացիոն համակարգի, սարքի, տեղադրված ծրագրերի և ֆայլերի մասին</translation>
@@ -2077,7 +2078,6 @@
 <translation id="2852385257476173980">Երբ համացանցում կայքեր այցելեք, դրանց ցանկը կհայտնվի այստեղ</translation>
 <translation id="285241945869362924">Ավտոմատ ստեղծում է ենթագրեր մեդիա բովանդակության համար։ Աուդիո բովանդակությունն ու ենթագրերը պահվում են միայն ձեր սարքում։</translation>
 <translation id="2856776373509145513">Նոր կոնտեյների ստեղծում</translation>
-<translation id="2858138569776157458">Կայքերի ընտրանի</translation>
 <translation id="2861301611394761800">Համակարգի թարմացումն ավարտված է: Վերագործարկեք համակարգը:</translation>
 <translation id="2861941300086904918">Անվտանգության կառավարիչ - Native Client</translation>
 <translation id="2862815659905780618">Հեռացնել Լինուքսի մշակման միջավայրը</translation>
@@ -2341,6 +2341,7 @@
 <translation id="3105796011181310544">Վերադառնա՞լ Google-ին</translation>
 <translation id="310671807099593501">Կայքն օգտագործում է Bluetooth-ը</translation>
 <translation id="3108931485517391283">Չհաջողվեց ստանալ ֆայլը</translation>
+<translation id="3108957152224931571">Գունանշման գույնը</translation>
 <translation id="3109206895301430738">Պահված ներդիրների խմբեր</translation>
 <translation id="3109724472072898302">Կոծկված</translation>
 <translation id="3112292765614504292">Հավելվածի չափը՝ <ph name="APP_SIZE" /></translation>
@@ -2363,6 +2364,7 @@
 <translation id="3129173833825111527">Ձախ լուսանցք</translation>
 <translation id="3129215702932019810">Չհաջողվեց գործարկել հավելվածը</translation>
 <translation id="3130528281680948470">Սարքը կվերականգնվի: Բոլոր օգտատերերի հաշիվները և տեղային տվյալները կհեռացվեն: Գործողությունը հնարավոր չէ հետարկել:</translation>
+<translation id="3130863904455712965">Պատմություն և այլ տվյալներ</translation>
 <translation id="313205617302240621">Մոռացե՞լ եք գաղտնաբառը:</translation>
 <translation id="3132277757485842847">Ձեր հեռախոսի հետ կապն ընդհատվել է։ Համոզվեք, որ այն մոտակայքում է, ապակողպված է, և որ Bluetooth-ն ու Wi-Fi-ը միացված են։</translation>
 <translation id="3132896062549112541">Կանոն</translation>
@@ -2376,7 +2378,6 @@
 <translation id="3143515551205905069">Չեղարկել համաժամացումը</translation>
 <translation id="3143754809889689516">Նվագարկել սկզբից</translation>
 <translation id="3144647712221361880">Բացել հղումը որպես</translation>
-<translation id="3144896554017119333">Ընդլայնումներ և ավելին</translation>
 <translation id="3149510190863420837">Chrome-ի հավելվածներ</translation>
 <translation id="3150693969729403281">Անցնել անվտանգության ստուգում</translation>
 <translation id="3150927491400159470">Նոր բեռնում սերվերից</translation>
@@ -2674,6 +2675,7 @@
 <translation id="3445047461171030979">Google Օգնականի արագ պատասխաններ</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> րոպե</translation>
 <translation id="344537926140058498">Ձեր կազմակերպությունն արգելափակել է այս ֆայլը, քանի որ այն պարունակում է խիստ անձնական կամ վտանգավոր բովանդակություն։ Խնդրեք սեփականատիրոջը շտկել այդ խնդիրը։</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Թույլտվությունները հեռացվեցին <ph name="BEGIN_BOLD" />1 կայքից<ph name="END_BOLD" />, որը դուք վերջերս չեք այցելել}one{Թույլտվությունները հեռացվեցին <ph name="BEGIN_BOLD" />{NUM_SITES} կայքից<ph name="END_BOLD" />, որը դուք վերջերս չեք այցելել}other{Թույլտվությունները հեռացվեցին <ph name="BEGIN_BOLD" />{NUM_SITES} կայքերից<ph name="END_BOLD" />, որոնք դուք վերջերս չեք այցելել}}</translation>
 <translation id="3445925074670675829">USB-C սարք</translation>
 <translation id="3446274660183028131">Windows-ը տեղադրելու համար գործարկեք Parallels Desktop-ը։</translation>
 <translation id="344630545793878684">Կարդալ ձեր տվյալները մի շարք կայքերում</translation>
@@ -2885,6 +2887,7 @@
 <translation id="3642699533549879077">Եթե ձեզնից բացի ինչ-որ մեկը նայի ձեր էկրանին, դուք զգուշացում կտեսնեք, և ծանուցման բովանդակությունը կթաքցվի։</translation>
 <translation id="3643962751030964445">Այս սարքը կառավարվում է <ph name="DEVICE_MANAGER" /> կազմակերպության կողմից։ Ձեր սարքի ադմինիստրատորին (<ph name="DEVICE_MANAGER" />) անհրաժեշտ է նոր պրոֆիլ <ph name="USER_EMAIL_ADDRESS" /> հաշվի համար։</translation>
 <translation id="3645372836428131288">Թեթևակի շարժեք մատը` ամբողջական մատնահետքը ստանալու համար։</translation>
+<translation id="3647051300407077858">Ստուգել ծանուցումների թույլտվությունները</translation>
 <translation id="3647654707956482440">Չհաջողվեց օգտագործել այս հղումը։ Ստուգեք տառասխալների առկայությունը կամ նորից փորձեք այլ հղումով։</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Ստացվեց <ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> սարքից}one{Ստացվեց <ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> սարքից}other{Ստացվեց <ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> սարքից}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> սարքը հայտնաբերվել է</translation>
@@ -3064,6 +3067,7 @@
 <translation id="380408572480438692">Միացնելով կատարողականության տվյալների հավաքումը՝ Google-ին կօգնեք ժամանակի ընթացքում բարելավել համակարգը: Ոչ մի տվյալ չի ուղարկվի, մինչև դուք չուղարկեք արձագանքը (Alt-Shift-I) և չներառեք կատարողականության տվյալները: Ցանկացած պահի կարող եք վերադառնալ այս էկրանին և անջատել տվյալների հավաքումը:</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> ընդլայնումը (ID-ն՝ «<ph name="EXTENSION_ID" />») չի թույլատրվում մուտքի էկրանին։</translation>
 <translation id="3807747707162121253">&amp;Չեղարկել</translation>
+<translation id="3808202562160426447">Խամրեցնել ֆոնի բովանդակությունը</translation>
 <translation id="3808443763115411087">Android-ի համար հավելվածների մշակում Crostini-ում</translation>
 <translation id="38089336910894858">Ցուցադրել զգուշացում նախքան ⌘Q-ով դուրս գալը</translation>
 <translation id="3809272675881623365">Ճագար</translation>
@@ -3655,6 +3659,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> հավելվածը կիսվում է պատուհանով:</translation>
 <translation id="4364830672918311045">Ցույց տալ ծանուցումները</translation>
 <translation id="4366138410738374926">Տպումը սկսված է</translation>
+<translation id="4367513928820380646">Ստուգել հեռացված թույլտվությունները</translation>
 <translation id="4369121877634339065">Քաշեք տարածքը և որոնեք ըստ պատկերի</translation>
 <translation id="4369215744064167350">Կայքի հարցումը հաստատվել է</translation>
 <translation id="4370975561335139969">Մուտքագրված էլփոստը և գաղտնաբառը չեն համընկնում</translation>
@@ -4375,6 +4380,7 @@
 <translation id="5045550434625856497">Գաղտնաբառը սխալ է</translation>
 <translation id="504561833207953641">Բացվում է դիտարկիչի ընթացիկ աշխատաշրջանում։</translation>
 <translation id="5049614114599109018">Օգտագործել ներածման պատմությունը</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Այս կայքը վերջերս շատ ծանուցումներ է ուղարկել։ Դուք կարող եք արգելել դրան դա անել։}one{Այս կայքը վերջերս շատ ծանուցումներ է ուղարկել։ Դուք կարող եք արգելել դրան դա անել։}other{Այս կայքերը վերջերս շատ ծանուցումներ են ուղարկել։ Դուք կարող եք արգելել դրանց դա անել։}}</translation>
 <translation id="5051836348807686060">Ուղղագրության ստուգումը չի աջակցվում ձեր ընտրած լեզուների համար</translation>
 <translation id="5052499409147950210">Փոփոխեք կայքը</translation>
 <translation id="505347685865235222">Անանուն խումբ – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -4586,6 +4592,7 @@
 <translation id="5260334392110301220">Խելացի չակերտներ</translation>
 <translation id="5260508466980570042">Ձեր էլ․ հասցեն կամ գաղտնաբառը չհաստատվեցին: Կրկին փորձեք:</translation>
 <translation id="5260958083445173099">Կայքերը հնարավորության դեպքում կցուցադրեն բովանդակություն ձեր նախընտրած լեզուներով։</translation>
+<translation id="5261619498868361045">Զետեղարանի անվանման դաշտը չի կարող դատարկ լինել։</translation>
 <translation id="5261683757250193089">Բացել Chrome Web Store-ում</translation>
 <translation id="5262178194499261222">Հեռացնել գաղտնաբառը</translation>
 <translation id="5262784498883614021">Ավտոմատ միանալ ցանցին</translation>
@@ -4992,6 +4999,7 @@
 <translation id="562935524653278697">Ադմինիստրատորն անջատել է ձեր էջանիշների, այցելությունների պատմության, գաղտնաբառերի և մյուս կարգավորումների համաժամացումը:</translation>
 <translation id="5631017369956619646">CPU-ի օգտագործումը</translation>
 <translation id="5632059346822207074">Պահանջվում է թույլտվություն։ Արձագանքելու համար սեղմեք Ctrl + Forward։</translation>
+<translation id="5632221585574759616">Իմանալ ավելին ընդլայնման թույլտվությունների մասին</translation>
 <translation id="5632566673632479864">Ձեր <ph name="EMAIL" /> հաշիվն այլևս չի կարող օգտագործվել որպես հիմնական հաշիվ: Քանի որ այս հաշիվը կառավարվում է <ph name="DOMAIN" /> տիրույթի կողմից, ձեր էջանիշները, այցելությունների պատմությունը, գաղտնաբառերը և մյուս կարգավորումները կջնջվեն այս սարքից:</translation>
 <translation id="5632592977009207922">Ներբեռնվում է, մնացել է <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">Իմանալ ավելին համակարգի պահանջների մասին</translation>
@@ -5611,6 +5619,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> սարքը միացված չէ համացանցին: Միացրեք այն համացանցին և նորից փորձեք:</translation>
 <translation id="6220413761270491930">Ընդլայնումը բեռնելիս սխալ առաջացավ</translation>
 <translation id="6224481128663248237">Ձևաչափումը բարեհաջող ավարտվեց:</translation>
+<translation id="622474711739321877">Այս զետեղարանն արդեն գոյություն ունի։</translation>
 <translation id="622537739776246443">Պրոֆիլը կհեռացվի</translation>
 <translation id="6225475702458870625">Հասանելի է բջջային ինտերնետ ձեր <ph name="PHONE_NAME" /> սարքից</translation>
 <translation id="6226777517901268232">Գաղտնի բանալու ֆայլը (պարտադիր չէ)</translation>
@@ -6412,6 +6421,7 @@
 <translation id="696780070563539690">Կայքերը չեն կարող օգտագործել քուքիներ՝ ձեր այցելությունների պատմությունը տեսնելու, օրինակ, գովազդն անհատականացնելու համար։</translation>
 <translation id="6968288415730398122">Էկրանի կողպումը կարգավորելու համար մուտքագրեք ձեր գաղտնաբառը</translation>
 <translation id="6969047215179982698">Անջատել մոտակա սարքերի հետ փոխանակումը</translation>
+<translation id="6969216690072714773">Մուտքագրեք կամ թարմացրեք այս սարքի հետ կապված առկա տեղեկությունները։</translation>
 <translation id="6970480684834282392">Մեկնարկի տեսակ</translation>
 <translation id="6970543303783413625">Չհաջողվեց ներմուծել գաղտնաբառերը։ Միաժամանակ կարող եք ներմուծել մինչև <ph name="COUNT" /> գաղտնաբառ։</translation>
 <translation id="6970856801391541997">Ընտրված էջերի տպում</translation>
@@ -6818,6 +6828,7 @@
 <translation id="7377481913241237033">Միացում կոդով</translation>
 <translation id="7378611153938412599">Թույլ գաղտնաբառերը հեշտ է գուշակել։ Համոզվեք, որ հուսալի գաղտնաբառեր եք ստեղծում։ <ph name="BEGIN_LINK" />Դիտել հաշվի պաշտպանության այլ խորհուրդներ<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Բացել Chrome Web Store-ը</translation>
+<translation id="7380272457268061606">Անջատե՞լ սարքի տվյալների վերականգնումը</translation>
 <translation id="7380459290951585794">Համոզվեք, որ այն մոտակայքում է, ապակողպված, և որ Bluetooth-ն ու Wi-Fi-ը միացված են</translation>
 <translation id="7380622428988553498">Սարքի անունն անվավեր նիշեր է պարունակում</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> տպիչը թարմացվեց</translation>
@@ -7068,6 +7079,7 @@
 <translation id="7617263010641145920">Միացնել Play Խանութը</translation>
 <translation id="7617648809369507487">Օգտագործել ավելի ցածրաձայն հաղորդագրումը</translation>
 <translation id="7621382409404463535">Չհաջողվեց պահել սարքի կարգավորումները:</translation>
+<translation id="7621595347123595643">Գաղտնաբառը կամ PIN կոդը մոռանալու դեպքում դուք չեք կարողանա վերականգնել սարքի տվյալները։</translation>
 <translation id="7622114377921274169">Լիցքավորում</translation>
 <translation id="7622768823216805500">Կայքերը սովորաբար վճարումների մշակիչներ են տեղադրում գնումների գործառույթների, օրինակ՝ արագ վճարման համար</translation>
 <translation id="7622903810087708234">Տեղեկություններ գաղտնաբառերի մասին</translation>
@@ -7266,6 +7278,7 @@
 <translation id="7775694664330414886">Ներդիրը տեղափոխվեց անանուն խումբ – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> կայքը կկարողանա դիտել <ph name="FOLDERNAME" /> պանակի ֆայլերը, մինչև չփակեք այս կայքի բոլոր ներդիրները</translation>
 <translation id="7776701556330691704">Ձայներ չեն գտնվել</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" /> ընդլայնման <ph name="SHORTCUT" /> դյուրանցումը</translation>
 <translation id="7781335840981796660">Օգտատիրոջ բոլոր հաշիվները և տեղային տվյալները կջնջվեն:</translation>
 <translation id="7782102568078991263">Google-ից առաջարկներ այլևս չկան:</translation>
 <translation id="7782717250816686129">Պահել հաստատուն տվյալները մուտքի էկրանին և ներմուծել հաշվի տվյալները աշխատաշրջանում:</translation>
@@ -7297,6 +7310,7 @@
 <translation id="7807711621188256451">Միշտ թույլ տալ <ph name="HOST" />-ին օգտագործել տեսախցիկը</translation>
 <translation id="7810202088502699111">Ելնող պատուհաններն արգելափակված են այս էջում:</translation>
 <translation id="7814458197256864873">&amp;Պատճենել</translation>
+<translation id="7815583197273433531">Փոփոխել <ph name="EXTENSION_NAME" /> ընդլայնման <ph name="SHORTCUT" /> դյուրացումը</translation>
 <translation id="7815680994978050279">Արգելափակվել է վտանգավոր ներբեռնում</translation>
 <translation id="7817361223956157679">Էկրանի ստեղնաշարն առայժմ չի աշխատում Լինուքսի հավելվածներում</translation>
 <translation id="7818135753970109980">Ավելացվել է նոր թեմա (<ph name="EXTENSION_NAME" />)</translation>
@@ -7371,6 +7385,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Դիտել հաշիվը</translation>
 <translation id="7883792253546618164">Դուք ցանկացած պահի կարող եք չեղարկել բաժանորդագրությունը։</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Ստուգեք 1 կայք, որը բազմաթիվ ծանուցումներ է ուղարկել}one{Ստուգեք {NUM_SITES} կայք, որը բազմաթիվ ծանուցումներ է ուղարկել}other{Ստուգեք {NUM_SITES} կայքեր, որոնք բազմաթիվ ծանուցումներ են ուղարկել}}</translation>
 <translation id="788453346724465748">Հաշվի տվյալները բեռնվում են...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{տարր}one{# տարր}other{# տարր}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 202cd5af..2a1d790 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2090,7 +2090,6 @@
 <translation id="2852385257476173980">Daftar situs yang Anda kunjungi dapat muncul di sini saat Anda menjelajahi web</translation>
 <translation id="285241945869362924">Otomatis membuat teks untuk audio dan video. Audio dan teks hanya ada di perangkat Anda.</translation>
 <translation id="2856776373509145513">Buat penampung baru</translation>
-<translation id="2858138569776157458">Situs populer</translation>
 <translation id="2861301611394761800">Pembaruan sistem selesai. Mulai ulang sistem.</translation>
 <translation id="2861941300086904918">Pengelola keamanan Program Asli</translation>
 <translation id="2862815659905780618">Hapus lingkungan pengembangan Linux</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3105796011181310544">Ubah kembali ke Google?</translation>
 <translation id="310671807099593501">Situs sedang menggunakan bluetooth</translation>
 <translation id="3108931485517391283">Tidak dapat menerima</translation>
+<translation id="3108957152224931571">Warna sorotan</translation>
 <translation id="3109206895301430738">Grup Tab Tersimpan</translation>
 <translation id="3109724472072898302">Diciutkan</translation>
 <translation id="3112292765614504292">Ukuran aplikasi: <ph name="APP_SIZE" /></translation>
@@ -2376,6 +2376,7 @@
 <translation id="3129173833825111527">Batas kiri</translation>
 <translation id="3129215702932019810">Error saat meluncurkan aplikasi</translation>
 <translation id="3130528281680948470">Perangkat Anda akan direset dan semua akun pengguna serta data lokal akan dibuang. Tindakan ini tidak dapat diurungkan.</translation>
+<translation id="3130863904455712965">Histori dan lainnya</translation>
 <translation id="313205617302240621">Lupa sandi?</translation>
 <translation id="3132277757485842847">Kami tidak dapat mempertahankan koneksi dengan ponsel Anda. Pastikan ponsel berada di dekat Anda, tidak terkunci, serta Bluetooth dan Wi-Fi aktif.</translation>
 <translation id="3132896062549112541">Aturan</translation>
@@ -2389,7 +2390,6 @@
 <translation id="3143515551205905069">Batalkan sinkronisasi</translation>
 <translation id="3143754809889689516">Putar dari awal</translation>
 <translation id="3144647712221361880">Buka link sebagai</translation>
-<translation id="3144896554017119333">Ekstensi dan lainnya</translation>
 <translation id="3149510190863420837">Aplikasi Chrome</translation>
 <translation id="3150693969729403281">Jalankan pemeriksaan keamanan sekarang</translation>
 <translation id="3150927491400159470">Muat Ulang Keras</translation>
@@ -4599,6 +4599,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">Maaf, email atau sandi Anda tidak dapat diverifikasi. Harap coba lagi.</translation>
 <translation id="5260958083445173099">Situs akan menampilkan konten dalam bahasa pilihan Anda, jika memungkinkan</translation>
+<translation id="5261619498868361045">Nama penampung wajib diisi.</translation>
 <translation id="5261683757250193089">Buka di Toko Web</translation>
 <translation id="5262178194499261222">Hapus sandi</translation>
 <translation id="5262784498883614021">Hubungkan ke jaringan secara otomatis</translation>
@@ -5005,6 +5006,7 @@
 <translation id="562935524653278697">Administrator Anda telah menonaktifkan sinkronisasi bookmark, histori, sandi, dan setelan yang lain.</translation>
 <translation id="5631017369956619646">Penggunaan CPU</translation>
 <translation id="5632059346822207074">Izin diminta, tekan Ctrl + Forward untuk merespons</translation>
+<translation id="5632221585574759616">Pelajari izin ekstensi lebih lanjut</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> akun Anda tidak lagi diizinkan sebagai akun utama. Karena akun ini dikelola oleh <ph name="DOMAIN" />, bookmark, histori, sandi, dan setelan Anda lainnya akan dihapus dari perangkat ini.</translation>
 <translation id="5632592977009207922">Mendownload, <ph name="PERCENT_REMAINING" />% tersisa</translation>
 <translation id="5633149627228920745">Pelajari persyaratan sistem lebih lanjut</translation>
@@ -5625,6 +5627,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> offline. Sambungkan ke internet, lalu coba lagi.</translation>
 <translation id="6220413761270491930">Terjadi Kesalahan Saat Memuat Ekstensi</translation>
 <translation id="6224481128663248237">Berhasil menyelesaikan pemformatan!</translation>
+<translation id="622474711739321877">Penampung ini sudah ada.</translation>
 <translation id="622537739776246443">Profil akan dihapus</translation>
 <translation id="6225475702458870625">Koneksi data tersedia dari <ph name="PHONE_NAME" /> Anda</translation>
 <translation id="6226777517901268232">File kunci pribadi (opsional)</translation>
@@ -6424,6 +6427,7 @@
 <translation id="696780070563539690">Situs tidak dapat menggunakan cookie Anda untuk melihat aktivitas penjelajahan Anda di berbagai situs, misalnya untuk mempersonalisasi iklan</translation>
 <translation id="6968288415730398122">Masukkan sandi Anda untuk mengonfigurasi kunci layar</translation>
 <translation id="6969047215179982698">Nonaktifkan Berbagi Langsung</translation>
+<translation id="6969216690072714773">Masukkan informasi baru atau informasi lama yang diperbarui untuk dikaitkan dengan perangkat ini.</translation>
 <translation id="6970480684834282392">Tipe rintisan</translation>
 <translation id="6970543303783413625">Tidak dapat mengimpor sandi. Anda hanya dapat mengimpor maksimal <ph name="COUNT" /> sandi dalam satu waktu.</translation>
 <translation id="6970856801391541997">Cetak Halaman Khusus</translation>
@@ -6830,6 +6834,7 @@
 <translation id="7377481913241237033">Hubungkan dengan kode</translation>
 <translation id="7378611153938412599">Sandi yang lemah mudah ditebak. Pastikan Anda membuat sandi yang kuat. <ph name="BEGIN_LINK" />Lihat tips keamanan lainnya<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Buka Chrome Webstore</translation>
+<translation id="7380272457268061606">Nonaktifkan pemulihan data lokal?</translation>
 <translation id="7380459290951585794">Pastikan ponsel berada di dekat Anda, tidak terkunci, serta Bluetooth dan Wi-Fi aktif</translation>
 <translation id="7380622428988553498">Nama perangkat berisi karakter yang tidak valid</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> diupdate</translation>
@@ -7080,6 +7085,7 @@
 <translation id="7617263010641145920">Aktifkan Play Store</translation>
 <translation id="7617648809369507487">Gunakan pesan yang lebih tenang</translation>
 <translation id="7621382409404463535">Sistem gagal menyimpan konfigurasi ponsel.</translation>
+<translation id="7621595347123595643">Anda tidak akan dapat memulihkan data lokal jika Anda lupa sandi atau PIN.</translation>
 <translation id="7622114377921274169">Mengisi daya.</translation>
 <translation id="7622768823216805500">Situs biasanya menginstal pengelola pembayaran untuk fitur belanja seperti pembayaran yang lebih mudah</translation>
 <translation id="7622903810087708234">Detail sandi</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 2a63994..e044a51 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">Listi yfir vefsvæði sem þú heimsækir kann að birtast hér þegar þú vafrar um vefinn</translation>
 <translation id="285241945869362924">Býr sjálfkrafa til skjátexta fyrir hljóð- og myndefni. Hljóð og skjátextar fara aldrei úr tækinu.</translation>
 <translation id="2856776373509145513">Búa til nýjan geymi</translation>
-<translation id="2858138569776157458">Vinsælast</translation>
 <translation id="2861301611394761800">Kerfisuppfærslu lokið. Endurræstu kerfið.</translation>
 <translation id="2861941300086904918">Öryggisstjórnun sérhannaðs biðlara</translation>
 <translation id="2862815659905780618">Fjarlægja Linux-forritunarumhverfi</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">Vinstri spássía</translation>
 <translation id="3129215702932019810">Villa við að ræsa forrit</translation>
 <translation id="3130528281680948470">Tækið verður endurstillt og allir notendareikningar og staðbundin gögn verða fjarlægð. Ekki er hægt að afturkalla þessa aðgerð.</translation>
+<translation id="3130863904455712965">Ferill og fleira</translation>
 <translation id="313205617302240621">Gleymdirðu aðgangsorðinu?</translation>
 <translation id="3132277757485842847">Ekki tókst að halda tengingu við símann. Gakktu úr skugga um að síminn sé nálægt, ólæstur og með kveikt á Bluetooth og Wi-Fi.</translation>
 <translation id="3132896062549112541">Regla</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">Hætta við samstillingu</translation>
 <translation id="3143754809889689516">Spila frá byrjun</translation>
 <translation id="3144647712221361880">Opna tengil sem</translation>
-<translation id="3144896554017119333">Viðbætur og fleira</translation>
 <translation id="3149510190863420837">Chrome forrit</translation>
 <translation id="3150693969729403281">Keyra öryggisathugun núna</translation>
 <translation id="3150927491400159470">Algjör endurhleðsla</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index dc102514..6d9307f 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -620,6 +620,7 @@
 <translation id="1573117025466282241">Usa il telefono con un codice QR</translation>
 <translation id="1575741822946219011">Lingue e metodi di immissione</translation>
 <translation id="1576594961618857597">Avatar bianco predefinito</translation>
+<translation id="1576729678809834061">Segnala questo risultato di ricerca</translation>
 <translation id="1578558981922970608">Termina</translation>
 <translation id="1580772913177567930">Contatta l'amministratore</translation>
 <translation id="1581962803218266616">Mostra nel Finder</translation>
@@ -1011,6 +1012,7 @@
 <translation id="1909880997794698664">Vuoi mantenere definitivamente questo dispositivo in modalità kiosk?</translation>
 <translation id="1910721550319506122">Benvenuto!</translation>
 <translation id="1910736334623230603">Impossibile cercare più immagini. Aggiungi un'immagine alla volta.</translation>
+<translation id="1910908536872421421">Chrome for Testing v<ph name="BROWSER_VERSION" /> è riservato ai test automatici. Per la normale navigazione, usa una versione standard di Chrome che si aggiorna automaticamente.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Chiudi</translation>
 <translation id="1916502483199172559">Avatar rosso predefinito</translation>
@@ -1285,6 +1287,7 @@
 <translation id="2157875535253991059">Questa pagina ora è a schermo intero.</translation>
 <translation id="2158475082070321257">Copia link al testo evidenziato</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Ambito di <ph name="SHORTCUT" /> per <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Aggiungi Wi-Fi...</translation>
 <translation id="2162155940152307086">La sincronizzazione inizierà quando esci dalle impostazioni di sincronizzazione</translation>
 <translation id="2162705204091149050">Lettura di informazioni su browser, sistema operativo, dispositivo, software installato e file</translation>
@@ -2073,7 +2076,6 @@
 <translation id="2852385257476173980">Qui potrebbe essere visualizzato un elenco di siti che visiti quando navighi sul Web</translation>
 <translation id="285241945869362924">Vengono creati automaticamente i sottotitoli per i contenuti audio e video. Audio e sottotitoli non possono essere trasferiti dal dispositivo.</translation>
 <translation id="2856776373509145513">Crea un nuovo container</translation>
-<translation id="2858138569776157458">Siti princ.</translation>
 <translation id="2861301611394761800">Aggiornamento del sistema completato. Riavvia il sistema.</translation>
 <translation id="2861941300086904918">Gestione sicurezza Native Client</translation>
 <translation id="2862815659905780618">Rimuovi ambiente di sviluppo Linux</translation>
@@ -2360,6 +2362,7 @@
 <translation id="3129173833825111527">Margine sinistro</translation>
 <translation id="3129215702932019810">Errore durante l'avvio dell'applicazione</translation>
 <translation id="3130528281680948470">Il dispositivo verrà ripristinato e tutti gli account utente e i dati locali verranno rimossi. L'operazione non può essere annullata.</translation>
+<translation id="3130863904455712965">Cronologia e altro ancora</translation>
 <translation id="313205617302240621">Hai dimenticato la password?</translation>
 <translation id="3132277757485842847">Impossibile mantenere una connessione col telefono. Assicurati che il tuo telefono sia nelle vicinanze, sbloccato e che il Bluetooth e il Wi-Fi siano attivi.</translation>
 <translation id="3132896062549112541">Regola</translation>
@@ -2373,7 +2376,6 @@
 <translation id="3143515551205905069">Annulla sincronizzazione</translation>
 <translation id="3143754809889689516">Riproduci dall'inizio</translation>
 <translation id="3144647712221361880">Apri link come</translation>
-<translation id="3144896554017119333">Estensioni e altro ancora</translation>
 <translation id="3149510190863420837">Applicazioni Chrome</translation>
 <translation id="3150693969729403281">Esegui subito il controllo di sicurezza</translation>
 <translation id="3150927491400159470">Ricaricamento manuale</translation>
@@ -2671,6 +2673,7 @@
 <translation id="3445047461171030979">Risposte rapide dell'Assistente Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">La tua organizzazione ha bloccato questo file perché include contenuti sensibili o pericolosi. Chiedi al proprietario di risolvere il problema.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Autorizzazioni rimosse da <ph name="BEGIN_BOLD" />1 sito<ph name="END_BOLD" /> che non hai visitato di recente}other{Autorizzazioni rimosse da <ph name="BEGIN_BOLD" />{NUM_SITES} siti<ph name="END_BOLD" /> che non hai visitato di recente}}</translation>
 <translation id="3445925074670675829">Dispositivo USB-C</translation>
 <translation id="3446274660183028131">Avvia Parallels Desktop per installare Windows.</translation>
 <translation id="344630545793878684">Lettura dei dati su una serie di siti web</translation>
@@ -2882,6 +2885,7 @@
 <translation id="3642699533549879077">Quando qualcuno osserva il tuo schermo, riceverai un avviso e il contenuto della notifica sarà nascosto.</translation>
 <translation id="3643962751030964445">Questo dispositivo è gestito da <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> richiede un nuovo profilo per l'account <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Muovi leggermente il dito per acquisire una parte diversa dell'impronta digitale.</translation>
+<translation id="3647051300407077858">Controlla le autorizzazioni alle notifiche</translation>
 <translation id="3647654707956482440">Impossibile utilizzare questo link. Controlla che non ci siano errori di battitura o utilizza un altro link per riprovare.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}other{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}}</translation>
 <translation id="3648348069317717750">Rilevato dispositivo <ph name="USB_DEVICE_NAME" /></translation>
@@ -3052,6 +3056,7 @@
 <translation id="3798449238516105146">Versione</translation>
 <translation id="3798632811625902122">Il dispositivo Bluetooth <ph name="DEVICE" /> chiede l'autorizzazione per essere accoppiato.</translation>
 <translation id="3799128412641261490">Impostazioni Switch Access</translation>
+<translation id="3800030395703848668">Visualizza opzioni elenco</translation>
 <translation id="3800806661949714323">Mostra tutto (opzione consigliata)</translation>
 <translation id="3800828618615365228">Termini aggiuntivi di Google Chrome e ChromeOS</translation>
 <translation id="3802486193901166966">Questa estensione non richiede autorizzazioni speciali e non ha accesso a siti aggiuntivi</translation>
@@ -3060,6 +3065,7 @@
 <translation id="380408572480438692">Se attivi la raccolta dei dati sul rendimento, consenti a Google di migliorare il sistema nel tempo. I dati vengono inviati soltanto quando presenti un rapporto di feedback (Alt+Maiusc+I) e includi dati sul rendimento. Puoi tornare in qualsiasi momento in questa schermata per disattivare la raccolta.</translation>
 <translation id="3807249107536149332">L'estensione <ph name="EXTENSION_NAME" /> (ID estensione "<ph name="EXTENSION_ID" />") non è consentita in una schermata di accesso.</translation>
 <translation id="3807747707162121253">&amp;Annulla</translation>
+<translation id="3808202562160426447">Attenua contenuti in background</translation>
 <translation id="3808443763115411087">Sviluppo di app Android in Crostini</translation>
 <translation id="38089336910894858">Mostra un avviso prima di uscire con ⌘Q</translation>
 <translation id="3809272675881623365">Coniglio</translation>
@@ -3246,6 +3252,7 @@
 <translation id="3965811923470826124">Con</translation>
 <translation id="3965965397408324205">Esci da <ph name="PROFILE_NAME" /></translation>
 <translation id="3966072572894326936">Scegli un'altra cartella...</translation>
+<translation id="3966094581547899417">Dettagli hotspot</translation>
 <translation id="3967822245660637423">Download completato</translation>
 <translation id="3967841595862839006">Scegli la lingua e la tastiera</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3297,6 +3304,7 @@
 <translation id="4014432863917027322">Riparare "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="4015163439792426608">Usi delle estensioni? <ph name="BEGIN_LINK" />Gestiscile<ph name="END_LINK" /> da un unico punto di facile accesso.</translation>
 <translation id="4017225831995090447">Crea codice QR per questo link</translation>
+<translation id="4019983356493507433">Modifica elenco di preferiti</translation>
 <translation id="4020327272915390518">Menu Opzioni</translation>
 <translation id="4021279097213088397">-</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3508,6 +3516,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Questa estensione non è consentita}other{Alcune estensioni non sono consentite}}</translation>
 <translation id="4231095370974836764">Installa app e giochi da Google Play su <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Chiudi i controlli di gioco</translation>
+<translation id="4231542173270219144">Quando sono attive le prove, la riduzione di spam e attività fraudolente è basata su token di stato privati per aiutare i siti a contrastare le attività fraudolente e a distinguere i bot dalle persone.</translation>
 <translation id="4232375817808480934">Configura Kerberos</translation>
 <translation id="4235965441080806197">Annulla accesso</translation>
 <translation id="4236163961381003811">Scopri altre estensioni</translation>
@@ -3648,6 +3657,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> condivide una finestra.</translation>
 <translation id="4364830672918311045">Mostrare notifiche</translation>
 <translation id="4366138410738374926">Stampa avviata</translation>
+<translation id="4367513928820380646">Controlla le autorizzazioni rimosse</translation>
 <translation id="4369121877634339065">Trascina su un'immagine qualsiasi per cercare</translation>
 <translation id="4369215744064167350">Richiesta di accesso al sito web approvata</translation>
 <translation id="4370975561335139969">L'indirizzo email e la password non corrispondono</translation>
@@ -3703,6 +3713,7 @@
 <translation id="4412698727486357573">Centro assistenza</translation>
 <translation id="44141919652824029">Vuoi consentire a "<ph name="APP_NAME" />" di recuperare l'elenco di dispositivi USB collegati?</translation>
 <translation id="4414232939543644979">Nuova finestra di navigazione in &amp;incognito</translation>
+<translation id="4414648713167199100">Usa i dati mobili di Chromebook e il tuo operatore potrebbe addebitare costi aggiuntivi. Potrebbe anche aumentare l'utilizzo della batteria. <ph name="BEGIN_LINK_LEARN_MORE" />Scopri di più<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">Puoi iniziare a utilizzare il tuo <ph name="DEVICE_TYPE" />.</translation>
 <translation id="4415245286584082850">Nessun dispositivo trovato. Apri un articolo del Centro assistenza in una nuova scheda.</translation>
 <translation id="4415276339145661267">Gestisci il tuo Account Google</translation>
@@ -4212,6 +4223,7 @@
 <translation id="4885692421645694729">L'estensione non ha accesso a siti aggiuntivi</translation>
 <translation id="4887424188275796356">Apri con visualizzatore di sistema</translation>
 <translation id="488785315393301722">Mostra dettagli</translation>
+<translation id="488862352499217187">Crea nuova cartella</translation>
 <translation id="4890773143211625964">Mostra impostazioni avanzate della stampante</translation>
 <translation id="4891089016822695758">Forum per la versione Beta</translation>
 <translation id="4892229439761351791">Il sito può usare il Bluetooth</translation>
@@ -4333,6 +4345,7 @@
 <translation id="5009463889040999939">Ridenominazione del profilo in corso. Questa operazione può richiedere alcuni minuti.</translation>
 <translation id="5010043101506446253">Autorità di certificazione</translation>
 <translation id="501057610015570208">L'app con l'attributo del file manifest "kiosk_only" deve essere installata in modalità kiosk di ChromeOS Flex</translation>
+<translation id="5010886807652684893">Visualizzazione grafica</translation>
 <translation id="5015344424288992913">Risoluzione proxy in corso...</translation>
 <translation id="5016491575926936899">Puoi inviare SMS dal computer, condividere la connessione a Internet, rispondere a notifiche delle conversazioni e sbloccare <ph name="DEVICE_TYPE" /> con il telefono.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Puoi spostarti da una pagina all'altra con un cursore di testo. Premi Ctrl + Cerca + 7 per disattivare l'opzione.</translation>
@@ -4364,6 +4377,7 @@
 <translation id="5045550434625856497">Password non corretta</translation>
 <translation id="504561833207953641">Apertura nella sessione del browser esistente.</translation>
 <translation id="5049614114599109018">Utilizza cronologia immissioni</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Questo sito ha inviato molte notifiche di recente. Puoi bloccare l'invio di ulteriori notifiche.}other{Questi siti hanno inviato molte notifiche di recente. Puoi bloccare l'invio di ulteriori notifiche.}}</translation>
 <translation id="5051836348807686060">Il controllo ortografico non è supportato per le lingue selezionate</translation>
 <translation id="5052499409147950210">Modifica del sito</translation>
 <translation id="505347685865235222">Gruppo senza nome - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -6077,6 +6091,7 @@
 <translation id="6674571176963658787">Per avviare la sincronizzazione devi inserire la tua passphrase</translation>
 <translation id="6675665718701918026">Dispositivo di puntamento collegato</translation>
 <translation id="6676212663108450937">Considera l'uso di cuffie mentre eserciti il riconoscimento vocale</translation>
+<translation id="6677942524382973058">I token di stato privati migliorano la privacy sul Web e non possono essere usati per scoprire la tua identità.</translation>
 <translation id="6678717876183468697">URL query</translation>
 <translation id="6680442031740878064">Disponibile: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Velocità</translation>
@@ -6906,6 +6921,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# scheda aperta; premi per attivare/disattivare la tabstrip}other{# schede aperte; premi per attivare/disattivare la tabstrip}}</translation>
 <translation id="7465635034594602553">Si è verificato un problema. Attendi qualche minuto ed esegui di nuovo <ph name="APP_NAME" />.</translation>
 <translation id="7465778193084373987">URL di revoca certificato Netscape</translation>
+<translation id="7466431077154602932">Visualizzazione compatta</translation>
 <translation id="746861123368584540">Estensione caricata</translation>
 <translation id="7470424110735398630">Possono accedere agli appunti</translation>
 <translation id="747114903913869239">Errore: impossibile decodificare l'estensione</translation>
@@ -7255,6 +7271,7 @@
 <translation id="7775694664330414886">Scheda spostata in un gruppo senza nome - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> potrà visualizzare i file nella cartella <ph name="FOLDERNAME" /> fino alla chiusura di tutte le schede di questo sito</translation>
 <translation id="7776701556330691704">Nessuna voce trovata</translation>
+<translation id="7777624210360383048">Scorciatoia <ph name="SHORTCUT" /> per <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Tutti gli account utente e i dati locali verranno rimossi.</translation>
 <translation id="7782102568078991263">Nessun altro suggerimento da Google</translation>
 <translation id="7782717250816686129">Archivia i dati persistenti nella schermata di accesso e inserisci le credenziali nella sessione.</translation>
@@ -7287,6 +7304,7 @@
 <translation id="7807711621188256451">Consenti sempre a <ph name="HOST" /> di accedere alla webcam</translation>
 <translation id="7810202088502699111">I popup sono stati bloccati in questa pagina.</translation>
 <translation id="7814458197256864873">&amp;Copia</translation>
+<translation id="7815583197273433531">Modifica la scorciatoia <ph name="SHORTCUT" /> per <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Download pericoloso bloccato</translation>
 <translation id="7817361223956157679">La tastiera sullo schermo non funziona ancora nelle app Linux</translation>
 <translation id="7818135753970109980">Nuovo tema aggiunto (<ph name="EXTENSION_NAME" />)</translation>
@@ -7361,6 +7379,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Visualizza account</translation>
 <translation id="7883792253546618164">Puoi annullare l'iscrizione in qualsiasi momento.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Controlla 1 sito che ha inviato molte notifiche}other{Controlla {NUM_SITES} siti che hanno inviato molte notifiche}}</translation>
 <translation id="788453346724465748">Caricamento dei dati dell'account in corso…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{un elemento}other{# elementi}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
@@ -7825,6 +7844,7 @@
 <translation id="8288539437195337464">Assicurati che il dispositivo sia aggiornato e riprova</translation>
 <translation id="8289128870594824098">Dimensione disco</translation>
 <translation id="8289509909262565712">Ti diamo il benvenuto in <ph name="DEVICE_OS" /></translation>
+<translation id="8291415872436043161">Scarica Chrome</translation>
 <translation id="8293206222192510085">Aggiunta preferito</translation>
 <translation id="8294431847097064396">Origine</translation>
 <translation id="8298429963694909221">Puoi ora ricevere le notifiche del telefono sul tuo dispositivo <ph name="DEVICE_TYPE" />. Se ignori le notifiche sul tuo dispositivo <ph name="DEVICE_TYPE" />, verranno ignorate anche sul telefono. Assicurati che il tuo telefono sia nelle vicinanze, nonché che il Bluetooth e il Wi-Fi siano attivi.</translation>
@@ -8128,6 +8148,7 @@
 <translation id="8602674530529411098">App (beta)</translation>
 <translation id="8602851771975208551">Un altro programma sul computer ha aggiunto un'applicazione che potrebbe modificare il funzionamento di Chrome.</translation>
 <translation id="8605428685123651449">Memoria SQLite</translation>
+<translation id="8607326572516521315">La riduzione di spam e attività fraudolente è basata su token di stato privati per aiutare i siti a contrastare le attività fraudolente e a distinguere i bot dalle persone.</translation>
 <translation id="8608618451198398104">Aggiungi una richiesta di Kerberos</translation>
 <translation id="8609465669617005112">Sposta su</translation>
 <translation id="8610103157987623234">Formato errato, riprova</translation>
@@ -8452,6 +8473,7 @@
 <translation id="8890170499370378450">Potrebbero esserti addebitati costi per l'utilizzo dei dati mobili</translation>
 <translation id="8890516388109605451">Fonti</translation>
 <translation id="8890529496706615641">Impossibile rinominare il profilo. Riprova oppure contatta il tuo operatore per ricevere assistenza tecnica.</translation>
+<translation id="8891996167592415151">In base alla tua interazione con un sito, ad esempio l'accesso regolare a un account, il sito in questione può emettere un token di stato privato per il browser in uso. Dopodiché, se altri siti che visiti cercano e trovano un token di stato privato valido, è più probabile che ti considerino una persona e non un bot.</translation>
 <translation id="8892168913673237979">Finito.</translation>
 <translation id="8893801527741465188">Disinstallazione completata</translation>
 <translation id="8893928184421379330">Spiacenti, impossibile riconoscere il dispositivo <ph name="DEVICE_LABEL" />.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index b90be28..82c28fe 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2088,7 +2088,6 @@
 <translation id="2852385257476173980">רשימת אתרים שביקרת בהם עשויה להופיע כאן בזמן הגלישה באינטרנט</translation>
 <translation id="285241945869362924">יצירה אוטומטית של כתוביות לאודיו ולווידאו. קטעי האודיו והכתוביות אף פעם לא מועברים מהמכשיר.</translation>
 <translation id="2856776373509145513">יצירת קונטיינר חדש</translation>
-<translation id="2858138569776157458">אתרים נבחרים</translation>
 <translation id="2861301611394761800">עדכון המערכת הושלם. יש להפעיל מחדש את המערכת.</translation>
 <translation id="2861941300086904918">‏מנהל האבטחה של Native Client</translation>
 <translation id="2862815659905780618">‏הסרה של סביבת הפיתוח של Linux</translation>
@@ -2375,6 +2374,7 @@
 <translation id="3129173833825111527">שוליים שמאליים</translation>
 <translation id="3129215702932019810">אירעה שגיאה בהפעלת האפליקציה</translation>
 <translation id="3130528281680948470">יתבצע איפוס של המכשיר שלך וכל חשבונות המשתמשים והנתונים המקומיים יוסרו ממנו. לא ניתן לבטל פעולה זו.</translation>
+<translation id="3130863904455712965">היסטוריה ועוד</translation>
 <translation id="313205617302240621">שכחת את הסיסמה?</translation>
 <translation id="3132277757485842847">‏לא הצלחנו לשמור על החיבור לטלפון שלך. יש לוודא שהטלפון נמצא בקרבת מקום, אינו נעול, ושה-Bluetooth וה-Wi-Fi פועלים.</translation>
 <translation id="3132896062549112541">כלל</translation>
@@ -2388,7 +2388,6 @@
 <translation id="3143515551205905069">ביטול סנכרון</translation>
 <translation id="3143754809889689516">הפעלה מההתחלה</translation>
 <translation id="3144647712221361880">פתיחת קישור בתור</translation>
-<translation id="3144896554017119333">תוספים ועוד</translation>
 <translation id="3149510190863420837">‏אפליקציות Chrome</translation>
 <translation id="3150693969729403281">הפעלת בדיקת בטיחות</translation>
 <translation id="3150927491400159470">טעינה מחדש קשיחה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index ff37090..8b17a434 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -2067,7 +2067,6 @@
 <translation id="2852385257476173980">ウェブを閲覧すると、アクセスしたサイトのリストがこちらに表示されます</translation>
 <translation id="285241945869362924">音声と動画の字幕を自動的に作成します。音声と字幕がデバイスの外部に送信されることはありません。</translation>
 <translation id="2856776373509145513">新しいコンテナの作成</translation>
-<translation id="2858138569776157458">上位のサイト</translation>
 <translation id="2861301611394761800">システムの更新が完了しました。システムを再起動してください。</translation>
 <translation id="2861941300086904918">ネイティブ クライアント セキュリティ マネージャ</translation>
 <translation id="2862815659905780618">Linux 開発環境を削除</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3129173833825111527">左余白</translation>
 <translation id="3129215702932019810">アプリケーションの起動中にエラーが発生しました</translation>
 <translation id="3130528281680948470">デバイスをリセットし、すべてのユーザー アカウントとローカルデータを削除します。この操作は元に戻せません。</translation>
+<translation id="3130863904455712965">履歴、その他</translation>
 <translation id="313205617302240621">パスワードを忘れた場合</translation>
 <translation id="3132277757485842847">スマートフォンとの接続を維持できませんでした。Bluetooth 搭載のスマートフォンが近くにあり、Wi-Fi がオンになっていて、ロックも解除されていることを確認してください。</translation>
 <translation id="3132896062549112541">ルール</translation>
@@ -2367,7 +2367,6 @@
 <translation id="3143515551205905069">同期をキャンセル</translation>
 <translation id="3143754809889689516">最初から再生</translation>
 <translation id="3144647712221361880">別のユーザーとしてリンクを開く</translation>
-<translation id="3144896554017119333">拡張機能など</translation>
 <translation id="3149510190863420837">Chrome アプリ</translation>
 <translation id="3150693969729403281">安全確認を今すぐ実行</translation>
 <translation id="3150927491400159470">ハード再読み込み</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 0e205f2..d26d310 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -2076,7 +2076,6 @@
 <translation id="2852385257476173980">აქ გამოჩნდება თქვენ მიერ მონახულებული საიტების სია ვების დათვალიერების პარალელურად</translation>
 <translation id="285241945869362924">ავტომატურად ქმნის სუბტიტრებს აუდიოსა და ვიდეოსთვის. აუდიო და სუბტიტრები ყოველთვის თქვენს მოწყობილობაზე დარჩება.</translation>
 <translation id="2856776373509145513">შექმენით ახალი კონტეინერი</translation>
-<translation id="2858138569776157458">ტოპ-საიტები</translation>
 <translation id="2861301611394761800">სისტემის განახლება დასრულებულია. გთხოვთ გადატვირთეთ სისტემა.</translation>
 <translation id="2861941300086904918">ადგილობრივი კლიენტის უსაფრთხოების მენეჯერი</translation>
 <translation id="2862815659905780618">Linux-ის შემუშავების გარემოს ამოშლა</translation>
@@ -2340,6 +2339,7 @@
 <translation id="3105796011181310544">გსურთ Google-ზე დაბრუნება?</translation>
 <translation id="310671807099593501">საიტი იყენებს Bluetooth-კავშირს</translation>
 <translation id="3108931485517391283">მიღება ვერ მოხერხდა</translation>
+<translation id="3108957152224931571">გამოყოფის ფერი</translation>
 <translation id="3109206895301430738">ჩანართების შენახული ჯგუფები</translation>
 <translation id="3109724472072898302">აკეცილი</translation>
 <translation id="3112292765614504292">აპის ზომა: <ph name="APP_SIZE" /></translation>
@@ -2362,6 +2362,7 @@
 <translation id="3129173833825111527">მარცხენა ზღვარი</translation>
 <translation id="3129215702932019810">შეცდომა აპლიკაციის გაშვებისას</translation>
 <translation id="3130528281680948470">თქვენს მოწყობილობაზე დაბრუნდება ქარხნული პარამეტრები და ყველა მომხმარებლის ანგარიში და თანმხლები მონაცემები წაიშლება. ეს შეუქცევადია.</translation>
+<translation id="3130863904455712965">ისტორია და სხვა</translation>
 <translation id="313205617302240621">პაროლი დაგავიწყდათ?</translation>
 <translation id="3132277757485842847">თქვენს ტელეფონთან კავშირი ვერ შენარჩუნდა. დარწმუნდით, რომ ტელეფონი ახლოს გაქვთ, განბლოკილია და მასზე ჩართულია Bluetooth/Wi-Fi.</translation>
 <translation id="3132896062549112541">წესი</translation>
@@ -2375,7 +2376,6 @@
 <translation id="3143515551205905069">სინქრონიზაციის გაუქმება</translation>
 <translation id="3143754809889689516">დასაწყისიდან დაკვრა</translation>
 <translation id="3144647712221361880">ბმულის გახსნა, როგორც</translation>
-<translation id="3144896554017119333">გაფართოებები და მეტი</translation>
 <translation id="3149510190863420837">Chrome-ის პროგრამები</translation>
 <translation id="3150693969729403281">უსაფრთხოების შემოწმების გაშვება</translation>
 <translation id="3150927491400159470">მყარი ხელახლა ჩატვირთვა</translation>
@@ -4589,6 +4589,7 @@
 <translation id="5260334392110301220">გონიერი ბრჭყალები</translation>
 <translation id="5260508466980570042">სამწუხაროდ, თქვენი ელფოსტის და პაროლის გადამოწმება ვერ მოხერხდა. ხელახლა სცადეთ.</translation>
 <translation id="5260958083445173099">ვებსაიტები, შეძლებისდაგვარად, კონტენტს თქვენთვის სასურველ ენებზე გამოაჩენს.</translation>
+<translation id="5261619498868361045">კონტეინერის სახელი არ უნდა იყოს ცარიელი.</translation>
 <translation id="5261683757250193089">Web Store-ში გახსნა</translation>
 <translation id="5262178194499261222">პაროლის ამოშლა</translation>
 <translation id="5262784498883614021">ქსელთან ავტომატური დაკავშირება</translation>
@@ -4995,6 +4996,7 @@
 <translation id="562935524653278697">თქვენი სანიშნეების, ისტორიის, პაროლების და სხვა პარამეტრების სინქრონიზაცია გათიშულია თქვენი ადმინისტრატორის მიერ.</translation>
 <translation id="5631017369956619646">CPU-ს გამოყენება</translation>
 <translation id="5632059346822207074">მოთხოვნილია ნებართვა, გამოხმაურებისთვის დააჭირეთ კლავიშთა კომბინაციას Ctrl + წინ</translation>
+<translation id="5632221585574759616">შეიტყვეთ მეტი გაფართოებების ნებართვების შესახებ</translation>
 <translation id="5632566673632479864">თქვენი ანგარიში (<ph name="EMAIL" />) აღარ დაიშვება ძირითადი ანგარიშის სახით. ვინაიდან ამ ანგარიშს მართავს <ph name="DOMAIN" />, თქვენი სანიშნეები, ისტორია, პაროლები და სხვა პარამეტრები წაიშლება ამ მოწყობილობიდან.</translation>
 <translation id="5632592977009207922">მიმდინარეობს ჩამოტვირთვა, დარჩენილია <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">შეიტყვეთ მეტი სისტემური მოთხოვნების შესახებ</translation>
@@ -5615,6 +5617,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ხაზგარეშე რეჟიმშია. დაუკავშირდით ინტერნეტს და ცადეთ ხელახლა.</translation>
 <translation id="6220413761270491930">გაფართოვების ჩატვირთვის ხარვეზი</translation>
 <translation id="6224481128663248237">ფორმატირება წარმატებით დასრულდა!</translation>
+<translation id="622474711739321877">ასეთი კონტეინერი უკვე არსებობს.</translation>
 <translation id="622537739776246443">პროფილი წაიშლება</translation>
 <translation id="6225475702458870625">თქვენი <ph name="PHONE_NAME" /> მობილურ ინტერნეტს უზრუნველყოფს</translation>
 <translation id="6226777517901268232">პირადი გასაღების ფაილი (არასავალდებულო)</translation>
@@ -6414,6 +6417,7 @@
 <translation id="696780070563539690">საიტები ვერ გამოიყენებს ქუქი-ჩანაწერებს სხვადასხვა საიტის თქვენ მიერ დათვალიერების აქტივობის სანახავად, მაგალითად, რეკლამის პერსონალიზების მიზნით</translation>
 <translation id="6968288415730398122">ეკრანის დაბლოკვის მეთოდის კონფიგურაციისთვის შეიყვანეთ თქვენი პაროლი</translation>
 <translation id="6969047215179982698">მახლობლად გაზიარების გამორთვა</translation>
+<translation id="6969216690072714773">შეიყვანეთ ახალი ან განაახლეთ არსებული ინფორმაცია, რომელიც ამ მოწყობილობასთან იქნება დაკავშირებული.</translation>
 <translation id="6970480684834282392">გაშვების ტიპი</translation>
 <translation id="6970543303783413625">პაროლების იმპორტირება ვერ მოხერხდა. ერთდროულად <ph name="COUNT" /> პაროლის იმპორტირება შეგიძლიათ.</translation>
 <translation id="6970856801391541997">კონკრეტული გვერდების ბეჭდვა</translation>
@@ -6820,6 +6824,7 @@
 <translation id="7377481913241237033">კოდით დაკავშირება</translation>
 <translation id="7378611153938412599">სუსტი პაროლები ადვილი გამოსაცნობია, ამიტომ პაროლის შექმნისას ძლიერი ვარიანტები უნდა მოიფიქროთ. <ph name="BEGIN_LINK" />გაეცანით უსაფრთხოებასთან დაკავშირებულ სხვა რჩევებს.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store-ის გახსნა</translation>
+<translation id="7380272457268061606">გსურთ, გათიშოთ ადგილობრივი მონაცემების აღდგენა?</translation>
 <translation id="7380459290951585794">დარწმუნდით, რომ ტელეფონი ახლოს გაქვთ, განბლოკილია და მასზე ჩართულია Bluetooth/Wi-Fi</translation>
 <translation id="7380622428988553498">მოწყობილობის სახელი შეიცავს არასწორ სიმბოლოებს</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> განახლდა</translation>
@@ -7070,6 +7075,7 @@
 <translation id="7617263010641145920">Play Store-ის ჩართვა</translation>
 <translation id="7617648809369507487">უფრო ჩუმი შეტყობინებების გამოყენება</translation>
 <translation id="7621382409404463535">სისტემამ ვერ მოახერხა მოწყობილობის კონფიგურაციის შენახვა.</translation>
+<translation id="7621595347123595643">პაროლის ან PIN-კოდის დავიწყების შემთხვევაში, ადგილობრივი მონაცემების აღდგენას ვერ მოახერხებთ.</translation>
 <translation id="7622114377921274169">იტენება.</translation>
 <translation id="7622768823216805500">როგორც წესი, გადახდის დამმუშავებლები საიტების მიერ ინსტალირდება საყიდლებთან დაკავშირებული მიზნით, მაგალითად, უფრო მარტივი ანგარიშსწორებისთვის</translation>
 <translation id="7622903810087708234">პაროლის დეტალები</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 4dfbec1f..ec91ee6f72 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2070,7 +2070,6 @@
 <translation id="2852385257476173980">Интернетті шолу кезінде сіз кірген сайттар тізімі осы жерге шығуы мүмкін.</translation>
 <translation id="285241945869362924">Аудио мен бейне үшін субтитрлерді автоматты түрде жасайды. Аудиолар мен cубтитрлер құрылғыда қалады.</translation>
 <translation id="2856776373509145513">Жаңа контейнер жасау</translation>
-<translation id="2858138569776157458">Танымал сайт</translation>
 <translation id="2861301611394761800">Жүйе жаңартылып болды. Жүйені қайта іске қосыңыз.</translation>
 <translation id="2861941300086904918">Native Client қауіпсіздік басқарушысы</translation>
 <translation id="2862815659905780618">Linux әзірлеуші ортасын өшіру</translation>
@@ -2357,6 +2356,7 @@
 <translation id="3129173833825111527">Сол жақ шеті</translation>
 <translation id="3129215702932019810">Қолданбаны іске қосу кезінде қате шықты</translation>
 <translation id="3130528281680948470">Құрылғыңыз қалпына келтіріледі және барлық пайдаланушы аккаунттары мен жергілікті деректер жойылады. Бұл әрекетті кері қайтару мүмкін емес.</translation>
+<translation id="3130863904455712965">Тарих және тағы басқа деректер</translation>
 <translation id="313205617302240621">Құпия сөзді ұмытып қалдыңыз ба?</translation>
 <translation id="3132277757485842847">Телефоныңызбен байланыс орнату мүмкін болмады. Телефоныңыз жаныңызда, құлпы ашық және Bluetooth бен Wi-Fi қосылып тұруы керек.</translation>
 <translation id="3132896062549112541">Ереже</translation>
@@ -2370,7 +2370,6 @@
 <translation id="3143515551205905069">Синхрондаудан бас тарту</translation>
 <translation id="3143754809889689516">Басынан бастап ойнату</translation>
 <translation id="3144647712221361880">Сілтемені басқа атпен ашу</translation>
-<translation id="3144896554017119333">Кеңейтімдер және т.б.</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150693969729403281">Қауіпсіздік шарасын қазір іске қосу</translation>
 <translation id="3150927491400159470">Жабдықты қайта жүктеу</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 0f4ae6e..829e07e 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">បញ្ជីគេហទំព័រ​ដែលអ្នកចូលមើល​អាចបង្ហាញនៅទីនេះ នៅពេលដែលអ្នក​រុករកលើ​អ៊ីនធឺណិត</translation>
 <translation id="285241945869362924">បង្កើត​អក្សររត់សម្រាប់​សំឡេង និង​វីដេអូ​ដោយស្វ័យប្រវត្តិ។ សំឡេង និង​អក្សររត់​នឹងមិនចេញពី​ឧបករណ៍​របស់អ្នកទេ។</translation>
 <translation id="2856776373509145513">បង្កើតទម្រង់ផ្ទុកថ្មី</translation>
-<translation id="2858138569776157458">គេហទំព័រ​ពេញនិយម</translation>
 <translation id="2861301611394761800">ការធ្វើបច្ចុប្បន្នភាពប្រព័ន្ធបានបញ្ចប់។ សូមចាប់ផ្តើមប្រព័ន្ធឡើងវិញ។</translation>
 <translation id="2861941300086904918">កម្មវិធីគ្រប់គ្រងសុវត្ថិភាពអតិថិជនដើម</translation>
 <translation id="2862815659905780618">លុប​មជ្ឈដ្ឋាន​អភិវឌ្ឍ Linux</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">ចន្លោះគែមខាងឆ្វេង</translation>
 <translation id="3129215702932019810">មានបញ្ហា​ក្នុងការចាប់ផ្ដើមកម្មវិធី</translation>
 <translation id="3130528281680948470">ឧបករណ៍របស់អ្នកនឹងត្រូវបានកំណត់ឡើងវិញ ហើយគណនីអ្នកប្រើ និងទិន្នន័យមូលដ្ឋានទាំងអស់នឹងត្រូវបានយកចេញ។ វាមិនអាចបកក្រោយបានវិញទេ។</translation>
+<translation id="3130863904455712965">ប្រវត្តិ និង​អ្វីៗ​ជាច្រើនទៀត</translation>
 <translation id="313205617302240621">អ្នកបានភ្លេចពាក្យសម្ងាត់មែនឬទេ?</translation>
 <translation id="3132277757485842847">យើងមិនអាច​រក្សាការតភ្ជាប់​ជាមួយទូរសព្ទ​របស់អ្នកបានទេ។ សូមប្រាកដ​ថា ទូរសព្ទរបស់អ្នក​នៅជិត បានដោះសោ និងបានបើក​ប៊្លូធូស និង Wi-Fi។</translation>
 <translation id="3132896062549112541">វិធាន</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">បោះបង់​ការ​ធ្វើ​សម​កាល​កម្ម</translation>
 <translation id="3143754809889689516">ចាក់​ពីដំបូង</translation>
 <translation id="3144647712221361880">បើកដំណជា</translation>
-<translation id="3144896554017119333">កម្មវិធីបន្ថែម និងអ្វីៗជាច្រើនទៀត</translation>
 <translation id="3149510190863420837">កម្មវិធី Chrome</translation>
 <translation id="3150693969729403281">ដំណើរការ​ការពិនិត្យ​សុវត្ថិភាព​ឥឡូវនេះ</translation>
 <translation id="3150927491400159470">Hard Reload</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 2be58b4..f7ad39d5 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2083,7 +2083,6 @@
 <translation id="2852385257476173980">ನೀವು ವೆಬ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡುತ್ತಿದ್ದಂತೆ ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್‌ಗಳ ಪಟ್ಟಿ ಇಲ್ಲಿ ಗೋಚರಿಸಬಹುದು</translation>
 <translation id="285241945869362924">ಆಡಿಯೋ ಮತ್ತು ವೀಡಿಯೊಗಾಗಿ ಶೀರ್ಷಿಕೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸುತ್ತದೆ. ಆಡಿಯೋ ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳು ಯಾವಾಗಲೂ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿಯೇ ಉಳಿಯುತ್ತವೆ.</translation>
 <translation id="2856776373509145513">ಹೊಸ ಕಂಟೇನರ್ ರಚಿಸಿ</translation>
-<translation id="2858138569776157458">ಟಾಪ್ ಸೈಟ್</translation>
 <translation id="2861301611394761800">ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌‌ ಪೂರ್ಣಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು ಸಿಸ್ಟಂ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="2861941300086904918">ಮೂಲ ಕ್ಲೈಂಟ್ ಭದ್ರತೆ ನಿರ್ವಾಹಕ</translation>
 <translation id="2862815659905780618">Linux ಡೆವಲಪ್‌ಮೆಂಟ್ ಎನ್ವಿರಾನ್‌ಮೆಂಟ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
@@ -2370,6 +2369,7 @@
 <translation id="3129173833825111527">ಎಡ ಅಂಚು</translation>
 <translation id="3129215702932019810">ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭಿಸುವಾಗ ದೋಷ ಸಂಭವಿಸಿದೆ</translation>
 <translation id="3130528281680948470">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ಬಳಕೆದಾರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇದನ್ನು ರದ್ದುಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
+<translation id="3130863904455712965">ಇತಿಹಾಸ ಮತ್ತು ಇನ್ನಷ್ಟು</translation>
 <translation id="313205617302240621">ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ?</translation>
 <translation id="3132277757485842847">ನಿಮ್ಮ ಫೋನ್‌ನೊಂದಿಗೆ ಕನೆಕ್ಷನ್ ಕಾಯ್ದುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಫೋನ್ ಸಮೀಪದಲ್ಲಿದೆ, ಅನ್‌ಲಾಕ್ ಆಗಿದೆ ಮತ್ತು ಅದರಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಹಾಗೂ ವೈ-ಫೈ ಆನ್ ಆಗಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation>
 <translation id="3132896062549112541">ನಿಯಮ</translation>
@@ -2383,7 +2383,6 @@
 <translation id="3143515551205905069">ಸಿಂಕ್ ಮಾಡುವಿಕೆಯನ್ನು ರದ್ದುಪಡಿಸಿ</translation>
 <translation id="3143754809889689516">ಆರಂಭದಿಂದ ಪ್ಲೇ ಮಾಡಿ</translation>
 <translation id="3144647712221361880">ಲಿಂಕ್ ಅನ್ನು ಹೀಗೆ ತೆರೆಯಿರಿ</translation>
-<translation id="3144896554017119333">ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಇತ್ಯಾದಿ</translation>
 <translation id="3149510190863420837">Chrome ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
 <translation id="3150693969729403281">ಈಗ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆಯನ್ನು ರನ್ ಮಾಡಿ</translation>
 <translation id="3150927491400159470">ಹಾರ್ಡ್ ಮರುಲೋಡ್</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 35c1af13..e7b43c5 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">웹을 탐색하면 여기에 방문한 사이트 목록이 표시될 수 있습니다.</translation>
 <translation id="285241945869362924">오디오 및 동영상 자막을 자동으로 생성합니다. 오디오와 자막은 기기 외부로 유출되지 않습니다.</translation>
 <translation id="2856776373509145513">새 컨테이너 만들기</translation>
-<translation id="2858138569776157458">인기 사이트</translation>
 <translation id="2861301611394761800">시스템 업데이트가 완료되었습니다. 시스템을 다시 시작하세요.</translation>
 <translation id="2861941300086904918">네이티브 클라이언트 보안 관리자</translation>
 <translation id="2862815659905780618">Linux 개발 환경 삭제</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">왼쪽 여백</translation>
 <translation id="3129215702932019810">애플리케이션 실행 오류</translation>
 <translation id="3130528281680948470">기기가 초기화되고 사용자 계정과 로컬 데이터가 모두 삭제됩니다. 이 작업은 취소할 수 없습니다.</translation>
+<translation id="3130863904455712965">방문 기록 및 기타 정보</translation>
 <translation id="313205617302240621">비밀번호 찾기</translation>
 <translation id="3132277757485842847">휴대전화와 연결을 유지할 수 없습니다. 휴대전화가 근처에 있고, 잠금이 해제되어 있으며, 블루투스와 Wi-Fi가 켜져 있는지 확인하세요.</translation>
 <translation id="3132896062549112541">규칙</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">동기화 취소</translation>
 <translation id="3143754809889689516">처음부터 재생</translation>
 <translation id="3144647712221361880">다음으로 링크 열기</translation>
-<translation id="3144896554017119333">확장 프로그램 등</translation>
 <translation id="3149510190863420837">Chrome 앱</translation>
 <translation id="3150693969729403281">지금 안전 확인 실행</translation>
 <translation id="3150927491400159470">강력 새로고침</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index d2856f1f..d449b47 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -623,6 +623,7 @@
 <translation id="1573117025466282241">Телефон менен QR кодун скандоо</translation>
 <translation id="1575741822946219011">Тилдер жана киргизүүлөр</translation>
 <translation id="1576594961618857597">Демейки ак аватар</translation>
+<translation id="1576729678809834061">Бул табылган нерсе жөнүндө кабарлоо</translation>
 <translation id="1578558981922970608">Мажбурлап жабуу</translation>
 <translation id="1580772913177567930">Администраторуңуз менен байланышыңыз</translation>
 <translation id="1581962803218266616">Тапкычта көрсөтүү</translation>
@@ -1023,6 +1024,7 @@
 <translation id="1909880997794698664">Бул тузмөктү чын эле биротоло киоск режиминде калтырасызбы?</translation>
 <translation id="1910721550319506122">Кош келиңиз!</translation>
 <translation id="1910736334623230603">Бир нече сүрөт издөөгө болбойт. Бир гана сүрөт кошуңуз.</translation>
+<translation id="1910908536872421421">Chrome for Testing <ph name="BROWSER_VERSION" /> версиясы автоматташтырылган сыноо үчүн гана жеткиликтүү. Кадимки серептөө үчүн автоматтык түрдө жаңыртылган Chrome'дун стандарттуу версиясын колдонуңуз.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Жогоруда кадоо</translation>
 <translation id="1916502483199172559">Демейки кызыл аватар</translation>
@@ -2088,7 +2090,6 @@
 <translation id="2852385257476173980">Интернетти карап чыккан сайын сиз баш баккан сайттардын тизмеси ушул жерде көрсөтүлүшү мүмкүн</translation>
 <translation id="285241945869362924">Аудио жана видеолор үчүн коштомо жазууларды автоматтык түрдө түзөт. Аудио менен коштомо жазуулар түзмөгүңүздө гана сакталат.</translation>
 <translation id="2856776373509145513">Жаңы контейнер түзүү</translation>
-<translation id="2858138569776157458">Мыкты сайттар</translation>
 <translation id="2861301611394761800">Тутум жаңырды. Тутумду өчүрүп күйгүзүңүз.</translation>
 <translation id="2861941300086904918">Түпнуска Кардардын коопсуздугун башкаргыч</translation>
 <translation id="2862815659905780618">Linux'ту өнүктүрүү чөйрөсүн өчүрүү</translation>
@@ -2352,6 +2353,7 @@
 <translation id="3105796011181310544">Google кайтарылсынбы?</translation>
 <translation id="310671807099593501">Сайт bluetooth'ду колдонууда</translation>
 <translation id="3108931485517391283">Алынбай жатат</translation>
+<translation id="3108957152224931571">Бөлүп көрсөтүү түсү</translation>
 <translation id="3109206895301430738">Сакталган өтмөк топтору</translation>
 <translation id="3109724472072898302">Жыйналды</translation>
 <translation id="3112292765614504292">Колдонмонун көлөмү: <ph name="APP_SIZE" /></translation>
@@ -2374,6 +2376,7 @@
 <translation id="3129173833825111527">Сол жак чети</translation>
 <translation id="3129215702932019810">Колдонмону иштетүү катасы</translation>
 <translation id="3130528281680948470">Түзмөгүңүз баштапкы абалга келтирилип, колдонуучу аккаунттарынын жана жергиликтүү дайындандын баары өчөт. Бул аракетти артка кайтаруу мүмкүн эмес.</translation>
+<translation id="3130863904455712965">Таржымал жана башкалар</translation>
 <translation id="313205617302240621">Сырсөздү унутуп калдыңызбы?</translation>
 <translation id="3132277757485842847">Телефонуңузга туташпай калды. Телефонуңуз жакын жерде турганын жана анын кулпусу ачык болуп, Bluetooth менен Wi-Fi күйгүзүлгөнүн текшериңиз.</translation>
 <translation id="3132896062549112541">Эреже</translation>
@@ -2387,7 +2390,6 @@
 <translation id="3143515551205905069">Шайкештештирүүнү жокко чыгаруу</translation>
 <translation id="3143754809889689516">Башынан баштап ойнотуу</translation>
 <translation id="3144647712221361880">Шилтемени төмөнкү катары ачуу</translation>
-<translation id="3144896554017119333">Кеңейтүүлөр жана башкалар</translation>
 <translation id="3149510190863420837">Chrome колдонмолору</translation>
 <translation id="3150693969729403281">Коопсуздукту азыр текшерүү</translation>
 <translation id="3150927491400159470">Татаал кайра жүктөө</translation>
@@ -3066,6 +3068,7 @@
 <translation id="3798449238516105146">Версия</translation>
 <translation id="3798632811625902122"><ph name="DEVICE" /> Bluetooth түзмөгү жупташуу үчүн уруксат сурап жатат.</translation>
 <translation id="3799128412641261490">Switch Access жөндөөлөрү</translation>
+<translation id="3800030395703848668">Тизменин көрүнүшүнүн параметрлери</translation>
 <translation id="3800806661949714323">Баарын көрсөтүү (сунушталат)</translation>
 <translation id="3800828618615365228">Google Chrome жана ChromeOS'тун кошумча шарттары</translation>
 <translation id="3802486193901166966">Бул кеңейтүү атайын уруксаттарды талап кылбайт жана кошумча сайтка кирүүнүн кереги жок</translation>
@@ -3260,6 +3263,7 @@
 <translation id="3965811923470826124">Төмөнкү менен:</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> профилинен чыгуу</translation>
 <translation id="3966072572894326936">Башка куржун тандаңыз…</translation>
+<translation id="3966094581547899417">Хотспот жөнүндө маалымат</translation>
 <translation id="3967822245660637423">Жүктөп алуу аяктады</translation>
 <translation id="3967841595862839006">Тил жана баскычтопту тандаңыз</translation>
 <translation id="3968739731834770921">Кана</translation>
@@ -3311,6 +3315,7 @@
 <translation id="4014432863917027322">"<ph name="EXTENSION_NAME" />" оңдойсузбу?</translation>
 <translation id="4015163439792426608">Кеңейтүүлөрүңүз барбы? <ph name="BEGIN_LINK" />Кеңейтүүлөрдү башкарыңыз<ph name="END_LINK" />.</translation>
 <translation id="4017225831995090447">Бул шилтеме үчүн QR кодун түзүү</translation>
+<translation id="4019983356493507433">Кыстармалардын тизмесин түзөтүү</translation>
 <translation id="4020327272915390518">Параметрлер менюсу</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3522,6 +3527,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Бул кеңейтүүнү колдонууга тыюу салынган}other{Айрым кеңейтүүлөрдү колдонууга тыюу салынган}}</translation>
 <translation id="4231095370974836764">Google Play'ден колдонмолор менен оюндарды <ph name="DEVICE_TYPE" /> түзмөгүңүзгө орнотуп аласыз. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Оюнду башкаруу элементтерин жабуу</translation>
+<translation id="4231542173270219144">Сыноолор күйүк болгондо, спам жана шылуундук жеке абал токендеринин негизинде азаят. Алар сайттарга шылуундукка каршы күрөшүү жана ботторду адамдардан айырмалоого жардам берет.</translation>
 <translation id="4232375817808480934">Kerberos’ту конфигурациялоо</translation>
 <translation id="4235965441080806197">Аккаунтка кирүүнү жокко чыгаруу</translation>
 <translation id="4236163961381003811">Дагы башка кеңейтүүлөрдү карап көрүңүз</translation>
@@ -3717,6 +3723,7 @@
 <translation id="4412698727486357573">Жардам борбору</translation>
 <translation id="44141919652824029">"<ph name="APP_NAME" />" колдонмосуна туташкан USB түзмөктөрүңүздүн тизмесин алууга уруксат берилсинби?</translation>
 <translation id="4414232939543644979">Жаңы &amp;Жашыруун терезе</translation>
+<translation id="4414648713167199100">Chromebook’тагы мобилдик трафик колдонулуп, байланыш оператору кошумча акы алышы мүмкүн. Батарея көбүрөөк колдонулушу мүмкүн. <ph name="BEGIN_LINK_LEARN_MORE" />Кеңири маалымат<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284"><ph name="DEVICE_TYPE" /> түзмөгүңүздү колдоно берсеңиз болот.</translation>
 <translation id="4415245286584082850">Түзмөктөр табылган жок. Жардам борборунун макаласын жаңы өтмөктө ачуу.</translation>
 <translation id="4415276339145661267">Google аккаунтунун жөндөөлөрүнө өтүү</translation>
@@ -4227,6 +4234,7 @@
 <translation id="4885692421645694729">Бул кеңейтүүнүн сайтка кирүүгө кошумча мүмкүнчүлүгү жок</translation>
 <translation id="4887424188275796356">Тутумга көз чаптыргыч менен ачуу</translation>
 <translation id="488785315393301722">Чоо-жайын көрсөтүү</translation>
+<translation id="488862352499217187">Жаңы папка түзүү</translation>
 <translation id="4890773143211625964">Принтердин өркүндөтүлгөн параметрлери көрүнсүн</translation>
 <translation id="4891089016822695758">Бета форуму</translation>
 <translation id="4892229439761351791">Сайт Bluetooth'ду колдоно алат</translation>
@@ -4348,6 +4356,7 @@
 <translation id="5009463889040999939">Профилдин аталышы өзгөрүүдө. Бир нече мүнөткө созулушу мүмкүн.</translation>
 <translation id="5010043101506446253">Тастыктама борбору</translation>
 <translation id="501057610015570208">"Киоск_гана" деген манифести бар колдонмо ChromeOS Flex киоск режиминде орнотулушу керек</translation>
+<translation id="5010886807652684893">Визуалдык көрүнүш</translation>
 <translation id="5015344424288992913">Прокси чечилүүдө…</translation>
 <translation id="5016491575926936899">Компьютериңизден SMS жөнөтүп, Интернет байланышыңызды бөлүшүп, маек билдирмелерине жооп берип, <ph name="DEVICE_TYPE" /> түзмөгүңүздүн кулпусун телефонуңуз менен ача аласыз.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Барактарды текст курсору менен көрө аласыз. Өчүрүү үчүн Ctrl+Search+7 баскычтарын басыңыз.</translation>
@@ -4590,6 +4599,7 @@
 <translation id="5260334392110301220">Акылдуу тырмакчалар</translation>
 <translation id="5260508466980570042">Кечиресиз, электрондук почта дарегиңиз же сырсөзүңүз тастыкталган жок. Дагы аракет кылыңыз.</translation>
 <translation id="5260958083445173099">Мүмкүн болгон учурда вебсайттар контентти ошол тилдерде көрсөтүшөт</translation>
+<translation id="5261619498868361045">Контейнердин аталышы бош болбошу керек.</translation>
 <translation id="5261683757250193089">Желе дүкөнүнөн ачуу</translation>
 <translation id="5262178194499261222">Сырсөздү алып салуу</translation>
 <translation id="5262784498883614021">Тармакка автоматтык түрдө туташуу</translation>
@@ -4996,6 +5006,7 @@
 <translation id="562935524653278697">Администраторуңуз кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөрүңүздү шайкештирүүнү өчүрүп койгон.</translation>
 <translation id="5631017369956619646">CPU колдонулушу</translation>
 <translation id="5632059346822207074">Уруксат суралды. Жооп берүү үчүн Ctrl + Алдыга баскычтарын басыңыз</translation>
+<translation id="5632221585574759616">Кеңейтүү уруксаттары жөнүндө кененирээк маалымат алыңыз</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> аккаунтуңуз негизги аккаунт болбой калды. Бул аккаунт <ph name="DOMAIN" /> тарабынан башкарылгандыктан, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр бул түзмөктөн тазаланат.</translation>
 <translation id="5632592977009207922">Жүктөлүп алынууда, <ph name="PERCENT_REMAINING" />% калды</translation>
 <translation id="5633149627228920745">Тутумга коюлган талаптар жөнүндө кеңири маалымат</translation>
@@ -5616,6 +5627,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> оффлайнда. Интернетке туташып, кайталап көрүңүз.</translation>
 <translation id="6220413761270491930">Кеңейтүүнү жүктөөдөгү ката</translation>
 <translation id="6224481128663248237">Ийгиликтүү форматталды!</translation>
+<translation id="622474711739321877">Мындай контейнер бар.</translation>
 <translation id="622537739776246443">Профиль өчүрүлөт</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> телефону аркылуу Интернетке туташууга болот</translation>
 <translation id="6226777517901268232">Жеке ачкыч файлы (милдеттүү эмес)</translation>
@@ -6092,6 +6104,7 @@
 <translation id="6674571176963658787">Шайкештирүүнү баштоо үчүн сыр сүйлөмүңүздү киргизиңиз</translation>
 <translation id="6675665718701918026">Көрсөтүүчү түзмөк туташтырылды</translation>
 <translation id="6676212663108450937">Үнүңүздү тааныганды үйрөтүп жатканда, гарнитураны колдонсоңуз туура болот</translation>
+<translation id="6677942524382973058">Жеке абал токендери Интернетте купуялыгыңызды жакшыртат жана алар менен өздүгүңүз тууралуу маалыматты аныктоого болбойт.</translation>
 <translation id="6678717876183468697">Сурам URL'и</translation>
 <translation id="6680442031740878064">Бош орун: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Баалоо</translation>
@@ -6414,6 +6427,7 @@
 <translation id="696780070563539690">Сайттар жарнамаларды жекелештирүү үчүн башка сайттардагы серептөө аракеттериңизди көрүү үчүн cookie файлдарын колдоно алышпайт</translation>
 <translation id="6968288415730398122">Экран кулпусун конфигурациялоо үчүн сырсөзүңүздү киргизиңиз</translation>
 <translation id="6969047215179982698">Nearby Share функциясын өчүрүү</translation>
+<translation id="6969216690072714773">Бул түзмөккө байланыштыруу үчүн жаңы маалымат киргизип же учурдагысын жаңыртыңыз.</translation>
 <translation id="6970480684834282392">Баштоо түрү</translation>
 <translation id="6970543303783413625">Сырсөздөр өткөрүлүп алынган жок. Бир убакта <ph name="COUNT" /> сырсөзгө чейин өткөрүп ала аласыз.</translation>
 <translation id="6970856801391541997">Белгилүү беттерди басып чыгаруу</translation>
@@ -6820,6 +6834,7 @@
 <translation id="7377481913241237033">Код менен туташуу</translation>
 <translation id="7378611153938412599">Начар сырсөздөрдү билип алуу оңой. Татаал сырсөздөрдү түзүңүз. <ph name="BEGIN_LINK" />Дагы башка коопсуздук кеңештерин алуу.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Интернет дүкөнүн ачуу</translation>
+<translation id="7380272457268061606">Түзмөктөгү маалыматты калыбына келтирүү өчүрүлсүнбү?</translation>
 <translation id="7380459290951585794">Телефонуңуз жакын жерде турганын жана анын кулпусу ачык болуп, Bluetooth менен Wi-Fi күйгүзүлгөнүн текшериңиз</translation>
 <translation id="7380622428988553498">Түзмөктүн аталышында жараксыз символдор бар</translation>
 <translation id="7380768571499464492">Качан жаңырды: <ph name="PRINTER_NAME" /></translation>
@@ -6919,6 +6934,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# өтмөк ачык, өтмөк тасмасын өчүрүү же күйгүзүү үчүн басыңыз}other{# өтмөк ачык, өтмөк тасмасын өчүрүү же күйгүзүү үчүн басыңыз}}</translation>
 <translation id="7465635034594602553">Бир жерден ката кетти. <ph name="APP_NAME" /> колдонмосун кайра ачуу үчүн бир нече мүнөт күтө туруңуз.</translation>
 <translation id="7465778193084373987">Netscape тастыктамасын жоюу URL дареги</translation>
+<translation id="7466431077154602932">Чакан көрүнүш</translation>
 <translation id="746861123368584540">Кеңейтүү жүктөлдү</translation>
 <translation id="7470424110735398630">Алмашуу буфериңизди көрө алат</translation>
 <translation id="747114903913869239">Ката: Кеңейтүүнү коддон чыгара албайт</translation>
@@ -7069,6 +7085,7 @@
 <translation id="7617263010641145920">Play Store'ду күйгүзүү</translation>
 <translation id="7617648809369507487">Билдирүүлөрдүн үнүн басыңыз</translation>
 <translation id="7621382409404463535">Тутум түзмөктүн конфигурациясын сактай албай койду.</translation>
+<translation id="7621595347123595643">Сырсөзүңүздү же PIN кодуңузду унутуп калсаңыз, түзмөктөгү маалыматты калыбына келтире албай каласыз.</translation>
 <translation id="7622114377921274169">Кубатталууда.</translation>
 <translation id="7622768823216805500">Сайттар адатта төлөмдү жеңилдетүү сыяктуу сатып алуу функциялары үчүн төлөм иштеткичтерин орнотот</translation>
 <translation id="7622903810087708234">Сырсөздүн чоо-жайы</translation>
@@ -7836,6 +7853,7 @@
 <translation id="8288539437195337464">Түзмөгүңүздү жаңыртып, кайра аракет кылыңыз</translation>
 <translation id="8289128870594824098">Дисктин өлчөмү</translation>
 <translation id="8289509909262565712"><ph name="DEVICE_OS" /> түзмөгүнө кош келиңиз</translation>
+<translation id="8291415872436043161">Chrome'ду жүктөп алуу</translation>
 <translation id="8293206222192510085">Кыстарма кошуу</translation>
 <translation id="8294431847097064396">Булак</translation>
 <translation id="8298429963694909221">Эми телефонуңуздагы билдирмелерди <ph name="DEVICE_TYPE" /> түзмөгүңүзгө алсаңыз болот. <ph name="DEVICE_TYPE" /> түзмөгүңүздө билдирмелерди жапсаңыз, алар телефонуңузда да жабылат. Телефонуңуз жакын жерде турганын жана Bluetooth менен Wi-Fi күйгүзүлгөнүн текшериңиз.</translation>
@@ -8139,6 +8157,7 @@
 <translation id="8602674530529411098">Колдонмолор (Бета)</translation>
 <translation id="8602851771975208551">Chrome'дун ишин өзгөртө турган колдонмону компьютериңиздеги башка программа кошуп койду.</translation>
 <translation id="8605428685123651449">SQLite эстутуму</translation>
+<translation id="8607326572516521315">Спам жана шылуундук жеке абал токендеринин негизинде азаят. Алар сайттарга шылуундукка каршы күрөшүү жана ботторду адамдардан айырмалоого жардам берет.</translation>
 <translation id="8608618451198398104">Kerberos билетин кошуу</translation>
 <translation id="8609465669617005112">Өйдө жылуу</translation>
 <translation id="8610103157987623234">Туура эмес формат, кайталап көрүңүз</translation>
@@ -8463,6 +8482,7 @@
 <translation id="8890170499370378450">Мобилдик трафик сарпталышы мүмкүн</translation>
 <translation id="8890516388109605451">Булактар</translation>
 <translation id="8890529496706615641">Профилдин аталышы өзгөргөн жок. Кайталап көрүңүз же техникалык колдоо көрүү үчүн байланыш операторуна кайрылыңыз.</translation>
+<translation id="8891996167592415151">Сайт менен иштөөңүз, мисалы, аккаунтуңузга ар дайым кирүү сыяктуу аракетиңиздин негизинде ал сайт серепчиңизге жеке абал токенин бере алат. Кийинчерээк, баш баккан сайттарыңыз жеке абал токенин текшерип, аны жарактуу деп тапса, сизди көбүнчө бот катары эмес, адам катары кабыл алат.</translation>
 <translation id="8892168913673237979">Баары коюлду!</translation>
 <translation id="8893801527741465188">Чыгарып салуу аяктады</translation>
 <translation id="8893928184421379330">Кечиресиз, <ph name="DEVICE_LABEL" /> түзмөк таанылбай жатат.</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index c69f62a..4559e9c 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">ລາຍຊື່ຂອງເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງອາດປາກົດຢູ່ບ່ອນນີ້ໃນເວລາທີ່ທ່ານທ່ອງເວັບ</translation>
 <translation id="285241945869362924">ສ້າງຄຳບັນຍາຍໂດຍອັດຕະໂນມັດສຳລັບສຽງ ແລະ ວິດີໂອ. ສຽງ ແລະ ຄຳບັນຍາຍຈະບໍ່ອອກຈາກອຸປະກອນຂອງທ່ານ.</translation>
 <translation id="2856776373509145513">ສ້າງກ່ອງບັນຈຸໃໝ່</translation>
-<translation id="2858138569776157458">ເວັບໄຊຍອດນິຍົມ</translation>
 <translation id="2861301611394761800">ອັບເດດລະບົບສໍາເລັດ. ກະລຸນາປິດເປີດລະບົບຄືນໃໝ່.</translation>
 <translation id="2861941300086904918">ຕົວຈັດການຄວາມປອດໄພລູກຂ່າຍເດີມ</translation>
 <translation id="2862815659905780618">ລຶບສະພາບແວດລ້ອມການພັດທະນາ Linux ອອກ</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">ຂອບ​ເບື້ອງຊ້າຍ</translation>
 <translation id="3129215702932019810">ເກີດຜິດພາດໃນການເປີດນຳໃຊ້ແອັບພລິເຄຊັນ</translation>
 <translation id="3130528281680948470">ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ຄືນ ແລະ​ບັນ​ຊີ​ຜູ້​ໃຊ້ ແລະ​ຂໍ້​ມູນ​ທ້ອງ​ຖິ່ນ​ທັງ​ໝົດ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ. ອັນ​ນີ້​ບໍ່​ສາ​ມາດ​ເຮັດກັບ​ຄືນ​​ໄດ້.</translation>
+<translation id="3130863904455712965">ປະຫວັດ ແລະ ອື່ນໆ</translation>
 <translation id="313205617302240621">ລືມ​ລະ​ຫັດ​ຜ່ານ​ບໍ?</translation>
 <translation id="3132277757485842847">ພວກເຮົາບໍ່ສາມາດຮັກສາການເຊື່ອມຕໍ່ກັບໂທລະສັບຂອງທ່ານໄດ້. ກວດໃຫ້ແນ່ໃຈວ່າໂທລະສັບຂອງທ່ານຢູ່ໃກ້, ປົດລັອກ ແລະ ເປີດ Bluetooth ແລະ Wi-Fi ແລ້ວ.</translation>
 <translation id="3132896062549112541">ກົດ​ລະ​ບຽບ</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">ຍົກເລີກການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="3143754809889689516">ຫຼິ້ນແຕ່ເລີ່ມຕົ້ນ</translation>
 <translation id="3144647712221361880">ເປີດ​ລິ້ງ​ເປັນ</translation>
-<translation id="3144896554017119333">ສ່ວນຂະຫຍາຍ ແລະ ອື່ນໆ</translation>
 <translation id="3149510190863420837">ແອັບ Chrome</translation>
 <translation id="3150693969729403281">ເອີ້ນໃຊ້ການກວດຄວາມປອດໄພຕອນນີ້ເລີຍ</translation>
 <translation id="3150927491400159470">ການໂຫຼດຄືນໃໝ່ຍາກ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 6ea2e66..097a9359 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -626,6 +626,7 @@
 <translation id="1573117025466282241">Naudoti telefoną su QR kodu</translation>
 <translation id="1575741822946219011">Kalbos ir įvestys</translation>
 <translation id="1576594961618857597">Numatytasis baltas pseudoportretas</translation>
+<translation id="1576729678809834061">Pranešti apie šį paieškos rezultatą</translation>
 <translation id="1578558981922970608">Priverstinai uždaryti</translation>
 <translation id="1580772913177567930">Susisiekite su administratoriumi</translation>
 <translation id="1581962803218266616">Rodyti ieškojimo priemonėje</translation>
@@ -1026,6 +1027,7 @@
 <translation id="1909880997794698664">Ar tikrai norite šį įrenginį visam laikui nustatyti veikti viešojo terminalo režimu?</translation>
 <translation id="1910721550319506122">Sveiki!</translation>
 <translation id="1910736334623230603">Negalima ieškoti kelių vaizdų. Vienu metu pridėkite vieną vaizdą.</translation>
+<translation id="1910908536872421421"><ph name="BROWSER_VERSION" /> versijos bandomoji „Chrome“ skirta tik automatiniam bandymui vykdyti. Kad galėtumėte įprastai naršyti, naudokite standartinę „Chrome“ versiją, kuri atnaujinama automatiškai.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Baigti</translation>
 <translation id="1916502483199172559">Numatytasis raudonas pseudoportretas</translation>
@@ -2091,7 +2093,6 @@
 <translation id="2852385257476173980">Jums naršant žiniatinklyje gali būti rodomas lankomų svetainių sąrašas</translation>
 <translation id="285241945869362924">Automatiškai kuriami garso ir vaizdo įrašų subtitrai. Garso įrašai ir subtitrai visada lieka įrenginyje.</translation>
 <translation id="2856776373509145513">Naujo sudėtinio failo kūrimas</translation>
-<translation id="2858138569776157458">Popul. svet.</translation>
 <translation id="2861301611394761800">Sistema atnaujinta. Paleiskite ją iš naujo.</translation>
 <translation id="2861941300086904918">„Native Client“ saugos valdytojas</translation>
 <translation id="2862815659905780618">Pašalinti „Linux“ kūrimo aplinką</translation>
@@ -2378,6 +2379,7 @@
 <translation id="3129173833825111527">Kairioji paraštė</translation>
 <translation id="3129215702932019810">Pristatant programą įvyko klaida</translation>
 <translation id="3130528281680948470">Įrenginys bus nustatytas iš naujo ir visos naudotojų paskyros bei vietiniai duomenys bus pašalinti. Šio veiksmo anuliuoti negalėsite.</translation>
+<translation id="3130863904455712965">Istorija ir daugiau</translation>
 <translation id="313205617302240621">Pamiršote slaptažodį?</translation>
 <translation id="3132277757485842847">Nepavyko išlaikyti ryšio su jūsų telefonu. Įsitikinkite, kad telefonas netoliese, atrakintas ir jame įjungtas „Bluetooth“ bei „Wi-Fi“ ryšys.</translation>
 <translation id="3132896062549112541">Taisyklė</translation>
@@ -2391,7 +2393,6 @@
 <translation id="3143515551205905069">Atšaukti sinchronizavimą</translation>
 <translation id="3143754809889689516">Paleisti nuo pradžios</translation>
 <translation id="3144647712221361880">Atidaryti nuorodą kaip</translation>
-<translation id="3144896554017119333">Plėtiniai ir kt.</translation>
 <translation id="3149510190863420837">„Chrome“ programos</translation>
 <translation id="3150693969729403281">Dabar vykdyti saugos patikrą</translation>
 <translation id="3150927491400159470">Priverstinis įkėlimas iš naujo</translation>
@@ -3070,6 +3071,7 @@
 <translation id="3798449238516105146">Versija</translation>
 <translation id="3798632811625902122">„Bluetooth“ įrenginiui <ph name="DEVICE" /> reikalingas susiejimo leidimas.</translation>
 <translation id="3799128412641261490">Prieigos jungikliu nustatymai</translation>
+<translation id="3800030395703848668">Žr. sąrašo parinktis</translation>
 <translation id="3800806661949714323">Rodyti viską (rekomenduojama)</translation>
 <translation id="3800828618615365228">„Google Chrome“ ir „Chrome“ OS papildomos sąlygos</translation>
 <translation id="3802486193901166966">Šiam plėtiniui nereikia specialių leidimų ir jam nesuteikta papildoma svetainės prieiga</translation>
@@ -3264,6 +3266,7 @@
 <translation id="3965811923470826124">Naudojant</translation>
 <translation id="3965965397408324205">Išeiti iš „<ph name="PROFILE_NAME" />“</translation>
 <translation id="3966072572894326936">Pasirinkti kitą aplanką...</translation>
+<translation id="3966094581547899417">Išsami viešosios interneto prieigos taško informacija</translation>
 <translation id="3967822245660637423">Atsisiuntimas baigtas</translation>
 <translation id="3967841595862839006">Kalbos ir klaviatūros pasirinkimas</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3315,6 +3318,7 @@
 <translation id="4014432863917027322">Pataisyti „<ph name="EXTENSION_NAME" />“?</translation>
 <translation id="4015163439792426608">Turite plėtinių? <ph name="BEGIN_LINK" />Tvarkykite juos<ph name="END_LINK" /> vienoje paprastoje vietoje.</translation>
 <translation id="4017225831995090447">Sukurkite šios nuorodos QR kodą</translation>
+<translation id="4019983356493507433">Redaguoti žymių sąrašą</translation>
 <translation id="4020327272915390518">Parinkčių meniu</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3526,6 +3530,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Šis plėtinys neleidžiamas}one{Keli plėtiniai neleidžiami}few{Keli plėtiniai neleidžiami}many{Keli plėtiniai neleidžiami}other{Keli plėtiniai neleidžiami}}</translation>
 <translation id="4231095370974836764">Diekite programas ir žaidimus iš „Google Play“ įrenginyje „<ph name="DEVICE_TYPE" />“. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Uždaryti žaidimų valdiklius</translation>
+<translation id="4231542173270219144">Naudojant šias bandomąsias versijas, siekiama sumažinti šlamšto ir apgaulių pasikliaujant privačiais prieigos raktais, kurie padeda svetainėms išvengti apgaulių bei atskirti robotus nuo žmonių.</translation>
 <translation id="4232375817808480934">Konfigūruoti „Kerberos“</translation>
 <translation id="4235965441080806197">Atšaukti prisijungimą</translation>
 <translation id="4236163961381003811">Žr. daugiau plėtinių</translation>
@@ -3721,6 +3726,7 @@
 <translation id="4412698727486357573">Pagalbos centras</translation>
 <translation id="44141919652824029">Leisti „<ph name="APP_NAME" />“ gauti prijungtų USB įrenginių sąrašą?</translation>
 <translation id="4414232939543644979">Naujas &amp;inkognito langas</translation>
+<translation id="4414648713167199100">Naudojami jūsų „Chromebook“ mobiliojo ryšio duomenys ir operatorius gali taikyti papildomus mokesčius. Gali padidėti akumuliatoriaus energijos vartojimas. <ph name="BEGIN_LINK_LEARN_MORE" />Sužinokite daugiau<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">Esate pasirengę naudoti „<ph name="DEVICE_TYPE" />“ įrenginį.</translation>
 <translation id="4415245286584082850">Įrenginių nerasta. Atidarykite pagalbos centro straipsnį naujame skirtuke.</translation>
 <translation id="4415276339145661267">„Google“ paskyros tvarkymas</translation>
@@ -4231,6 +4237,7 @@
 <translation id="4885692421645694729">Šiam plėtiniui nesuteikta papildoma svetainės prieiga</translation>
 <translation id="4887424188275796356">Atidaryti naudojat sistemos peržiūros priemonę</translation>
 <translation id="488785315393301722">Rodyti išsamią informaciją</translation>
+<translation id="488862352499217187">Kurti naują aplanką</translation>
 <translation id="4890773143211625964">Rodyti išplėstines spausdintuvo parinktis</translation>
 <translation id="4891089016822695758">Beta forumas</translation>
 <translation id="4892229439761351791">Svetainė gali naudoti „Bluetooth“</translation>
@@ -4352,6 +4359,7 @@
 <translation id="5009463889040999939">Pervardijamas profilis. Tai gali užtrukti kelias minutes.</translation>
 <translation id="5010043101506446253">Sertifikatą išdavusi institucija</translation>
 <translation id="501057610015570208">Programa su aprašo atributu „kiosk_only“ turi būti įdiegta „ChromeOS Flex“ viešojo terminalo režimu</translation>
+<translation id="5010886807652684893">Vizualinis rodinys</translation>
 <translation id="5015344424288992913">Ieškoma proxy...</translation>
 <translation id="5016491575926936899">Galite siųsti teksto pranešimą iš kompiuterio, bendrinti interneto ryšį, atsakyti į pokalbių pranešimus ir užrakinti „<ph name="DEVICE_TYPE" />“ telefonu.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Puslapius galite naršyti naudodami teksto žymeklį. Paspauskite „Ctrl“ + paieškos klavišą + 7, kad išjungtumėte.</translation>
@@ -6106,6 +6114,7 @@
 <translation id="6674571176963658787">Jei norite pradėti sinchronizuoti, įveskite slaptafrazę</translation>
 <translation id="6675665718701918026">Manipuliatorius prijungtas</translation>
 <translation id="6676212663108450937">Išbandydami balso įrašą apsvarstykite galimybę naudoti ausines</translation>
+<translation id="6677942524382973058">Privatūs prieigos raktai pagerina privatumą žiniatinklyje ir negali būti naudojami jūsų tapatybei atskleisti.</translation>
 <translation id="6678717876183468697">Užklausos URL</translation>
 <translation id="6680442031740878064">Pasiekiama: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Sparta</translation>
@@ -6935,6 +6944,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# atidarytas skirtukas, paspauskite perjungdami skirtuko juostelę}one{# atidarytas skirtukas, paspauskite perjungdami skirtuko juostelę}few{# atidaryti skirtukai, paspauskite perjungdami skirtuko juostelę}many{# atidaryto skirtuko, paspauskite perjungdami skirtuko juostelę}other{# atidarytų skirtukų, paspauskite perjungdami skirtuko juostelę}}</translation>
 <translation id="7465635034594602553">Kažkas nepavyko. Palaukite kelias minutes ir paleiskite programą „<ph name="APP_NAME" />“ dar kartą.</translation>
 <translation id="7465778193084373987">„Netscape“ sertifikato panaikinimo URL</translation>
+<translation id="7466431077154602932">Kompaktiškas rodinys</translation>
 <translation id="746861123368584540">Plėtinys įkeltas</translation>
 <translation id="7470424110735398630">Leidžiama peržiūrėti iškarpinę</translation>
 <translation id="747114903913869239">Klaida: neįmanoma iššifruoti plėtinio</translation>
@@ -7854,6 +7864,7 @@
 <translation id="8288539437195337464">Įsitikinkite, kad įrenginys atnaujintas, ir bandykite dar kartą</translation>
 <translation id="8289128870594824098">Disko dydis</translation>
 <translation id="8289509909262565712">Sveiki! Tai – „<ph name="DEVICE_OS" />“</translation>
+<translation id="8291415872436043161">Atsisiųsti „Chrome“</translation>
 <translation id="8293206222192510085">Pridėti žymę</translation>
 <translation id="8294431847097064396">Šaltinis</translation>
 <translation id="8298429963694909221">Dabar galite gauti pranešimus iš telefono „<ph name="DEVICE_TYPE" />“ įrenginyje. Jei atsisakysite pranešimų „<ph name="DEVICE_TYPE" />“, atsisakysite jų ir telefone. Įsitikinkite, kad telefonas netoliese ir jame įjungtas „Bluetooth“ bei „Wi-Fi“ ryšys.</translation>
@@ -8157,6 +8168,7 @@
 <translation id="8602674530529411098">Programos (beta versija)</translation>
 <translation id="8602851771975208551">Kita jūsų kompiuteryje esanti programa pridėjo programą, kuri gali pakeisti „Chrome“ veikimo būdą.</translation>
 <translation id="8605428685123651449">„SQLite“ atmintis</translation>
+<translation id="8607326572516521315">Šlamšto ir apgaulių siekiama sumažinti pasikliaujant privačiais prieigos raktais, kurie padeda svetainėms išvengti apgaulių bei atskirti robotus nuo žmonių.</translation>
 <translation id="8608618451198398104">Pridėti „Kerberos“ bilietą</translation>
 <translation id="8609465669617005112">Perkelti į viršų</translation>
 <translation id="8610103157987623234">Netinkamas formatas, bandykite dar kartą</translation>
@@ -8484,6 +8496,7 @@
 <translation id="8890170499370378450">Gali būti taikomi mobiliojo ryšio duomenų mokesčiai</translation>
 <translation id="8890516388109605451">Šaltiniai</translation>
 <translation id="8890529496706615641">Nepavyko pervardyti profilio. Bandykite dar kartą arba susisiekite su operatoriumi dėl techninio palaikymo paslaugų.</translation>
+<translation id="8891996167592415151">Remiantis jūsų sąveika su svetaine, pvz., reguliariais prisijungimais prie paskyros, svetainė gali išduoti privatų prieigos raktą jūsų naršyklei. Vėliau, jei kitos svetainės, kuriose lankotės, tikrins, ar nėra galiojančio privataus prieigos rakto, ir jį ras, labiau tikėtina, kad jos jus laikys žmogumi, o ne robotu.</translation>
 <translation id="8892168913673237979">Viskas nustatyta!</translation>
 <translation id="8893801527741465188">Pašalinta</translation>
 <translation id="8893928184421379330">Apgailestaujame, tačiau įrenginys <ph name="DEVICE_LABEL" /> neatpažįstamas.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 9fcff01c..57d4375 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -2077,7 +2077,6 @@
 <translation id="2852385257476173980">Kamēr pārlūkosiet tīmekli, šeit var tikt veidots jūsu apmeklēto vietņu saraksts</translation>
 <translation id="285241945869362924">Audio un video saturam tiek automātiski izveidoti subtitri. Audio ieraksti un subtitri vienmēr atrodas tikai jūsu ierīcē.</translation>
 <translation id="2856776373509145513">Jauna konteinera izveide</translation>
-<translation id="2858138569776157458">Populāras</translation>
 <translation id="2861301611394761800">Sistēmas atjaunināšana pabeigta. Restartējiet sistēmu.</translation>
 <translation id="2861941300086904918">Native Client drošības pārvaldnieks</translation>
 <translation id="2862815659905780618">Noņemt Linux izstrādes vidi</translation>
@@ -2364,6 +2363,7 @@
 <translation id="3129173833825111527">Kreisā piemale</translation>
 <translation id="3129215702932019810">Palaižot lietojumprogrammu, radās kļūda</translation>
 <translation id="3130528281680948470">Ierīce tiks atiestatīta, un visi lietotāju konti un ierīcē glabātie dati tiks noņemti. Šo darbību nevar atsaukt.</translation>
+<translation id="3130863904455712965">Vēsture un cits saturs</translation>
 <translation id="313205617302240621">Vai aizmirsāt paroli?</translation>
 <translation id="3132277757485842847">Nevarēja uzturēt savienojumu ar jūsu tālruni. Tālrunim ir jāatrodas tuvumā, tam jābūt atbloķētam, un tajā ir jābūt ieslēgtam Bluetooth un Wi-Fi savienojumam.</translation>
 <translation id="3132896062549112541">Kārtula</translation>
@@ -2377,7 +2377,6 @@
 <translation id="3143515551205905069">Atcelt sinhronizāciju</translation>
 <translation id="3143754809889689516">Atskaņot no sākuma</translation>
 <translation id="3144647712221361880">Atvērt saiti kā</translation>
-<translation id="3144896554017119333">Paplašinājumi un citi vienumi</translation>
 <translation id="3149510190863420837">Chrome lietotnes</translation>
 <translation id="3150693969729403281">Veikt drošības pārbaudi tūlīt</translation>
 <translation id="3150927491400159470">Veikt stingro atkārtoto ielādi</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 4c52ec2..9a60e44 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -1300,6 +1300,7 @@
 <translation id="2157875535253991059">Страницава е сега на цел екран.</translation>
 <translation id="2158475082070321257">Копирај го линкот до нагласената ставка</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Опсег на <ph name="SHORTCUT" /> за <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Додај Wi-Fi...</translation>
 <translation id="2162155940152307086">Синхронизацијата ќе започне откако ќе излезете од поставките за синхронизација</translation>
 <translation id="2162705204091149050">да чита податоци за прелистувачот, оперативниот систем, уредот, инсталираниот софтвер и датотеките</translation>
@@ -2091,7 +2092,6 @@
 <translation id="2852385257476173980">Список со сајтови што ги посетувате може да се појави тука како што прелистувате на интернет</translation>
 <translation id="285241945869362924">Автоматски создава титлови за аудио и видеосодржини. Аудиото и титловите никогаш не го напуштаат уредот.</translation>
 <translation id="2856776373509145513">Создајте нов контејнер</translation>
-<translation id="2858138569776157458">Популарни</translation>
 <translation id="2861301611394761800">Ажурирањето на системот заврши. Рестартирајте го системот.</translation>
 <translation id="2861941300086904918">Управник за безбедност на матичен клиент</translation>
 <translation id="2862815659905780618">Отстранете ја Linux-околината за програмирање</translation>
@@ -2378,6 +2378,7 @@
 <translation id="3129173833825111527">Лева маргина</translation>
 <translation id="3129215702932019810">Грешка при стартувањето на апликацијата</translation>
 <translation id="3130528281680948470">Уредот ќе се ресетира и сите кориснички сметки и локални податоци ќе се отстранат. Ова не може да се врати назад.</translation>
+<translation id="3130863904455712965">Историја и друго</translation>
 <translation id="313205617302240621">Ја заборавивте лозинката?</translation>
 <translation id="3132277757485842847">Не можевме да ја одржиме врската со вашиот телефон. Проверете дали телефонот е во близина, отклучен и со вклучени Bluetooth и Wi-Fi.</translation>
 <translation id="3132896062549112541">Правило</translation>
@@ -2391,7 +2392,6 @@
 <translation id="3143515551205905069">Откажи ја синхронизацијата</translation>
 <translation id="3143754809889689516">Пушти од почеток</translation>
 <translation id="3144647712221361880">Отвори ја врската како</translation>
-<translation id="3144896554017119333">Екстензии и друго</translation>
 <translation id="3149510190863420837">Апликации на Chrome</translation>
 <translation id="3150693969729403281">Изврши безбедносна проверка веднаш</translation>
 <translation id="3150927491400159470">Тешко повторно вчитување</translation>
@@ -2689,6 +2689,7 @@
 <translation id="3445047461171030979">Брзи одговори од „Помошникот на Google“</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин.</translation>
 <translation id="344537926140058498">Организацијата ја блокираше датотекава бидејќи содржи чувствителни и опасни содржини. Побарајте од сопственикот да ја поправи.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Дозволите се отстранети од <ph name="BEGIN_BOLD" />1 сајт<ph name="END_BOLD" /> што не сте го посетиле во последно време}one{Дозволите се отстранети од <ph name="BEGIN_BOLD" />{NUM_SITES} сајт<ph name="END_BOLD" /> што не сте ги посетиле во последно време}other{Дозволите се отстранети од <ph name="BEGIN_BOLD" />{NUM_SITES} сајтови<ph name="END_BOLD" /> што не сте ги посетиле во последно време}}</translation>
 <translation id="3445925074670675829">USB-Ц уред</translation>
 <translation id="3446274660183028131">Стартувајте Parallels Desktop за да инсталирате Windows.</translation>
 <translation id="344630545793878684">Читајте ги вашите податоци на голем број веб-локации</translation>
@@ -2900,6 +2901,7 @@
 <translation id="3642699533549879077">Кога некој друг гледа во вашиот екран, ќе добиете предупредување, а содржините на известувањето ќе бидат сокриени.</translation>
 <translation id="3643962751030964445"><ph name="DEVICE_MANAGER" /> управува со уредов. <ph name="DEVICE_MANAGER" /> бара нов профил за сметката <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Поместете го прстот малку за да снимите друг дел од отпечатокот.</translation>
+<translation id="3647051300407077858">Прегледајте ги дозволите за известувања</translation>
 <translation id="3647654707956482440">Не може да се користи линков. Проверете за печатни грешки или пробајте пак со друг линк.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Преземавте <ph name="ATTACHMENTS" /> од <ph name="DEVICE_NAME" />}one{Преземавте <ph name="ATTACHMENTS" /> од <ph name="DEVICE_NAME" />}other{Преземавте <ph name="ATTACHMENTS" /> од <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Откриен е <ph name="USB_DEVICE_NAME" /></translation>
@@ -3079,6 +3081,7 @@
 <translation id="380408572480438692">Со овозможување собирање податоци за учинок, му се помага на Google со време да го подобри системот. Не се испраќаат податоци додека не поднесете извештај со повратни информации (Alt-Shift-I) и не ги опфатите податоците за учинок. Во секое време може да се вратите на екранов за да оневозможите собирање податоци.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (ИД на екстензија „<ph name="EXTENSION_ID" />“) не е дозволена на екранот за најавување.</translation>
 <translation id="3807747707162121253">&amp;Откажи</translation>
+<translation id="3808202562160426447">Затемнете ги заднинските содржини</translation>
 <translation id="3808443763115411087">Развој на апликации на Android за Crostini</translation>
 <translation id="38089336910894858">Прикажувај предупредување пред напуштање со ⌘Q</translation>
 <translation id="3809272675881623365">Зајак</translation>
@@ -3670,6 +3673,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> споделува прозорец.</translation>
 <translation id="4364830672918311045">Прикажи ги известувањата</translation>
 <translation id="4366138410738374926">Печатењето започна</translation>
+<translation id="4367513928820380646">Прегледајте ги отстранетите дозволи</translation>
 <translation id="4369121877634339065">Повлечете преку која било слика за да пребарате</translation>
 <translation id="4369215744064167350">Барањето за веб-сајт е одобрено</translation>
 <translation id="4370975561335139969">Е-поштата и лозинката што ги внесовте не се совпаѓаат</translation>
@@ -4390,6 +4394,7 @@
 <translation id="5045550434625856497">Погрешна лозинка</translation>
 <translation id="504561833207953641">Се отвора во постојната сесија на прелистувачот.</translation>
 <translation id="5049614114599109018">Користи ја историјата на внесување</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Сајтов испрати многу известувања неодамна. Можете да го спречите да испраќа известувања во иднина.}one{Сајтовиве испратија многу известувања неодамна. Можете да ги спречите да испраќаат известувања во иднина.}other{Сајтовиве испратија многу известувања неодамна. Можете да ги спречите да испраќаат известувања во иднина.}}</translation>
 <translation id="5051836348807686060">Проверката на правопис не е поддржана за јазиците што ги избравте</translation>
 <translation id="5052499409147950210">Изменете го сајтот</translation>
 <translation id="505347685865235222">Неименувана група - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7288,6 +7293,7 @@
 <translation id="7775694664330414886">Картичката е преместена во неименувана група - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> ќе може да прегледува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ги затворите сите картички за сајтов</translation>
 <translation id="7776701556330691704">Не се најдени гласови</translation>
+<translation id="7777624210360383048">Кратенка <ph name="SHORTCUT" /> за <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Сите кориснички сметки и локални податоци ќе бидат отстранети.</translation>
 <translation id="7782102568078991263">Нема повеќе предлози од Google</translation>
 <translation id="7782717250816686129">Складирајте постојани податоци на екранот за најавување и вметнувајте акредитиви во сесијата.</translation>
@@ -7320,6 +7326,7 @@
 <translation id="7807711621188256451">Секогаш дозволувај <ph name="HOST" /> да пристапи до камерата</translation>
 <translation id="7810202088502699111">На оваа страница се блокирани појавни прозорци.</translation>
 <translation id="7814458197256864873">&amp;Копирај</translation>
+<translation id="7815583197273433531">Изменете ја кратенката <ph name="SHORTCUT" /> за <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Блокирано е опасно преземање</translation>
 <translation id="7817361223956157679">Тастатурата на екран сѐ уште не функционира во апликациите на Linux</translation>
 <translation id="7818135753970109980">Додадена е нова тема (<ph name="EXTENSION_NAME" />)</translation>
@@ -7394,6 +7401,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Прикажи сметка</translation>
 <translation id="7883792253546618164">Отпишете се во секое време.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Прегледајте 1 сајт што испрати многу известувања}one{Прегледајте {NUM_SITES} сајт што испратија многу известувања}other{Прегледајте {NUM_SITES} сајтови што испратија многу известувања}}</translation>
 <translation id="788453346724465748">Се вчитуваат податоци за сметката…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ставка}one{# ставка}other{# ставки}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index f51dc42..1040a5a7 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -2074,7 +2074,6 @@
 <translation id="2852385257476173980">നിങ്ങൾ വെബിൽ ബ്രൗസ് ചെയ്യുമ്പോൾ, സന്ദർശിക്കുന്ന സൈറ്റുകളുടെ ഒരു ലിസ്റ്റ് ഇവിടെ ദൃശ്യമായേക്കാം</translation>
 <translation id="285241945869362924">ഓഡിയോയ്‌ക്കും വീഡിയോയ്‌ക്കും അടിക്കുറിപ്പുകൾ സ്വയമേവ സൃഷ്ടിക്കുന്നു. ഓഡിയോയും അടിക്കുറിപ്പുകളും നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്തുപോകില്ല.</translation>
 <translation id="2856776373509145513">പുതിയ കണ്ടെയ്‌നർ സൃഷ്‌ടിക്കുക</translation>
-<translation id="2858138569776157458">മികച്ച സൈറ്റുകൾ</translation>
 <translation id="2861301611394761800">സിസ്റ്റം അപ്ഡേറ്റ് പൂര്‍ത്തിയായി. ദയവായി സിസ്റ്റം റീസ്റ്റാർട്ട് ചെയ്യുക.</translation>
 <translation id="2861941300086904918">നേറ്റിവ് ക്ലയന്‍റ് സുരക്ഷ മാനേജര്‍</translation>
 <translation id="2862815659905780618">Linux വികസന പരിസ്ഥിതി നീക്കം ചെയ്യുക</translation>
@@ -2338,6 +2337,7 @@
 <translation id="3105796011181310544">തിരികെ Google-ലേക്ക് മാറ്റണോ?</translation>
 <translation id="310671807099593501">സൈറ്റ്, bluetooth ഉപയോഗിക്കുന്നു</translation>
 <translation id="3108931485517391283">സ്വീകരിക്കാനാകുന്നില്ല</translation>
+<translation id="3108957152224931571">നിറം ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="3109206895301430738">സംരക്ഷിച്ച ടാബ് ഗ്രൂപ്പുകൾ</translation>
 <translation id="3109724472072898302">ചുരുക്കിയത്</translation>
 <translation id="3112292765614504292">ആപ്പിന്റെ വലുപ്പം: <ph name="APP_SIZE" /></translation>
@@ -2360,6 +2360,7 @@
 <translation id="3129173833825111527">ഇടത് മാര്‍‌ജിന്‍‌</translation>
 <translation id="3129215702932019810">ആപ്പ് ലോഞ്ച് ചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="3130528281680948470">നിങ്ങളുടെ ഉപകരണം പുഃസജ്ജീകരിക്കുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രാദേശിക ഡാറ്റയും നീക്കംചെയ്യും. ഇത് പഴയപടിയാക്കാനാകില്ല.</translation>
+<translation id="3130863904455712965">ചരിത്രവും മറ്റും</translation>
 <translation id="313205617302240621">പാസ്‌വേഡ് മറന്നോ?</translation>
 <translation id="3132277757485842847">നിങ്ങളുടെ ഫോണുമായുള്ള കണക്ഷൻ നിലനിർത്താൻ ഞങ്ങൾക്കാവുന്നില്ല. നിങ്ങളുടെ ഫോൺ സമീപത്തുണ്ടെന്നും അൺലോക്ക് ചെയ്തിട്ടുണ്ടെന്നും Bluetooth-ഉം വൈഫൈയും ഓണാക്കിയിട്ടുണ്ടെന്നും ഉറപ്പാക്കുക.</translation>
 <translation id="3132896062549112541">നയം</translation>
@@ -2373,7 +2374,6 @@
 <translation id="3143515551205905069">സമന്വയം റദ്ദാക്കുക</translation>
 <translation id="3143754809889689516">തുടക്കം മുതൽ പ്ലേ ചെയ്യുക</translation>
 <translation id="3144647712221361880">ലിങ്ക് ഇനിപ്പറയുന്നതായി തുറക്കുക</translation>
-<translation id="3144896554017119333">വിപുലീകരണങ്ങളും മറ്റും</translation>
 <translation id="3149510190863420837">Chrome അപ്ലിക്കേഷനുകൾ</translation>
 <translation id="3150693969729403281">സുരക്ഷാ പരിശോധന ഇപ്പോൾ റൺ ചെയ്യുക</translation>
 <translation id="3150927491400159470">വേഗത്തിലുള്ള വീണ്ടും ലോഡ് ചെയ്യൽ</translation>
@@ -4581,6 +4581,7 @@
 <translation id="5260334392110301220">സ്‌മാർട്ട് ക്വോട്ടുകൾ</translation>
 <translation id="5260508466980570042">ക്ഷമിക്കൂ, നിങ്ങളുടെ ഇമെയില്‍ അല്ലെങ്കില്‍ പാസ്‍വേഡ് പരിശോധിച്ചുറപ്പിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="5260958083445173099">സാധ്യമാകുമ്പോഴെല്ലാം വെബ്‌സൈറ്റുകൾ നിങ്ങൾ മുൻഗണന നൽകുന്ന ഭാഷകളിൽ ഉള്ളടക്കം കാണിക്കും</translation>
+<translation id="5261619498868361045">കണ്ടെയ്‌നറിന്റെ പേര് നൽകാതിരിക്കാനാകില്ല.</translation>
 <translation id="5261683757250193089">വെബ് സ്‌റ്റോറിൽ തുറക്കുക</translation>
 <translation id="5262178194499261222">പാസ്‌വേഡ് നീക്കം ചെയ്യുക</translation>
 <translation id="5262784498883614021">നെറ്റ്‌വർക്കിലേക്ക് സ്വയമേവ കണക്റ്റ് ചെയ്യുക</translation>
@@ -4987,6 +4988,7 @@
 <translation id="562935524653278697">നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവ സമന്വയിപ്പിക്കുന്നത് അഡ്‌മിൻ പ്രവർത്തനരഹിതമാക്കി.</translation>
 <translation id="5631017369956619646">CPU ഉപയോഗം</translation>
 <translation id="5632059346822207074">അനുമതി അഭ്യർത്ഥിച്ചു, പ്രതികരിക്കാൻ Ctrl + Forward അമർത്തുക</translation>
+<translation id="5632221585574759616">വിപുലീകരണ അനുമതികളെ കുറിച്ച് കൂടുതലറിയുക</translation>
 <translation id="5632566673632479864">നിങ്ങളുടെ അക്കൗണ്ട് <ph name="EMAIL" />, ഇനി പ്രാഥമിക അക്കൗണ്ടായി അംഗീകരിക്കില്ല. <ph name="DOMAIN" /> ഈ അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നതിനാൽ, നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകളും ചരിത്രവും പാസ്‌വേഡുകളും മറ്റ് ക്രമീകരവും ഈ ഉപകരണത്തിൽ നിന്ന് മായ്‌ക്കുന്നതാണ്.</translation>
 <translation id="5632592977009207922">ഡൗൺലോഡ് ചെയ്യുന്നു, <ph name="PERCENT_REMAINING" />% ശേഷിക്കുന്നു</translation>
 <translation id="5633149627228920745">സിസ്‌റ്റം ആവശ്യകതകളെ കുറിച്ച് കൂടുതലറിയുക</translation>
@@ -5609,6 +5611,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ഓഫ്‌ലൈനാണ്. ഇന്റർനെറ്റിലേക്ക് കണക്‌റ്റ് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="6220413761270491930">വിപുലീകരണം ലോഡ് ചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="6224481128663248237">ഫോർമാറ്റിംഗ് വിജയകരമായി പൂർത്തിയാക്കി!</translation>
+<translation id="622474711739321877">ഈ കണ്ടെയ്‌നർ മുമ്പേ നിലവിലുണ്ട്.</translation>
 <translation id="622537739776246443">പ്രൊഫൈല്‍ ഇല്ലാതാക്കപ്പെടും</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> എന്ന പേരുള്ള ഫോണിൽ നിന്ന് ലഭ്യമായ ഡാറ്റാ കണക്ഷൻ</translation>
 <translation id="6226777517901268232">സ്വകാര്യ കീ ഫയല്‍‌ (ഓപ്‌ഷണൽ)</translation>
@@ -6408,6 +6411,7 @@
 <translation id="696780070563539690">വ്യത്യസ്‌ത സൈറ്റുകളിലുടനീളമുള്ള നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി കാണാൻ സൈറ്റുകൾക്ക് നിങ്ങളുടെ കുക്കികൾ ഉപയോഗിക്കാനാവില്ല, ഉദാഹരണത്തിന്, പരസ്യങ്ങൾ വ്യക്തിപരമാക്കാൻ</translation>
 <translation id="6968288415730398122">സ്‌ക്രീൻ ലോക്ക് കോൺഫിഗർ ചെയ്യാൻ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="6969047215179982698">സമീപമുള്ള പങ്കിടൽ ഓഫാക്കുക</translation>
+<translation id="6969216690072714773">ഈ ഉപകരണവുമായി ബന്ധപ്പെടുത്തേണ്ട പുതിയ വിവരങ്ങൾ നൽകുക അല്ലെങ്കിൽ ഇപ്പോഴുള്ള വിവരങ്ങൾ അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
 <translation id="6970480684834282392">സ്റ്റാർട്ടപ്പ് തരം</translation>
 <translation id="6970543303783413625">പാസ്‌വേഡുകൾ ഇമ്പോർട്ട് ചെയ്യാനാകുന്നില്ല. നിങ്ങൾക്ക് ഒരു സമയത്ത് <ph name="COUNT" /> പാസ്‌വേഡുകൾ വരെ മാത്രമേ ഇമ്പോർട്ട് ചെയ്യാനാകൂ.</translation>
 <translation id="6970856801391541997">പ്രത്യേക പേജുകൾ പ്രിന്റ് ചെയ്യുക</translation>
@@ -6814,6 +6818,7 @@
 <translation id="7377481913241237033">കോഡ് ഉപയോഗിച്ച് കണക്റ്റ് ചെയ്യുക</translation>
 <translation id="7378611153938412599">ദുർബലമായ പാസ്‌വേഡുകൾ ഊഹിക്കാൻ എളുപ്പമാണ്. നിങ്ങൾ സൃഷ്‌ടിക്കുന്നത് ശക്തമായ പാസ്‌വേഡുകളാണെന്ന് ഉറപ്പാക്കുക. <ph name="BEGIN_LINK" />കൂടുതൽ സുരക്ഷാ നുറുങ്ങുകൾ കാണുക.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome വെബ് സ്‌റ്റോർ തുറക്കുക</translation>
+<translation id="7380272457268061606">പ്രാദേശിക ഡാറ്റാ വീണ്ടെടുക്കൽ പ്രവർത്തനരഹിതമാക്കണോ?</translation>
 <translation id="7380459290951585794">നിങ്ങളുടെ ഫോൺ സമീപത്തുണ്ടെന്നും അൺലോക്ക് ചെയ്തിട്ടുണ്ടെന്നും Bluetooth-ഉം വൈഫൈയും ഓണാക്കിയിട്ടുണ്ടെന്നും ഉറപ്പാക്കുക</translation>
 <translation id="7380622428988553498">ഉപകരണ നാമത്തിൽ അസാധുവായ പ്രതീകങ്ങൾ അടങ്ങിയിരിക്കുന്നു</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> അപ്ഡേറ്റ് ചെയ്‌തു</translation>
@@ -7064,6 +7069,7 @@
 <translation id="7617263010641145920">Play Store ഓണാക്കുക</translation>
 <translation id="7617648809369507487">നിശബ്‌ദ സന്ദേശമയക്കൽ ഉപയോഗിക്കുക</translation>
 <translation id="7621382409404463535">സിസ്‌റ്റത്തിന് ഉപകരണ ക്രമീകരണം സംരക്ഷിക്കാനായില്ല.</translation>
+<translation id="7621595347123595643">നിങ്ങളുടെ പാസ്‌വേഡോ പിന്നോ മറന്നാൽ പ്രാദേശിക ഡാറ്റ വീണ്ടെടുക്കാനാകില്ല.</translation>
 <translation id="7622114377921274169">ചാർജ് ചെയ്യുന്നു.</translation>
 <translation id="7622768823216805500">എളുപ്പത്തിലുള്ള ചെക്കൗട്ട് പോലുള്ള ഷോപ്പിംഗ് ഫീച്ചറുകൾക്ക്, സൈറ്റുകൾ സാധാരണയായി പേയ്‌മെന്റ് ഹാൻഡ്‌ലറുകൾ ഇൻസ്‌റ്റാൾ ചെയ്യാറുണ്ട്</translation>
 <translation id="7622903810087708234">പാസ്‌വേഡ് വിശദാംശങ്ങൾ</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index d93a3d8..c11572c 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1295,6 +1295,7 @@
 <translation id="2157875535253991059">Энэ хуудас нь одоо дэлгэц дүүрэн харагдаж байна.</translation>
 <translation id="2158475082070321257">Тодруулсан текстийн холбоосыг хуулах</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" />-д зориулсан <ph name="SHORTCUT" />-н хамрах хүрээ</translation>
 <translation id="216169395504480358">Wi-Fi нэмэх...</translation>
 <translation id="2162155940152307086">Таныг синк хийх тохиргооноос гарсны дараа синк хийж эхэлнэ</translation>
 <translation id="2162705204091149050">Таны хөтөч, OS, төхөөрөмж, суулгасан программ хангамж болон файлуудын талаарх мэдээллийг унших</translation>
@@ -2086,7 +2087,6 @@
 <translation id="2852385257476173980">Таныг веб үзэж байх үед таны зочилж магадгүй сайтуудын жагсаалт энд харагдана</translation>
 <translation id="285241945869362924">Аудио болон видеонд автоматаар тайлбар үүсгэдэг. Аудио болон тайлбар таны төхөөрөмжөөс хэзээ ч гардаггүй.</translation>
 <translation id="2856776373509145513">Шинэ контейнер үүсгэх</translation>
-<translation id="2858138569776157458">Шилдэг сайтууд</translation>
 <translation id="2861301611394761800">Системийн шинэчлэлт дууслаа. Системийг дахин эхлүүлнэ үү.</translation>
 <translation id="2861941300086904918">Native Client security manager</translation>
 <translation id="2862815659905780618">Linux-н хөгжүүлэлтийн орчныг хасах</translation>
@@ -2373,6 +2373,7 @@
 <translation id="3129173833825111527">Зүүн хүрээ</translation>
 <translation id="3129215702932019810">Аппликэйшн эхлүүлэхэд алдаа гарлаа</translation>
 <translation id="3130528281680948470">Таны төхөөрөмжийг дахин тохируулах бөгөөд бүх хэрэглэгчийн данс, суурин өгөгдлүүд устгагдах болно. Энэ үйлдлийг буцаах боломжгүй.</translation>
+<translation id="3130863904455712965">Түүх болон бусад</translation>
 <translation id="313205617302240621">Нууц үгээ мартсан уу?</translation>
 <translation id="3132277757485842847">Бид таны утасны холболтыг хадгалж чадсангүй. Таны утас ойрхон, түгжээг нь тайлсан, Bluetooth, Wi-Fi-г нь асаасан эсэхийг шалгана уу.</translation>
 <translation id="3132896062549112541">Дүрэм</translation>
@@ -2386,7 +2387,6 @@
 <translation id="3143515551205905069">Синкийг цуцлах</translation>
 <translation id="3143754809889689516">Эхнээс нь тоглуулах</translation>
 <translation id="3144647712221361880">Холбоосыг нээх</translation>
-<translation id="3144896554017119333">Өргөтгөл болон бусад</translation>
 <translation id="3149510190863420837">Chrome Аппликейшнууд</translation>
 <translation id="3150693969729403281">Аюулгүй байдлын шалгалтыг одоо хийх</translation>
 <translation id="3150927491400159470">Хатуу дискийг дахин ачаалах</translation>
@@ -2684,6 +2684,7 @@
 <translation id="3445047461171030979">Google Туслахын шуурхай хариултууд</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин</translation>
 <translation id="344537926140058498">Энэ файлд эмзэг эсвэл аюултай контент байгаа тул танай байгууллага үүнийг блоклосон. Өмчлөгчөөс нь үүнийг засахыг хүснэ үү.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Таны сүүлийн үед зочлоогүй <ph name="BEGIN_BOLD" />1 caйтын<ph name="END_BOLD" /> зөвшөөрлийг хассан}other{Таны сүүлийн үед зочлоогүй <ph name="BEGIN_BOLD" />{NUM_SITES} сайтын<ph name="END_BOLD" /> зөвшөөрлийг хассан}}</translation>
 <translation id="3445925074670675829">USB-C төхөөрөмж</translation>
 <translation id="3446274660183028131">Windows-г суулгахын тулд Parallels Desktop-г эхлүүлнэ үү.</translation>
 <translation id="344630545793878684">Олон тооны веб хуудсууд дээр байгаа өөрийнхөө мэдээллийг уншина уу</translation>
@@ -2895,6 +2896,7 @@
 <translation id="3642699533549879077">Өөр хэн нэгэн таны дэлгэц рүү харах үед та сэрэмжлүүлэг авах бөгөөд мэдэгдлийн контентыг нууна.</translation>
 <translation id="3643962751030964445">Энэ төхөөрөмжийг <ph name="DEVICE_MANAGER" /> удирддаг. <ph name="DEVICE_MANAGER" /> <ph name="USER_EMAIL_ADDRESS" /> бүртгэлд шинэ профайл шаардаж байна</translation>
 <translation id="3645372836428131288">Хурууны хээг өөр талаас нь авахын тулд хуруугаа бага зэрэг хөдөлгөнө үү</translation>
+<translation id="3647051300407077858">Мэдэгдлийн зөвшөөрлийг шалгах</translation>
 <translation id="3647654707956482440">Энэ холбоосыг ашиглах боломжгүй. Буруу бичсэн эсэхийг шалгах эсвэл дахин оролдохын тулд өөр холбоос ашиглана уу.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />-с <ph name="ATTACHMENTS" /> хүлээж авсан}other{<ph name="DEVICE_NAME" />-с <ph name="ATTACHMENTS" /> хүлээж авсан}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> илэрсэн</translation>
@@ -3074,6 +3076,7 @@
 <translation id="380408572480438692">Гүйцэтгэлийн мэдээлэл цуглуулах ажиллагааг идэвхжүүлэх нь Google-д цаг тутам ситемээ сайжруулахад туслах болно. Та санал хүсэлтийн тайланг илгээж (Alt-Shift-I), гүйцэтгэлийн мэдээллийг оруулах хүртэл ямар нэг өгөгдөл илгээгдэхгүй. Та энэ дэлгэц дээр буцаж ямар ч үед мэдээлэл цуглуулах ажиллагааг идэвхгүй болгож болно.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" />-г (өргөтгөх ID "<ph name="EXTENSION_ID" />") нэвтрэх хэсэгт зөвшөөрөөгүй байна.</translation>
 <translation id="3807747707162121253">&amp;Цуцлах</translation>
+<translation id="3808202562160426447">Арын контентыг бүдгэрүүлэх</translation>
 <translation id="3808443763115411087">Crostini-н Андройд аппын хөгжүүлэлт</translation>
 <translation id="38089336910894858">⌘Q-с гарахаас өмнө анхааруулга харуулах</translation>
 <translation id="3809272675881623365">Туулай</translation>
@@ -3664,6 +3667,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> цонх хуваалцаж байна.</translation>
 <translation id="4364830672918311045">Дэлгэцийн мэдэгдэл</translation>
 <translation id="4366138410738374926">Хэвлэж эхэлсэн</translation>
+<translation id="4367513928820380646">Хассан зөвшөөрлүүдийг шалгах</translation>
 <translation id="4369121877634339065">Хайхын тулд дурын зургийг чирч авчирна уу</translation>
 <translation id="4369215744064167350">Вебсайтын хүсэлтийг зөвшөөрсөн</translation>
 <translation id="4370975561335139969">Таны оруулсан имэйл болон нууц үг таарахгүй байна</translation>
@@ -4384,6 +4388,7 @@
 <translation id="5045550434625856497">Буруу нууц үг</translation>
 <translation id="504561833207953641">Ашиглалтад байгаа хөтчийн харилцан үйлдэлд нээж байна.</translation>
 <translation id="5049614114599109018">Оролтын түүхийг ашиглах</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Энэ сайт саяхан маш олон мэдэгдэл илгээсэн байна. Та үүний цаашдаа илгээх мэдэгдлүүдийг нь зогсоох боломжтой.}other{Эдгээр сайт саяхан маш олон мэдэгдэл илгээсэн байна. Та тэдний цаашдаа илгээх мэдэгдлүүдийг нь зогсоох боломжтой.}}</translation>
 <translation id="5051836348807686060">Таны сонгосон хэл дээр зөв бичгийн дүрмийн алдаа шалгагч нь дэмжигдээгүй байна</translation>
 <translation id="5052499409147950210">Сайтыг засах</translation>
 <translation id="505347685865235222">Нэргүй бүлэг - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7280,6 +7285,7 @@
 <translation id="7775694664330414886">Табыг нэргүй бүлэг рүү зөөсөн - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">Таныг энэ сайтын бүх табыг хаах хүртэл <ph name="ORIGIN" /> нь <ph name="FOLDERNAME" /> доторх файлуудыг үзэх боломжтой байна</translation>
 <translation id="7776701556330691704">Дуу хоолой олдсонгүй</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" />-д зориулсан <ph name="SHORTCUT" /> товчлол</translation>
 <translation id="7781335840981796660">Бүх хэрэглэгчийн бүртгэлүүд болон суурин өгөгдлүүд устах болно.</translation>
 <translation id="7782102568078991263">Google-ээс өөр зөвлөмж алга байна.</translation>
 <translation id="7782717250816686129">Нэвтрэх дэлгэц дээр байнгын өгөгдлийг хадгалж, харилцан үйлдэлд мандат үнэмлэхийг оруулах.</translation>
@@ -7311,6 +7317,7 @@
 <translation id="7807711621188256451"><ph name="HOST" />-д таны камерт нэвтрэх зөвшөөрөл олгох</translation>
 <translation id="7810202088502699111">Зар сурталчилгааг энэ хуудсанд хориглосон байна.</translation>
 <translation id="7814458197256864873">Хуулах</translation>
+<translation id="7815583197273433531"><ph name="EXTENSION_NAME" />-д зориулсан <ph name="SHORTCUT" /> товчлолыг засах</translation>
 <translation id="7815680994978050279">Аюултай таталтыг блоклосон</translation>
 <translation id="7817361223956157679">Дэлгэцэн дээрх гар Linux апп дээр хараахан ажиллахгүй байна</translation>
 <translation id="7818135753970109980">Шинэ загвар нэмэгдсэн ( <ph name="EXTENSION_NAME" /> )</translation>
@@ -7385,6 +7392,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Бүртгэл харах</translation>
 <translation id="7883792253546618164">Хүссэн үедээ захиалгаа цуцална уу.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Маш олон мэдэгдэл илгээсэн 1 сайтыг шалгах}other{Маш олон мэдэгдэл илгээсэн {NUM_SITES} сайтыг шалгах}}</translation>
 <translation id="788453346724465748">Бүртгэлийн мэдээллийг ачаалж байна...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{1 зүйл}other{# зүйл}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 76e1ab0d..982dc5b6a 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">तुम्ही वेब ब्राउझ कराल तशी तुम्ही भेट देत असलेल्या साइटची सूची येथे दिसू शकते</translation>
 <translation id="285241945869362924">ऑडिओ आणि व्हिडिओसाठी आपोआप कॅप्शन तयार करते. ऑडिओ आणि कॅप्शन तुमच्या डिव्हाइसमध्येच राहतात.</translation>
 <translation id="2856776373509145513">नवीन कंटेनर तयार करा</translation>
-<translation id="2858138569776157458">टॉप साइट</translation>
 <translation id="2861301611394761800">सिस्टम अपडेट पूर्ण. कृपया सिस्टम रीस्टार्ट करा.</translation>
 <translation id="2861941300086904918">नेटिव्ह क्लायंट सुरक्षा व्यवस्थापक</translation>
 <translation id="2862815659905780618">Linux डेव्हलपमेंट पद्धत काढून टाका</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">डावा समास</translation>
 <translation id="3129215702932019810">अ‍ॅप्लिकेशन लाँच करताना एरर आली</translation>
 <translation id="3130528281680948470">तुमचे डिव्हाइस रीसेट केले जाईल आणि सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल. हे पूर्ववत केले जाऊ शकत नाही.</translation>
+<translation id="3130863904455712965">इतिहास आणि आणखी बरेच काही</translation>
 <translation id="313205617302240621">पासवर्ड विसरलात?</translation>
 <translation id="3132277757485842847">आम्हाला तुमच्या फोनसह कनेक्शन सुरू ठेवता आले नाही. तुमचा फोन जवळपास असल्याची, अनलॉक केलेला असल्याची आणि त्याचे ब्लूटूथ व वाय-फाय सुरू असल्याची खात्री करा.</translation>
 <translation id="3132896062549112541">नियम</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">सिंक रद्द करा</translation>
 <translation id="3143754809889689516">सुरवातीपासून प्ले करा</translation>
 <translation id="3144647712221361880">लिंक या फॉरमॅटमध्ये उघडा</translation>
-<translation id="3144896554017119333">एक्स्टेंशन आणि आणखी बरेच काही</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150693969729403281">आता सुरक्षा तपासणी रन करा</translation>
 <translation id="3150927491400159470">कठीण रीलोड</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index fbbae64..54b560b2 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2090,7 +2090,6 @@
 <translation id="2852385257476173980">Senarai laman yang anda lawati mungkin dipaparkan di sini semasa anda menyemak imbas web</translation>
 <translation id="285241945869362924">Membuat sari kata untuk audio dan video secara automatik. Audio dan sari kata tidak sekali-kali dihantar keluar daripada peranti anda.</translation>
 <translation id="2856776373509145513">Buat bekas baharu</translation>
-<translation id="2858138569776157458">Tapak popular</translation>
 <translation id="2861301611394761800">Kemas kini sistem selesai. Sila mulakan semula sistem.</translation>
 <translation id="2861941300086904918">Pengurus keselamatan Klien Asli</translation>
 <translation id="2862815659905780618">Alih keluar persekitaran pembangunan Linux</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3105796011181310544">Tukar kembali kepada Google?</translation>
 <translation id="310671807099593501">Tapak sedang menggunakan bluetooth</translation>
 <translation id="3108931485517391283">Tidak dapat menerima</translation>
+<translation id="3108957152224931571">Warna serlahan</translation>
 <translation id="3109206895301430738">Kumpulan Tab Disimpan</translation>
 <translation id="3109724472072898302">Diruntuhkan</translation>
 <translation id="3112292765614504292">Saiz apl: <ph name="APP_SIZE" /></translation>
@@ -2376,6 +2376,7 @@
 <translation id="3129173833825111527">Jidar kiri</translation>
 <translation id="3129215702932019810">Ralat semasa melancarkan aplikasi</translation>
 <translation id="3130528281680948470">Peranti anda akan ditetapkan semula dan semua akaun pengguna serta data setempat akan dipadamkan. Proses ini tidak boleh dibuat asal.</translation>
+<translation id="3130863904455712965">Sejarah dan pelbagai lagi</translation>
 <translation id="313205617302240621">Terlupa kata laluan?</translation>
 <translation id="3132277757485842847">Kami tidak dapat mengekalkan sambungan dengan telefon anda. Pastikan telefon anda berada berdekatan, dibuka kunci dan Bluetooth serta Wi-Fi dihidupkan.</translation>
 <translation id="3132896062549112541">Peraturan</translation>
@@ -2389,7 +2390,6 @@
 <translation id="3143515551205905069">Batalkan penyegerakan</translation>
 <translation id="3143754809889689516">Mainkan dari permulaan</translation>
 <translation id="3144647712221361880">Buka pautan sebagai</translation>
-<translation id="3144896554017119333">Sambungan dan pelbagai lagi</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150693969729403281">Jalankan semakan keselamatan sekarang</translation>
 <translation id="3150927491400159470">Muat Semula Keras</translation>
@@ -4599,6 +4599,7 @@
 <translation id="5260334392110301220">Tanda Petikan Pintar</translation>
 <translation id="5260508466980570042">Maaf, e-mel atau kata laluan anda tidak dapat disahkan. Sila cuba semula.</translation>
 <translation id="5260958083445173099">Laman web akan memaparkan kandungan dalam bahasa pilihan anda, jika boleh</translation>
+<translation id="5261619498868361045">Nama bekas tidak boleh kosong.</translation>
 <translation id="5261683757250193089">Buka dalam Gedung Web</translation>
 <translation id="5262178194499261222">Alih keluar kata laluan</translation>
 <translation id="5262784498883614021">Sambung kepada rangkaian secara automatik</translation>
@@ -5005,6 +5006,7 @@
 <translation id="562935524653278697">Pentadbir anda telah melumpuhkan penyegerakan penanda halaman, sejarah, kata laluan dan tetapan lain.</translation>
 <translation id="5631017369956619646">Penggunaan CPU</translation>
 <translation id="5632059346822207074">Kebenaran diminta, tekan Ctrl + Maju untuk memberikan respons</translation>
+<translation id="5632221585574759616">Ketahui lebih lanjut tentang kebenaran sambungan</translation>
 <translation id="5632566673632479864">Akaun <ph name="EMAIL" /> anda tidak dibenarkan menjadi akaun utama lagi. Oleh sebab akaun ini diurus oleh <ph name="DOMAIN" />, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan dipadamkan daripada peranti ini.</translation>
 <translation id="5632592977009207922">Memuat turun, tinggal <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">Ketahui lebih lanjut tentang keperluan sistem</translation>
@@ -5625,6 +5627,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> di luar talian. Sambung ke Internet dan cuba lagi.</translation>
 <translation id="6220413761270491930">Ralat Memuatkan Sambungan</translation>
 <translation id="6224481128663248237">Pemformatan berjaya diselesaikan!</translation>
+<translation id="622474711739321877">Bekas ini sudah wujud.</translation>
 <translation id="622537739776246443">Profil akan dipadamkan</translation>
 <translation id="6225475702458870625">Sambungan data tersedia daripada <ph name="PHONE_NAME" /> anda</translation>
 <translation id="6226777517901268232">Fail kunci peribadi (pilihan)</translation>
@@ -6424,6 +6427,7 @@
 <translation id="696780070563539690">Tapak tidak boleh menggunakan kuki anda untuk melihat aktiviti penyemakan imbas anda pada pelbagai tapak yang berlainan, contohnya, untuk memperibadikan iklan</translation>
 <translation id="6968288415730398122">Masukkan kata laluan anda untuk mengkonfigurasi kunci skrin</translation>
 <translation id="6969047215179982698">Matikan Kongsi Berdekatan</translation>
+<translation id="6969216690072714773">Masukkan maklumat baharu atau kemas kini maklumat yang sedia ada untuk dikaitkan dengan peranti ini.</translation>
 <translation id="6970480684834282392">Jenis pemula</translation>
 <translation id="6970543303783413625">Tidak dapat mengimport kata laluan. Anda hanya boleh mengimport hingga <ph name="COUNT" /> kata laluan serentak.</translation>
 <translation id="6970856801391541997">Cetak Halaman Tertentu</translation>
@@ -6830,6 +6834,7 @@
 <translation id="7377481913241237033">Sambung menggunakan kod</translation>
 <translation id="7378611153938412599">Kata laluan lemah mudah diteka. Pastikan anda membuat kata laluan kukuh. <ph name="BEGIN_LINK" />Lihat pelbagai lagi petua keselamatan.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Buka Gedung Web Chrome</translation>
+<translation id="7380272457268061606">Lumpuhkan pemulihan data setempat?</translation>
 <translation id="7380459290951585794">Pastikan telefon anda berada berdekatan, dibuka kunci dan Bluetooth serta Wi-Fi dihidupkan</translation>
 <translation id="7380622428988553498">Nama peranti mengandungi aksara tidak sah</translation>
 <translation id="7380768571499464492">Dikemas kini <ph name="PRINTER_NAME" /></translation>
@@ -7080,6 +7085,7 @@
 <translation id="7617263010641145920">Hidupkan Gedung Play</translation>
 <translation id="7617648809369507487">Gunakan pemesejan yang lebih senyap</translation>
 <translation id="7621382409404463535">Sistem gagal menyimpan konfigurasi peranti.</translation>
+<translation id="7621595347123595643">Anda tidak akan dapat memulihkan data setempat jika anda terlupa kata laluan atau PIN anda.</translation>
 <translation id="7622114377921274169">Mengecas.</translation>
 <translation id="7622768823216805500">Tapak biasanya memasang pengendali pembayaran untuk ciri beli-belah seperti daftar keluar yang lebih mudah</translation>
 <translation id="7622903810087708234">Butiran kata laluan</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 10b2b550..aa9c6b34 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -2088,7 +2088,6 @@
 <translation id="2852385257476173980">ဝဘ်ကြည့်ရှုသည့်အတွက် ဤနေရာတွင် သင်ဝင်ကြည့်သည့်ဝဘ်ဆိုက်စာရင်း ပေါ်လာမည်</translation>
 <translation id="285241945869362924">အသံနှင့် ဗီဒီယိုအတွက် စာတန်းများကို အလိုအလျောက်ပြုလုပ်ပေးသည်။ အသံနှင့် စာတန်းများကို သင့်စက်အတွင်းတွင်သာ လုံခြုံစွာ သိမ်းထားပါသည်။</translation>
 <translation id="2856776373509145513">ကွန်တိန်နာအသစ် ပြုလုပ်ခြင်း</translation>
-<translation id="2858138569776157458">ထိပ်တန်းဆိုက်များ</translation>
 <translation id="2861301611394761800">စနစ် မွမ်းမံမှု ပြီးဆုံးသွားပြီ။ ကျေးဇူးပြုပြီး စနစ်ကို ပြန်ဖွင့်ပါ။</translation>
 <translation id="2861941300086904918">ဒေသခံ ဖောက်သည်လုံခြုံရေး မန်နေဂျာ</translation>
 <translation id="2862815659905780618">Linux ဆော့ဖ်ဝဲရေးဆွဲမှု ပတ်ဝန်းကျင်ကို ဖယ်ရှားရန်</translation>
@@ -2375,6 +2374,7 @@
 <translation id="3129173833825111527">ဘယ်အနားသတ်</translation>
 <translation id="3129215702932019810">အပလီကေးရှင်း စတင်ရာတွင် အမှားဖြစ်သွားသည်</translation>
 <translation id="3130528281680948470">ဤစက်ကိရိယာအား အစမှပြန်လည်စတင်မည်ဖြစ်ပြီး သုံးသူအကောင့်များနှင့် စက်တွင်းရှိ အချက်အလက်များအားလုံး ဖယ်ရှားခံရမည်။ ပြန်မရယူနိုင်ပါ။</translation>
+<translation id="3130863904455712965">မှတ်တမ်းနှင့် အခြား</translation>
 <translation id="313205617302240621">စကားဝှက်မေ့နေပါသလား?</translation>
 <translation id="3132277757485842847">သင့်ဖုန်းနှင့် ချိတ်ဆက်ထား၍မရပါ။ သင့်ဖုန်းသည် အနီးတွင်ရှိပြီး လော့ခ်ဖွင့်ထားကာ ဘလူးတုသ်နှင့် Wi-Fi ဖွင့်ထားကြောင်း သေချာပါစေ။</translation>
 <translation id="3132896062549112541">စည်းမျဉ်း</translation>
@@ -2388,7 +2388,6 @@
 <translation id="3143515551205905069">စင့်ခ်လုပ်ခြင်း ပယ်ဖျက်ရန်</translation>
 <translation id="3143754809889689516">အစမှ ကစားရန်</translation>
 <translation id="3144647712221361880">လင့်ကို ...အဖြစ် ဖွင့်ပါ</translation>
-<translation id="3144896554017119333">နောက်ဆက်တွဲနှင့် အခြားအရာများ</translation>
 <translation id="3149510190863420837">Chrome အက်ပ်များ</translation>
 <translation id="3150693969729403281">လုံခြုံရေး စစ်ဆေးမှု ယခု လုပ်ဆောင်ပါ</translation>
 <translation id="3150927491400159470">ဟာ့ဒ် ပြန်တင်ရန်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index a26c542..617e77b 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2072,7 +2072,6 @@
 <translation id="2852385257476173980">तपाईंले वेब ब्राउज गर्दै जाँदा तपाईंले खोल्ने साइटहरूको सूची यहाँ देखिन सक्छ</translation>
 <translation id="285241945869362924">अडियो तथा भिडियोमा क्याप्सनहरू स्वतः सिर्जना गर्छ। अडियो र क्याप्सनहरू तपाईंको यन्त्रबाट अन्यत्र पठाइँदैनन्।</translation>
 <translation id="2856776373509145513">नयाँ कन्टेनर बनाउनुहोस्</translation>
-<translation id="2858138569776157458">शीर्ष साइटहरू</translation>
 <translation id="2861301611394761800">सिस्टम अपडेट पूरा भयो। कृपया सिस्टमलाई फेरि सुरु गर्नुहोस्।</translation>
 <translation id="2861941300086904918">स्वदेशी ग्राहक सुरक्षा व्यवस्थापक</translation>
 <translation id="2862815659905780618">Linux डेभलपमेन्ट इनभारमेन्ट हटाउनुहोस्</translation>
@@ -2360,6 +2359,7 @@
 <translation id="3129173833825111527">बाँया मार्जिन</translation>
 <translation id="3129215702932019810">एप खोल्ने क्रममा त्रुटि भयो</translation>
 <translation id="3130528281680948470">तपाईंको उपकरण रिसेट हुनेछ र सबै प्रयोगकर्ता खाता र स्थानीय डेटा हटाइने छ। यो पूर्ववत गर्न सकिँदैन।</translation>
+<translation id="3130863904455712965">इतिहास र अन्य डेटा</translation>
 <translation id="313205617302240621">पासवर्ड बिर्सनुभयो?</translation>
 <translation id="3132277757485842847">हामीले तपाईंको फोनसँगको कनेक्सन कायम राख्न सकेनौँ। तपाईंको फोन नजिकै छ, अनलक गरिएको छ र त्यसको ब्लुटुथ र Wi-Fi अन छ भन्ने कुरा सुनिश्चित गर्नुहोस्।</translation>
 <translation id="3132896062549112541">नियम</translation>
@@ -2373,7 +2373,6 @@
 <translation id="3143515551205905069">सिंक रद्द गर्नुहोस्</translation>
 <translation id="3143754809889689516">सुरुबाट प्ले गर्नुहोस्</translation>
 <translation id="3144647712221361880">यस रूपमा लिंक खोल्नुहोस्</translation>
-<translation id="3144896554017119333">एक्स्टेन्सन र थप कुरा</translation>
 <translation id="3149510190863420837">Chrome एपहरू</translation>
 <translation id="3150693969729403281">अहिले नै सुरक्षा जाँच गर्नुहोस्</translation>
 <translation id="3150927491400159470">हार्ड रिलोड</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index d07330cd..ae7087b 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -2075,7 +2075,6 @@
 <translation id="2852385257476173980">Hier kan een lijst met door jou bezochte sites worden getoond als je browst op internet</translation>
 <translation id="285241945869362924">Maakt automatisch een ondertiteling voor audio en video. De audio en ondertiteling worden nooit doorgestuurd vanaf je apparaat.</translation>
 <translation id="2856776373509145513">Een nieuwe container maken</translation>
-<translation id="2858138569776157458">Topsites</translation>
 <translation id="2861301611394761800">Het systeem is geüpdatet. Start het systeem opnieuw op.</translation>
 <translation id="2861941300086904918">Beveiligingsbeheerder voor Native Client</translation>
 <translation id="2862815659905780618">Linux-ontwikkelomgeving verwijderen</translation>
@@ -2362,6 +2361,7 @@
 <translation id="3129173833825111527">Marge links</translation>
 <translation id="3129215702932019810">Fout bij lanceren van app</translation>
 <translation id="3130528281680948470">Je apparaat wordt opnieuw ingesteld en alle gebruikersaccounts en lokale gegevens worden verwijderd. Dit kan niet ongedaan worden gemaakt.</translation>
+<translation id="3130863904455712965">Geschiedenis en meer</translation>
 <translation id="313205617302240621">Wachtwoord vergeten?</translation>
 <translation id="3132277757485842847">We kunnen de verbinding met je telefoon niet in stand houden. Zorg dat je telefoon in de buurt en ontgrendeld is en dat bluetooth en wifi aanstaan.</translation>
 <translation id="3132896062549112541">Regel</translation>
@@ -2375,7 +2375,6 @@
 <translation id="3143515551205905069">Synchronisatie annuleren</translation>
 <translation id="3143754809889689516">Afspelen vanaf het begin</translation>
 <translation id="3144647712221361880">Link openen als</translation>
-<translation id="3144896554017119333">Extensies en meer</translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
 <translation id="3150693969729403281">Veiligheidscheck nu uitvoeren</translation>
 <translation id="3150927491400159470">Geforceerd opnieuw laden</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index e8e4e3c7..22409d1 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1291,6 +1291,7 @@
 <translation id="2157875535253991059">Denne siden vises nå i full skjerm.</translation>
 <translation id="2158475082070321257">Kopiér link til markert tekst</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Omfanget av <ph name="SHORTCUT" /> for <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Legg til wifi</translation>
 <translation id="2162155940152307086">Synkroniseringen starter når du går ut av synkroniseringsinnstillingene</translation>
 <translation id="2162705204091149050">lese informasjon om nettleseren, OS-et, enheten, installert programvare og filer</translation>
@@ -2082,7 +2083,6 @@
 <translation id="2852385257476173980">En liste over nettsteder du besøker, kan vises her mens du surfer på nettet</translation>
 <translation id="285241945869362924">Lager automatisk teksting for lyd og video. Lyden og tekstingen forlater aldri enheten.</translation>
 <translation id="2856776373509145513">Opprett en ny beholder</translation>
-<translation id="2858138569776157458">Populært</translation>
 <translation id="2861301611394761800">Systemoppdateringen er fullført. Start på nytt.</translation>
 <translation id="2861941300086904918">Sikkerhetsadministrator for Native Client</translation>
 <translation id="2862815659905780618">Fjern Linux-utviklingsmiljø</translation>
@@ -2369,6 +2369,7 @@
 <translation id="3129173833825111527">Venstre marg</translation>
 <translation id="3129215702932019810">Feil under programoppstart</translation>
 <translation id="3130528281680948470">Enheten blir tilbakestilt, og alle brukerkontoer og lokale data blir fjernet. Dette kan ikke reverseres.</translation>
+<translation id="3130863904455712965">Logg med mer</translation>
 <translation id="313205617302240621">Glemt passordet?</translation>
 <translation id="3132277757485842847">Vi kunne ikke opprettholde tilkoblingen til telefonen. Sørg for at telefonen er i nærheten, at den er opplåst, og at Bluetooth og wifi er slått på.</translation>
 <translation id="3132896062549112541">Regel</translation>
@@ -2382,7 +2383,6 @@
 <translation id="3143515551205905069">Avbryt synkronisering</translation>
 <translation id="3143754809889689516">Spill av fra begynnelsen</translation>
 <translation id="3144647712221361880">Åpne linken som</translation>
-<translation id="3144896554017119333">Utvidelser med mer</translation>
 <translation id="3149510190863420837">Chrome-apper</translation>
 <translation id="3150693969729403281">Kjør sikkerhetssjekk nå</translation>
 <translation id="3150927491400159470">Hard innlasting på nytt</translation>
@@ -2680,6 +2680,7 @@
 <translation id="3445047461171030979">Google Assistent-hurtigsvar</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Organisasjonen din har blokkert denne filen fordi den har sensitivt eller farlig innhold. Be eieren om å fikse dette.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Tillatelser er fjernet fra <ph name="BEGIN_BOLD" />1 nettsted<ph name="END_BOLD" /> du ikke har besøkt nylig}other{Tillatelser er fjernet fra <ph name="BEGIN_BOLD" />{NUM_SITES} nettsteder<ph name="END_BOLD" /> du ikke har besøkt nylig}}</translation>
 <translation id="3445925074670675829">USB-C-enhet</translation>
 <translation id="3446274660183028131">Start Parallels Desktop for å installere Windows.</translation>
 <translation id="344630545793878684">Lesing av dataene dine på en rekke nettsteder</translation>
@@ -2891,6 +2892,7 @@
 <translation id="3642699533549879077">Når noen andre ser på skjermen din, får du et varsel, og varselinnholdet skjules.</translation>
 <translation id="3643962751030964445">Denne enheten administreres av <ph name="DEVICE_MANAGER" />. En ny profil for kontoen <ph name="USER_EMAIL_ADDRESS" /> kreves av <ph name="DEVICE_MANAGER" />.</translation>
 <translation id="3645372836428131288">Flytt litt på fingeren for å registrere en annen del av fingeravtrykket.</translation>
+<translation id="3647051300407077858">Gjennomgå varslingstillatelser</translation>
 <translation id="3647654707956482440">Kan ikke bruke denne linken. Sjekk at den er skrevet riktig, eller bruk en annen link for å prøve igjen.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> mottatt fra <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> mottatt fra <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> oppdaget</translation>
@@ -3069,6 +3071,7 @@
 <translation id="380408572480438692">Aktivering av innsamling av ytelsesdata hjelper Google med å bekrefte systemet over tid, Data sendes ikke inn før du fyller ut en tilbakemeldingsrapport (Alt-Shift-I) og legger ved ytelsesdata. Du kan deaktivere innsamlingen når som helst via denne skjermen.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (utvidelses-ID «<ph name="EXTENSION_ID" />») tillates ikke på påloggingsskjermer.</translation>
 <translation id="3807747707162121253">&amp;Avbryt</translation>
+<translation id="3808202562160426447">Ton ned innhold i bakgrunnen</translation>
 <translation id="3808443763115411087">Android-apputvikling i Crostini</translation>
 <translation id="38089336910894858">Vis en advarsel før du avslutter med ⌘Q</translation>
 <translation id="3809272675881623365">Kanin</translation>
@@ -3655,6 +3658,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deler et vindu.</translation>
 <translation id="4364830672918311045">Vis varsler</translation>
 <translation id="4366138410738374926">Utskriften er påbegynt</translation>
+<translation id="4367513928820380646">Gjennomgå fjernede tillatelser</translation>
 <translation id="4369121877634339065">Dra over et bilde for å søke</translation>
 <translation id="4369215744064167350">Nettstedsforespørselen er godkjent</translation>
 <translation id="4370975561335139969">E-posten og passordet du skrev inn, stemmer ikke overens.</translation>
@@ -4371,6 +4375,7 @@
 <translation id="5045550434625856497">Feil passord</translation>
 <translation id="504561833207953641">Åpner i den eksisterende nettleserøkten.</translation>
 <translation id="5049614114599109018">Bruk inndatalogg</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Dette nettstedet har sendt mange varsler i det siste. Du kan forhindre det fra å sende flere varsler fremover.}other{Disse nettstedene har sendt mange varsler i det siste. Du kan forhindre dem fra å sende flere varsler fremover.}}</translation>
 <translation id="5051836348807686060">Stavekontroll støttes ikke for språkene du har valgt</translation>
 <translation id="5052499409147950210">Rediger nettstedet</translation>
 <translation id="505347685865235222">Gruppe uten navn – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7264,6 +7269,7 @@
 <translation id="7775694664330414886">Fanen er flyttet til en gruppe uten navn – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">Da kan <ph name="ORIGIN" /> se filer i <ph name="FOLDERNAME" /> frem til du lukker alle fanene for dette nettstedet</translation>
 <translation id="7776701556330691704">Fant ingen stemmer</translation>
+<translation id="7777624210360383048">Snarvei <ph name="SHORTCUT" /> for <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Alle brukerkontoer og lokale data fjernes.</translation>
 <translation id="7782102568078991263">Google har ikke flere forslag</translation>
 <translation id="7782717250816686129">Lagre vedvarende data på påloggingsskjermen, og bruk legitimasjon i økten.</translation>
@@ -7296,6 +7302,7 @@
 <translation id="7807711621188256451">Tillat alltid at <ph name="HOST" /> bruker kameraet ditt</translation>
 <translation id="7810202088502699111">Forgrunnsvinduer er blokkert på siden.</translation>
 <translation id="7814458197256864873">&amp;Kopier</translation>
+<translation id="7815583197273433531">Endre snarveien <ph name="SHORTCUT" /> for <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">En farlig nedlasting er blokkert</translation>
 <translation id="7817361223956157679">Skjermtastaturet virker ikke i Linux-apper ennå</translation>
 <translation id="7818135753970109980">Nytt tema lagt til (<ph name="EXTENSION_NAME" />)</translation>
@@ -7370,6 +7377,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Se konto</translation>
 <translation id="7883792253546618164">Du kan avslutte abonnementet når som helst.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Gjennomgå 1 nettsted som har sendt mange varsler}other{Gjennomgå {NUM_SITES} nettsteder som har sendt mange varsler}}</translation>
 <translation id="788453346724465748">Laster inn kontoinformasjon …</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{et element}other{# elementer}}</translation>
 <translation id="7886605625338676841">e-SIM-kort</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 561fa0b..f4d53e8 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -1284,6 +1284,7 @@
 <translation id="2157875535253991059">ଏହି ପୃଷ୍ଠା ବର୍ତ୍ତମାନ ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍‌ରେ ଅଛି।</translation>
 <translation id="2158475082070321257">ହାଇଲାଇଟ୍ କରାଯାଇଥିବା ଟେକ୍ସଟର ଲିଙ୍କକୁ କପି କରନ୍ତୁ</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" /> ପାଇଁ <ph name="SHORTCUT" />ର ପରିସର</translation>
 <translation id="216169395504480358">Wi-Fi ଯୋଗ କରନ୍ତୁ...</translation>
 <translation id="2162155940152307086">ଥରେ ଆପଣ ସିଙ୍କ୍ ସେଟିଂସ୍‌କୁ ଛାଡ଼ିବା କ୍ଷଣି ସିଙ୍କ୍‌ର କାର୍ଯ୍ୟ ଆରମ୍ଭ ହୋଇଯିବ</translation>
 <translation id="2162705204091149050">ଆପଣଙ୍କ ବ୍ରାଉଜର, OS, ଡିଭାଇସ, ଇନଷ୍ଟଲ କରାଯାଇଥିବା ସଫ୍ଟୱେର ଏବଂ ଫାଇଲଗୁଡ଼ିକ ବିଷୟରେ ସୂଚନା ପଢ଼ନ୍ତୁ</translation>
@@ -2073,7 +2074,6 @@
 <translation id="2852385257476173980">ଆପଣ ୱେବ ବ୍ରାଉଜ କରିବା ସମୟରେ ଆପଣ ଭିଜିଟ କରୁଥିବା ସାଇଟଗୁଡ଼ିକର ଏକ ତାଲିକା ଏଠାରେ ଦେଖାଯାଇପାରେ</translation>
 <translation id="285241945869362924">ଅଡିଓ ଏବଂ ଭିଡିଓ ପାଇଁ ସ୍ୱଚାଳିତ ଭାବେ କ୍ୟାପ୍ସନଗୁଡ଼ିକ ତିଆରି କରେ। ଅଡିଓ ଏବଂ କ୍ୟାପ୍ସନଗୁଡ଼ିକୁ କେବେ ବି ଆପଣଙ୍କ ଡିଭାଇସରୁ କାଢ଼ି ଦିଆଯାଏ ନାହିଁ।</translation>
 <translation id="2856776373509145513">ଏକ ନୂଆ କଣ୍ଟେନର ତିଆରି କରନ୍ତୁ</translation>
-<translation id="2858138569776157458">ଶ୍ରେଷ୍ଠ ସାଇଟ୍‌ଗୁଡ଼ିକ</translation>
 <translation id="2861301611394761800">ସିଷ୍ଟମ୍‌ ଅପ୍‌ଡେଟ୍‌ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି। ଦୟାକରି, ସିଷ୍ଟମ୍‌ ପୁନରାରମ୍ଭ କରନ୍ତୁ।</translation>
 <translation id="2861941300086904918">ମୂଳ କ୍ଲାଏଣ୍ଟ ସୁରକ୍ଷା ପରିଚାଳକ</translation>
 <translation id="2862815659905780618">Linux ଡେଭଲପମେଣ୍ଟ ପରିବେଶକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation>
@@ -2360,6 +2360,7 @@
 <translation id="3129173833825111527">ବାମପଟ ମାର୍ଜିନ୍</translation>
 <translation id="3129215702932019810">ଆପ୍ଲିକେସନ୍ ଲଞ୍ଚ କରିବାରେ ତ୍ରୁଟି</translation>
 <translation id="3130528281680948470">ଆପଣଙ୍କ ଡିଭାଇସ ରିସେଟ ହୋଇଯିବ ଏବଂ ସମସ୍ତ ୟୁଜର ଆକାଉଣ୍ଟ ଓ ସ୍ଥାନୀୟ ଡାଟାକୁ କାଢ଼ି ଦିଆଯିବ। ଏହାକୁ ପୂର୍ବବତ୍ କରାଯାଇପାରିବ ନାହିଁ।</translation>
+<translation id="3130863904455712965">ଇତିହାସ ଏବଂ ଆହୁରି ଅନେକ କିଛି</translation>
 <translation id="313205617302240621">ପାସ୍‍ୱାର୍ଡ ଭୁଲି ଯାଇଛନ୍ତି କି?</translation>
 <translation id="3132277757485842847">ଆମେ ଆପଣଙ୍କ ଫୋନ୍ ସହ ଏକ ସଂଯୋଗ ଜାରି ରଖିବାରେ ଅସମର୍ଥ ହେଲୁ। ଆପଣଙ୍କ ଫୋନ୍ ନିକଟରେ ଅଛି, ଅନଲକ୍ କରାଯାଇଛି ଏବଂ ସେଥିରେ ବ୍ଲୁଟୁଥ୍ ଏବଂ ୱାଇ-ଫାଇ ଚାଲୁ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରନ୍ତୁ।</translation>
 <translation id="3132896062549112541">ନିୟମ</translation>
@@ -2373,7 +2374,6 @@
 <translation id="3143515551205905069">ସିଙ୍କ୍‌ ବାତିଲ୍‍ କରନ୍ତୁ</translation>
 <translation id="3143754809889689516">ଆରମ୍ଭରୁ ଚଲାନ୍ତୁ</translation>
 <translation id="3144647712221361880">ଏହିପରି ଭାବେ ଲିଙ୍କ୍ ଖୋଲନ୍ତୁ</translation>
-<translation id="3144896554017119333">ଏକ୍ସଟେନସନ ଏବଂ ଆହୁରି ଅନେକ କିଛି</translation>
 <translation id="3149510190863420837">Chrome ଆପ୍ସ</translation>
 <translation id="3150693969729403281">ବର୍ତ୍ତମାନ ସୁରକ୍ଷା ଯାଞ୍ଚ ଚଲାନ୍ତୁ</translation>
 <translation id="3150927491400159470">ହାର୍ଡ ରିଲୋଡ୍</translation>
@@ -2671,6 +2671,7 @@
 <translation id="3445047461171030979">Google Assistant ଦ୍ରୁତ ଉତ୍ତରଗୁଡ଼ିକ</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> ମିନିଟ୍</translation>
 <translation id="344537926140058498">ଏହି ଫାଇଲରେ ସମ୍ବେଦନଶୀଳ କିମ୍ବା ବିପଦଜନକ ବିଷୟବସ୍ତୁ ଥିବା ଯୋଗୁଁ ଆପଣଙ୍କ ସଂସ୍ଥା ଏହାକୁ ବ୍ଲକ କରିଦେଇଛି। ଠିକ୍ କରିବା ପାଇଁ ଏହାର ମାଲିକଙ୍କୁ କୁହନ୍ତୁ।</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{ଆପଣ ଏବେ ଭିଜିଟ କରିନଥିବା <ph name="BEGIN_BOLD" />1ଟି ସାଇଟ<ph name="END_BOLD" />ରୁ ଅନୁମତିଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯାଇଛି}other{ଆପଣ ଏବେ ଭିଜିଟ କରିନଥିବା <ph name="BEGIN_BOLD" />{NUM_SITES}ଟି ସାଇଟ<ph name="END_BOLD" />ରୁ ଅନୁମତିଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯାଇଛି}}</translation>
 <translation id="3445925074670675829">USB-C ଡିଭାଇସ୍</translation>
 <translation id="3446274660183028131">ଦୟାକରି Windows ଇନଷ୍ଟଲ୍ କରିବାକୁ Parallels Desktop ଲଞ୍ଚ କରନ୍ତୁ।</translation>
 <translation id="344630545793878684">ଅନେକଗୁଡ଼ିଏ ୱେବ୍‌ସାଇଟ୍‌ରେ ଆପଣଙ୍କର ଡାଟା ପଢ଼ନ୍ତୁ</translation>
@@ -2882,6 +2883,7 @@
 <translation id="3642699533549879077">ଯେତେବେଳେ ଅନ୍ୟ କେହି ଜଣେ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ଦେଖନ୍ତି, ସେତେବେଳେ ଆପଣ ଏକ ଆଲର୍ଟ ପାଇବେ ଏବଂ ବିଜ୍ଞପ୍ତି ବିଷୟବସ୍ତୁ ଲୁଚିଯିବ।</translation>
 <translation id="3643962751030964445">ଏହି ଡିଭାଇସ <ph name="DEVICE_MANAGER" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଛି। <ph name="DEVICE_MANAGER" />ଙ୍କ ଦ୍ୱାରା <ph name="USER_EMAIL_ADDRESS" /> ଆକାଉଣ୍ଟ ପାଇଁ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ ଆବଶ୍ୟକ</translation>
 <translation id="3645372836428131288">ଟିପଚିହ୍ନର ଏକ ଭିନ୍ନ ଅଂଶକୁ କ୍ୟାପଚର୍ କରିବା ପାଇଁ ଅଳ୍ପ ଘୁଞ୍ଚାନ୍ତୁ।</translation>
+<translation id="3647051300407077858">ବିଜ୍ଞପ୍ତି ଅନୁମତିଗୁଡ଼ିକୁ ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="3647654707956482440">ଏହି ଲିଙ୍କକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଟାଇପିଂ ତ୍ରୁଟି ପାଇଁ ଯାଞ୍ଚ କରନ୍ତୁ କିମ୍ବା ପୁଣି ଚେଷ୍ଟା କରିବାକୁ ଅନ୍ୟ ଏକ ଲିଙ୍କ ବ୍ୟବହାର କରନ୍ତୁ।</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />ରୁ <ph name="ATTACHMENTS" /> ମିଳିଛି}other{<ph name="DEVICE_NAME" />ରୁ <ph name="ATTACHMENTS" /> ମିଳିଛି}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ଚିହ୍ନଟ କରାଯାଇଛି</translation>
@@ -3061,6 +3063,7 @@
 <translation id="380408572480438692">କାର୍ଯ୍ୟଦକ୍ଷତା ଡାଟା ସଂଗ୍ରହ ସକ୍ଷମ କରିବା ଦ୍ୱାରା ସମୟାନୁଯାୟୀ Googleକୁ ସିଷ୍ଟମ୍‌ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରିବ। ଯେପର୍ଯ୍ୟନ୍ତ ଆପଣ କୌଣସି ମତାମତ ରିପୋର୍ଟ (Alt-Shift-I) ଦାଖଲ କରିନାହିଁନ୍ତି ଏବଂ କାର୍ଯ୍ୟଦକ୍ଷତା ଡାଟା ଅନ୍ତର୍ଭୁକ୍ତ କରିନାହିଁନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ କୌଣସି ଡାଟା ପଠାଯାଏ ନାହିଁ। ଯେକୌଣସି ସମୟରେ ସଂଗ୍ରହଗୁଡ଼ିକୁ ଅକ୍ଷମ କରିବାକୁ ଆପଣ ଏହି ସ୍କ୍ରିନ୍‌କୁ ଫେରିପାରିବେ।</translation>
 <translation id="3807249107536149332">ଏକ ଲଗ୍‌ଇନ୍ ସ୍କ୍ରିନ୍‌ରେ <ph name="EXTENSION_NAME" /> (ଏକ୍ସଟେନ୍‌ସନ୍ ID "<ph name="EXTENSION_ID" />") ପାଇଁ ଅନୁମତି ନାହିଁ।</translation>
 <translation id="3807747707162121253">&amp;ବାତିଲ୍</translation>
+<translation id="3808202562160426447">ପୃଷ୍ଠପଟ ବିଷୟବସ୍ତୁ ଡିମ କରନ୍ତୁ</translation>
 <translation id="3808443763115411087">Crostini Android ଆପ୍ ଡେଭଲପମେଣ୍ଟ</translation>
 <translation id="38089336910894858">⌘Qକୁ ଛାଡ଼ି ଚାଲିଯିବା ପୂର୍ବରୁ ଚେତାବନୀ ଦିଅନ୍ତୁ</translation>
 <translation id="3809272675881623365">ଠେକୁଆ</translation>
@@ -3651,6 +3654,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> ଏକ ୱିଣ୍ଡୋ ସେୟାର୍ କରୁଛି।</translation>
 <translation id="4364830672918311045">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପ୍ରଦର୍ଶନ କରନ୍ତୁ</translation>
 <translation id="4366138410738374926">ପ୍ରିଣ୍ଟିଂ ଆରମ୍ଭ ହୋଇଛି</translation>
+<translation id="4367513928820380646">କାଢ଼ି ଦିଆଯାଇଥିବା ଅନୁମତିଗୁଡ଼ିକୁ ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="4369121877634339065">ସନ୍ଧାନ କରିବା ପାଇଁ ଯେ କୌଣସି ଇମେଜ ଉପରେ ଡ୍ରାଗ୍ କରନ୍ତୁ</translation>
 <translation id="4369215744064167350">ୱେବସାଇଟ ଅନୁରୋଧକୁ ଅନୁମୋଦନ ଦିଆଯାଇଛି</translation>
 <translation id="4370975561335139969">ଆପଣ ଲେଖିଥିବା ଇମେଲ୍ ଓ ପାସ୍‍ୱର୍ଡ ମେଳ ହେଉନାହିଁ</translation>
@@ -4371,6 +4375,7 @@
 <translation id="5045550434625856497">ଭୁଲ ପାସୱାର୍ଡ</translation>
 <translation id="504561833207953641">ପୂର୍ବରୁ ଥିବା ବ୍ରାଉଜର୍‌ ଅବଧିରେ ଖୋଲୁଛି</translation>
 <translation id="5049614114599109018">ଇନପୁଟ ଇତିହାସକୁ ବ୍ୟବହାର କରନ୍ତୁ</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{ବର୍ତ୍ତମାନ ଏହି ସାଇଟ ଅନେକ ବିଜ୍ଞପ୍ତି ପଠାଇଛି। ଭବିଷ୍ୟତରେ ବିଜ୍ଞପ୍ତି ପଠାଇବାରୁ ଆପଣ ଏହାକୁ ବନ୍ଦ କରିପାରିବେ।}other{ବର୍ତ୍ତମାନ ଏହି ସାଇଟଗୁଡ଼ିକ ଅନେକ ବିଜ୍ଞପ୍ତି ପଠାଇଛି। ଭବିଷ୍ୟତରେ ବିଜ୍ଞପ୍ତି ପଠାଇବାରୁ ଆପଣ ସେଗୁଡ଼ିକୁ ବନ୍ଦ କରିପାରିବେ।}}</translation>
 <translation id="5051836348807686060">ଆପଣ ଚୟନ କରିଥିବା ଭାଷାଗୁଡ଼ିକ ପାଇଁ ବନାନ ଯାଞ୍ଚ ସମର୍ଥନ ନାହିଁ</translation>
 <translation id="5052499409147950210">ସାଇଟ୍‌ ଏଡିଟ୍‌ କରନ୍ତୁ</translation>
 <translation id="505347685865235222">ବେନାମୀ ଗୋଷ୍ଠୀ - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7266,6 +7271,7 @@
 <translation id="7775694664330414886">ବେନାମୀ ଗୋଷ୍ଠୀକୁ ଟାବ୍ ମୁଭ୍ କରାଯାଇଛି - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">ଆପଣ ଏହି ସାଇଟ୍ ପାଇଁ ସମସ୍ତ ଟାବକୁ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" />, <ph name="FOLDERNAME" />ରେ ଥିବା ଫାଇଲଗୁଡ଼ିକୁ ଦେଖିବାକୁ ସକ୍ଷମ ହେବ</translation>
 <translation id="7776701556330691704">କୌଣସି ଭଏସ୍ ମିଳିଲା ନାହିଁ</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" /> ପାଇଁ <ph name="SHORTCUT" /> ସର୍ଟକଟ</translation>
 <translation id="7781335840981796660">ସମସ୍ତ ୟୁଜର ଆକାଉଣ୍ଟ ଓ ସ୍ଥାନୀୟ ଡାଟାକୁ କାଢ଼ି ଦିଆଯିବ।</translation>
 <translation id="7782102568078991263">Googleରୁ ଆଉ ଅଧିକ ପରାମର୍ଶ ମିଳିବ ନାହିଁ</translation>
 <translation id="7782717250816686129">ଲଗ୍‌ଇନ୍ ସ୍କ୍ରିନ୍‌ରେ ନିୟମିତ ଡାଟା ଷ୍ଟୋର୍ କରନ୍ତୁ ଏବଂ ସେସନ୍‌କୁ କ୍ରେଡେନ୍‌ସିଆଲ୍‌ଗୁଡ଼ିକ ଇନ୍‌ଜେକ୍ଟ କରନ୍ତୁ।</translation>
@@ -7298,6 +7304,7 @@
 <translation id="7807711621188256451">ସବୁବେଳେ <ph name="HOST" />କୁ ଆପଣଙ୍କର ଫଟୋ ଆକ୍‌ସେସ୍ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="7810202088502699111">ଏହି ପୃଷ୍ଠାରେ ପପ୍‌-ଅପ୍‌ଗୁଡ଼ିକ ଅବରୋଧ କରାଯାଇଥିଲା।</translation>
 <translation id="7814458197256864873">&amp;କପି</translation>
+<translation id="7815583197273433531"><ph name="EXTENSION_NAME" /> ପାଇଁ <ph name="SHORTCUT" /> ସର୍ଟକଟ ଏଡିଟ କରନ୍ତୁ</translation>
 <translation id="7815680994978050279">ବିପଜ୍ଜନକ ଡାଉନ୍‌ଲୋଡ୍ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
 <translation id="7817361223956157679">ଏପର୍ଯ୍ୟନ୍ତ ସୁଦ୍ଧା Linuxରେ ଅନ୍-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ କାର୍ଯ୍ୟ କରୁ ନାହିଁ</translation>
 <translation id="7818135753970109980">ନୂତନ ଥିମ୍ ଯୋଗ କରାଗଲା (<ph name="EXTENSION_NAME" />)</translation>
@@ -7372,6 +7379,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">ଆକାଉଣ୍ଟ ଦେଖନ୍ତୁ</translation>
 <translation id="7883792253546618164">ଯେ କୌଣସି ସମୟରେ ସଦସ୍ୟତା ତ୍ୟାଗ କରନ୍ତୁ।</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{ଅନେକ ବିଜ୍ଞପ୍ତି ପଠାଇଥିବା 1ଟି ସାଇଟକୁ ସମୀକ୍ଷା କରନ୍ତୁ}other{ଅନେକ ବିଜ୍ଞପ୍ତି ପଠାଇଥିବା {NUM_SITES}ଟି ସାଇଟକୁ ସମୀକ୍ଷା କରନ୍ତୁ}}</translation>
 <translation id="788453346724465748">ଆକାଉଣ୍ଟ ସୂଚନା ଲୋଡ୍ କରାଯାଉଛି...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ଏକ ଆଇଟମ୍}other{#ଟି ଆଇଟମ୍}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index f1c742d..e4a8d80 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">ਵੈੱਬ 'ਤੇ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਵੇਲੇ ਜਿਨ੍ਹਾਂ ਸਾਈਟਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ, ਉਨ੍ਹਾਂ ਦੀ ਸੂਚੀ ਤੁਹਾਨੂੰ ਇੱਥੇ ਦਿਸ ਸਕਦੀ ਹੈ</translation>
 <translation id="285241945869362924">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ ਲਈ ਸੁਰਖੀਆਂ ਬਣਾਉਂਦੀ ਹੈ। ਆਡੀਓ ਅਤੇ ਸੁਰਖੀਆਂ ਨੂੰ ਕਦੇ ਵੀ ਡੀਵਾਈਸ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਲਿਜਾਇਆ ਜਾਂਦਾ ਹੈ।</translation>
 <translation id="2856776373509145513">ਨਵਾਂ ਕੰਟੇਨਰ ਬਣਾਓ</translation>
-<translation id="2858138569776157458">ਪ੍ਰਮੁੱਖ ਸਾਈਟਾਂ</translation>
 <translation id="2861301611394761800">ਸਿਸਟਮ ਅੱਪਡੇਟ ਪੂਰਾ। ਕਿਰਪਾ ਕਰਕੇ ਸਿਸਟਮ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।</translation>
 <translation id="2861941300086904918">ਨੇਟਿਵ ਕਲਾਇੰਟ ਸੁਰੱਖਿਆ ਪ੍ਰਬੰਧਕ</translation>
 <translation id="2862815659905780618">Linux ਵਿਕਾਸ ਵਾਤਾਵਰਨ ਨੂੰ ਹਟਾਓ</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3105796011181310544">ਕੀ Google 'ਤੇ ਵਾਪਸ ਜਾਣਾ ਹੈ?</translation>
 <translation id="310671807099593501">ਸਾਈਟ ਬਲੂਟੁੱਥ ਵਰਤ ਰਹੀ ਹੈ</translation>
 <translation id="3108931485517391283">ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ</translation>
+<translation id="3108957152224931571">ਉਜਾਗਰ ਕਰਨ ਦਾ ਰੰਗ</translation>
 <translation id="3109206895301430738">ਰੱਖਿਅਤ ਕੀਤੇ ਟੈਬ ਗਰੁੱਪ</translation>
 <translation id="3109724472072898302">ਨਸ਼ਟ ਹੋਇਆ</translation>
 <translation id="3112292765614504292">ਐਪ ਦਾ ਆਕਾਰ: <ph name="APP_SIZE" /></translation>
@@ -2376,6 +2376,7 @@
 <translation id="3129173833825111527">ਖੱਬਾ ਹਾਸ਼ੀਆ</translation>
 <translation id="3129215702932019810">ਐਪਲੀਕੇਸ਼ਨ ਲਾਂਚ ਕਰਨ ਵੇਲੇ ਗੜਬੜ</translation>
 <translation id="3130528281680948470">ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਰੀਸੈੱਟ ਕੀਤੀ ਜਾਵੇਗੀ ਅਤੇ ਸਾਰੇ ਵਰਤੋਂਕਾਰ ਖਾਤੇ ਅਤੇ ਸਥਾਨਕ ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਇਸ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation>
+<translation id="3130863904455712965">ਇਤਿਹਾਸ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ</translation>
 <translation id="313205617302240621">ਕੀ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ ਹੋ?</translation>
 <translation id="3132277757485842847">ਅਸੀਂ ਤੁਹਾਡੇ ਫ਼ੋਨ ਨਾਲ ਇੱਕ ਕਨੈਕਸ਼ਨ ਬਰਕਰਾਰ ਨਹੀਂ ਰੱਖ ਸਕੇ। ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡਾ ਫ਼ੋਨ ਨਜ਼ਦੀਕ ਹੈ, ਅਣਲਾਕ ਹੈ ਅਤੇ ਉਸਦਾ ਬਲੂਟੁੱਥ ਅਤੇ ਵਾਈ-ਫਾਈ ਚਾਲੂ ਹੈ।</translation>
 <translation id="3132896062549112541">ਨਿਯਮ</translation>
@@ -2389,7 +2390,6 @@
 <translation id="3143515551205905069">ਸਿੰਕ ਰੱਦ ਕਰੋ</translation>
 <translation id="3143754809889689516">ਸ਼ੁਰੂ ਤੋਂ ਚਲਾਓ</translation>
 <translation id="3144647712221361880">ਦੇ ਤੌਰ 'ਤੇ ਲਿੰਕ ਖੋਲ੍ਹੋ</translation>
-<translation id="3144896554017119333">ਐਕਸਟੈਂਸ਼ਨਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ</translation>
 <translation id="3149510190863420837">Chrome ਐਪਸ</translation>
 <translation id="3150693969729403281">ਹੁਣੇ ਸੁਰੱਖਿਆ ਜਾਂਚ ਚਲਾਓ</translation>
 <translation id="3150927491400159470">ਹਾਰਡ ਰੀਲੋਡ</translation>
@@ -4599,6 +4599,7 @@
 <translation id="5260334392110301220">ਸਮਾਰਟ ਕੌਮੇ</translation>
 <translation id="5260508466980570042">ਮਾਫ਼ ਕਰਨਾ, ਤੁਹਾਡੀ ਈਮੇਲ ਜਾਂ ਪਾਸਵਰਡ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="5260958083445173099">ਸੰਭਵ ਹੋਣ 'ਤੇ, ਵੈੱਬਸਾਈਟਾਂ ਸਮੱਗਰੀ ਨੂੰ ਤੁਹਾਡੀਆਂ ਤਰਜੀਹੀ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਦਿਖਾਉਣਗੀਆਂ</translation>
+<translation id="5261619498868361045">ਕੰਟੇਨਰ ਦਾ ਨਾਮ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।</translation>
 <translation id="5261683757250193089">ਵੈੱਬ ਸਟੋਰ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="5262178194499261222">ਪਾਸਵਰਡ ਹਟਾਓ</translation>
 <translation id="5262784498883614021">ਨੈੱਟਵਰਕ ਨਾਲ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਨੈਕਟ ਕਰੋ</translation>
@@ -5005,6 +5006,7 @@
 <translation id="562935524653278697">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡਾਂ, ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਦਾ ਸਿੰਕ ਕਰਨਾ ਅਯੋਗ ਬਣਾਇਆ ਹੈ।</translation>
 <translation id="5631017369956619646">CPU ਵਰਤੋਂ</translation>
 <translation id="5632059346822207074">ਇਜਾਜ਼ਤ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਗਈ, ਜਵਾਬ ਦੇਣ ਲਈ Ctrl + Forward ਨੂੰ ਦਬਾਓ</translation>
+<translation id="5632221585574759616">ਐਕਸਟੈਂਸ਼ਨ ਇਜਾਜ਼ਤਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ</translation>
 <translation id="5632566673632479864">ਹੁਣ ਤੁਹਾਡੇ ਖਾਤੇ <ph name="EMAIL" /> ਨੂੰ ਮੁੱਖ ਖਾਤੇ ਵਜੋਂ ਵਰਤਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਕਿਉਂਕਿ ਇਸ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡਾਂ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਕਲੀਅਰ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="5632592977009207922">ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, <ph name="PERCENT_REMAINING" />% ਸਮਾਂ ਬਾਕੀ</translation>
 <translation id="5633149627228920745">ਸਿਸਟਮ ਸੰਬੰਧੀ ਲੋੜਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ</translation>
@@ -5625,6 +5627,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ਆਫ਼ਲਾਈਨ ਹੈ। ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="6220413761270491930">ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਕਰਨ ਵਿੱਚ ਗੜਬੜ</translation>
 <translation id="6224481128663248237">ਫਾਰਮੈਟਿੰਗ ਸਫਲਤਪੂਰਵਕ ਪੂਰੀ ਹੋਈ!</translation>
+<translation id="622474711739321877">ਇਹ ਕੰਟੇਨਰ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ।</translation>
 <translation id="622537739776246443">ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਮਿਟਾਇਆ ਜਾਵੇਗਾ</translation>
 <translation id="6225475702458870625">ਤੁਹਾਡੇ <ph name="PHONE_NAME" /> ਤੋਂ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਉਪਲਬਧ ਹੈ</translation>
 <translation id="6226777517901268232">ਨਿੱਜੀ ਕੁੰਜੀ ਫ਼ਾਈਲ (ਵਿਕਲਪਿਕ)</translation>
@@ -6427,6 +6430,7 @@
 <translation id="696780070563539690">ਸਾਈਟਾਂ ਵੱਖ-ਵੱਖ ਸਾਈਟਾਂ ਵਿਚਲੀ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਦੇਖਣ ਲਈ ਕੁਕੀਜ਼ ਨੂੰ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ, ਉਦਾਹਰਨ ਲਈ, ਵਿਗਿਆਪਨਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ</translation>
 <translation id="6968288415730398122">ਸਕ੍ਰੀਨ ਲਾਕ ਸੰਰੂਪਿਤ ਕਰਨ ਲਈ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="6969047215179982698">ਨਜ਼ਦੀਕੀ ਸਾਂਝ ਬੰਦ ਕਰੋ</translation>
+<translation id="6969216690072714773">ਨਵੀਂ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤੀ ਜਾਣਕਾਰੀ ਦਾਖਲ ਕਰੋ ਤਾਂ ਜੋ ਇਸਨੂੰ ਇਸ ਡੀਵਾਈਸ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕੇ।</translation>
 <translation id="6970480684834282392">ਸਟਾਰਟਅਪ ਪ੍ਰਕਾਰ</translation>
 <translation id="6970543303783413625">ਪਾਸਵਰਡਾਂ ਨੂੰ ਆਯਾਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਤੁਸੀਂ ਇੱਕ ਵਾਰ ਵਿੱਚ ਸਿਰਫ਼ <ph name="COUNT" /> ਪਾਸਵਰਡ ਤੱਕ ਆਯਾਤ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="6970856801391541997">ਚੋਣਵੇਂ ਪੰਨੇ ਪ੍ਰਿੰਟ ਕਰੋ</translation>
@@ -6833,6 +6837,7 @@
 <translation id="7377481913241237033">ਕੋਡ ਨਾਲ ਕਨੈਕਟ ਕਰੋ</translation>
 <translation id="7378611153938412599">ਕਮਜ਼ੋਰ ਪਾਸਵਰਡਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾ ਰਹੇ ਹੋ। <ph name="BEGIN_LINK" />ਹੋਰ ਸੁਰੱਖਿਆ ਨੁਕਤੇ ਦੇਖੋ।<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">'Chrome ਵੈੱਬ ਸਟੋਰ' ਖੋਲ੍ਹੋ</translation>
+<translation id="7380272457268061606">ਕੀ ਸਥਾਨਕ ਡਾਟਾ ਰਿਕਵਰੀ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?</translation>
 <translation id="7380459290951585794">ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡਾ ਫ਼ੋਨ ਨਜ਼ਦੀਕ ਹੈ, ਅਣਲਾਕ ਹੈ ਅਤੇ ਉਸਦਾ ਬਲੂਟੁੱਥ ਅਤੇ ਵਾਈ-ਫਾਈ ਚਾਲੂ ਹੈ</translation>
 <translation id="7380622428988553498">ਡੀਵਾਈਸ ਨਾਮ ਵਿੱਚ ਅਵੈਧ ਅੱਖਰ-ਚਿੰਨ੍ਹ ਹਨ</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ</translation>
@@ -7083,6 +7088,7 @@
 <translation id="7617263010641145920">Play Store ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="7617648809369507487">ਸ਼ਾਂਤ ਸੁਨੇਹਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰੋ</translation>
 <translation id="7621382409404463535">ਸਿਸਟਮ ਡੀਵਾਈਸ ਸੰਰੂਪਣ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ।</translation>
+<translation id="7621595347123595643">ਜੇ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਭੁੱਲ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਸਥਾਨਕ ਡਾਟੇ ਨੂੰ ਮੁੜ-ਹਾਸਲ ਨਹੀਂ ਕਰ ਸਕੋਗੇ।</translation>
 <translation id="7622114377921274169">ਚਾਰਜ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।</translation>
 <translation id="7622768823216805500">ਸਾਈਟਾਂ ਆਮ ਤੌਰ 'ਤੇ ਆਸਾਨ ਚੈੱਕਆਊਟ ਜਿਹੀਆਂ ਖਰੀਦਦਾਰੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਭੁਗਤਾਨ ਹੈਂਡਲਰ ਸਥਾਪਤ ਕਰਦੀਆਂ ਹਨ</translation>
 <translation id="7622903810087708234">ਪਾਸਵਰਡ ਵੇਰਵੇ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index c5a1347..d1956ca 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2062,7 +2062,6 @@
 <translation id="2852385257476173980">Gdy zaczniesz przeglądać strony, tu pojawi się lista witryn</translation>
 <translation id="285241945869362924">Automatycznie tworzy napisy dla dźwięku i wideo. Dźwięk ani napisy nie są wysyłane poza urządzenie.</translation>
 <translation id="2856776373509145513">Utwórz nowy kontener</translation>
-<translation id="2858138569776157458">Popularne</translation>
 <translation id="2861301611394761800">Aktualizacja systemu zakończona. Uruchom system ponownie.</translation>
 <translation id="2861941300086904918">Menedżer zabezpieczeń klienta rodzimego</translation>
 <translation id="2862815659905780618">Usuń środowisko programistyczne Linuksa</translation>
@@ -2349,6 +2348,7 @@
 <translation id="3129173833825111527">Lewy margines</translation>
 <translation id="3129215702932019810">Błąd podczas uruchamiania aplikacji</translation>
 <translation id="3130528281680948470">Twoje urządzenie zostanie zresetowane. Wszystkie zapisane lokalnie konta użytkowników i dane zostaną usunięte. Tej czynności nie można cofnąć.</translation>
+<translation id="3130863904455712965">Historia i inne elementy</translation>
 <translation id="313205617302240621">Nie pamiętasz hasła?</translation>
 <translation id="3132277757485842847">Nie udało się utrzymać połączenia z Twoim telefonem. Sprawdź, czy telefon jest w pobliżu, jest odblokowany i ma włączone Bluetooth oraz Wi-Fi.</translation>
 <translation id="3132896062549112541">Reguła</translation>
@@ -2362,7 +2362,6 @@
 <translation id="3143515551205905069">Anuluj synchronizację</translation>
 <translation id="3143754809889689516">Odtwórz od początku</translation>
 <translation id="3144647712221361880">Otwórz link jako</translation>
-<translation id="3144896554017119333">Rozszerzenia i inne</translation>
 <translation id="3149510190863420837">Aplikacje Chrome</translation>
 <translation id="3150693969729403281">Wykonaj kontrolę zabezpieczeń teraz</translation>
 <translation id="3150927491400159470">Wymuś ponowne załadowanie</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 83dab5d..f51a4518 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">Uma lista de sites que você visita pode aparecer aqui conforme você navega na Web</translation>
 <translation id="285241945869362924">Cria legendas automaticamente para conteúdo de áudio e vídeo. O áudio e as legendas nunca deixam o dispositivo.</translation>
 <translation id="2856776373509145513">Criar um novo contêiner</translation>
-<translation id="2858138569776157458">Sites famosos</translation>
 <translation id="2861301611394761800">A atualização do sistema foi concluída. Reinicie o sistema.</translation>
 <translation id="2861941300086904918">Gerenciador de segurança do Cliente nativo</translation>
 <translation id="2862815659905780618">Remover o ambiente de desenvolvimento do Linux</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">Margem esquerda</translation>
 <translation id="3129215702932019810">Erro ao abrir o aplicativo</translation>
 <translation id="3130528281680948470">Seu dispositivo será redefinido, e todas as contas de usuário final e dados locais serão removidos. Esta ação não pode ser desfeita.</translation>
+<translation id="3130863904455712965">Histórico e mais</translation>
 <translation id="313205617302240621">Esqueceu a senha?</translation>
 <translation id="3132277757485842847">Não foi possível manter uma conexão com o smartphone. Verifique se o smartphone está por perto, desbloqueado e com o Wi-Fi e o Bluetooth ativados.</translation>
 <translation id="3132896062549112541">Regra</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">Cancelar sincronização</translation>
 <translation id="3143754809889689516">Reproduzir do início</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
-<translation id="3144896554017119333">Extensões e mais</translation>
 <translation id="3149510190863420837">apps do Chrome</translation>
 <translation id="3150693969729403281">Executar confirmação de segurança</translation>
 <translation id="3150927491400159470">Recarregamento forçado</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index ec42a0c..f4eabd1 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -620,6 +620,7 @@
 <translation id="1573117025466282241">Usar telemóvel com código QR</translation>
 <translation id="1575741822946219011">Idiomas e métodos de introdução</translation>
 <translation id="1576594961618857597">Avatar branco predefinido</translation>
+<translation id="1576729678809834061">Denunciar este resultado da pesquisa</translation>
 <translation id="1578558981922970608">Forçar fecho</translation>
 <translation id="1580772913177567930">Contacte o administrador</translation>
 <translation id="1581962803218266616">Mostrar no Finder</translation>
@@ -1011,6 +1012,7 @@
 <translation id="1909880997794698664">Tem a certeza de que pretende manter permanentemente este dispositivo no modo de quiosque?</translation>
 <translation id="1910721550319506122">Bem-vindo!</translation>
 <translation id="1910736334623230603">Não é possível pesquisar várias imagens. Adicione uma imagem de cada vez.</translation>
+<translation id="1910908536872421421">O Chrome for Testing v<ph name="BROWSER_VERSION" /> destina-se apenas a testes automáticos. Para uma navegação normal, use uma versão padrão do Chrome atualizada automaticamente.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Desligar</translation>
 <translation id="1916502483199172559">Avatar vermelho predefinido</translation>
@@ -2074,7 +2076,6 @@
 <translation id="2852385257476173980">Uma lista de sites que visita pode aparecer aqui enquanto navega na Web</translation>
 <translation id="285241945869362924">Cria automaticamente legendas para áudio e vídeo. O áudio e as legendas nunca saem do seu dispositivo.</translation>
 <translation id="2856776373509145513">Crie um novo contentor</translation>
-<translation id="2858138569776157458">Princ. sites</translation>
 <translation id="2861301611394761800">Actualização do sistema concluída. Reinicie o sistema.</translation>
 <translation id="2861941300086904918">Gestor de segurança Native Client</translation>
 <translation id="2862815659905780618">Remover ambiente de programação do Linux</translation>
@@ -2339,6 +2340,7 @@
 <translation id="3105796011181310544">Pretende reverter para o Google?</translation>
 <translation id="310671807099593501">O site está a utilizar o Bluetooth.</translation>
 <translation id="3108931485517391283">Não é possível receber</translation>
+<translation id="3108957152224931571">Cor de realce</translation>
 <translation id="3109206895301430738">Grupos de separadores guardados</translation>
 <translation id="3109724472072898302">Fechado</translation>
 <translation id="3112292765614504292">Tamanho da app: <ph name="APP_SIZE" /></translation>
@@ -2361,6 +2363,7 @@
 <translation id="3129173833825111527">Margem esquerda</translation>
 <translation id="3129215702932019810">Erro ao iniciar a app</translation>
 <translation id="3130528281680948470">O dispositivo é reposto e todos os dados locais e as contas de utilizador são removidos. Não é possível anular esta ação.</translation>
+<translation id="3130863904455712965">Histórico e muito mais</translation>
 <translation id="313205617302240621">Esqueceu-se da palavra-passe?</translation>
 <translation id="3132277757485842847">Não foi possível manter uma ligação ao seu telemóvel. Certifique-se de que o telemóvel está próximo, desbloqueado e com o Bluetooth e o Wi-Fi ativados.</translation>
 <translation id="3132896062549112541">Regra</translation>
@@ -2374,7 +2377,6 @@
 <translation id="3143515551205905069">Cancelar sincronização</translation>
 <translation id="3143754809889689516">Reproduzir desde o início</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
-<translation id="3144896554017119333">Extensões e mais</translation>
 <translation id="3149510190863420837">Apps do Chrome</translation>
 <translation id="3150693969729403281">Executar verificação de segurança agora</translation>
 <translation id="3150927491400159470">Atualização Pesada</translation>
@@ -3055,6 +3057,7 @@
 <translation id="3798449238516105146">Versão</translation>
 <translation id="3798632811625902122">O dispositivo Bluetooth <ph name="DEVICE" /> quer obter a autorização para sincronizar.</translation>
 <translation id="3799128412641261490">Definições do acesso por comutador</translation>
+<translation id="3800030395703848668">Ver opções da lista</translation>
 <translation id="3800806661949714323">Mostrar tudo (recomendado)</translation>
 <translation id="3800828618615365228">Termos Adicionais do Google Chrome e Chrome OS</translation>
 <translation id="3802486193901166966">Esta extensão não requer autorizações especiais e não tem acesso adicional a sites</translation>
@@ -3250,6 +3253,7 @@
 <translation id="3965811923470826124">Com</translation>
 <translation id="3965965397408324205">Sair de <ph name="PROFILE_NAME" /></translation>
 <translation id="3966072572894326936">Escolher outra pasta...</translation>
+<translation id="3966094581547899417">Detalhes da zona Wi-Fi</translation>
 <translation id="3967822245660637423">Transferência concluída</translation>
 <translation id="3967841595862839006">Escolher o idioma e o teclado</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3301,6 +3305,7 @@
 <translation id="4014432863917027322">Reparar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="4015163439792426608">Tem extensões? <ph name="BEGIN_LINK" />Faça a gestão das suas extensões<ph name="END_LINK" /> num lugar acessível.</translation>
 <translation id="4017225831995090447">Criar código QR para este link</translation>
+<translation id="4019983356493507433">Editar lista de marcadores</translation>
 <translation id="4020327272915390518">Menu de opções</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3512,6 +3517,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Esta extensão não é permitida}other{Estas extensões não são permitidas}}</translation>
 <translation id="4231095370974836764">Instale apps e jogos do Google Play no dispositivo <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Fechar controlos de jogos</translation>
+<translation id="4231542173270219144">Quando as avaliações estão ativadas, a redução de spam e fraudes depende de símbolos de estado privado para ajudar os sites a combater fraudes e distinguir bots de pessoas.</translation>
 <translation id="4232375817808480934">Configure o Kerberos</translation>
 <translation id="4235965441080806197">Cancelar início de sessão</translation>
 <translation id="4236163961381003811">Descobrir mais extensões</translation>
@@ -3708,6 +3714,7 @@
 <translation id="4412698727486357573">Centro de Ajuda</translation>
 <translation id="44141919652824029">Permitir que o "<ph name="APP_NAME" />" obtenha a lista dos seus dispositivos USB associados?</translation>
 <translation id="4414232939543644979">Nova Janela de Navegação Anón&amp;ima</translation>
+<translation id="4414648713167199100">Usa os dados móveis do seu Chromebook, sendo que o seu operador pode cobrar taxas adicionais. Pode aumentar a utilização da bateria. <ph name="BEGIN_LINK_LEARN_MORE" />Saiba mais<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">Tem tudo pronto para começar a utilizar o <ph name="DEVICE_TYPE" />.</translation>
 <translation id="4415245286584082850">Não foram encontrados dispositivos. Abra um artigo do Centro de Ajuda num novo separador.</translation>
 <translation id="4415276339145661267">Gerir a sua Conta Google</translation>
@@ -4217,6 +4224,7 @@
 <translation id="4885692421645694729">Esta extensão não tem acesso adicional a sites</translation>
 <translation id="4887424188275796356">Abrir com o System Viewer</translation>
 <translation id="488785315393301722">Mostrar Detalhes</translation>
+<translation id="488862352499217187">Criar nova pasta</translation>
 <translation id="4890773143211625964">Mostrar opções avançadas da impressora</translation>
 <translation id="4891089016822695758">Fórum da versão beta</translation>
 <translation id="4892229439761351791">O site pode utilizar Bluetooth.</translation>
@@ -4338,6 +4346,7 @@
 <translation id="5009463889040999939">A mudar o nome do perfil. Esta ação pode demorar alguns minutos.</translation>
 <translation id="5010043101506446253">Autoridade de certificação</translation>
 <translation id="501057610015570208">A app com o atributo de manifesto "kiosk_only" tem de ser instalada no modo quiosque do ChromeOS Flex</translation>
+<translation id="5010886807652684893">Vista visual</translation>
 <translation id="5015344424288992913">A resolver proxy...</translation>
 <translation id="5016491575926936899">Pode enviar mensagens de texto a partir do computador, partilhar a ligação à Internet, responder a notificações de conversas e desbloquear o <ph name="DEVICE_TYPE" /> com o telemóvel.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Pode navegar pelas páginas com um cursor de texto. Prima Ctrl + Pesquisa + 7 para desativar esta opção.</translation>
@@ -4581,6 +4590,7 @@
 <translation id="5260334392110301220">Aspas inteligentes</translation>
 <translation id="5260508466980570042">Lamentamos, mas não foi possível confirmar o seu email ou palavra-passe. Tente novamente.</translation>
 <translation id="5260958083445173099">Os Websites vão apresentar conteúdos nos seus idiomas favoritos, quando tal for possível</translation>
+<translation id="5261619498868361045">O nome do contentor não pode estar vazio.</translation>
 <translation id="5261683757250193089">Abrir na Web Store</translation>
 <translation id="5262178194499261222">Remover palavra-passe</translation>
 <translation id="5262784498883614021">Ligar automaticamente à rede</translation>
@@ -4988,6 +4998,7 @@
 <translation id="562935524653278697">O seu gestor desativou a sincronização dos seus marcadores, histórico, palavras-passe e outras definições.</translation>
 <translation id="5631017369956619646">Utilização da CPU</translation>
 <translation id="5632059346822207074">Autorização solicitada, prima Ctrl + Avançar para responder</translation>
+<translation id="5632221585574759616">Saiba mais acerca das autorizações de extensões</translation>
 <translation id="5632566673632479864">A sua conta <ph name="EMAIL" /> já não é permitida como a conta principal. Como esta conta é gerida por <ph name="DOMAIN" />, os marcadores, o histórico, as palavras-passe e outras definições serão apagados deste dispositivo.</translation>
 <translation id="5632592977009207922">A transferir, resta(m) <ph name="PERCENT_REMAINING" />%…</translation>
 <translation id="5633149627228920745">Saber mais sobre os requisitos do sistema</translation>
@@ -5608,6 +5619,7 @@
 <translation id="6218058416316985984">O <ph name="DEVICE_TYPE" /> está offline. Ligue-se à Internet e tente novamente.</translation>
 <translation id="6220413761270491930">Erro ao carregar a extensão</translation>
 <translation id="6224481128663248237">A formatação foi concluída com êxito!</translation>
+<translation id="622474711739321877">Este contentor já existe.</translation>
 <translation id="622537739776246443">O perfil será eliminado</translation>
 <translation id="6225475702458870625">Ligação de dados disponível a partir do seu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Ficheiro de chave privada (opcional)</translation>
@@ -6084,6 +6096,7 @@
 <translation id="6674571176963658787">Para iniciar a sincronização, introduza a sua frase de acesso</translation>
 <translation id="6675665718701918026">Dispositivo apontador ligado</translation>
 <translation id="6676212663108450937">Considere utilizar auscultadores enquanto treina a sua voz</translation>
+<translation id="6677942524382973058">Os símbolos de estado privado melhoram a privacidade na Web e não podem ser usados para descobrir a sua identidade.</translation>
 <translation id="6678717876183468697">URL de consulta</translation>
 <translation id="6680442031740878064">Disponível: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Classificar</translation>
@@ -6406,6 +6419,7 @@
 <translation id="696780070563539690">Os sites não podem utilizar cookies para ver a sua atividade de navegação em diferentes sites, por exemplo, para personalizar anúncios.</translation>
 <translation id="6968288415730398122">Introduza a sua palavra-passe para configurar o bloqueio de ecrã</translation>
 <translation id="6969047215179982698">Desativar a funcionalidade Partilhar na proximidade</translation>
+<translation id="6969216690072714773">Introduza informações novas ou atualize informações existentes a associar a este dispositivo.</translation>
 <translation id="6970480684834282392">Tipo de arranque</translation>
 <translation id="6970543303783413625">Não é possível importar palavras-passe. Só pode importar até <ph name="COUNT" /> palavras-passe de cada vez.</translation>
 <translation id="6970856801391541997">Imprimir Páginas Específicas</translation>
@@ -6812,6 +6826,7 @@
 <translation id="7377481913241237033">Associar com um código</translation>
 <translation id="7378611153938412599">As palavras-passe fracas são fáceis de adivinhar. Certifique-se de que cria palavras-passe fortes. <ph name="BEGIN_LINK" />Veja mais sugestões de segurança.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Abrir a Web Store do Chrome</translation>
+<translation id="7380272457268061606">Desativar a recuperação de dados locais?</translation>
 <translation id="7380459290951585794">Certifique-se de que o telemóvel está próximo, desbloqueado e com o Bluetooth e o Wi-Fi ativados</translation>
 <translation id="7380622428988553498">O nome do dispositivo contém carateres inválidos.</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> foi atualizada.</translation>
@@ -6911,6 +6926,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# separador aberto. Prima para ativar/desativar a Faixa de separadores.}other{# separadores abertos. Prima para ativar/desativar a Faixa de separadores.}}</translation>
 <translation id="7465635034594602553">Ocorreu um erro. Aguarde alguns minutos e execute app <ph name="APP_NAME" /> novamente.</translation>
 <translation id="7465778193084373987">URL de revogação do certificado Netscape</translation>
+<translation id="7466431077154602932">Vista compacta</translation>
 <translation id="746861123368584540">Extensão carregada.</translation>
 <translation id="7470424110735398630">Com autorização para ver a sua área de transferência</translation>
 <translation id="747114903913869239">Erro: não foi possível descodificar a extensão</translation>
@@ -7061,6 +7077,7 @@
 <translation id="7617263010641145920">Ativar Play Store</translation>
 <translation id="7617648809369507487">Utilizar mensagens mais discretas</translation>
 <translation id="7621382409404463535">O sistema não conseguiu guardar a configuração do dispositivo.</translation>
+<translation id="7621595347123595643">Caso se esqueça da palavra-passe ou do PIN, não pode recuperar os dados locais.</translation>
 <translation id="7622114377921274169">A carregar…</translation>
 <translation id="7622768823216805500">Normalmente, os sites instalam controladores de pagamentos para funcionalidades de compras como o pagamento mais fácil.</translation>
 <translation id="7622903810087708234">Detalhes da palavra-passe</translation>
@@ -7832,6 +7849,7 @@
 <translation id="8288539437195337464">Confirme que o seu dispositivo está atualizado e tente novamente</translation>
 <translation id="8289128870594824098">Tamanho do disco</translation>
 <translation id="8289509909262565712">Damos-lhe as boas-vindas ao <ph name="DEVICE_OS" /></translation>
+<translation id="8291415872436043161">Transfira o Chrome</translation>
 <translation id="8293206222192510085">Adicionar marcador</translation>
 <translation id="8294431847097064396">Origem</translation>
 <translation id="8298429963694909221">Já pode receber notificações do seu telemóvel no <ph name="DEVICE_TYPE" />. Ignorar as notificações no <ph name="DEVICE_TYPE" /> também as ignora no seu telemóvel. Certifique-se de que o telemóvel está próximo e com o Bluetooth e o Wi-Fi ativados.</translation>
@@ -8135,6 +8153,7 @@
 <translation id="8602674530529411098">Apps (beta)</translation>
 <translation id="8602851771975208551">Outro programa do computador adicionou uma aplicação que pode alterar o funcionamento do Chrome</translation>
 <translation id="8605428685123651449">Memória SQLite</translation>
+<translation id="8607326572516521315">A redução de spam e fraudes depende de símbolos de estado privados para ajudar os sites a combater fraudes e distinguir bots de pessoas.</translation>
 <translation id="8608618451198398104">Adicione uma permissão Kerberos</translation>
 <translation id="8609465669617005112">Mover para cima</translation>
 <translation id="8610103157987623234">Formato incorreto. Tente novamente.</translation>
@@ -8459,6 +8478,7 @@
 <translation id="8890170499370378450">Pode incorrer em custos de dados móveis</translation>
 <translation id="8890516388109605451">Fontes</translation>
 <translation id="8890529496706615641">Não foi possível mudar o nome do perfil. Tente novamente ou contacte o operador para obter apoio técnico.</translation>
+<translation id="8891996167592415151">Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.</translation>
 <translation id="8892168913673237979">Está tudo pronto!</translation>
 <translation id="8893801527741465188">Desinstalação concluída</translation>
 <translation id="8893928184421379330">Lamentamos, não foi possível reconhecer o aparelho <ph name="DEVICE_LABEL" />.</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 0db1f2f..d66f42ad 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -621,6 +621,7 @@
 <translation id="1573117025466282241">Folosește telefonul cu un cod QR</translation>
 <translation id="1575741822946219011">Limbi și metode de introducere a textului</translation>
 <translation id="1576594961618857597">Avatar alb prestabilit</translation>
+<translation id="1576729678809834061">Raportează acest rezultat al căutării</translation>
 <translation id="1578558981922970608">Închide forțat</translation>
 <translation id="1580772913177567930">Contactează administratorul</translation>
 <translation id="1581962803218266616">Afișează în Finder</translation>
@@ -1012,6 +1013,7 @@
 <translation id="1909880997794698664">Sigur doriți să păstrați permanent acest dispozitiv în modul chioșc?</translation>
 <translation id="1910721550319506122">Bun venit!</translation>
 <translation id="1910736334623230603">Nu poți căuta mai multe imagini. Adaugă câte o imagine.</translation>
+<translation id="1910908536872421421">Chrome for Testing v<ph name="BROWSER_VERSION" /> este creat numai pentru testarea automată. Pentru navigarea obișnuită, folosește o versiune Chrome standard, care se actualizează automat.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Încheie apelul</translation>
 <translation id="1916502483199172559">Avatar roșu prestabilit</translation>
@@ -2075,7 +2077,6 @@
 <translation id="2852385257476173980">Aici poate apărea o listă a site-urilor pe care le accesezi pe măsură ce navighezi pe web</translation>
 <translation id="285241945869362924">Creează automat subtitrări pentru conținut audio și video. Conținutul audio și subtitrările nu părăsesc niciodată dispozitivul.</translation>
 <translation id="2856776373509145513">Creează un container nou</translation>
-<translation id="2858138569776157458">Site-uri de top</translation>
 <translation id="2861301611394761800">Sistemul a fost actualizat. Repornește-l.</translation>
 <translation id="2861941300086904918">Manager de securitate Client nativ</translation>
 <translation id="2862815659905780618">Elimină mediul de dezvoltare Linux</translation>
@@ -2362,6 +2363,7 @@
 <translation id="3129173833825111527">Margine la stânga</translation>
 <translation id="3129215702932019810">Eroare la lansarea aplicației</translation>
 <translation id="3130528281680948470">Dispozitivul va fi resetat, iar toate conturile de utilizator și datele locale vor fi eliminate. Această operațiune nu poate fi anulată.</translation>
+<translation id="3130863904455712965">Istoric și altele</translation>
 <translation id="313205617302240621">Ai uitat parola?</translation>
 <translation id="3132277757485842847">Nu s-a putut păstra conexiunea cu telefonul. Asigură-te că telefonul este în apropiere, deblocat, cu Bluetooth și Wi-Fi activate.</translation>
 <translation id="3132896062549112541">Regula</translation>
@@ -2375,7 +2377,6 @@
 <translation id="3143515551205905069">Anulează sincronizarea</translation>
 <translation id="3143754809889689516">Redă de la început</translation>
 <translation id="3144647712221361880">Deschide linkul ca</translation>
-<translation id="3144896554017119333">Extensii și altele</translation>
 <translation id="3149510190863420837">Aplicații Chrome</translation>
 <translation id="3150693969729403281">Rulează acum verificarea de siguranță</translation>
 <translation id="3150927491400159470">Reîncărcați forțat</translation>
@@ -3056,6 +3057,7 @@
 <translation id="3798449238516105146">Versiune</translation>
 <translation id="3798632811625902122">Dispozitivul Bluetooth <ph name="DEVICE" /> solicită permisiunea de a se asocia.</translation>
 <translation id="3799128412641261490">Setările pentru accesul prin comutare</translation>
+<translation id="3800030395703848668">Vezi opțiunile pentru listă</translation>
 <translation id="3800806661949714323">Afișează-le pe toate (recomandat)</translation>
 <translation id="3800828618615365228">Condițiile suplimentare pentru Google Chrome și sistemul de operare Chrome</translation>
 <translation id="3802486193901166966">Această extensie nu necesită permisiuni speciale și nu are acces suplimentar la site-uri</translation>
@@ -3251,6 +3253,7 @@
 <translation id="3965811923470826124">Cu</translation>
 <translation id="3965965397408324205">Ieși din <ph name="PROFILE_NAME" /></translation>
 <translation id="3966072572894326936">Alegeți alt dosar...</translation>
+<translation id="3966094581547899417">Detalii despre hotspot</translation>
 <translation id="3967822245660637423">Descărcare finalizată</translation>
 <translation id="3967841595862839006">Alege limba și tastatura</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3302,6 +3305,7 @@
 <translation id="4014432863917027322">Repari „<ph name="EXTENSION_NAME" />”?</translation>
 <translation id="4015163439792426608">Ai extensii? <ph name="BEGIN_LINK" />Gestionează extensiile<ph name="END_LINK" /> ușor, dintr-un singur loc.</translation>
 <translation id="4017225831995090447">Creează un cod QR pentru acest link</translation>
+<translation id="4019983356493507433">Editează lista de marcaje</translation>
 <translation id="4020327272915390518">Meniul Opțiuni</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3513,6 +3517,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Extensia nu este permisă}few{Unele extensii nu sunt permise}other{Unele extensii nu sunt permise}}</translation>
 <translation id="4231095370974836764">Instalează aplicații și jocuri din Google Play pe <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Închide comenzile pentru joc</translation>
+<translation id="4231542173270219144">În versiunile de încercare, Reducerea spamului și fraudei se bazează pe indicative private de stare pentru a ajuta site-urile să prevină frauda și să deosebească aplicațiile bot de persoane.</translation>
 <translation id="4232375817808480934">Configurează Kerberos</translation>
 <translation id="4235965441080806197">Anulează conectarea</translation>
 <translation id="4236163961381003811">Descoperă mai multe extensii</translation>
@@ -3709,6 +3714,7 @@
 <translation id="4412698727486357573">Centrul de ajutor</translation>
 <translation id="44141919652824029">Permiți ca „<ph name="APP_NAME" />” să obțină lista dispozitivelor USB atașate?</translation>
 <translation id="4414232939543644979">Fereastră nouă &amp;incognito</translation>
+<translation id="4414648713167199100">Folosește datele mobile ale Chromebookului și operatorul poate percepe taxe suplimentare. Poate crește utilizarea bateriei. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284"><ph name="DEVICE_TYPE" /> este gata de utilizare.</translation>
 <translation id="4415245286584082850">Nu s-au găsit dispozitive. Deschide într-o nouă filă un articol din centrul de ajutor.</translation>
 <translation id="4415276339145661267">Gestionează-ți Contul Google</translation>
@@ -4218,6 +4224,7 @@
 <translation id="4885692421645694729">Această extensie nu are acces suplimentar la site-uri</translation>
 <translation id="4887424188275796356">Deschideți cu Utilitarul de vizualizare al sistemului</translation>
 <translation id="488785315393301722">Afișați detaliile</translation>
+<translation id="488862352499217187">Creează un dosar nou</translation>
 <translation id="4890773143211625964">Afișează opțiunile avansate pentru imprimantă</translation>
 <translation id="4891089016822695758">Forumul pentru versiunea beta</translation>
 <translation id="4892229439761351791">Site-ul poate folosi Bluetooth</translation>
@@ -4339,6 +4346,7 @@
 <translation id="5009463889040999939">Se redenumește profilul. Poate dura câteva minute.</translation>
 <translation id="5010043101506446253">Autoritate de certificare</translation>
 <translation id="501057610015570208">Aplicația cu atributul kiosk_only din manifest trebuie să fie instalată în modul chioșc pentru sistemul de operare Chrome Flex.</translation>
+<translation id="5010886807652684893">Afișare vizuală</translation>
 <translation id="5015344424288992913">Se rezolvă proxy-ul...</translation>
 <translation id="5016491575926936899">Poți să trimiți mesaje text de pe computer, să permiți accesul la conexiunea de internet, să răspunzi la notificări privind conversațiile și să deblochezi <ph name="DEVICE_TYPE" /> cu telefonul.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Poți să navighezi în pagini folosind cursorul pentru text. Apasă Ctrl + tasta de căutare + 7 pentru a-l dezactiva.</translation>
@@ -6089,6 +6097,7 @@
 <translation id="6674571176963658787">Pentru a porni sincronizarea, introdu expresia de acces</translation>
 <translation id="6675665718701918026">Dispozitivul de indicat este conectat</translation>
 <translation id="6676212663108450937">Îți recomandăm să folosești căștile când îți antrenezi vocea</translation>
+<translation id="6677942524382973058">Indicativele de stare private îmbunătățesc confidențialitatea pe web și nu pot fi folosite pentru a afla cine ești.</translation>
 <translation id="6678717876183468697">Adresa URL a interogării</translation>
 <translation id="6680442031740878064">Spațiu disponibil: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Ritmul</translation>
@@ -6918,6 +6927,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# filă deschisă; atinge pentru a comuta bara de file}few{# file deschise; atinge pentru a comuta bara de file}other{# de file deschise; atinge pentru a comuta bara de file}}</translation>
 <translation id="7465635034594602553">A apărut o eroare. Așteaptă câteva minute și rulează din nou <ph name="APP_NAME" />.</translation>
 <translation id="7465778193084373987">Adresă URL de revocare a certificatului Netscape</translation>
+<translation id="7466431077154602932">Afișare compactă</translation>
 <translation id="746861123368584540">Extensia s-a încărcat</translation>
 <translation id="7470424110735398630">Au permisiunea de a vedea clipboardul</translation>
 <translation id="747114903913869239">Eroare: extensia nu poate fi decodificată</translation>
@@ -7840,6 +7850,7 @@
 <translation id="8288539437195337464">Asigură-te că dispozitivul este actualizat și încearcă din nou</translation>
 <translation id="8289128870594824098">Dimensiunea discului</translation>
 <translation id="8289509909262565712">Bun venit la <ph name="DEVICE_OS" /></translation>
+<translation id="8291415872436043161">Descarcă Chrome</translation>
 <translation id="8293206222192510085">Adăugați marcaj</translation>
 <translation id="8294431847097064396">Sursă</translation>
 <translation id="8298429963694909221">Acum poți primi notificări de pe telefon pe dispozitivul <ph name="DEVICE_TYPE" />. Dacă închizi notificările pe <ph name="DEVICE_TYPE" />, le vei închide și pe telefon. Asigură-te că telefonul este în apropiere, cu Bluetooth și Wi-Fi activate.</translation>
@@ -8143,6 +8154,7 @@
 <translation id="8602674530529411098">Aplicații (beta)</translation>
 <translation id="8602851771975208551">Un alt program de pe computerul dvs. a adăugat o aplicație care poate schimba modul în care funcționează Chrome.</translation>
 <translation id="8605428685123651449">Memorie SQLite</translation>
+<translation id="8607326572516521315">Reducerea spamului și fraudei se bazează pe indicative private de stare pentru a ajuta site-urile să prevină frauda și să deosebească aplicațiile bot de persoane.</translation>
 <translation id="8608618451198398104">Adaugă un tichet Kerberos</translation>
 <translation id="8609465669617005112">Mutați mai sus</translation>
 <translation id="8610103157987623234">Formatul este incorect, încearcă din nou</translation>
@@ -8430,6 +8442,7 @@
 <translation id="8859174528519900719">Subcadru: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8859402192569844210">Nu s-au putut încărca termenii și condițiile</translation>
 <translation id="8859662783913000679">Cont de părinte</translation>
+<translation id="8860973272057162405">{COUNT,plural, =1{{COUNT} cont}few{{COUNT} conturi}other{{COUNT} de conturi}}</translation>
 <translation id="8861568709166518036">Folosește butoanele de pe ecran pentru a naviga la ecranul de pornire, înapoi și pentru a comuta între aplicații. Se activează automat dacă ai activat ChromeVox sau Clicurile automate.</translation>
 <translation id="8862003515646449717">Comută la un browser rapid</translation>
 <translation id="8863753581171631212">Deschide linkul într-o fereastră nouă în <ph name="APP" /></translation>
@@ -8468,6 +8481,7 @@
 <translation id="8890170499370378450">Se pot aplica taxe pentru date mobile</translation>
 <translation id="8890516388109605451">Surse</translation>
 <translation id="8890529496706615641">Profilul nu a putut fi redenumit. Încearcă din nou sau contactează operatorul pentru asistență tehnică.</translation>
+<translation id="8891996167592415151">Pe baza interacțiunii tale cu un site, de exemplu, conectarea frecventă la un cont, acel site poate să emită un indicativ privat de stare pentru browserul tău. Mai târziu, dacă alte site-uri pe care le accesezi verifică și găsesc un indicativ privat de stare valid, există mai multe șanse să te trateze ca pe o persoană, nu ca pe o aplicație bot.</translation>
 <translation id="8892168913673237979">Totul este pregătit!</translation>
 <translation id="8893801527741465188">Dezinstalarea este finalizată</translation>
 <translation id="8893928184421379330">Ne pare rău, dispozitivul <ph name="DEVICE_LABEL" /> nu a putut fi recunoscut.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 4f9ce049..08b53a17 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -2077,7 +2077,6 @@
 <translation id="2852385257476173980">Когда вы начнете посещать сайты, здесь может появиться их список.</translation>
 <translation id="285241945869362924">Субтитры к медиаконтенту создаются автоматически. Аудиофайлы и субтитры хранятся только на вашем устройстве.</translation>
 <translation id="2856776373509145513">Создайте контейнер</translation>
-<translation id="2858138569776157458">Топ сайтов</translation>
 <translation id="2861301611394761800">Обновление системы завершено. Перезапустите компьютер.</translation>
 <translation id="2861941300086904918">Менеджер безопасности – Native Client</translation>
 <translation id="2862815659905780618">Удалить среду разработки Linux</translation>
@@ -2341,6 +2340,7 @@
 <translation id="3105796011181310544">Вернуться к Google?</translation>
 <translation id="310671807099593501">Сайт использует Bluetooth</translation>
 <translation id="3108931485517391283">Не удалось получить файл</translation>
+<translation id="3108957152224931571">Цвет выделения</translation>
 <translation id="3109206895301430738">Сохраненные группы вкладок</translation>
 <translation id="3109724472072898302">Свернуто</translation>
 <translation id="3112292765614504292">Размер приложения: <ph name="APP_SIZE" /></translation>
@@ -2363,6 +2363,7 @@
 <translation id="3129173833825111527">Левое поле</translation>
 <translation id="3129215702932019810">Ошибка при запуске приложения</translation>
 <translation id="3130528281680948470">Настройки устройства будут сброшены, а локальные данные и аккаунты пользователей – удалены. Это действие нельзя отменить.</translation>
+<translation id="3130863904455712965">История и другие данные</translation>
 <translation id="313205617302240621">Забыли пароль?</translation>
 <translation id="3132277757485842847">Не удалось сохранить подключение к телефону. Убедитесь, что телефон находится рядом, он разблокирован и на нем включены Bluetooth и Wi-Fi.</translation>
 <translation id="3132896062549112541">Правило</translation>
@@ -2376,7 +2377,6 @@
 <translation id="3143515551205905069">Отмена</translation>
 <translation id="3143754809889689516">Воспроизвести с начала</translation>
 <translation id="3144647712221361880">Открыть ссылку как</translation>
-<translation id="3144896554017119333">Расширения и прочее</translation>
 <translation id="3149510190863420837">Приложения Chrome</translation>
 <translation id="3150693969729403281">Запустить проверку безопасности</translation>
 <translation id="3150927491400159470">Жесткая перезагрузка</translation>
@@ -4585,6 +4585,7 @@
 <translation id="5260334392110301220">Умные кавычки</translation>
 <translation id="5260508466980570042">Вы указали неверный адрес электронной почты или пароль. Повторите попытку.</translation>
 <translation id="5260958083445173099">Содержимое сайтов будет по возможности показываться на предпочитаемых языках.</translation>
+<translation id="5261619498868361045">Укажите название контейнера.</translation>
 <translation id="5261683757250193089">Открыть в Интернет-магазине</translation>
 <translation id="5262178194499261222">Удалить пароль</translation>
 <translation id="5262784498883614021">Автоматически подключаться к сети</translation>
@@ -4991,6 +4992,7 @@
 <translation id="562935524653278697">Ваш администратор отключил синхронизацию закладок, истории, паролей и настроек.</translation>
 <translation id="5631017369956619646">Использование процессора</translation>
 <translation id="5632059346822207074">Требуется разрешение. Нажмите Ctrl + Косая черта, чтобы ответить.</translation>
+<translation id="5632221585574759616">Подробнее о разрешениях для расширений</translation>
 <translation id="5632566673632479864">Ваш аккаунт (<ph name="EMAIL" />) больше нельзя использовать в качестве основного. Поскольку этот аккаунт находится под управлением администраторов домена <ph name="DOMAIN" />, все закладки, пароли и настройки, а также история будут удалены с устройства.</translation>
 <translation id="5632592977009207922">Идет скачивание: осталось <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Подробнее о системных требованиях</translation>
@@ -5611,6 +5613,7 @@
 <translation id="6218058416316985984">Устройство <ph name="DEVICE_TYPE" /> не подключено к Интернету. Установите соединение и повторите попытку.</translation>
 <translation id="6220413761270491930">Ошибка при загрузке расширения</translation>
 <translation id="6224481128663248237">Форматирование завершено.</translation>
+<translation id="622474711739321877">Контейнер с таким названием уже существует.</translation>
 <translation id="622537739776246443">Профиль будет удален</translation>
 <translation id="6225475702458870625">Интернет-подключение доступно через <ph name="PHONE_NAME" />.</translation>
 <translation id="6226777517901268232">Файл секретного ключа (необязательно)</translation>
@@ -6416,6 +6419,7 @@
 <translation id="696780070563539690">Сайты не могут использовать файлы cookie, чтобы отслеживать ваши действия в браузере, например, для показа персонализированной рекламы.</translation>
 <translation id="6968288415730398122">Чтобы настроить блокировку экрана, введите пароль</translation>
 <translation id="6969047215179982698">Выключить Обмен с окружением</translation>
+<translation id="6969216690072714773">Обновите данные для этого устройства или укажите новые.</translation>
 <translation id="6970480684834282392">Тип запуска</translation>
 <translation id="6970543303783413625">Не удалось выполнить импорт. Максимальное число паролей, которые можно импортировать за один раз: <ph name="COUNT" />.</translation>
 <translation id="6970856801391541997">Печать выбранных страниц</translation>
@@ -6822,6 +6826,7 @@
 <translation id="7377481913241237033">Подключиться с помощью кода</translation>
 <translation id="7378611153938412599">Простые пароли легко подобрать. Устанавливайте надежные пароли. Больше советов по безопасности можно найти <ph name="BEGIN_LINK" />здесь<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Открыть Интернет-магазин Chrome</translation>
+<translation id="7380272457268061606">Отключить восстановление локальных данных?</translation>
 <translation id="7380459290951585794">Убедитесь, что телефон находится рядом, он разблокирован и на нем включены Bluetooth и Wi-Fi.</translation>
 <translation id="7380622428988553498">Имя устройства содержит недопустимые символы.</translation>
 <translation id="7380768571499464492">Обновлено: <ph name="PRINTER_NAME" /></translation>
@@ -7072,6 +7077,7 @@
 <translation id="7617263010641145920">Включить Play Маркет</translation>
 <translation id="7617648809369507487">Использовать режим важных уведомлений</translation>
 <translation id="7621382409404463535">Не удалось сохранить конфигурацию устройства.</translation>
+<translation id="7621595347123595643">Вы не сможете восстановить локальные данные, если забудете пароль или PIN-код.</translation>
 <translation id="7622114377921274169">Зарядка…</translation>
 <translation id="7622768823216805500">Обычно сайты устанавливают обработчики платежей, чтобы использовать такие функции, как упрощенная оплата покупок.</translation>
 <translation id="7622903810087708234">Сведения о пароле</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 420b7870..f1f9afa 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -2079,7 +2079,6 @@
 <translation id="2852385257476173980">ඔබ වෙබය බ්‍රවුස් කරන විට ඔබ පිවිසෙන අඩවි ලැයිස්තුවක් මෙහි දිස් විය හැකිය</translation>
 <translation id="285241945869362924">ශ්‍රව්‍ය සහ වීඩියෝ සඳහා ස්වයංක්‍රියව සිරස්තල තනයි. ශ්‍රව්‍ය සහ සිරස්තල කිසි විටක ඔබගේ උපාංගය හැර නොයනු ඇත.</translation>
 <translation id="2856776373509145513">නව බහාලුමක් තනන්න</translation>
-<translation id="2858138569776157458">ඉහළම වෙබ් අඩවි</translation>
 <translation id="2861301611394761800">පද්ධති යාවත්කාලය සම්පූර්ණයි. කරුණාකර පරිගණකය නැවත අරඹන්න.</translation>
 <translation id="2861941300086904918">සහජ සේවාලාභී ආරක්ෂක කළමනාකරු</translation>
 <translation id="2862815659905780618">Linux සංවර්ධන පරිසරය ඉවත් කරන්න</translation>
@@ -2343,6 +2342,7 @@
 <translation id="3105796011181310544">ආපසු Google වෙත හරවන්නේද?</translation>
 <translation id="310671807099593501">අඩවිය බ්ලූටූත් භාවිත කරයි</translation>
 <translation id="3108931485517391283">ලැබිය නොහැකිය</translation>
+<translation id="3108957152224931571">උද්දීපන වර්ණය</translation>
 <translation id="3109206895301430738">සුරැකි ටැබ සමූහ</translation>
 <translation id="3109724472072898302">හැකිළූ</translation>
 <translation id="3112292765614504292">යෙදුම් තරම: <ph name="APP_SIZE" /></translation>
@@ -2365,6 +2365,7 @@
 <translation id="3129173833825111527">වම තීරුව</translation>
 <translation id="3129215702932019810">යෙදුම දියත් කිරීමේ දෝෂයයි</translation>
 <translation id="3130528281680948470">ඔබේ උපාංගය යළි සැකසෙන අතර සියළු පරිශීලක ගිනුම් හා දේශීය දත්ත ඉවත් වනු ඇත. මෙය අවලංගු කළ නොහැක.</translation>
+<translation id="3130863904455712965">ඉතිහාසය සහ තවත්</translation>
 <translation id="313205617302240621">මුරපදය අමතක ද?</translation>
 <translation id="3132277757485842847">ඔබගේ දුරකථනය සමඟ සම්බන්ධතාවක් පවත්වා ගැනීමට අපට නොහැකි විය. ඔබගේ දුරකථනය අවට, අගුලු හැර, බ්ලූටූත් සහ Wi-Fi ක්‍රියාත්මකව තිබෙන බව සහතික කර ගන්න.</translation>
 <translation id="3132896062549112541">රීතිය</translation>
@@ -2378,7 +2379,6 @@
 <translation id="3143515551205905069">සමමුහුර්තය අවලංගු කරන්න</translation>
 <translation id="3143754809889689516">ආරම්භයේ සිට ධාවන කරන්න</translation>
 <translation id="3144647712221361880">ලෙස සබැඳිය විවෘත කරන්න</translation>
-<translation id="3144896554017119333">දිගු සහ තවත්</translation>
 <translation id="3149510190863420837">Chrome යෙදුම්</translation>
 <translation id="3150693969729403281">දැන් ආරක්‍ෂක පරීක්‍ෂාව ධාවන කරන්න</translation>
 <translation id="3150927491400159470">දැඩි නැවුම් කිරීම</translation>
@@ -4588,6 +4588,7 @@
 <translation id="5260334392110301220">ස්මාර්ට් මිල ගණන්</translation>
 <translation id="5260508466980570042">කණගාටුයි, ඔබේ ඊමේල් ලිපිනය හෝ මුරපදය තහවුරු කරගත නොහැක. නැවත උත්සාහ කරන්න.</translation>
 <translation id="5260958083445173099">වෙබ් අඩවි හැකි විට, ඔබ කැමති භාෂාවලින් අන්තර්ගතය පෙන්වනු ඇත</translation>
+<translation id="5261619498868361045">කන්ටේනරයේ නම හිස් විය නොහැක.</translation>
 <translation id="5261683757250193089">Web Store හි විවෘත කරන්න</translation>
 <translation id="5262178194499261222">මුරපදය ඉවත් කරන්න</translation>
 <translation id="5262784498883614021">ජාලට ස්වයංක්‍රීයව සම්බන්ධ කරන්න</translation>
@@ -4995,6 +4996,7 @@
 <translation id="562935524653278697">ඔබේ පරිපාලක ඔබේ පිටුසන්, ඉතිහාසය, මුරපද, සහ වෙනත් සැකසීම් සමමුහුර්ත කිරීම අබල කර ඇත.</translation>
 <translation id="5631017369956619646">CPU භාවිතය</translation>
 <translation id="5632059346822207074">අවසරය ඉල්ලන ලදි, ප්‍රතිචාර දැක්වීමට Ctrl + ඉදිරියට ඔබන්න</translation>
+<translation id="5632221585574759616">දිගු අවසර පිළිබඳව තව දැන ගන්න</translation>
 <translation id="5632566673632479864">ඔබේ <ph name="EMAIL" /> ගිණුමට තවදුරටත් ප්‍රධාන ගිණුම ලෙස අවසර දෙනු නොලැබේ. මෙම ගිණුම <ph name="DOMAIN" /> විසින් කළමනා කරනු ලබන බැවින්, ඔබේ පිටුසන්, ඉතිහාසය, මුරපද, සහ අනෙකුත් සැකසීම් මෙම උපාංගයෙන් හිස් කරනු ලැබේ.</translation>
 <translation id="5632592977009207922">බාගනිමින්, <ph name="PERCENT_REMAINING" />% ඉතිරියි</translation>
 <translation id="5633149627228920745">පද්ධති අවශ්‍යතා පිළිබඳව තව දැන ගන්න</translation>
@@ -5615,6 +5617,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> නොබැඳිය. අන්තර්ජාලයට සම්බන්ධ වී නැවත උත්සාහ කරන්න.</translation>
 <translation id="6220413761270491930">දිගුව ප්‍රවේශනය කිරීමේ දෝෂය</translation>
 <translation id="6224481128663248237">ආකෘතිගත කිරීම සාර්කව නිමයි!</translation>
+<translation id="622474711739321877">මෙම කන්ටේනරය දැනටමත් පවතී.</translation>
 <translation id="622537739776246443">පැතිකඩ මකනු ලැබේ</translation>
 <translation id="6225475702458870625">ඔබේ <ph name="PHONE_NAME" /> වෙතින් දත්ත සබැඳුම ලබා ගත හැකිය</translation>
 <translation id="6226777517901268232">පුද්ගලික යතුරු ගොනුව (විකල්පමය)</translation>
@@ -6414,6 +6417,7 @@
 <translation id="696780070563539690">විවිධ වෙබ් අඩවි අතරින් ඔබේ බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම් බැලීමට, උදාහරණයක් වශයෙන්, දැන්වීම් පුද්ගලායන කිරීමට වෙබ් අඩවිවලට ඔබේ කුකී භාවිත නොකළ හැක</translation>
 <translation id="6968288415730398122">තිර අගුල වින්‍යාස කිරීමට ඔබගේ මුරපදය ඇතුළු කරන්න</translation>
 <translation id="6969047215179982698">ළඟ බෙදා ගැනීම අක්‍රිය කරන්න</translation>
+<translation id="6969216690072714773">මෙම උපාංගය සමග සම්බන්ධිත නව තොරතුරු ඇතුළු කිරීම හෝ පවතින තොරතුරු යාවත්කාලීන කිරීම කරන්න.</translation>
 <translation id="6970480684834282392">ස්ටාටප් වර්ගය</translation>
 <translation id="6970543303783413625">මුරපද ආයාත කිරීමට නොහැක. ඔබට වරකට මුරපද <ph name="COUNT" />ක් දක්වා පමණක් ආයාත කළ හැක.</translation>
 <translation id="6970856801391541997">නිශ්චිත පිටු මුද්‍රණය කරන්න</translation>
@@ -6820,6 +6824,7 @@
 <translation id="7377481913241237033">කේතයක් සමගින් සම්බන්ධ වන්න</translation>
 <translation id="7378611153938412599">දුර්වල මුරපද අනුමානය කිරීමට පහසුයි. ඔබ ප්‍රබල මුරපද තනන බව සහතික කර ගන්න. <ph name="BEGIN_LINK" />තවත් ආරක්ෂක ඉඟි බලන්න.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store විවෘත කරන්න</translation>
+<translation id="7380272457268061606">ස්ථානීය දත්ත ප්‍රතිසාධනය අබල කරන්න ද?</translation>
 <translation id="7380459290951585794">ඔබගේ දුරකථනය අවට, අගුලු හැර, බ්ලූටූත් සහ Wi-Fi ක්‍රියාත්මකව තිබෙන බව සහතික කර ගන්න</translation>
 <translation id="7380622428988553498">උපාංග නමෙහි වලංගු නොවන අනුලකුණු අඩංගු වේ</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> යාවත්කාලීන කළා</translation>
@@ -7070,6 +7075,7 @@
 <translation id="7617263010641145920">Play Store සක්‍රීය කරන්න</translation>
 <translation id="7617648809369507487">වඩා නිශ්ශබ්ද පණිවිඩ යැවීම භාවිත කරන්න</translation>
 <translation id="7621382409404463535">පද්ධති වින්‍යාසය සුරැකීමට පද්ධතිය අසමත් විය.</translation>
+<translation id="7621595347123595643">ඔබට ඔබේ මුරපදය හෝ PIN අමතක වුවහොත් ඔබට ස්ථානීය දත්ත ප්‍රතිසාධනය කිරීමට නොහැකි වනු ඇත.</translation>
 <translation id="7622114377921274169">ආරෝපණය වෙමින්.</translation>
 <translation id="7622768823216805500">අඩවි සාමාන්‍යයෙන් වඩා පහසු ගෙවීම වැනි සාප්පු සවාරි විශේෂාංග සඳහා ගෙවීම් හසුරුවන ස්ථාපනය කරයි</translation>
 <translation id="7622903810087708234">මුරපද විස්තර</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 7ce4a61b..87d732f 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1289,6 +1289,7 @@
 <translation id="2157875535253991059">Táto stránka je teraz zobrazená na celú obrazovku.</translation>
 <translation id="2158475082070321257">Kopírovať odkaz na zvýraznenie</translation>
 <translation id="2159488579268505102">USB‑C</translation>
+<translation id="2161058806218011758">Rozsah odkazu <ph name="SHORTCUT" /> na rozšírenie <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Pridať Wi‑Fi…</translation>
 <translation id="2162155940152307086">Synchronizácia sa spustí, keď opustíte nastavenia synchronizácie</translation>
 <translation id="2162705204091149050">Čítanie informácií o prehliadači, operačnom systéme, zariadení, nainštalovanom softvéri a súboroch</translation>
@@ -2077,7 +2078,6 @@
 <translation id="2852385257476173980">Tu sa môže pri prehliadaní internetu zobraziť zoznam webov, ktoré navštívite</translation>
 <translation id="285241945869362924">Automaticky vytvára titulky zvuku a videí. Zvuk a titulky nikdy neopustia zariadenie.</translation>
 <translation id="2856776373509145513">Vytvorenie nového kontajnera</translation>
-<translation id="2858138569776157458">Hlavné weby</translation>
 <translation id="2861301611394761800">Aktualizácia systému je dokončená. Reštartujte systém.</translation>
 <translation id="2861941300086904918">Správca zabezpečenia natívneho klienta</translation>
 <translation id="2862815659905780618">Odstrániť vývojové prostredie systému Linux</translation>
@@ -2364,6 +2364,7 @@
 <translation id="3129173833825111527">Ľavý okraj</translation>
 <translation id="3129215702932019810">Pri spustení aplikácie sa vyskytla chyba</translation>
 <translation id="3130528281680948470">Vaše zariadenie sa obnoví a všetky používateľské účty a miestne údaje budú odstránené. Túto akciu nie je možné vrátiť späť.</translation>
+<translation id="3130863904455712965">História a ďalšie nastavenia</translation>
 <translation id="313205617302240621">Zabudli ste heslo?</translation>
 <translation id="3132277757485842847">Nepodarilo sa udržať pripojenie k vášmu telefónu. Uistite sa, že je telefón nablízku, odomknutý a má zapnuté rozhranie Bluetooth a pripojenie Wi‑Fi.</translation>
 <translation id="3132896062549112541">Pravidlo</translation>
@@ -2377,7 +2378,6 @@
 <translation id="3143515551205905069">Zrušiť synchronizáciu</translation>
 <translation id="3143754809889689516">Prehrať od začiatku</translation>
 <translation id="3144647712221361880">Otvoriť odkaz ako</translation>
-<translation id="3144896554017119333">Rozšírenia a ďalšie možnosti</translation>
 <translation id="3149510190863420837">Aplikácie Chrome</translation>
 <translation id="3150693969729403281">Spustiť kontrolu bezpečnosti</translation>
 <translation id="3150927491400159470">Vynútiť opätovné načítanie</translation>
@@ -2675,6 +2675,7 @@
 <translation id="3445047461171030979">Rýchle odpovede Asistenta Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Vaša organizácia tento súbor zablokovala, pretože má citlivý alebo nebezpečný obsah. Požiadajte vlastníka o nápravu.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Boli odstránené povolenia z <ph name="BEGIN_BOLD" />1 webu<ph name="END_BOLD" />, ktorý ste nedávno nenavštívili}few{Boli odstránené povolenia z <ph name="BEGIN_BOLD" />{NUM_SITES} webov<ph name="END_BOLD" />, ktoré ste nedávno nenavštívili}many{Permissions removed from <ph name="BEGIN_BOLD" />{NUM_SITES} sites<ph name="END_BOLD" /> you haven’t visited recently}other{Boli odstránené povolenia z <ph name="BEGIN_BOLD" />{NUM_SITES} webov<ph name="END_BOLD" />, ktoré ste nedávno nenavštívili}}</translation>
 <translation id="3445925074670675829">Zariadenie USB-C</translation>
 <translation id="3446274660183028131">Spustite Parallels Desktop a nainštalujte tak Windows.</translation>
 <translation id="344630545793878684">Čítať vaše údaje na viacerých webových stránkach</translation>
@@ -2886,6 +2887,7 @@
 <translation id="3642699533549879077">Keď sa na vašu obrazovku pozerá iná osoba, táto funkcia vás informuje a obsah upozornenia bude skrytý.</translation>
 <translation id="3643962751030964445">Toto zariadenie ovláda správca <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> vyžaduje pre účet <ph name="USER_EMAIL_ADDRESS" /> nový profil.</translation>
 <translation id="3645372836428131288">Zľahka pohýbte, aby sa nasnímala ďalšia časť odtlačku.</translation>
+<translation id="3647051300407077858">Skontrolovať povolenia posielať upozornenia</translation>
 <translation id="3647654707956482440">Tento odkaz sa nedá použiť. Skontrolujte, či v ňom nie sú preklepy, alebo to skúste pomocou iného odkazu.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}few{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}many{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}other{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}}</translation>
 <translation id="3648348069317717750">Rozpoznané zariadenie: <ph name="USB_DEVICE_NAME" /></translation>
@@ -3065,6 +3067,7 @@
 <translation id="380408572480438692">Povolením zhromažďovania údajov o výkonnosti pomôžete spoločnosti Google postupom času zlepšovať systém. Kým neodošlete správu so spätnou väzbou (Alt-Shift-I) a nezahrniete údaje o výkonnosti, neodošlú sa žiadne údaje. Zhromažďovanie údajov môžete po prejdení späť na túto stránku kedykoľvek zakázať.</translation>
 <translation id="3807249107536149332">Rozšírenie <ph name="EXTENSION_NAME" /> (ID rozšírenia – <ph name="EXTENSION_ID" />) nie je povolené na prihlasovacej obrazovke.</translation>
 <translation id="3807747707162121253">&amp;Zrušiť</translation>
+<translation id="3808202562160426447">Stmaviť obsah na pozadí</translation>
 <translation id="3808443763115411087">Vývoj aplikácií pre Android v systéme Crostini</translation>
 <translation id="38089336910894858">Pred ukončením pomocou kombinácie klávesov ⌘Q zobrazovať upozornenie</translation>
 <translation id="3809272675881623365">Králik</translation>
@@ -3656,6 +3659,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> zdieľa okno.</translation>
 <translation id="4364830672918311045">Zobrazovať upozornenia</translation>
 <translation id="4366138410738374926">Tlač sa začala</translation>
+<translation id="4367513928820380646">Skontrolovať odstránené povolenia</translation>
 <translation id="4369121877634339065">Vyhľadávajte presunutím cez ľubovoľný obrázok</translation>
 <translation id="4369215744064167350">Žiadosť o web bola schválená</translation>
 <translation id="4370975561335139969">Zadaný e-mail a heslo nesúhlasia.</translation>
@@ -4375,6 +4379,7 @@
 <translation id="5045550434625856497">Nesprávne heslo</translation>
 <translation id="504561833207953641">Otvára sa v existujúcej relácii prehliadača.</translation>
 <translation id="5049614114599109018">Používať históriu vstupov</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Tento web nedávno poslal veľa upozornení. Môžete mu zabrániť odosielať upozornenia v budúcnosti.}few{Tieto weby nedávno poslali veľa upozornení. Môžete im zabrániť odosielať upozornenia v budúcnosti.}many{These sites sent a lot of notifications recently. You can stop them from sending future notifications.}other{Tieto weby nedávno poslali veľa upozornení. Môžete im zabrániť odosielať upozornenia v budúcnosti.}}</translation>
 <translation id="5051836348807686060">Kontrola pravopisu nie je v prípade vybraných jazykov podporovaná</translation>
 <translation id="5052499409147950210">Úprava webu</translation>
 <translation id="505347685865235222">Skupina bez názvu – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7275,6 +7280,7 @@
 <translation id="7775694664330414886">Karta bola presunutá do skupiny bez názvu – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> si bude môcť zobraziť súbory v priečinku <ph name="FOLDERNAME" />, dokým nezavriete všetky karty tohto webu</translation>
 <translation id="7776701556330691704">Nenašli sa žiadne hlasy</translation>
+<translation id="7777624210360383048">Odkaz <ph name="SHORTCUT" /> na rozšírenie <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Všetky používateľské účty a miestne údaje budú odstránené.</translation>
 <translation id="7782102568078991263">Žiadne ďalšie návrhy od spoločnosti Google</translation>
 <translation id="7782717250816686129">Uchovávať trvalé údaje na prihlasovacej obrazovke a vkladať prihlasovacie údaje do relácie.</translation>
@@ -7307,6 +7313,7 @@
 <translation id="7807711621188256451">Vždy povoliť stránkam <ph name="HOST" /> prístup ku kamere</translation>
 <translation id="7810202088502699111">Na tejto stránke boli zablokované kontextové okná.</translation>
 <translation id="7814458197256864873">&amp;Kopírovať</translation>
+<translation id="7815583197273433531">Upraviť odkaz <ph name="SHORTCUT" /> na rozšírenie <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Bolo zablokované sťahovanie nebezpečného súboru</translation>
 <translation id="7817361223956157679">Klávesnica na obrazovke ešte nie je v systéme Linux funkčná</translation>
 <translation id="7818135753970109980">Bol pridaný nový motív (<ph name="EXTENSION_NAME" />)</translation>
@@ -7381,6 +7388,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Zobraziť účet</translation>
 <translation id="7883792253546618164">Odber môžete kedykoľvek zrušiť.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Skontrolujte 1 web, ktorý odoslal veľa upozornení}few{Skontrolujte {NUM_SITES} weby, ktoré odoslali veľa upozornení}many{Review {NUM_SITES} sites that sent a lot of notifications}other{Skontrolujte {NUM_SITES} webov, ktoré odoslali veľa upozornení}}</translation>
 <translation id="788453346724465748">Načítavajú sa informácie o účte…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{položku}few{# položky}many{# items}other{# položiek}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 73cde6b..4a8225e 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1302,6 +1302,7 @@
 <translation id="2157875535253991059">Ta stran je zdaj prikazana na celotnem zaslonu.</translation>
 <translation id="2158475082070321257">Kopiraj povezavo do označitve</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Obseg bližnjice <ph name="SHORTCUT" /> za razširitev <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Dodaj Wi-Fi ...</translation>
 <translation id="2162155940152307086">Sinhronizacija se bo začela, ko zaprete nastavitve sinhronizacije</translation>
 <translation id="2162705204091149050">Branje podatkov o brskalniku, operacijskem sistemu, napravi, nameščeni programski opremi in datotekah</translation>
@@ -2093,7 +2094,6 @@
 <translation id="2852385257476173980">Tukaj bo morda prikazan seznam obiskanih spletnih mest, ko brskate po spletu.</translation>
 <translation id="285241945869362924">Samodejno ustvari podnapise za zvok in video. Zvok in podnapisi nikoli ne zapustijo naprave.</translation>
 <translation id="2856776373509145513">Ustvarjanje novega vsebnika</translation>
-<translation id="2858138569776157458">Najb. prilj.</translation>
 <translation id="2861301611394761800">Posodobitev sistema je končana. Znova zaženite sistem.</translation>
 <translation id="2861941300086904918">Upravitelj varnosti Native Client</translation>
 <translation id="2862815659905780618">Odstranjevanje razvojnega okolja Linux</translation>
@@ -2380,6 +2380,7 @@
 <translation id="3129173833825111527">Levi rob</translation>
 <translation id="3129215702932019810">Napaka pri zagonu aplikacije</translation>
 <translation id="3130528281680948470">Naprava bo ponastavljena in vsi uporabniški računi ter lokalni podatki bodo odstranjeni. Tega ni mogoče razveljaviti.</translation>
+<translation id="3130863904455712965">Zgodovina in drugo</translation>
 <translation id="313205617302240621">Ste pozabili geslo?</translation>
 <translation id="3132277757485842847">Ni bilo mogoče ohraniti povezave s telefonom. Preverite, ali imate telefon v bližini, ali je vklopljen in ima vklopljeno povezavo Bluetooth in omrežje Wi-Fi.</translation>
 <translation id="3132896062549112541">Pravilo</translation>
@@ -2393,7 +2394,6 @@
 <translation id="3143515551205905069">Prekliči sinhronizacijo</translation>
 <translation id="3143754809889689516">Predvajaj od začetka</translation>
 <translation id="3144647712221361880">Odpiranje povezave kot</translation>
-<translation id="3144896554017119333">Razširitve in drugo</translation>
 <translation id="3149510190863420837">Aplikacije za Chrome</translation>
 <translation id="3150693969729403281">Zagon varnostnega preverjanja</translation>
 <translation id="3150927491400159470">Znova naloži brez predpomnilnika</translation>
@@ -2691,6 +2691,7 @@
 <translation id="3445047461171030979">Hitri odgovori v Pomočniku Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Organizacija je blokirala to datoteko, ker vsebuje občutljivo ali nevarno vsebino. Lastnika datoteke prosite, naj odpravi težavo.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Dovoljenja so odstranjena z <ph name="BEGIN_BOLD" />1 spletnega mesta<ph name="END_BOLD" />, ki ga nedavno niste obiskali}one{Dovoljenja so odstranjena z <ph name="BEGIN_BOLD" />{NUM_SITES} spletnega mesta<ph name="END_BOLD" />, ki ga nedavno niste obiskali}two{Dovoljenja so odstranjena z <ph name="BEGIN_BOLD" />{NUM_SITES} spletnih mest<ph name="END_BOLD" />, ki ju nedavno niste obiskali}few{Dovoljenja so odstranjena s <ph name="BEGIN_BOLD" />{NUM_SITES} spletnih mest<ph name="END_BOLD" />, ki jih nedavno niste obiskali}other{Dovoljenja so odstranjena s <ph name="BEGIN_BOLD" />{NUM_SITES} spletnih mest<ph name="END_BOLD" />, ki jih nedavno niste obiskali}}</translation>
 <translation id="3445925074670675829">Naprava USB-C</translation>
 <translation id="3446274660183028131">Zaženite program Parallels Desktop, če želite namestiti sistem Windows.</translation>
 <translation id="344630545793878684">Branje vaših podatkov na več spletnih mestih</translation>
@@ -2902,6 +2903,7 @@
 <translation id="3642699533549879077">Ko nekdo drug pogleda na vaš zaslon, boste prejeli opozorilo in vsebina obvestila bo skrita.</translation>
 <translation id="3643962751030964445">To napravo upravlja <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> zahteva nov profil za račun <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="3645372836428131288">Rahlo premaknite prst, da bo zajet drug del prstnega odtisa.</translation>
+<translation id="3647051300407077858">Pregled dovoljenj za obvestila</translation>
 <translation id="3647654707956482440">Te povezave ni mogoče uporabiti. Preverite, ali ima tipkarske napake, ali poskusite znova z drugo povezavo.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}one{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}two{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}few{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}other{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Zaznana naprava USB: <ph name="USB_DEVICE_NAME" /></translation>
@@ -3081,6 +3083,7 @@
 <translation id="380408572480438692">Če omogočite zbiranje podatkov o učinkovitosti delovanja, boste Googlu pomagali sčasoma izboljšati sistem. Nobeni podatki se ne pošljejo, dokler ne pošljete poročila (Alt–Shift–I), v katerega vključite podatke o učinkovitosti delovanja. Na to stran se lahko kadar koli vrnete in onemogočite zbiranje podatkov.</translation>
 <translation id="3807249107536149332">Razširitev <ph name="EXTENSION_NAME" /> (ID razširitve »<ph name="EXTENSION_ID" />«) ni dovoljena na zaslonu za prijavo.</translation>
 <translation id="3807747707162121253">&amp;Prekliči</translation>
+<translation id="3808202562160426447">Zatemnitev vsebine v ozadju</translation>
 <translation id="3808443763115411087">Razvoj aplikacij za Android v Crostiniju</translation>
 <translation id="38089336910894858">Pokaži opozorilo pred zapiranjem s kombinacijo ⌘ in Q</translation>
 <translation id="3809272675881623365">Zajec</translation>
@@ -3672,6 +3675,7 @@
 <translation id="4364567974334641491">Aplikacija <ph name="APP_NAME" /> je v skupno rabo dala okno.</translation>
 <translation id="4364830672918311045">Prikaz obvestil</translation>
 <translation id="4366138410738374926">Tiskanje se je začelo</translation>
+<translation id="4367513928820380646">Pregled odstranjenih dovoljenj</translation>
 <translation id="4369121877634339065">Za iskanje povlecite poljubno sliko</translation>
 <translation id="4369215744064167350">Odobrena zahteva za dostop do spletnega mesta</translation>
 <translation id="4370975561335139969">E-poštni naslov in geslo, ki ste ju vnesli, se ne ujemata.</translation>
@@ -4392,6 +4396,7 @@
 <translation id="5045550434625856497">Nepravilno geslo</translation>
 <translation id="504561833207953641">Odpiranje v obstoječi seji brskalnika.</translation>
 <translation id="5049614114599109018">Uporabi zgodovino vnosov</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{To spletno mesto je v zadnjem času poslalo veliko obvestil. Onemogočite mu lahko pošiljanje obvestil v prihodnje.}one{Ta spletna mesta so v zadnjem času poslala veliko obvestil. Onemogočite jim lahko pošiljanje obvestil v prihodnje.}two{Ta spletna mesta so v zadnjem času poslala veliko obvestil. Onemogočite jim lahko pošiljanje obvestil v prihodnje.}few{Ta spletna mesta so v zadnjem času poslala veliko obvestil. Onemogočite jim lahko pošiljanje obvestil v prihodnje.}other{Ta spletna mesta so v zadnjem času poslala veliko obvestil. Onemogočite jim lahko pošiljanje obvestil v prihodnje.}}</translation>
 <translation id="5051836348807686060">Preverjanje črkovanja za izbrane jezike ni podprto</translation>
 <translation id="5052499409147950210">Urejanje spletnega mesta</translation>
 <translation id="505347685865235222">Neimenovana skupina – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7296,6 +7301,7 @@
 <translation id="7775694664330414886">Zavihek je premaknjen v neimenovano skupino – <ph name="GROUP_CONTENTS" />.</translation>
 <translation id="7776156998370251340">Spletno mesto <ph name="ORIGIN" /> si bo lahko ogledovalo datoteke v mapi <ph name="FOLDERNAME" />, dokler ne zaprete vseh zavihkov tega spletnega mesta</translation>
 <translation id="7776701556330691704">Najden ni bil noben glas</translation>
+<translation id="7777624210360383048">Bližnjica <ph name="SHORTCUT" /> za razširitev <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Odstranjeni bodo vsi uporabniški računi in lokalni podatki.</translation>
 <translation id="7782102568078991263">Nič več Googlovih predlogov</translation>
 <translation id="7782717250816686129">Shrani trajne podatke na zaslonu za prijavo in vstavi poverilnice v sejo.</translation>
@@ -7328,6 +7334,7 @@
 <translation id="7807711621188256451">Vedno dovoli gostitelju <ph name="HOST" /> dostop do kamere</translation>
 <translation id="7810202088502699111">Pojavna okna na tej strani so blokirana.</translation>
 <translation id="7814458197256864873">&amp;Kopiraj</translation>
+<translation id="7815583197273433531">Uredi bližnjico <ph name="SHORTCUT" /> za razširitev <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Nevaren prenos je bil blokiran</translation>
 <translation id="7817361223956157679">Zaslonska tipkovnica še ne deluje v aplikacijah za Linux</translation>
 <translation id="7818135753970109980">Nova tema je dodana (<ph name="EXTENSION_NAME" />)</translation>
@@ -7402,6 +7409,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Prikaz računa</translation>
 <translation id="7883792253546618164">Odjavite se lahko kadar koli.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Preglejte 1 spletno mesto, ki je nedavno poslalo veliko obvestil}one{Preglejte {NUM_SITES} spletno mesto, ki je nedavno poslalo veliko obvestil}two{Preglejte {NUM_SITES} spletni mesti, ki sta nedavno poslali veliko obvestil}few{Preglejte {NUM_SITES} spletna mesta, ki so nedavno poslala veliko obvestil}other{Preglejte {NUM_SITES} spletnih mest, ki so nedavno poslala veliko obvestil}}</translation>
 <translation id="788453346724465748">Nalaganje podatkov o računu …</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{element}one{# element}two{# elementa}few{# elementi}other{# elementov}}</translation>
 <translation id="7886605625338676841">e-SIM</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 84df5d6..aecc889c 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2073,7 +2073,6 @@
 <translation id="2852385257476173980">Një listë sajtesh që viziton mund të shfaqet këtu ndërsa shfleton uebin</translation>
 <translation id="285241945869362924">Krijon automatikisht titra për audion dhe videon. Audioja dhe titrat nuk largohen asnjëherë nga pajisja.</translation>
 <translation id="2856776373509145513">Krijo një kontejner të ri</translation>
-<translation id="2858138569776157458">Sajtet kryesore</translation>
 <translation id="2861301611394761800">Përditësimi i sistemit përfundoi. Rinis sistemin.</translation>
 <translation id="2861941300086904918">Menaxheri i sigurisë së Klientit origjinal</translation>
 <translation id="2862815659905780618">Hiqe mjedisin e zhvillimit të Linux</translation>
@@ -2337,6 +2336,7 @@
 <translation id="3105796011181310544">Të ndryshohet përsëri në Google?</translation>
 <translation id="310671807099593501">Sajti po përdor Bluetooth-in</translation>
 <translation id="3108931485517391283">Nuk mund të merret</translation>
+<translation id="3108957152224931571">Ngjyra e theksimit</translation>
 <translation id="3109206895301430738">Grupet e ruajtura të skedave</translation>
 <translation id="3109724472072898302">Palosur</translation>
 <translation id="3112292765614504292">Madhësia e aplikacionit: <ph name="APP_SIZE" /></translation>
@@ -2359,6 +2359,7 @@
 <translation id="3129173833825111527">Kufiri i majtë</translation>
 <translation id="3129215702932019810">Gabim gjatë hapjes së aplikacionit</translation>
 <translation id="3130528281680948470">Pajisja do të rivendoset dhe të gjitha llogaritë e përdoruesit dhe të dhënat lokale do të hiqen. Kjo nuk mund të zhbëhet.</translation>
+<translation id="3130863904455712965">Historiku etj.</translation>
 <translation id="313205617302240621">E harrove fjalëkalimin?</translation>
 <translation id="3132277757485842847">Nuk ishim në gjendje të ruanim një lidhje me telefonin tënd. Sigurohu që telefoni yt të jetë pranë, i shkyçur dhe të ketë të aktivizuar Bluetooth-in dhe Wi-Fi.</translation>
 <translation id="3132896062549112541">Rregull</translation>
@@ -2372,7 +2373,6 @@
 <translation id="3143515551205905069">Anulo sinkronizimin</translation>
 <translation id="3143754809889689516">Luaj nga fillimi</translation>
 <translation id="3144647712221361880">Hape lidhjen si</translation>
-<translation id="3144896554017119333">Shtesat dhe më shumë</translation>
 <translation id="3149510190863420837">Aplikacionet e Chrome</translation>
 <translation id="3150693969729403281">Ekzekuto tani kontrollin e sigurisë</translation>
 <translation id="3150927491400159470">Ringarkim i detyruar</translation>
@@ -4581,6 +4581,7 @@
 <translation id="5260334392110301220">Citimet inteligjente</translation>
 <translation id="5260508466980570042">Na vjen keq, mail-i yt ose fjalëkalimi nuk mundën të verifikoheshin. Provo sërish.</translation>
 <translation id="5260958083445173099">Sajtet e uebit do t'i shfaqin përmbajtjet në gjuhët e tua të preferuara, kur të jetë e mundur</translation>
+<translation id="5261619498868361045">Emri i kontejnerit nuk mund të jetë bosh.</translation>
 <translation id="5261683757250193089">Hap te "Dyqani i uebit"</translation>
 <translation id="5262178194499261222">Hiq fjalëkalimin</translation>
 <translation id="5262784498883614021">Lidhu automatikisht me rrjetin</translation>
@@ -4987,6 +4988,7 @@
 <translation id="562935524653278697">Administratori yt ka çaktivizuar sinkronizimin e faqeshënuesve, historikut, fjalëkalimeve dhe cilësimeve të tua të tjera.</translation>
 <translation id="5631017369956619646">Përdorimi CPU</translation>
 <translation id="5632059346822207074">Kërkohet leje, shtyp Ctrl + Përpara për t'u përgjigjur</translation>
+<translation id="5632221585574759616">Mëso më shumë për lejet për shtesat</translation>
 <translation id="5632566673632479864">Llogaria jote <ph name="EMAIL" /> nuk lejohet më si llogari parësore. Duke qenë se kjo llogari menaxhohet nga <ph name="DOMAIN" />, faqeshënuesit, historiku, fjalëkalimet dhe cilësimet e tjera do të fshihen nga kjo pajisje.</translation>
 <translation id="5632592977009207922">Duke shkarkuar, <ph name="PERCENT_REMAINING" />% të mbetura</translation>
 <translation id="5633149627228920745">Mëso më shumë rreth kërkesave të sistemit</translation>
@@ -5607,6 +5609,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> është jashtë linje. Lidhu me internetin dhe provo sërish.</translation>
 <translation id="6220413761270491930">Gabim në ngarkimin e shtesës</translation>
 <translation id="6224481128663248237">Formatimi përfundoi me sukses!</translation>
+<translation id="622474711739321877">Ky kontejner ekziston tashmë.</translation>
 <translation id="622537739776246443">Profili do të fshihet</translation>
 <translation id="6225475702458870625">Lidhja e të dhënave e disponueshme nga pajisja jote <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Skedari i çelësit privat (opsionale)</translation>
@@ -6406,6 +6409,7 @@
 <translation id="696780070563539690">Sajtet nuk mund t'i përdorin kukit e tua për të parë aktivitetin tënd të shfletimit nëpër sajte të ndryshme, për shembull për t'i personalizuar reklamat</translation>
 <translation id="6968288415730398122">Fut fjalëkalimin për të konfiguruar kyçjen e ekranit</translation>
 <translation id="6969047215179982698">Çaktivizo "Ndarjen në afërsi"</translation>
+<translation id="6969216690072714773">Fut informacione të reja ose përditëso informacionet ekzistuese për t'i lidhur me këtë pajisje.</translation>
 <translation id="6970480684834282392">Lloji i nisjes</translation>
 <translation id="6970543303783413625">Fjalëkalimet nuk mund të importohen. Mund të importosh vetëm deri në <ph name="COUNT" /> fjalëkalime në të njëjtën kohë.</translation>
 <translation id="6970856801391541997">Printo faqet specifike</translation>
@@ -6812,6 +6816,7 @@
 <translation id="7377481913241237033">Lidhu me një kod</translation>
 <translation id="7378611153938412599">Fjalëkalimet e dobëta mund të gjenden me lehtësi. Sigurohu që po krijon fjalëkalime të forta. <ph name="BEGIN_LINK" />Shiko më shumë këshilla sigurie.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Hap "Dyqanin e uebit të Chrome"</translation>
+<translation id="7380272457268061606">Të çaktivizohet rikuperimi i të dhënave lokale?</translation>
 <translation id="7380459290951585794">Sigurohu që telefoni yt të jetë në afërsi, i shkyçur dhe ta ketë të aktivizuar Bluetooth-in dhe Wi-Fi</translation>
 <translation id="7380622428988553498">Emri i pajisjes përmban karaktere të pavlefshme</translation>
 <translation id="7380768571499464492">Përditësuar: <ph name="PRINTER_NAME" /></translation>
@@ -7062,6 +7067,7 @@
 <translation id="7617263010641145920">Aktivizo "Dyqanin e Play"</translation>
 <translation id="7617648809369507487">Përdor mesazhe më të qeta</translation>
 <translation id="7621382409404463535">Sistemi nuk arriti të ruante konfigurimin e pajisjes.</translation>
+<translation id="7621595347123595643">Nuk do të mund t'i rikuperosh të dhënat lokale nëse harron fjalëkalimin ose kodin PIN.</translation>
 <translation id="7622114377921274169">Po ngarkohet.</translation>
 <translation id="7622768823216805500">Sajtet instalojnë zakonisht përpunues të pagesave për veçoritë e blerjeve, si p.sh. përfundimin e blerjeve me më shumë lehtësi</translation>
 <translation id="7622903810087708234">Detajet e fjalëkalimeve</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 722c5aed..a52874c5 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -1286,6 +1286,7 @@
 <translation id="2157875535253991059">Ova stranica je sada u režimu celog ekrana.</translation>
 <translation id="2158475082070321257">Kopiraj link do istaknutog teksta</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Opseg prečice <ph name="SHORTCUT" /> za: <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Dodaj WiFi...</translation>
 <translation id="2162155940152307086">Sinhronizacija će početi kada izađete iz podešavanja sinhronizacije</translation>
 <translation id="2162705204091149050">Čitanje informacija o pregledaču, OS-u, uređaju, instaliranom softveru i fajlovima</translation>
@@ -2074,7 +2075,6 @@
 <translation id="2852385257476173980">Lista sajtova koje posećujete se može prikazati ovde dok pregledate veb</translation>
 <translation id="285241945869362924">Automatski pravi titl za audio i video. Audio fajl i titl uvek ostaju na uređaju.</translation>
 <translation id="2856776373509145513">Napravite novi kontejner</translation>
-<translation id="2858138569776157458">Najbolji sajtovi</translation>
 <translation id="2861301611394761800">Ažuriranje sistema je dovršeno. Restartujte sistem.</translation>
 <translation id="2861941300086904918">Menadžer bezbednosti za Native Client</translation>
 <translation id="2862815659905780618">Uklonite Linux okruženje za programiranje</translation>
@@ -2361,6 +2361,7 @@
 <translation id="3129173833825111527">Leva margina</translation>
 <translation id="3129215702932019810">Greška pri pokretanju aplikacije</translation>
 <translation id="3130528281680948470">Uređaj će biti resetovan i svi korisnički nalozi i lokalni podaci će biti uklonjeni. To ne može da se opozove.</translation>
+<translation id="3130863904455712965">Istorija i drugo</translation>
 <translation id="313205617302240621">Zaboravili ste lozinku?</translation>
 <translation id="3132277757485842847">Nismo uspeli da održimo vezu sa telefonom. Uverite se da je telefon u blizini, da je otključan i da su Bluetooth i WiFi uključeni.</translation>
 <translation id="3132896062549112541">Pravilo</translation>
@@ -2374,7 +2375,6 @@
 <translation id="3143515551205905069">Otkaži sinhronizaciju</translation>
 <translation id="3143754809889689516">Pusti ispočetka</translation>
 <translation id="3144647712221361880">Otvorite link kao</translation>
-<translation id="3144896554017119333">Dodaci i drugo</translation>
 <translation id="3149510190863420837">Chrome aplikacije</translation>
 <translation id="3150693969729403281">Obavite bezbednosnu proveru odmah</translation>
 <translation id="3150927491400159470">Ponovo učitaj sa servera</translation>
@@ -2672,6 +2672,7 @@
 <translation id="3445047461171030979">Brzi odgovori Google pomoćnika</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Organizacija je blokirala ovaj fajl zato što ima osetljiv ili opasan sadržaj. Zatražite od vlasnika da reši problem.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Dozvole su uklonjene sa <ph name="BEGIN_BOLD" />1 sajta<ph name="END_BOLD" /> koji niste nedavno posećivali}one{Dozvole su uklonjene sa <ph name="BEGIN_BOLD" />{NUM_SITES} sajta<ph name="END_BOLD" /> koji niste nedavno posećivali}few{Dozvole su uklonjene sa <ph name="BEGIN_BOLD" />{NUM_SITES} sajta<ph name="END_BOLD" /> koja niste nedavno posećivali}other{Dozvole su uklonjene sa <ph name="BEGIN_BOLD" />{NUM_SITES} sajtova<ph name="END_BOLD" /> koje niste nedavno posećivali}}</translation>
 <translation id="3445925074670675829">Uređaj sa USB priključkom tipa C</translation>
 <translation id="3446274660183028131">Pokrenite Parallels Desktop da biste instalirali Windows.</translation>
 <translation id="344630545793878684">Čitanje vaših podataka na više veb-sajtova</translation>
@@ -2883,6 +2884,7 @@
 <translation id="3642699533549879077">Kada vam neko drugi pogleda ekran, dobićete obaveštenje, a sadržaj obaveštenja će biti sakriven.</translation>
 <translation id="3643962751030964445">Ovim uređajem upravlja <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> zahteva novi profil za nalog <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Malo pomerite da biste snimili drugi deo otiska prsta.</translation>
+<translation id="3647051300407077858">Pregledajte dozvole za obaveštenja</translation>
 <translation id="3647654707956482440">Korišćenje ovog linka nije uspelo. Proverite da li ima grešaka u kucanju ili probajte ponovo sa drugim linkom.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> je primljena sa uređaja <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> je primljena sa uređaja <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> su primljene sa uređaja <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> je primljeno sa uređaja <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Uređaj <ph name="USB_DEVICE_NAME" /> je otkriven</translation>
@@ -3062,6 +3064,7 @@
 <translation id="380408572480438692">Ako omogućite prikupljanje podataka o učinku, pomoći ćete Google-u da vremenom poboljšava sistem. Nikakvi podaci se ne šalju dok ne pošaljete izveštaj sa povratnim informacijama (Alt-Shift-I) i uvrstite podatke o učinku. U bilo kom trenutku možete da se vratite na ovaj ekran i onemogućite prikupljanje.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (ID dodatka „<ph name="EXTENSION_ID" />“) nije dozvoljen na ekranu za prijavljivanje.</translation>
 <translation id="3807747707162121253">&amp;Otkaži</translation>
+<translation id="3808202562160426447">Zatamni sadržaj u pozadini</translation>
 <translation id="3808443763115411087">Programiranje Android aplikacija za Crostini</translation>
 <translation id="38089336910894858">Prikazuj upozorenje pre zatvaranja pomoću ⌘Q</translation>
 <translation id="3809272675881623365">Zec</translation>
@@ -3653,6 +3656,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deli prozor.</translation>
 <translation id="4364830672918311045">Prikazuj obaveštenja</translation>
 <translation id="4366138410738374926">Štampanje je započeto</translation>
+<translation id="4367513928820380646">Pregledajte uklonjene dozvole</translation>
 <translation id="4369121877634339065">Prevucite bilo koju sliku da biste pretražili</translation>
 <translation id="4369215744064167350">Zahtev za veb-sajt je odobren</translation>
 <translation id="4370975561335139969">Imejl i lozinka koje ste uneli se ne podudaraju</translation>
@@ -4372,6 +4376,7 @@
 <translation id="5045550434625856497">Neispravna lozinka</translation>
 <translation id="504561833207953641">Otvara se u postojećoj sesiji pregledača.</translation>
 <translation id="5049614114599109018">Koristi istoriju unosa</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Ovaj sajt je nedavno poslao mnogo obaveštenja. Možete da sprečite taj sajt da šalje buduća obaveštenja.}one{Ovi sajtovi su nedavno poslali mnogo obaveštenja. Možete da sprečite te sajtove da šalju buduća obaveštenja.}few{Ovi sajtovi su nedavno poslali mnogo obaveštenja. Možete da sprečite te sajtove da šalju buduća obaveštenja.}other{Ovi sajtovi su nedavno poslali mnogo obaveštenja. Možete da sprečite te sajtove da šalju buduća obaveštenja.}}</translation>
 <translation id="5051836348807686060">Provera pravopisa nije podržana za jezike koje ste izabrali</translation>
 <translation id="5052499409147950210">Izmenite sajt</translation>
 <translation id="505347685865235222">Grupa bez naziva – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7272,6 +7277,7 @@
 <translation id="7775694664330414886">Kartica je premeštena u neimenovanu grupu – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> će moći da pregleda datoteke u direktorijumu <ph name="FOLDERNAME" /> dok ne zatvorite sve kartice ovog sajta</translation>
 <translation id="7776701556330691704">Nije pronađen nijedan glas</translation>
+<translation id="7777624210360383048">Prečica <ph name="SHORTCUT" /> za: <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Svi korisnički nalozi i lokalni podaci će biti uklonjeni.</translation>
 <translation id="7782102568078991263">Nema više predloga sa Google-a</translation>
 <translation id="7782717250816686129">Čuva podatke koji se ponavljaju na ekranu za prijavljivanje i umeće akreditive u sesiju.</translation>
@@ -7304,6 +7310,7 @@
 <translation id="7807711621188256451">Uvek dozvoli da <ph name="HOST" /> pristupa kameri</translation>
 <translation id="7810202088502699111">Iskačući prozori su blokirani na ovoj stranici.</translation>
 <translation id="7814458197256864873">&amp;Kopiraj</translation>
+<translation id="7815583197273433531">Izmenite prečicu <ph name="SHORTCUT" /> za: <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Opasno preuzimanje je blokirano</translation>
 <translation id="7817361223956157679">Tastatura na ekranu još uvek ne radi u Linux aplikacijama</translation>
 <translation id="7818135753970109980">Dodata je nova tema (<ph name="EXTENSION_NAME" />)</translation>
@@ -7378,6 +7385,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Prikaži nalog</translation>
 <translation id="7883792253546618164">Opozovite prijavu bilo kada.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Pregledajte 1 sajt koji je poslao mnogo obaveštenja}one{Pregledajte {NUM_SITES} sajt koji je poslao mnogo obaveštenja}few{Pregledajte {NUM_SITES} sajta koji su poslali mnogo obaveštenja}other{Pregledajte {NUM_SITES} sajtova koji su poslali mnogo obaveštenja}}</translation>
 <translation id="788453346724465748">Učitavaju se informacije o nalogu…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{stavka}one{# stavka}few{# stavke}other{# stavki}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 8e5a9988..266776a 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1286,6 +1286,7 @@
 <translation id="2157875535253991059">Ова страница је сада у режиму целог екрана.</translation>
 <translation id="2158475082070321257">Копирај линк до истакнутог текста</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Опсег пречице <ph name="SHORTCUT" /> за: <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Додај WiFi...</translation>
 <translation id="2162155940152307086">Синхронизација ће почети када изађете из подешавања синхронизације</translation>
 <translation id="2162705204091149050">Читање информација о прегледачу, ОС-у, уређају, инсталираном софтверу и фајловима</translation>
@@ -2074,7 +2075,6 @@
 <translation id="2852385257476173980">Листа сајтова које посећујете се може приказати овде док прегледате веб</translation>
 <translation id="285241945869362924">Аутоматски прави титл за аудио и видео. Аудио фајл и титл увек остају на уређају.</translation>
 <translation id="2856776373509145513">Направите нови контејнер</translation>
-<translation id="2858138569776157458">Најбољи сајтови</translation>
 <translation id="2861301611394761800">Ажурирање система је довршено. Рестартујте систем.</translation>
 <translation id="2861941300086904918">Менаџер безбедности за Native Client</translation>
 <translation id="2862815659905780618">Уклоните Linux окружење за програмирање</translation>
@@ -2361,6 +2361,7 @@
 <translation id="3129173833825111527">Лева маргина</translation>
 <translation id="3129215702932019810">Грешка при покретању апликације</translation>
 <translation id="3130528281680948470">Уређај ће бити ресетован и сви кориснички налози и локални подаци ће бити уклоњени. То не може да се опозове.</translation>
+<translation id="3130863904455712965">Историја и друго</translation>
 <translation id="313205617302240621">Заборавили сте лозинку?</translation>
 <translation id="3132277757485842847">Нисмо успели да одржимо везу са телефоном. Уверите се да је телефон у близини, да је откључан и да су Bluetooth и WiFi укључени.</translation>
 <translation id="3132896062549112541">Правило</translation>
@@ -2374,7 +2375,6 @@
 <translation id="3143515551205905069">Откажи синхронизацију</translation>
 <translation id="3143754809889689516">Пусти испочетка</translation>
 <translation id="3144647712221361880">Отворите линк као</translation>
-<translation id="3144896554017119333">Додаци и друго</translation>
 <translation id="3149510190863420837">Chrome апликације</translation>
 <translation id="3150693969729403281">Обавите безбедносну проверу одмах</translation>
 <translation id="3150927491400159470">Поново учитај са сервера</translation>
@@ -2672,6 +2672,7 @@
 <translation id="3445047461171030979">Брзи одговори Google помоћника</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин</translation>
 <translation id="344537926140058498">Организација је блокирала овај фајл зато што има осетљив или опасан садржај. Затражите од власника да реши проблем.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Дозволе су уклоњене са <ph name="BEGIN_BOLD" />1 сајта<ph name="END_BOLD" /> који нисте недавно посећивали}one{Дозволе су уклоњене са <ph name="BEGIN_BOLD" />{NUM_SITES} сајта<ph name="END_BOLD" /> који нисте недавно посећивали}few{Дозволе су уклоњене са <ph name="BEGIN_BOLD" />{NUM_SITES} сајта<ph name="END_BOLD" /> која нисте недавно посећивали}other{Дозволе су уклоњене са <ph name="BEGIN_BOLD" />{NUM_SITES} сајтова<ph name="END_BOLD" /> које нисте недавно посећивали}}</translation>
 <translation id="3445925074670675829">Уређај са USB прикључком типа C</translation>
 <translation id="3446274660183028131">Покрените Parallels Desktop да бисте инсталирали Windows.</translation>
 <translation id="344630545793878684">Читање ваших података на више веб-сајтова</translation>
@@ -2883,6 +2884,7 @@
 <translation id="3642699533549879077">Када вам неко други погледа екран, добићете обавештење, а садржај обавештења ће бити сакривен.</translation>
 <translation id="3643962751030964445">Овим уређајем управља <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> захтева нови профил за налог <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Мало померите да бисте снимили други део отиска прста.</translation>
+<translation id="3647051300407077858">Прегледајте дозволе за обавештења</translation>
 <translation id="3647654707956482440">Коришћење овог линка није успело. Проверите да ли има грешака у куцању или пробајте поново са другим линком.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> је примљена са уређаја <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> је примљена са уређаја <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> су примљене са уређаја <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> је примљено са уређаја <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Уређај <ph name="USB_DEVICE_NAME" /> је откривен</translation>
@@ -3062,6 +3064,7 @@
 <translation id="380408572480438692">Ако омогућите прикупљање података о учинку, помоћи ћете Google-у да временом побољшава систем. Никакви подаци се не шаљу док не пошаљете извештај са повратним информацијама (Alt-Shift-I) и уврстите податке о учинку. У било ком тренутку можете да се вратите на овај екран и онемогућите прикупљање.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (ИД додатка „<ph name="EXTENSION_ID" />“) није дозвољен на екрану за пријављивање.</translation>
 <translation id="3807747707162121253">&amp;Откажи</translation>
+<translation id="3808202562160426447">Затамни садржај у позадини</translation>
 <translation id="3808443763115411087">Програмирање Android апликација за Crostini</translation>
 <translation id="38089336910894858">Приказуј упозорење пре затварања помоћу ⌘Q</translation>
 <translation id="3809272675881623365">Зец</translation>
@@ -3653,6 +3656,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> дели прозор.</translation>
 <translation id="4364830672918311045">Приказуј обавештења</translation>
 <translation id="4366138410738374926">Штампање је започето</translation>
+<translation id="4367513928820380646">Прегледајте уклоњене дозволе</translation>
 <translation id="4369121877634339065">Превуците било коју слику да бисте претражили</translation>
 <translation id="4369215744064167350">Захтев за веб-сајт је одобрен</translation>
 <translation id="4370975561335139969">Имејл и лозинка које сте унели се не подударају</translation>
@@ -4372,6 +4376,7 @@
 <translation id="5045550434625856497">Неисправна лозинка</translation>
 <translation id="504561833207953641">Отвара се у постојећој сесији прегледача.</translation>
 <translation id="5049614114599109018">Користи историју уноса</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Овај сајт је недавно послао много обавештења. Можете да спречите тај сајт да шаље будућа обавештења.}one{Ови сајтови су недавно послали много обавештења. Можете да спречите те сајтове да шаљу будућа обавештења.}few{Ови сајтови су недавно послали много обавештења. Можете да спречите те сајтове да шаљу будућа обавештења.}other{Ови сајтови су недавно послали много обавештења. Можете да спречите те сајтове да шаљу будућа обавештења.}}</translation>
 <translation id="5051836348807686060">Провера правописа није подржана за језике које сте изабрали</translation>
 <translation id="5052499409147950210">Измените сајт</translation>
 <translation id="505347685865235222">Група без назива – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7272,6 +7277,7 @@
 <translation id="7775694664330414886">Картица је премештена у неименовану групу – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> ће моћи да прегледа датотеке у директоријуму <ph name="FOLDERNAME" /> док не затворите све картице овог сајта</translation>
 <translation id="7776701556330691704">Није пронађен ниједан глас</translation>
+<translation id="7777624210360383048">Пречица <ph name="SHORTCUT" /> за: <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Сви кориснички налози и локални подаци ће бити уклоњени.</translation>
 <translation id="7782102568078991263">Нема више предлога са Google-а</translation>
 <translation id="7782717250816686129">Чува податке који се понављају на екрану за пријављивање и умеће акредитиве у сесију.</translation>
@@ -7304,6 +7310,7 @@
 <translation id="7807711621188256451">Увек дозволи да <ph name="HOST" /> приступа камери</translation>
 <translation id="7810202088502699111">Искачући прозори су блокирани на овој страници.</translation>
 <translation id="7814458197256864873">&amp;Копирај</translation>
+<translation id="7815583197273433531">Измените пречицу <ph name="SHORTCUT" /> за: <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Опасно преузимање је блокирано</translation>
 <translation id="7817361223956157679">Тастатура на екрану још увек не ради у Linux апликацијама</translation>
 <translation id="7818135753970109980">Додата је нова тема (<ph name="EXTENSION_NAME" />)</translation>
@@ -7378,6 +7385,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Прикажи налог</translation>
 <translation id="7883792253546618164">Опозовите пријаву било када.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Прегледајте 1 сајт који је послао много обавештења}one{Прегледајте {NUM_SITES} сајт који је послао много обавештења}few{Прегледајте {NUM_SITES} сајта који су послали много обавештења}other{Прегледајте {NUM_SITES} сајтова који су послали много обавештења}}</translation>
 <translation id="788453346724465748">Учитавају се информације о налогу…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ставка}one{# ставка}few{# ставке}other{# ставки}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 7033df1e..d3ccd89 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1299,6 +1299,7 @@
 <translation id="2157875535253991059">Denna sida visas nu i helskärm.</translation>
 <translation id="2158475082070321257">Kopiera länk till markering</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Omfattning av <ph name="SHORTCUT" /> för <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Lägg till wifi ...</translation>
 <translation id="2162155940152307086">Synkroniseringen startar när du lämnar synkroniseringsinställningarna</translation>
 <translation id="2162705204091149050">Läsa information om webbläsaren, operativsystemet, enheten, installerad programvara och filer</translation>
@@ -2090,7 +2091,6 @@
 <translation id="2852385257476173980">En lista över webbplatser du besöker kan visas här allt eftersom du surfar på webben</translation>
 <translation id="285241945869362924">Ljud- och videouppspelning textas automatiskt. Ljudet och textningen lämnar aldrig enheten.</translation>
 <translation id="2856776373509145513">Skapa en ny behållare</translation>
-<translation id="2858138569776157458">Populärt</translation>
 <translation id="2861301611394761800">Systemuppdateringen har slutförts. Starta om systemet.</translation>
 <translation id="2861941300086904918">Native Client säkerhetshanterare</translation>
 <translation id="2862815659905780618">Ta bort utvecklingsmiljön för Linux</translation>
@@ -2354,6 +2354,7 @@
 <translation id="3105796011181310544">Vill du byta tillbaka till Google?</translation>
 <translation id="310671807099593501">Webbplatsen använder Bluetooth</translation>
 <translation id="3108931485517391283">Det går inte att ta emot</translation>
+<translation id="3108957152224931571">Markeringsfärg</translation>
 <translation id="3109206895301430738">Sparade flikgrupper</translation>
 <translation id="3109724472072898302">Komprimerat</translation>
 <translation id="3112292765614504292">Appstorlek: <ph name="APP_SIZE" /></translation>
@@ -2376,6 +2377,7 @@
 <translation id="3129173833825111527">Vänstermarginal</translation>
 <translation id="3129215702932019810">Det gick inte att starta programmet</translation>
 <translation id="3130528281680948470">Enheten kommer att återställas och alla användarkonton och lokala uppgifter tas bort. Det går inte att ångra åtgärden.</translation>
+<translation id="3130863904455712965">Historik med mera</translation>
 <translation id="313205617302240621">Glömt lösenordet?</translation>
 <translation id="3132277757485842847">Det gick inte att upprätthålla en anslutning till telefonen. Kontrollera att telefonen finns i närheten, att den är olåst och att Bluetooth och wifi är aktiverat på den.</translation>
 <translation id="3132896062549112541">Regel</translation>
@@ -2389,7 +2391,6 @@
 <translation id="3143515551205905069">Avbryt synkronisering</translation>
 <translation id="3143754809889689516">Spela upp från början</translation>
 <translation id="3144647712221361880">Öppna länk som</translation>
-<translation id="3144896554017119333">Tillägg med mera</translation>
 <translation id="3149510190863420837">Chrome-appar</translation>
 <translation id="3150693969729403281">Kontrollera säkerheten nu</translation>
 <translation id="3150927491400159470">Hård inläsning</translation>
@@ -2687,6 +2688,7 @@
 <translation id="3445047461171030979">Snabba svar från Google Assistent</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="344537926140058498">Organisationen blockerade filen eftersom den har känsligt eller farligt innehåll Be ägaren att åtgärda detta.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Behörigheter har tagits bort från <ph name="BEGIN_BOLD" />en webbplats<ph name="END_BOLD" /> som du inte har besökt nyligen}other{Behörigheter har tagits bort från <ph name="BEGIN_BOLD" />{NUM_SITES} webbplatser<ph name="END_BOLD" /> som du inte har besökt nyligen}}</translation>
 <translation id="3445925074670675829">USB-C-enhet</translation>
 <translation id="3446274660183028131">Starta Parallels Desktop om du vill installera Windows.</translation>
 <translation id="344630545793878684">Läsa din data på ett antal webbplatser</translation>
@@ -2898,6 +2900,7 @@
 <translation id="3642699533549879077">En varning visas och innehållet i aviseringar döljs när någon annan tittar på skärmen.</translation>
 <translation id="3643962751030964445">Den här enheten hanteras av <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> kräver att du skapar en ny profil för kontot <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Flytta fingret något så att en annan del av fingeravtrycket registreras.</translation>
+<translation id="3647051300407077858">Granska aviseringsbehörigheter</translation>
 <translation id="3647654707956482440">Det gick inte att använda länken. Kontrollera om den innehåller stavfel eller testa med en annan länk.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> har tagits emot från <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> har tagits emot från <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> hittades</translation>
@@ -3077,6 +3080,7 @@
 <translation id="380408572480438692">Aktivering av insamling av resultatdata hjälper Google att förbättra systemet med tiden. Inga data skickas förrän du skickar en feedbackrapport (Alt-Skift-I) och inkluderar resultatdata. Du kan när som helst återgå till den här skärmen för att inaktivera insamlingen.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (tilläggs-id <ph name="EXTENSION_ID" />) får inte användas på en inloggningsskärm.</translation>
 <translation id="3807747707162121253">&amp;Avbryt</translation>
+<translation id="3808202562160426447">Dämpa bakgrundsinnehåll</translation>
 <translation id="3808443763115411087">Android-apputveckling i Crostini</translation>
 <translation id="38089336910894858">Visa en varning innan programmet avslutas med ⌘Q</translation>
 <translation id="3809272675881623365">Kanin</translation>
@@ -3668,6 +3672,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> delar ett fönster.</translation>
 <translation id="4364830672918311045">Visa aviseringar</translation>
 <translation id="4366138410738374926">Utskrift har påbörjats</translation>
+<translation id="4367513928820380646">Granska borttagna behörigheter</translation>
 <translation id="4369121877634339065">Dra över en bild för att söka</translation>
 <translation id="4369215744064167350">Webbplatsbegäran har godkänts</translation>
 <translation id="4370975561335139969">E-postadressen och lösenordet matchar inte</translation>
@@ -4388,6 +4393,7 @@
 <translation id="5045550434625856497">Felaktigt lösenord</translation>
 <translation id="504561833207953641">Öppnas i en befintlig webbläsarsession.</translation>
 <translation id="5049614114599109018">Använd inmatningshistorik</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Den här webbplatsen har nyligen skickat många aviseringar. Du kan förhindra att den skickar aviseringar i fortsättningen.}other{De här webbplatserna har nyligen skickat många aviseringar. Du kan förhindra att de skickar aviseringar i fortsättningen.}}</translation>
 <translation id="5051836348807686060">Stavningskontroll stöds inte för de språk du valt</translation>
 <translation id="5052499409147950210">Redigera webbplats</translation>
 <translation id="505347685865235222">Namnlös grupp – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -4599,6 +4605,7 @@
 <translation id="5260334392110301220">Smarta citattecken</translation>
 <translation id="5260508466980570042">Det gick inte att verifiera e-postadressen eller lösenordet. Försök igen.</translation>
 <translation id="5260958083445173099">När det är möjligt visas innehåll på webbplatser på de önskade språken</translation>
+<translation id="5261619498868361045">Behållarnamnet får inte vara tomt.</translation>
 <translation id="5261683757250193089">Öppna i Web Store</translation>
 <translation id="5262178194499261222">Ta bort lösenordet</translation>
 <translation id="5262784498883614021">Anslut till ett nätverk automatiskt</translation>
@@ -5005,6 +5012,7 @@
 <translation id="562935524653278697">Administratören har inaktiverat synkronisering av bokmärken, historik, lösenord och andra inställningar.</translation>
 <translation id="5631017369956619646">processoranvändning</translation>
 <translation id="5632059346822207074">Behörighet har begärts, tryck på Ctrl + framåt för att svara</translation>
+<translation id="5632221585574759616">Läs mer om behörigheter för tillägg</translation>
 <translation id="5632566673632479864">Kontot <ph name="EMAIL" /> får inte längre användas som primärt konto. Eftersom kontot hanteras av <ph name="DOMAIN" /> raderas bokmärken, historik, lösenord och andra inställningar från enheten.</translation>
 <translation id="5632592977009207922">Laddar ned, <ph name="PERCENT_REMAINING" /> % återstår</translation>
 <translation id="5633149627228920745">Läs mer om systemkrav</translation>
@@ -5625,6 +5633,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> är offline. Anslut till internet och försök igen.</translation>
 <translation id="6220413761270491930">Ett fel uppstod när tillägg skulle läsas in</translation>
 <translation id="6224481128663248237">Formateringen är klar!</translation>
+<translation id="622474711739321877">Detta behållarnamn finns redan.</translation>
 <translation id="622537739776246443">Profilen raderas</translation>
 <translation id="6225475702458870625">En dataanslutning är tillgänglig via din <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Privat nyckelfil (valfritt)</translation>
@@ -6424,6 +6433,7 @@
 <translation id="696780070563539690">Webbplatser får inte se din webbaktivitet på olika webbplatser med hjälp av cookies och till exempel anpassa annonser.</translation>
 <translation id="6968288415730398122">Ange lösenordet om du vill konfigurera skärmlås</translation>
 <translation id="6969047215179982698">Stäng av Närdelning</translation>
+<translation id="6969216690072714773">Ange nya eller uppdatera befintliga uppgifter om du vill kopplas till den här enheten.</translation>
 <translation id="6970480684834282392">Starttyp</translation>
 <translation id="6970543303783413625">Det gick inte att importera lösenorden. Du kan bara importera högst <ph name="COUNT" /> lösenord åt gången.</translation>
 <translation id="6970856801391541997">Skriv ut vissa sidor</translation>
@@ -6830,6 +6840,7 @@
 <translation id="7377481913241237033">Anslut med en kod</translation>
 <translation id="7378611153938412599">Svaga lösenord är lätta att lista ut. Använd alltid starka lösenord. <ph name="BEGIN_LINK" />Här hittar du fler säkerhetstips.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Öppna Chrome Web Store</translation>
+<translation id="7380272457268061606">Vill du inaktivera lokal dataåterställning?</translation>
 <translation id="7380459290951585794">Kontrollera att telefonen finns i närheten, att den är olåst och att Bluetooth och wifi är aktiverat på den</translation>
 <translation id="7380622428988553498">Enhetsnamnet innehåller ogiltiga tecken</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> uppdaterades</translation>
@@ -7080,6 +7091,7 @@
 <translation id="7617263010641145920">Aktivera Play Butik</translation>
 <translation id="7617648809369507487">Få mer diskreta meddelanden</translation>
 <translation id="7621382409404463535">Det gick inte att spara enhetskonfigurationen.</translation>
+<translation id="7621595347123595643">Du kan inte återställa lokal data om du glömmer lösenordet eller pinkoden.</translation>
 <translation id="7622114377921274169">Laddas.</translation>
 <translation id="7622768823216805500">Att installera betalningshanterare brukar kunna behövas till exempel för att förenkla hanteringen i kassan på webbplatsen</translation>
 <translation id="7622903810087708234">Lösenordsinformation</translation>
@@ -7278,6 +7290,7 @@
 <translation id="7775694664330414886">Fliken flyttades till en namnlös grupp – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> har läsbehörighet till filer i <ph name="FOLDERNAME" /> tills du stänger alla flikar för den här webbplatsen</translation>
 <translation id="7776701556330691704">Inga röster hittades</translation>
+<translation id="7777624210360383048">Genväg <ph name="SHORTCUT" /> för <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Alla användarkonton och all lokal data tas bort.</translation>
 <translation id="7782102568078991263">Inga fler förslag från Google</translation>
 <translation id="7782717250816686129">Spara beständig data på inloggningsskärmen och injicera användaruppgifterna i sessionen.</translation>
@@ -7310,6 +7323,7 @@
 <translation id="7807711621188256451">Låt alltid <ph name="HOST" /> använda din kamera</translation>
 <translation id="7810202088502699111">Popup-fönster är blockerade på den här sidan.</translation>
 <translation id="7814458197256864873">&amp;Kopiera</translation>
+<translation id="7815583197273433531">Redigera genväg <ph name="SHORTCUT" /> för <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">En farlig nedladdning blockerades</translation>
 <translation id="7817361223956157679">Skärmtangentbordet fungerar inte i Linux-appar ännu</translation>
 <translation id="7818135753970109980">Ett nytt tema har lagts till (<ph name="EXTENSION_NAME" />)</translation>
@@ -7384,6 +7398,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Visa konto</translation>
 <translation id="7883792253546618164">Du kan avsluta prenumerationen när du vill.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Granska 1 webbplats som nyligen har skickat många aviseringar}other{Granska {NUM_SITES} webbplatser som nyligen har skickat många aviseringar}}</translation>
 <translation id="788453346724465748">Läser in kontouppgifter …</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ett objekt}other{# objekt}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index d3b8a0fc..50b19a0b 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -2087,7 +2087,6 @@
 <translation id="2852385257476173980">Orodha ya tovuti unazotembelea itaonekana hapa kadiri unavyovinjari kwenye wavuti</translation>
 <translation id="285241945869362924">Huweka manukuu ya sauti na video kiotomatiki. Sauti na manukuu husalia kwenye kifaa chako.</translation>
 <translation id="2856776373509145513">Unda metadata mpya</translation>
-<translation id="2858138569776157458">Tovuti maarufu</translation>
 <translation id="2861301611394761800">Usasishaji mfumo umekamilika. Tafadhali zima mfumo na uuwashe.</translation>
 <translation id="2861941300086904918">Kidhibiti usalama cha Mteja Asili</translation>
 <translation id="2862815659905780618">Ondoa mazingira ya wasanidi programu wa Linux</translation>
@@ -2374,6 +2373,7 @@
 <translation id="3129173833825111527">Pambizo ya kushoto</translation>
 <translation id="3129215702932019810">Hitilafu imetokea wakati wa kufungua programu</translation>
 <translation id="3130528281680948470">Kifaa chako kitawekwa upya na akaunti za watumiaji na data zote za karibu zitaondolewa. Hili haliwezi kutenduliwa.</translation>
+<translation id="3130863904455712965">Historia na zaidi</translation>
 <translation id="313205617302240621">Je, umesahau nenosiri lako?</translation>
 <translation id="3132277757485842847">Tumeshindwa kudumisha muunganisho na simu yako. Hakikisha kwamba simu yako iko karibu, umeifungua na umewasha Bluetooth na Wi-Fi.</translation>
 <translation id="3132896062549112541">Amri</translation>
@@ -2387,7 +2387,6 @@
 <translation id="3143515551205905069">Ghairi usawazishaji</translation>
 <translation id="3143754809889689516">Cheza kuanzia mwanzo</translation>
 <translation id="3144647712221361880">Fungua kiungo ukitumia</translation>
-<translation id="3144896554017119333">Viendelezi na zaidi</translation>
 <translation id="3149510190863420837">Programu za Chrome</translation>
 <translation id="3150693969729403281">Tekeleza angalizo la usalama sasa</translation>
 <translation id="3150927491400159470">Upakiaji upya Thabiti</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index cbf32d4..0069df1 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2090,7 +2090,6 @@
 <translation id="2852385257476173980">நீங்கள் இணையத்தில் தேடத் தேட நீங்கள் பார்க்கும் தளங்களின் பட்டியல் இங்கே காட்டப்படக்கூடும்</translation>
 <translation id="285241945869362924">ஆடியோ மற்றும் வீடியோவிற்கான வசனங்கள் தானாகவே உருவாக்கப்படும். ஆடியோவும் வசனங்களும் யாருடனும் பகிரப்படாது.</translation>
 <translation id="2856776373509145513">புதிய கண்டெய்னரை உருவாக்குதல்</translation>
-<translation id="2858138569776157458">பிரபலமானவை</translation>
 <translation id="2861301611394761800">கணினிப் புதுப்பிப்பு முடிந்தது. கணினியை மறுதொடக்கம் செய்க.</translation>
 <translation id="2861941300086904918">Native Client பாதுகாப்பு நிர்வாகி</translation>
 <translation id="2862815659905780618">Linux டெவெலப்மெண்ட் சூழலை அகற்றுதல்</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3105796011181310544">மீண்டும் Google என அமைக்கவா?</translation>
 <translation id="310671807099593501">தளமானது புளூடூத்தைப் பயன்படுத்துகிறது</translation>
 <translation id="3108931485517391283">பெற முடியவில்லை</translation>
+<translation id="3108957152224931571">ஹைலைட் வண்ணம்</translation>
 <translation id="3109206895301430738">சேமிக்கப்பட்ட பக்கக் குழுக்கள்</translation>
 <translation id="3109724472072898302">சுருக்கப்பட்டது</translation>
 <translation id="3112292765614504292">ஆப்ஸின் அளவு: <ph name="APP_SIZE" /></translation>
@@ -2376,6 +2376,7 @@
 <translation id="3129173833825111527">இடது ஓரம்</translation>
 <translation id="3129215702932019810">ஆப்ஸைத் தொடங்குவதில் பிழை</translation>
 <translation id="3130528281680948470">உங்கள் சாதனம் மீட்டமைக்கப்படுவதோடு, எல்லா பயனர் கணக்குகளும் அகத் தரவும் அகற்றப்படும். இதைச் செயல்தவிர்க்க முடியாது.</translation>
+<translation id="3130863904455712965">பதிவுகள் மற்றும் பல</translation>
 <translation id="313205617302240621">கடவுச்சொல்லை மறந்துவிட்டீர்களா?</translation>
 <translation id="3132277757485842847">உங்கள் மொபைலுடன் இணைப்பில் இருக்க முடியவில்லை. உங்கள் மொபைல் அன்லாக் செய்யப்பட்டு அருகில் இருப்பதையும் அதில் புளூடூத், வைஃபை இயக்கப்பட்டிருப்பதையும் உறுதிப்படுத்திக் கொள்ளவும்.</translation>
 <translation id="3132896062549112541">விதி</translation>
@@ -2389,7 +2390,6 @@
 <translation id="3143515551205905069">ஒத்திசைவை ரத்துசெய்</translation>
 <translation id="3143754809889689516">முதலிலிருந்து இயக்கு</translation>
 <translation id="3144647712221361880">இணைப்பை இவ்வாறு திற</translation>
-<translation id="3144896554017119333">நீட்டிப்புகள் மற்றும் பல</translation>
 <translation id="3149510190863420837">Chrome ஆப்ஸ்</translation>
 <translation id="3150693969729403281">பாதுகாப்புச் சரிபார்ப்பை உடனே இயக்கும்</translation>
 <translation id="3150927491400159470">ஹார்ட் ரெஃப்ரெஷ் செய்</translation>
@@ -4599,6 +4599,7 @@
 <translation id="5260334392110301220">ஸ்மார்ட் கொட்டேஷன் மார்க்ஸ்</translation>
 <translation id="5260508466980570042">மன்னிக்கவும், உங்கள் மின்னஞ்சலையும் கடவுச்சொல்லையும் சரிபார்க்க முடியவில்லை. தயவுசெய்து மீண்டும் முயற்சி செய்க.</translation>
 <translation id="5260958083445173099">கிடைக்கும்பட்சத்தில், இணையதளங்கள் அவற்றின் உள்ளடக்கத்தை நீங்கள் விரும்பும் மொழியில் காட்டும்</translation>
+<translation id="5261619498868361045">கண்டெய்னர் பெயர் காலியாக இருக்கக்கூடாது.</translation>
 <translation id="5261683757250193089">இணைய அங்காடியில் திற</translation>
 <translation id="5262178194499261222">கடவுச்சொல்லை அகற்று</translation>
 <translation id="5262784498883614021">நெட்வொர்க்குடன் தானாக இணை</translation>
@@ -5006,6 +5007,7 @@
 <translation id="562935524653278697">புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகளை ஒத்திசைப்பதை உங்கள் நிர்வாகி முடக்கியுள்ளார்.</translation>
 <translation id="5631017369956619646">CPU பயன்பாடு</translation>
 <translation id="5632059346822207074">அணுகல் கோரப்பட்டுள்ளது, பதிலளிக்க Ctrl + Forward விசைகளை அழுத்தவும்</translation>
+<translation id="5632221585574759616">நீட்டிப்புக்கான அனுமதிகள் குறித்து மேலும் அறிக</translation>
 <translation id="5632566673632479864">உங்கள் <ph name="EMAIL" /> கணக்கு இனி முதன்மைக் கணக்காகச் செயல்பட அனுமதிக்கப்படாது. இந்தக் கணக்கை <ph name="DOMAIN" /> நிர்வகிப்பதால், உங்கள் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகள் இந்தச் சாதனத்திலிருந்து அழிக்கப்படும்.</translation>
 <translation id="5632592977009207922">பதிவிறக்குகிறது, <ph name="PERCENT_REMAINING" />% மீதமுள்ளது</translation>
 <translation id="5633149627228920745">சிஸ்டம் தேவைகள் பற்றி மேலும் அறிந்துகொள்ளலாம்</translation>
@@ -5626,6 +5628,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ஆஃப்லைனில் உள்ளது. அதை இணையத்துடன் இணைத்து, மீண்டும் முயலவும்.</translation>
 <translation id="6220413761270491930">நீட்டிப்பை ஏற்றுவதில் பிழை</translation>
 <translation id="6224481128663248237">வடிவமைத்தல் சிறப்பாக முடிந்தது!</translation>
+<translation id="622474711739321877">இந்தக் கண்டெய்னர் ஏற்கெனவே உள்ளது.</translation>
 <translation id="622537739776246443">சுயவிவரம் நீக்கப்படும்</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> இலிருந்து டேட்டா இணைப்பு உள்ளது</translation>
 <translation id="6226777517901268232">தனிப்பட்ட குறியீட்டு ஃபைல்(விரும்பினால்)</translation>
@@ -6425,6 +6428,7 @@
 <translation id="696780070563539690">விளம்பரங்களைப் பிரத்தியேகமாக்குவது போன்று வெவ்வேறு தளங்களில் உங்களின் உலாவல் செயல்பாட்டைப் பார்க்கக் குக்கீகளைத் தளங்கள் பயன்படுத்த முடியாது</translation>
 <translation id="6968288415730398122">திரைப் பூட்டை உள்ளமைக்க, கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="6969047215179982698">’அருகிலுள்ளவற்றுடன் பகிர்தல்’ அம்சத்தை முடக்கு</translation>
+<translation id="6969216690072714773">புதிய தகவலை வழங்கவும் அல்லது ஏற்கெனவே இருக்கும், இந்தச் சாதனத்துடன் தொடர்புடைய தகவலைப் புதுப்பிக்கவும்.</translation>
 <translation id="6970480684834282392">தொடங்கப்படும் வகை</translation>
 <translation id="6970543303783413625">கடவுச்சொற்களை ஏற்ற முடியவில்லை. ஒரே சமயத்தில் அதிகபட்சம் <ph name="COUNT" /> கடவுச்சொற்களை மட்டுமே ஏற்ற முடியும்.</translation>
 <translation id="6970856801391541997">குறிப்பிட்ட பக்கங்களை அச்சிடு</translation>
@@ -6831,6 +6835,7 @@
 <translation id="7377481913241237033">குறியீடு மூலம் இணை</translation>
 <translation id="7378611153938412599">வலுவற்ற கடவுச்சொற்களை யூகிப்பது எளிது என்பதால் வலிமையான கடவுச்சொற்களை உருவாக்குங்கள். <ph name="BEGIN_LINK" />கூடுதல் உதவிக்குறிப்புகளைக் காண்க.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome இணைய அங்காடியைத் திற</translation>
+<translation id="7380272457268061606">சாதனத் தரவு மீட்டெடுப்பை முடக்கவா?</translation>
 <translation id="7380459290951585794">மொபைல் அன்லாக் செய்யப்பட்டு அருகில் இருப்பதையும் அதில் புளூடூத், வைஃபை இயக்கப்பட்டிருப்பதையும் உறுதிசெய்துகொள்ளவும்</translation>
 <translation id="7380622428988553498">சாதனத்தின் பெயரில் தவறான எழுத்துகள் உள்ளன</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> புதுப்பிக்கப்பட்டது</translation>
@@ -7081,6 +7086,7 @@
 <translation id="7617263010641145920">Play Storeரை இயக்கு</translation>
 <translation id="7617648809369507487">குறுக்கீடு இல்லாத அறிவிப்புகளைப் பயன்படுத்து</translation>
 <translation id="7621382409404463535">சாதன உள்ளமைவை சிஸ்டத்தால் சேமிக்க முடியவில்லை.</translation>
+<translation id="7621595347123595643">உங்கள் கடவுச்சொல்லையோ பின்னையோ மறந்துவிட்டால் சாதனத்தில் உள்ள தரவை மீட்டெடுக்க முடியாது.</translation>
 <translation id="7622114377921274169">சார்ஜாகிறது.</translation>
 <translation id="7622768823216805500">எளிய செக் அவுட் போன்ற ஷாப்பிங் அம்சங்களுக்கான பேமெண்ட் ஹேண்ட்லர்களைத் தளங்கள் வழக்கமாக நிறுவும்</translation>
 <translation id="7622903810087708234">கடவுச்சொல் விவரங்கள்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 8d3abe75..ab0f361b 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -2089,7 +2089,6 @@
 <translation id="2852385257476173980">మీరు వెబ్‌లో బ్రౌజ్ చేస్తున్నప్పుడు, మీరు సందర్శించే సైట్‌ల లిస్ట్ ఇక్కడ కనిపించవచ్చు</translation>
 <translation id="285241945869362924">ఆడియో, వీడియో కోసం క్యాప్షన్‌లను ఆటోమేటిక్‌గా క్రియేట్ చేస్తుంది. ఆడియో, క్యాప్షన్‌లు ఎప్పటికీ మీ పరికరంలోనే ఉంటాయి.</translation>
 <translation id="2856776373509145513">కొత్త కంటైనర్‌ను క్రియేట్ చేయండి</translation>
-<translation id="2858138569776157458">టాప్ సైట్‌లు</translation>
 <translation id="2861301611394761800">సిస్టమ్ అప్‌డేట్ పూర్తయ్యింది. దయచేసి సిస్టమ్‌ని పునఃప్రారంభించండి.</translation>
 <translation id="2861941300086904918">స్థానిక‌ క్లయింట్ భద్రతా మేనేజ‌ర్‌</translation>
 <translation id="2862815659905780618">Linux డెవలప్‌మెంట్ ఎన్విరాన్మెంట్‌ను తీసివేయండి</translation>
@@ -2376,6 +2375,7 @@
 <translation id="3129173833825111527">ఎడమ సరిహద్దు</translation>
 <translation id="3129215702932019810">యాప్‌ను ప్రారంభించడంలో ఎర్రర్ ఏర్పడింది</translation>
 <translation id="3130528281680948470">మీ పరికరం రీసెట్ చేయబడుతుంది మరియు అన్ని వినియోగదారు ఖాతాలు మరియు స్థానిక డేటా తీసివేయబడుతుంది. దీన్ని రద్దు చేయడం సాధ్యపడదు.</translation>
+<translation id="3130863904455712965">హిస్టరీ, ఇంకా మరెన్నో</translation>
 <translation id="313205617302240621">పాస్‌వర్డ్‌ను మర్చిపోయారా?</translation>
 <translation id="3132277757485842847">మీ ఫోన్‌తో కనెక్షన్‌ను కొనసాగించడం మాకు సాధ్యపడలేదు. మీ ఫోన్ సమీపంలోనే ఉండి, అలాగే బ్లూటూత్, Wi-Fi ఆన్ చేయబడి ఉందని నిర్ధారించుకోండి.</translation>
 <translation id="3132896062549112541">నియమం</translation>
@@ -2389,7 +2389,6 @@
 <translation id="3143515551205905069">సింక్‌ను రద్దు చేయి</translation>
 <translation id="3143754809889689516">ప్రారంభం నుండి ప్లే చేయి</translation>
 <translation id="3144647712221361880">లింక్‌ను దీని తరపున తెరువు</translation>
-<translation id="3144896554017119333">ఎక్స్‌టెన్షన్‌లు, మరెన్నో</translation>
 <translation id="3149510190863420837">Chrome యాప్‌లు</translation>
 <translation id="3150693969729403281">ఇప్పుడే భద్రతా తనిఖీని రన్ చేయండి</translation>
 <translation id="3150927491400159470">నిర్బంధంగా మళ్లీ లోడ్ చేయి</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index a6acc690..865597e 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -2075,7 +2075,6 @@
 <translation id="2852385257476173980">รายการเว็บไซต์ที่คุณเข้าชมอาจปรากฏที่นี่เมื่อคุณท่องเว็บ</translation>
 <translation id="285241945869362924">สร้างคำบรรยายสำหรับเสียงและวิดีโอโดยอัตโนมัติ ระบบจะไม่ส่งเสียงและคำบรรยายออกไปจากอุปกรณ์</translation>
 <translation id="2856776373509145513">สร้างคอนเทนเนอร์ใหม่</translation>
-<translation id="2858138569776157458">เว็บไซต์อันดับสูงสุด</translation>
 <translation id="2861301611394761800">การอัปเดตระบบเสร็จสมบูรณ์ โปรดรีสตาร์ทระบบ</translation>
 <translation id="2861941300086904918">ตัวจัดการความปลอดภัยไคลเอ็นต์ในระบบ</translation>
 <translation id="2862815659905780618">นำสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux ออก</translation>
@@ -2362,6 +2361,7 @@
 <translation id="3129173833825111527">ขอบซ้าย</translation>
 <translation id="3129215702932019810">เกิดข้อผิดพลาดในการเปิดแอปพลิเคชัน</translation>
 <translation id="3130528281680948470">ระบบจะรีเซ็ตอุปกรณ์ของคุณ บัญชีผู้ใช้ทั้งหมดและข้อมูลในเครื่องจะถูกนำออก ซึ่งขั้นตอนนี้ไม่สามารถยกเลิกได้</translation>
+<translation id="3130863904455712965">ประวัติการเข้าชมและอื่นๆ</translation>
 <translation id="313205617302240621">ลืมรหัสผ่าน</translation>
 <translation id="3132277757485842847">เราคงการเชื่อมต่อกับโทรศัพท์ไว้ไม่ได้ ตรวจสอบว่าโทรศัพท์อยู่ใกล้ๆ ปลดล็อกอยู่ และเปิดบลูทูธกับ Wi-Fi ไว้</translation>
 <translation id="3132896062549112541">กฎ</translation>
@@ -2375,7 +2375,6 @@
 <translation id="3143515551205905069">ยกเลิกการซิงค์</translation>
 <translation id="3143754809889689516">เริ่มเล่นตั้งแต่ต้น</translation>
 <translation id="3144647712221361880">เปิดลิงก์ในฐานะ</translation>
-<translation id="3144896554017119333">ส่วนขยายและอื่นๆ</translation>
 <translation id="3149510190863420837">แอป Chrome</translation>
 <translation id="3150693969729403281">เรียกใช้การตรวจสอบความปลอดภัยเลย</translation>
 <translation id="3150927491400159470">โหลดซ้ำแบบดึงข้อมูลใหม่ทั้งหมด</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 0421c60..57b219f 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2073,7 +2073,6 @@
 <translation id="2852385257476173980">Siz internette gezindikçe ziyaret ettiğiniz sitelerin listesi burada görünebilir</translation>
 <translation id="285241945869362924">Ses ve videolar için otomatik olarak altyazı oluşturur. Ses ve altyazılar cihazınızdan hiçbir zaman dışarı çıkmaz.</translation>
 <translation id="2856776373509145513">Yeni bir kapsayıcı oluşturun</translation>
-<translation id="2858138569776157458">Popüler siteler</translation>
 <translation id="2861301611394761800">Sistem güncellemesi tamamlandı. Lütfen sistemi yeniden başlatın.</translation>
 <translation id="2861941300086904918">Yerel İstemci güvenlik yöneticisi</translation>
 <translation id="2862815659905780618">Linux geliştirme ortamını kaldırın</translation>
@@ -2337,6 +2336,7 @@
 <translation id="3105796011181310544">Google’a geri dönmek ister misiniz?</translation>
 <translation id="310671807099593501">Site, Bluetooth bağlantısını kullanıyor</translation>
 <translation id="3108931485517391283">Alınamıyor.</translation>
+<translation id="3108957152224931571">Vurgu rengi</translation>
 <translation id="3109206895301430738">Kayıtlı Sekme Grupları</translation>
 <translation id="3109724472072898302">Daraltılmış</translation>
 <translation id="3112292765614504292">Uygulama boyutu: <ph name="APP_SIZE" /></translation>
@@ -2359,6 +2359,7 @@
 <translation id="3129173833825111527">Sol kenar boşluğu</translation>
 <translation id="3129215702932019810">Uygulama başlatılırken hata oluştu</translation>
 <translation id="3130528281680948470">Cihazınız sıfırlanacak ve tüm kullanıcı hesapları ile yerel veriler silinecek. Bu işlem geri alınamaz.</translation>
+<translation id="3130863904455712965">Geçmiş ve daha fazlası</translation>
 <translation id="313205617302240621">Şifrenizi mi unuttunuz?</translation>
 <translation id="3132277757485842847">Telefonunuzla bağlantıyı sürdüremedik. Telefonunuzun yakında bulunduğundan, kilidinin ve Bluetooth ile Kablosuz bağlantının da açık olduğundan emin olun.</translation>
 <translation id="3132896062549112541">Kural</translation>
@@ -2372,7 +2373,6 @@
 <translation id="3143515551205905069">Senkronizasyonu iptal et</translation>
 <translation id="3143754809889689516">Baştan oynat</translation>
 <translation id="3144647712221361880">Bağlantıyı farklı aç</translation>
-<translation id="3144896554017119333">Uzantılar ve daha fazlası</translation>
 <translation id="3149510190863420837">Chrome Uygulamaları</translation>
 <translation id="3150693969729403281">Güvenlik kontrolünü şimdi çalıştır</translation>
 <translation id="3150927491400159470">Tam Yeniden Yükle</translation>
@@ -4581,6 +4581,7 @@
 <translation id="5260334392110301220">Akıllı Tırnaklar</translation>
 <translation id="5260508466980570042">Maalesef, e-posta adresiniz veya şifreniz doğrulanamadı. Lütfen tekrar deneyin.</translation>
 <translation id="5260958083445173099">Web siteleri, mümkün olduğunda tercih ettiğiniz dillerde gösterilir</translation>
+<translation id="5261619498868361045">Kapsayıcı adı boş bırakılamaz.</translation>
 <translation id="5261683757250193089">Web Mağazası'nda aç</translation>
 <translation id="5262178194499261222">Şifreyi kaldır</translation>
 <translation id="5262784498883614021">Ağa otomatik olarak bağlan</translation>
@@ -4988,6 +4989,7 @@
 <translation id="562935524653278697">İşaretleyiciler, geçmiş, şifreler ve diğer ayarlarınızın senkronizasyonunu yöneticiniz tarafından devre dışı bırakıldı.</translation>
 <translation id="5631017369956619646">CPU Kullanımı</translation>
 <translation id="5632059346822207074">İzin istendi, yanıtlamak için Ctrl + İleri tuşlarına basın</translation>
+<translation id="5632221585574759616">Uzantı izinleri hakkında daha fazla bilgi</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> hesabınızın artık birincil hesap olmasına izin verilmiyor. Bu hesap <ph name="DOMAIN" /> tarafından yönetildiğinden yer işaretleri, geçmiş, şifreler ve diğer ayarlarınız bu cihazdan silinecektir.</translation>
 <translation id="5632592977009207922">İndiriliyor, %<ph name="PERCENT_REMAINING" /> kaldı</translation>
 <translation id="5633149627228920745">Sistem gereksinimleri hakkında daha fazla bilgi</translation>
@@ -5608,6 +5610,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> çevrimdışı. İnternete bağlanıp tekrar deneyin.</translation>
 <translation id="6220413761270491930">Uzantı Yükleme Hatası</translation>
 <translation id="6224481128663248237">Biçimlendirme başarıyla tamamlandı!</translation>
+<translation id="622474711739321877">Bu kapsayıcı zaten mevcut.</translation>
 <translation id="622537739776246443">Profil silinecek</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> telefonunuzdan veri bağlantısı yapılabilir</translation>
 <translation id="6226777517901268232">Özel anahtar dosyası (isteğe bağlı)</translation>
@@ -6407,6 +6410,7 @@
 <translation id="696780070563539690">Siteler, örneğin reklamları kişiselleştirmek amacıyla farklı sitelerde tarama etkinliğinizi görmek için çerezlerinizi kullanamaz</translation>
 <translation id="6968288415730398122">Ekran kilidini yapılandırmak için şifrenizi girin</translation>
 <translation id="6969047215179982698">Yakındakilerle Paylaş'ı kapat</translation>
+<translation id="6969216690072714773">Bu cihazla ilişkilendirilecek yeni bilgiler girin veya varolan bilgileri güncelleyin.</translation>
 <translation id="6970480684834282392">Başlatma türü</translation>
 <translation id="6970543303783413625">Şifreler içe aktarılamıyor. Aynı anda en fazla <ph name="COUNT" /> şifreyi içe aktarabilirsiniz.</translation>
 <translation id="6970856801391541997">Belirli Sayfaları Yazdır</translation>
@@ -6813,6 +6817,7 @@
 <translation id="7377481913241237033">Kod kullanarak bağlanma</translation>
 <translation id="7378611153938412599">Zayıf şifrelerin tahmin edilmesi kolaydır. Güçlü şifreler oluşturduğunuzdan emin olun. <ph name="BEGIN_LINK" />Güvenlikle ilgili daha fazla ipucu görün.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Mağazası'nı açın</translation>
+<translation id="7380272457268061606">Yerel verileri kurtarma devre dışı bırakılsın mı?</translation>
 <translation id="7380459290951585794">Telefonunuzun yakında bulunduğundan, kilidinin ve Bluetooth ile Kablosuz bağlantının da açık olduğundan emin olun</translation>
 <translation id="7380622428988553498">Cihaz adı geçersiz karakterler içeriyor</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> güncellendi</translation>
@@ -7063,6 +7068,7 @@
 <translation id="7617263010641145920">Play Store'u aç</translation>
 <translation id="7617648809369507487">Sessiz bildirim kullanılsın</translation>
 <translation id="7621382409404463535">Sistem cihaz yapılandırmasını kaydedemedi.</translation>
+<translation id="7621595347123595643">Şifrenizi veya PIN'inizi unutursanız yerel verileri kurtaramazsınız.</translation>
 <translation id="7622114377921274169">Şarj oluyor.</translation>
 <translation id="7622768823216805500">Daha kolay ödeme gibi alışveriş özelliklerinin kullanılması için siteler genellikle ödeme işleyiciler yükler</translation>
 <translation id="7622903810087708234">Şifre ayrıntıları</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 77a4c2ec..8902a11 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -2093,7 +2093,6 @@
 <translation id="2852385257476173980">Коли ви переглядатимете веб-сторінки, тут може з’являтися список відвіданих сайтів</translation>
 <translation id="285241945869362924">Автоматично створює субтитри для аудіо та відео. Аудіозаписи й субтитри залишаються на вашому пристрої.</translation>
 <translation id="2856776373509145513">Створіть новий контейнер</translation>
-<translation id="2858138569776157458">Популярні сайти</translation>
 <translation id="2861301611394761800">Оновлення системи завершено. Перезапустіть систему.</translation>
 <translation id="2861941300086904918">Менеджер безпеки Native Client</translation>
 <translation id="2862815659905780618">Вилучити середовище для розробки Linux</translation>
@@ -2380,6 +2379,7 @@
 <translation id="3129173833825111527">Ліве поле</translation>
 <translation id="3129215702932019810">Не вдалося запустити додаток</translation>
 <translation id="3130528281680948470">Параметри вашого пристрою буде скинуто, а всі облікові записи користувачів і локальні дані видалено. Цю дію неможливо відмінити.</translation>
+<translation id="3130863904455712965">Історія та інші переваги</translation>
 <translation id="313205617302240621">Забули пароль?</translation>
 <translation id="3132277757485842847">Зв'язок із телефоном утрачено. Переконайтеся, що ваш телефон поблизу й розблокований, а Bluetooth і Wi-Fi увімкнено.</translation>
 <translation id="3132896062549112541">Правило</translation>
@@ -2393,7 +2393,6 @@
 <translation id="3143515551205905069">Скасувати синхронізацію</translation>
 <translation id="3143754809889689516">Відтворити з початку</translation>
 <translation id="3144647712221361880">Відкрити посилання як</translation>
-<translation id="3144896554017119333">Розширення тощо</translation>
 <translation id="3149510190863420837">Додатки Chrome</translation>
 <translation id="3150693969729403281">Виконати перевірку безпеки</translation>
 <translation id="3150927491400159470">Жорстке перезавантаження</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 32c3641..b8978d3 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1288,6 +1288,7 @@
 <translation id="2157875535253991059">یہ صفحہ اب پوری اسکرین ہے۔</translation>
 <translation id="2158475082070321257">نمایاں کرنے کا لنک کاپی کریں</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" /> کے لیے <ph name="SHORTCUT" /> کا دائرہ کار</translation>
 <translation id="216169395504480358">‏Wi-Fi شامل کریں…</translation>
 <translation id="2162155940152307086">آپ کی مطابقت پذیری کی ترتیبات کو چھوڑنے پر مطابقت پذیری شروع ہوگی</translation>
 <translation id="2162705204091149050">‏اپنے براؤزر، OS، آلے، انسٹال کردہ سافٹ ویئر اور فائلز سے متعلق معلومات پڑھیں</translation>
@@ -2077,7 +2078,6 @@
 <translation id="2852385257476173980">آپ کے ویب براؤز کرتے ہی سائٹس کی ایک فہرست یہاں ظاہر ہو سکتی ہے</translation>
 <translation id="285241945869362924">یہ خصوصیت آڈیو اور ویڈیو کیلئے خودکار طور پر کیپشنز تخلیق کرتی ہے۔ آڈیو اور کیپشنز ہمیشہ آلے پر ہی رہتے ہیں۔</translation>
 <translation id="2856776373509145513">ایک نیا کنٹینر تخلیق کریں</translation>
-<translation id="2858138569776157458">ٹاپ سائٹس</translation>
 <translation id="2861301611394761800">سسٹم اپ ڈیٹ مکمل ہوگیا۔ براہ کرم سسٹم کو دوبارہ شروع کریں۔</translation>
 <translation id="2861941300086904918">‏Native Client سیکیورٹی مینیجر</translation>
 <translation id="2862815659905780618">‏Linux ڈیولپمنٹ ماحول کو ہٹائیں</translation>
@@ -2364,6 +2364,7 @@
 <translation id="3129173833825111527">بایاں مارجن</translation>
 <translation id="3129215702932019810">ایپلیکشن شروع کرنے میں خرابی</translation>
 <translation id="3130528281680948470">آپ کا آلہ دوبارہ ترتیب دیا جائے گا اور سبھی صارف اکاؤنٹس اور مقامی ڈیٹا ہٹا دیے جائیں گے۔ اسے کالعدم نہیں کیا جا سکتا ہے۔</translation>
+<translation id="3130863904455712965">سرگزشت اور مزید</translation>
 <translation id="313205617302240621">پاس ورڈ بھول گئے؟</translation>
 <translation id="3132277757485842847">‏ہم آپ کے فون کے ساتھ کنکشن برقرار رکھنے سے قاصر تھے۔ یقینی بنائیں کہ آپ کا فون قریب ہے، غیر مقفل ہے اور اس میں بلوٹوتھ اور Wi-Fi آن ہے۔</translation>
 <translation id="3132896062549112541">اصول</translation>
@@ -2377,7 +2378,6 @@
 <translation id="3143515551205905069">مطابقت پذیری منسوخ کریں</translation>
 <translation id="3143754809889689516">شروع سے چلائیں</translation>
 <translation id="3144647712221361880">لنک کو اس کے بطور کھولیں</translation>
-<translation id="3144896554017119333">ایکسٹینشنز اور مزید</translation>
 <translation id="3149510190863420837">‏Chrome ایپس</translation>
 <translation id="3150693969729403281">اب سیفٹی چیک چلائیں</translation>
 <translation id="3150927491400159470">ہارڈ ری لوڈ</translation>
@@ -2675,6 +2675,7 @@
 <translation id="3445047461171030979">‏Google اسسٹنٹ کے فوری جوابات</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> منٹ</translation>
 <translation id="344537926140058498">آپ کی تنظیم نے اس فائل کو مسدود کر دیا کیونکہ اس میں حساس یا خطرناک مواد ہے۔ اس کے مالک سے درست کرنے کو کہیں۔</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{<ph name="BEGIN_BOLD" />1 سائٹ<ph name="END_BOLD" /> سے اجازتیں ہٹائی گئیں جن کا آپ نے حال ہی میں ملاحظہ نہیں کیا ہے}other{ٓ<ph name="BEGIN_BOLD" />{NUM_SITES} سائٹس<ph name="END_BOLD" /> سے اجازتیں ہٹائی گئیں جن کا آپ نے حال میں ملاحظہ نہیں کیا ہے}}</translation>
 <translation id="3445925074670675829">‏USB-C آلہ</translation>
 <translation id="3446274660183028131">‏براہ کرم Windows انسٹال کرنے کیلئے Parallels ڈیسک ٹاپ شروع کریں۔</translation>
 <translation id="344630545793878684">متعدد ویب سائٹس پر اپنا ڈیٹا پڑھیں</translation>
@@ -2886,6 +2887,7 @@
 <translation id="3642699533549879077">جب کوئی آپ کی اسکرین پر دیکھتا ہے تو آپ کو ایک الرٹ ملے گا اور اطلاع کا مواد چھپ جائے گا۔</translation>
 <translation id="3643962751030964445">یہ آلہ <ph name="DEVICE_MANAGER" /> کے زیر انتظام ہے۔ <ph name="DEVICE_MANAGER" /> کو اکاؤنٹ <ph name="USER_EMAIL_ADDRESS" /> کے لیے ایک نئی پروفائل درکار ہے</translation>
 <translation id="3645372836428131288">فنگر پرنٹ کے مختلف حصے کو کیپچر کرنے کیلئے تھوڑی سی حرکت دیں</translation>
+<translation id="3647051300407077858">اطلاع کی اجازتوں کا جائزہ لیں</translation>
 <translation id="3647654707956482440">اس لنک کا استعمال نہیں کر سکتے۔ ٹائپنگ کی غلطیاں چیک کریں یا دوبارہ کوشش کرنے کیلئے دوسرا لنک استعمال کریں۔</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول ہوئیں}other{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول ہوئیں}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> کا پتا چلا</translation>
@@ -3065,6 +3067,7 @@
 <translation id="380408572480438692">‏کارکردگی ڈیٹا کی جمع آوری کو فعال کرنے سے Google کو وقت وقت پر سسٹم کو بہتر بنانے میں مدد ملے گی۔ اس وقت تک کوئی ڈیٹا نہیں بھیجا جاتا ہے جب تک آپ ایک تاثرات رپورٹ نہ فائل کریں (Alt-Shift-I) اور کارکردگی کا ڈیٹا شامل نہ کریں۔ آپ کسی بھی وقت جمع آوری کو غیر فعال کرنے کیلئے اس اسکرین پر واپس آ سکتے ہیں۔</translation>
 <translation id="3807249107536149332">‏<ph name="EXTENSION_NAME" /> (ایکسٹینشن ID "<ph name="EXTENSION_ID" />") کی لاگ ان اسکرین پر اجازت نہیں ہے۔</translation>
 <translation id="3807747707162121253">&amp;منسوخ کریں</translation>
+<translation id="3808202562160426447">پس منظر کا مواد مدھم کریں</translation>
 <translation id="3808443763115411087">‏Crostini Android ایپ ڈیولپمنٹ</translation>
 <translation id="38089336910894858">‏‎⌘Q کے ذریعے چھوڑنے سے پہلے انتباہ دکھائیں</translation>
 <translation id="3809272675881623365">خرگوش</translation>
@@ -3656,6 +3659,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> ایک ونڈو کا اشتراک کر رہی ہے۔</translation>
 <translation id="4364830672918311045">اطلاعات ڈسپلے کریں</translation>
 <translation id="4366138410738374926">پرنٹنگ شروع ہو گئی ہے</translation>
+<translation id="4367513928820380646">ہٹائی گئی اجازتوں کا جائزہ لیں</translation>
 <translation id="4369121877634339065">تلاش کرنے کے لیے کسی بھی تصویر پر گھسیٹیں</translation>
 <translation id="4369215744064167350">ویب سائٹ کی درخواست منظور ہو گئی</translation>
 <translation id="4370975561335139969">آپ کی جانب سے درج کردہ ای میل اور پاس ورڈ مماثل نہیں ہیں</translation>
@@ -4375,6 +4379,7 @@
 <translation id="5045550434625856497">غلط پاس ورڈ</translation>
 <translation id="504561833207953641">موجودہ براؤزر کے سیشن میں کھل رہا ہے۔</translation>
 <translation id="5049614114599109018">ان پٹ کی سرگزشت استعمال کریں</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{اس سائٹ نے بہت ساری اطلاعات بھیجی ہیں۔ آپ اسے مستقبل میں اطلاعات بھیجنے سے روک سکتے ہیں۔}other{ان سائٹس نے حال ہی میں بہت ساری اطلاعات بھیجی ہیں۔ آپ انہیں مستقبل میں اطلاعات بھیجنے سے روک سکتے ہیں۔}}</translation>
 <translation id="5051836348807686060">املا کی جانچ آپ کی منتخب زبانوں کے لیے تعاون یافتہ نہیں ہے</translation>
 <translation id="5052499409147950210">سائٹ میں ترمیم کریں</translation>
 <translation id="505347685865235222">بغیر نام کے گروپ - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7270,6 +7275,7 @@
 <translation id="7775694664330414886">ٹیب کو بغیر نام والے گروپ میں منتقل کر دیا گیا - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">اس سائٹ کے لیے آپ کے سبھی ٹیبز کو بند کرنے تک <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> میں فائلز دیکھ سکے گا</translation>
 <translation id="7776701556330691704">کوئی آواز نہیں ملی</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" /> کے لیے شارٹ کٹ <ph name="SHORTCUT" /></translation>
 <translation id="7781335840981796660">سبھی صارف اکاؤنٹس اور مقامی ڈیٹا کو ہٹا دیا جائے گا۔</translation>
 <translation id="7782102568078991263">‏Google کی جانب سے مزید کوئی مشورے نہیں ہیں</translation>
 <translation id="7782717250816686129">لاگ ان اسکرین پر مستقل ڈیٹا اسٹور کریں اور سیشن میں اسناد داخل کریں۔</translation>
@@ -7302,6 +7308,7 @@
 <translation id="7807711621188256451"><ph name="HOST" /> کو ہمیشہ اپنے کیمرے تک رسائی حاصل کرنے کی اجازت دیں</translation>
 <translation id="7810202088502699111">پاپ اپس کو اس صفحہ پر مسدود کر دیا گیا۔</translation>
 <translation id="7814458197256864873">&amp;کاپی کریں</translation>
+<translation id="7815583197273433531"><ph name="EXTENSION_NAME" /> کے لیے شارٹ کٹ <ph name="SHORTCUT" /> میں ترمیم کریں</translation>
 <translation id="7815680994978050279">خطرناک ڈاؤن لوڈ مسدود کیا گیا</translation>
 <translation id="7817361223956157679">‏Linux ایپس پر آن اسکرین کی بورڈ ابھی کام نہیں کرتا ہے</translation>
 <translation id="7818135753970109980">نیا تھیم شامل کر دیا گیا (<ph name="EXTENSION_NAME" />)</translation>
@@ -7376,6 +7383,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">اکاؤنٹ دیکھیں</translation>
 <translation id="7883792253546618164">کسی بھی وقت اَن سبسکرائب کریں۔</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{1 سائٹ کا جائزہ لیں جس نے بہت ساری اطلاعات بھیجی ہیں}other{{NUM_SITES} سائٹس کا جائزہ لیں جس نے بہت ساری اطلاعات بھیجی ہیں}}</translation>
 <translation id="788453346724465748">اکاؤنٹ کی معلومات لوڈ ہورہی ہے...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ایک آئٹم}other{# آئٹمز}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 42c0b89..730f040 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -2078,7 +2078,6 @@
 <translation id="2852385257476173980">Internetdan foydalanishingiz davomida siz ochgan saytlar roʻyxati shu yerda chiqishi mumkin</translation>
 <translation id="285241945869362924">Audio va video ijrosida taglavhalarni avtomatik yaratadi. Audio va taglavhalar qurilmaning oʻzida qayta ishlanadi.</translation>
 <translation id="2856776373509145513">Yangi konteyner yaratish</translation>
-<translation id="2858138569776157458">Top saytlar</translation>
 <translation id="2861301611394761800">Tizim yangilandi. Endi kompyuterni qayta ishga tushiring.</translation>
 <translation id="2861941300086904918">Xavfsizlik menejeri – Native Client</translation>
 <translation id="2862815659905780618">Linux dasturlash muhitini olib tashlash</translation>
@@ -2365,6 +2364,7 @@
 <translation id="3129173833825111527">Chap hoshiya</translation>
 <translation id="3129215702932019810">Ilovani ishga tushirishda xato</translation>
 <translation id="3130528281680948470">Qurilmangiz dastlabki sozlamalarga qaytadi, barcha hisoblar va mahalliy ma’lumotlar o‘chib ketadi. Bu amalni ortga qaytarib bo‘lmaydi.</translation>
+<translation id="3130863904455712965">Tarix va boshqa</translation>
 <translation id="313205617302240621">Parol esdan chiqdimi?</translation>
 <translation id="3132277757485842847">Telefon bilan ulanish uzilib qoldi. Telefoningiz yoningizda, qulflanmagan va undagi Bluetooth, Wi-Fi yoniqligini tekshiring.</translation>
 <translation id="3132896062549112541">Qoida</translation>
@@ -2378,7 +2378,6 @@
 <translation id="3143515551205905069">Sinxronizatsiyani bekor qilish</translation>
 <translation id="3143754809889689516">Boshidan ijro etish</translation>
 <translation id="3144647712221361880">Havolani quyidagicha ochish</translation>
-<translation id="3144896554017119333">Kengaytmalar va boshqalar</translation>
 <translation id="3149510190863420837">Chrome ilovalari</translation>
 <translation id="3150693969729403281">Xavfsizlik tekshiruvini ishga tushirish</translation>
 <translation id="3150927491400159470">Apparatni qayta yuklash</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index df16342..97fc74b 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1299,6 +1299,7 @@
 <translation id="2157875535253991059">Trang này hiện ở chế độ toàn màn hình.</translation>
 <translation id="2158475082070321257">Sao chép đường liên kết đến văn bản được làm nổi bật</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Phạm vi của <ph name="SHORTCUT" /> cho <ph name="EXTENSION_NAME" /></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="2162705204091149050">Đọc thông tin về trình duyệt, hệ điều hành, thiết bị, phần mềm đã cài đặt và tệp</translation>
@@ -2090,7 +2091,6 @@
 <translation id="2852385257476173980">Danh sách các trang bạn truy cập có thể xuất hiện tại đây khi bạn duyệt web</translation>
 <translation id="285241945869362924">Tự động tạo phụ đề cho âm thanh và video. Âm thanh và phụ đề chỉ lưu trên thiết bị của bạn.</translation>
 <translation id="2856776373509145513">Tạo một vùng chứa mới</translation>
-<translation id="2858138569776157458">Trang web hàng đầu</translation>
 <translation id="2861301611394761800">Đã cập nhật xong. Vui lòng khởi động lại hệ thống.</translation>
 <translation id="2861941300086904918">Trình quản lý bảo mật Native Client</translation>
 <translation id="2862815659905780618">Xóa môi trường phát triển Linux</translation>
@@ -2377,6 +2377,7 @@
 <translation id="3129173833825111527">Lề trái</translation>
 <translation id="3129215702932019810">Lỗi khi chạy ứng dụng</translation>
 <translation id="3130528281680948470">Thiết bị của bạn sẽ được đặt lại và tất cả các tài khoản người dùng và dữ liệu cục bộ sẽ bị xóa. Không thể hoàn tác thao tác này.</translation>
+<translation id="3130863904455712965">Nhật ký và nhiều nội dung khác</translation>
 <translation id="313205617302240621">Bạn quên mật khẩu?</translation>
 <translation id="3132277757485842847">Chúng tôi không thể duy trì đường kết nối với điện thoại của bạn. Hãy đảm bảo điện thoại của bạn đang ở gần, mở khóa, đồng thời đã bật Bluetooth và Wi-Fi.</translation>
 <translation id="3132896062549112541">Quy tắc</translation>
@@ -2390,7 +2391,6 @@
 <translation id="3143515551205905069">Hủy đồng bộ hóa</translation>
 <translation id="3143754809889689516">Phát từ đầu</translation>
 <translation id="3144647712221361880">Mở đường liên kết bằng tài khoản</translation>
-<translation id="3144896554017119333">Tiện ích và nhiều nội dung khác</translation>
 <translation id="3149510190863420837">Ứng dụng Chrome</translation>
 <translation id="3150693969729403281">Chạy tính năng kiểm tra an toàn ngay</translation>
 <translation id="3150927491400159470">Tải lại cứng</translation>
@@ -2688,6 +2688,7 @@
 <translation id="3445047461171030979">Các câu trả lời nhanh của Trợ lý Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> phút</translation>
 <translation id="344537926140058498">Tổ chức của bạn đã chặn tệp này vì tệp có nội dung nhạy cảm hoặc nguy hiểm. Hãy yêu cầu chủ sở hữu tệp khắc phục vấn đề.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Đã xoá quyền khỏi <ph name="BEGIN_BOLD" />1 trang web<ph name="END_BOLD" /> mà gần đây bạn không truy cập}other{Đã xoá quyền khỏi <ph name="BEGIN_BOLD" />{NUM_SITES} trang web<ph name="END_BOLD" /> mà gần đây bạn không truy cập}}</translation>
 <translation id="3445925074670675829">Thiết bị USB-C</translation>
 <translation id="3446274660183028131">Vui lòng chạy ứng dụng Parallels Desktop để cài đặt Windows.</translation>
 <translation id="344630545793878684">Đọc dữ liệu của bạn trên một số trang web</translation>
@@ -2899,6 +2900,7 @@
 <translation id="3642699533549879077">Khi người khác nhìn vào màn hình của bạn, bạn sẽ nhận được cảnh báo và nội dung của thông báo sẽ bị ẩn đi.</translation>
 <translation id="3643962751030964445">Thiết bị này do <ph name="DEVICE_MANAGER" /> quản lý. <ph name="DEVICE_MANAGER" /> yêu cầu hồ sơ mới cho tài khoản <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Nhẹ nhàng di chuyển ngón tay để hệ thống quét các phần của vân tay.</translation>
+<translation id="3647051300407077858">Xem xét quyền gửi thông báo</translation>
 <translation id="3647654707956482440">Không dùng được đường liên kết này. Hãy kiểm tra lỗi chính tả hoặc dùng một đường liên kết khác để thử lại.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Đã nhận <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}other{Đã nhận <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Đã phát hiện thấy <ph name="USB_DEVICE_NAME" /></translation>
@@ -3078,6 +3080,7 @@
 <translation id="380408572480438692">Việc bật tính năng thu thập dữ liệu hoạt động sẽ giúp Google liên tục cải thiện hệ thống. Không dữ liệu nào được gửi cho tới khi bạn gửi báo cáo phản hồi (Alt-Shift-I) và cung cấp dữ liệu hoạt động. Bạn có thể quay lại màn hình này để tắt tính năng thu thập bất kỳ lúc nào.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (ID tiện ích "<ph name="EXTENSION_ID" />") không được cho phép trên màn hình đăng nhập.</translation>
 <translation id="3807747707162121253">&amp;Huỷ</translation>
+<translation id="3808202562160426447">Làm mờ nội dung trong nền</translation>
 <translation id="3808443763115411087">Phát triển ứng dụng Android cho Crostini</translation>
 <translation id="38089336910894858">Hiển thị cảnh báo trước khi thoát bằng ⌘Q</translation>
 <translation id="3809272675881623365">Con thỏ</translation>
@@ -3669,6 +3672,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> đang chia sẻ một cửa sổ.</translation>
 <translation id="4364830672918311045">Hiện thông báo</translation>
 <translation id="4366138410738374926">Đã bắt đầu in</translation>
+<translation id="4367513928820380646">Xem xét các quyền đã xoá</translation>
 <translation id="4369121877634339065">Kéo bất kỳ hình ảnh nào qua để tìm kiếm</translation>
 <translation id="4369215744064167350">Đã phê duyệt yêu cầu truy cập trang web</translation>
 <translation id="4370975561335139969">Email và mật khẩu bạn nhập không khớp</translation>
@@ -4389,6 +4393,7 @@
 <translation id="5045550434625856497">Mật khẩu sai</translation>
 <translation id="504561833207953641">Mở trong phiên trình duyệt hiện tại.</translation>
 <translation id="5049614114599109018">Sử dụng nhật ký nhập</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Gần đây, trang web này đã gửi rất nhiều thông báo. Bạn có thể ngăn trang web này gửi thông báo trong tương lai.}other{Gần đây, các trang web này đã gửi rất nhiều thông báo. Bạn có thể ngăn các trang web này gửi thông báo trong tương lai.}}</translation>
 <translation id="5051836348807686060">Các ngôn ngữ bạn đã chọn không hỗ trợ tính năng kiểm tra chính tả</translation>
 <translation id="5052499409147950210">Chỉnh sửa trang web</translation>
 <translation id="505347685865235222">Nhóm chưa có tên – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7285,6 +7290,7 @@
 <translation id="7775694664330414886">Đã di chuyển thẻ sang nhóm chưa có tên – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> có thể xem các tệp trong <ph name="FOLDERNAME" /> cho đến khi bạn đóng tất cả các thẻ cho trang web này</translation>
 <translation id="7776701556330691704">Không tìm thấy giọng nói nào</translation>
+<translation id="7777624210360383048">Lối tắt <ph name="SHORTCUT" /> cho <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Tất cả tài khoản người dùng và dữ liệu trên máy đều sẽ bị xóa.</translation>
 <translation id="7782102568078991263">Không có đề xuất nào khác từ Google</translation>
 <translation id="7782717250816686129">Lưu trữ dữ liệu liên tục trên màn hình đăng nhập và đưa thông tin xác thực vào phiên.</translation>
@@ -7317,6 +7323,7 @@
 <translation id="7807711621188256451">Luôn cho phép <ph name="HOST" /> truy cập máy ảnh của bạn</translation>
 <translation id="7810202088502699111">Cửa sổ bật lên đã bị chặn trên trang này.</translation>
 <translation id="7814458197256864873">Sao &amp;chép</translation>
+<translation id="7815583197273433531">Chỉnh sửa lối tắt <ph name="SHORTCUT" /> cho <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Tải xuống nguy hiểm đã chặn</translation>
 <translation id="7817361223956157679">Bàn phím ảo chưa hoạt động trên các ứng dụng Linux</translation>
 <translation id="7818135753970109980">Đã thêm chủ đề mới (<ph name="EXTENSION_NAME" />)</translation>
@@ -7391,6 +7398,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Xem tài khoản</translation>
 <translation id="7883792253546618164">Bạn có thể hủy đăng ký bất kỳ lúc nào.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Xem xét 1 trang web đã gửi nhiều thông báo}other{Xem xét {NUM_SITES} trang web đã gửi nhiều thông báo}}</translation>
 <translation id="788453346724465748">Đang tải thông tin tài khoản...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{một mục}other{# mục}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 83e6538..8f34178 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2067,7 +2067,6 @@
 <translation id="2852385257476173980">当您浏览网页时,此处可能会列出您访问过的网站</translation>
 <translation id="285241945869362924">自动为音频和视频创建字幕。音频和字幕绝不会从设备中泄露出去。</translation>
 <translation id="2856776373509145513">创建一个新容器</translation>
-<translation id="2858138569776157458">热门网站</translation>
 <translation id="2861301611394761800">系统更新已完成。请重新启动系统。</translation>
 <translation id="2861941300086904918">Native Client 安全管理器</translation>
 <translation id="2862815659905780618">移除 Linux 开发环境</translation>
@@ -2354,6 +2353,7 @@
 <translation id="3129173833825111527">左侧页边距</translation>
 <translation id="3129215702932019810">启动此应用时出错</translation>
 <translation id="3130528281680948470">您的设备将被重置,且所有用户帐号和本地数据都将移除。此操作无法撤消。</translation>
+<translation id="3130863904455712965">历史记录和其他内容</translation>
 <translation id="313205617302240621">忘记了密码?</translation>
 <translation id="3132277757485842847">我们无法保持与您手机的连接。请确保您的手机就在附近、处于解锁状态,且已开启蓝牙和 Wi-Fi。</translation>
 <translation id="3132896062549112541">规则</translation>
@@ -2367,7 +2367,6 @@
 <translation id="3143515551205905069">取消同步</translation>
 <translation id="3143754809889689516">从头播放</translation>
 <translation id="3144647712221361880">以其他身份打开链接</translation>
-<translation id="3144896554017119333">扩展程序,等等</translation>
 <translation id="3149510190863420837">Chrome 应用</translation>
 <translation id="3150693969729403281">立即进行安全检查</translation>
 <translation id="3150927491400159470">硬性重新加载</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 8f4a7411..6a0abdf 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -2090,7 +2090,6 @@
 <translation id="2852385257476173980">在您瀏覽網絡同時,系統可能會於此處顯示您瀏覽的網站清單</translation>
 <translation id="285241945869362924">自動建立音訊和影片字幕。音訊和字幕絕不會外洩。</translation>
 <translation id="2856776373509145513">建立新容器</translation>
-<translation id="2858138569776157458">熱門網站</translation>
 <translation id="2861301611394761800">系統更新完成,請重新啟動系統。</translation>
 <translation id="2861941300086904918">Native Client 安全性管理員</translation>
 <translation id="2862815659905780618">移除 Linux 開發環境</translation>
@@ -2377,6 +2376,7 @@
 <translation id="3129173833825111527">左邊界</translation>
 <translation id="3129215702932019810">啟動應用程式時發生錯誤</translation>
 <translation id="3130528281680948470">您的裝置將會重新設定,且所有使用者帳戶和本機資料都會被移除。這項操作無法復原。</translation>
+<translation id="3130863904455712965">記錄和其他</translation>
 <translation id="313205617302240621">忘記密碼?</translation>
 <translation id="3132277757485842847">我們無法與您的手機維持連線狀態。請確認您的手機在附近並已解鎖,且已開啟藍牙和 Wi-Fi。</translation>
 <translation id="3132896062549112541">規則</translation>
@@ -2390,7 +2390,6 @@
 <translation id="3143515551205905069">取消同步處理</translation>
 <translation id="3143754809889689516">從頭開始播放</translation>
 <translation id="3144647712221361880">以其他身分開啟連結</translation>
-<translation id="3144896554017119333">擴充程式和其他項目</translation>
 <translation id="3149510190863420837">Chrome 應用程式</translation>
 <translation id="3150693969729403281">即刻執行安全檢查</translation>
 <translation id="3150927491400159470">強制重新載入</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index b23ffa1..a4f390b 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -2075,7 +2075,6 @@
 <translation id="2852385257476173980">瀏覽網路時,你造訪的網站清單可能會顯示在這裡</translation>
 <translation id="285241945869362924">自動建立音訊和視訊的字幕。音訊和字幕絕不會外洩。</translation>
 <translation id="2856776373509145513">建立新容器</translation>
-<translation id="2858138569776157458">熱門網站</translation>
 <translation id="2861301611394761800">系統更新完成,請重新啟動系統。</translation>
 <translation id="2861941300086904918">Native Client 安全性管理員</translation>
 <translation id="2862815659905780618">移除 Linux 開發環境</translation>
@@ -2362,6 +2361,7 @@
 <translation id="3129173833825111527">左邊界</translation>
 <translation id="3129215702932019810">啟動應用程式時發生錯誤</translation>
 <translation id="3130528281680948470">你的裝置將會進行重設,且所有使用者帳戶和本機資料都會遭到移除。這項操作無法復原。</translation>
+<translation id="3130863904455712965">歷史記錄和其他資料</translation>
 <translation id="313205617302240621">忘記密碼了嗎?</translation>
 <translation id="3132277757485842847">無法與你的手機維持連線狀態。請確認你的手機在附近,且已解鎖及開啟藍牙和 Wi-Fi。</translation>
 <translation id="3132896062549112541">規則</translation>
@@ -2375,7 +2375,6 @@
 <translation id="3143515551205905069">取消同步處理</translation>
 <translation id="3143754809889689516">從頭播放</translation>
 <translation id="3144647712221361880">以其他身分開啟連結</translation>
-<translation id="3144896554017119333">擴充功能和其他項目</translation>
 <translation id="3149510190863420837">Chrome 應用程式</translation>
 <translation id="3150693969729403281">立即執行安全檢查</translation>
 <translation id="3150927491400159470">強制重新載入</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 9b62b63..e5e27d2 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -2091,7 +2091,6 @@
 <translation id="2852385257476173980">Uhlu lwamasayithi owavakashelayo lungase luvele lapha njengoba ubhrawuza iwebhu</translation>
 <translation id="285241945869362924">Yenza amagama-ncazo womsindo nevidiyo ngokuzenzakalelayo. Umsindo namagama-ncazo akulokothi kushiye idivayisi yakho.</translation>
 <translation id="2856776373509145513">Yenza isiqukathi esisha</translation>
-<translation id="2858138569776157458">Amasayithi ahamba phambili</translation>
 <translation id="2861301611394761800">Ukubuyekeza isistimu kuqedile. Sicela uqale kabusha isistimu.</translation>
 <translation id="2861941300086904918">Isiphathi sokuvikela seklayenti lomdabu</translation>
 <translation id="2862815659905780618">Susa indawo yokuthuthukiswa kwe-Linux</translation>
@@ -2378,6 +2377,7 @@
 <translation id="3129173833825111527">Imajini engakwesokunxele</translation>
 <translation id="3129215702932019810">Iphutha lokuqalisa uhlelo lokusebenza</translation>
 <translation id="3130528281680948470">Idivayisi yakho izosethwa kabusha futhi wonke ama-akhawunti womsebenzisi nedatha yendawo izosuswa. Lokhu akukwazi ukuhlehliswa.</translation>
+<translation id="3130863904455712965">Umlando nokuningi</translation>
 <translation id="313205617302240621">Ukhohlwe iphasiwedi?</translation>
 <translation id="3132277757485842847">Asikwazanga ukugcina ukuxhumana nefoni yakho. Yenza isiqinisekiso sokuthi ifoni yakho iseduze, ivuliwe, futhi ine-Bluetooth ne-Wi-Fi evuliwe.</translation>
 <translation id="3132896062549112541">Isimiso</translation>
@@ -2391,7 +2391,6 @@
 <translation id="3143515551205905069">Khansela ukuvumelanisa</translation>
 <translation id="3143754809889689516">Dlala kusukela ekuqaleni</translation>
 <translation id="3144647712221361880">Vula isixhumanisi njenge-</translation>
-<translation id="3144896554017119333">Izandiso nokunye okwengeziwe</translation>
 <translation id="3149510190863420837">Izinhlelo zokusebenza ze-Chrome</translation>
 <translation id="3150693969729403281">Sebenzisa ukuhlola kokuphepha manje</translation>
 <translation id="3150927491400159470">Ukulayishwa kabusha okunzima</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index cc4f9a50..33e1362a 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -892,6 +892,9 @@
   <message name="IDS_SETTINGS_PASSWORDS_IMPORT_LONG_PASSWORD" desc="An error message for a row that wasn't imported, because the provided password exceeds the length limit. It is shown on the dialog for importing passwords if some passwords weren't imported.">
     Password is more than 1000 characters
   </message>
+  <message name="IDS_SETTINGS_PASSWORDS_IMPORT_LONG_NOTE" desc="An error message for a row that wasn't imported, because the provided note exceeds the length limit. It is shown on the dialog for importing passwords if some passwords weren't imported.">
+    Note is more than 1000 characters
+  </message>
   <message name="IDS_SETTINGS_PASSWORDS_IMPORT_CONFLICT_ACCOUNT" desc="An error message for a row that wasn't imported, because the provided credential is already stored in their Google Password Manager. It is shown on the dialog for importing passwords if some passwords weren't imported.">
     A password for this account is already saved to your Google Password Manager (<ph name="USER_EMAIL"><ex>elisa.g.becket@gmail.com</ex>$1</ph>)
   </message>
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PASSWORDS_IMPORT_LONG_NOTE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PASSWORDS_IMPORT_LONG_NOTE.png.sha1
new file mode 100644
index 0000000..3793849
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PASSWORDS_IMPORT_LONG_NOTE.png.sha1
@@ -0,0 +1 @@
+548cba39e446a5c7b49d5c96cf58a0b123c4fd18
\ No newline at end of file
diff --git a/chrome/app/theme/chrome_unscaled_resources.grd b/chrome/app/theme/chrome_unscaled_resources.grd
index ae217b9e..00753d2 100644
--- a/chrome/app/theme/chrome_unscaled_resources.grd
+++ b/chrome/app/theme/chrome_unscaled_resources.grd
@@ -30,7 +30,6 @@
               <include name="IDR_PRODUCT_LOGO_256" file="google_chrome/product_logo_256.png" type="BINDATA" />
             </else>
           </if>
-          <include name="IDR_ASSISTANT_LOGO_MONOCHROME" file="google_chrome/google_assistant.svg" type="BINDATA" />
           <include name="IDR_CHROME_PASSWORD_MANAGER_LOGO" file="google_chrome/google_password_manager_logo.svg" type="BINDATA" />
           <include name="IDR_PRODUCT_LOGO_24PX_1X" file="google_chrome/chrome_24px_1x.svg" type="BINDATA" />
           <include name="IDR_PRODUCT_LOGO_128PX_SVG" file="google_chrome/chrome_128px.svg" type="BINDATA" />
diff --git a/chrome/app/theme/default_100_percent/common/biometric_password_auth_dark.png b/chrome/app/theme/default_100_percent/common/biometric_password_auth_dark.png
index 4e1e0a6..aa37e44 100644
--- a/chrome/app/theme/default_100_percent/common/biometric_password_auth_dark.png
+++ b/chrome/app/theme/default_100_percent/common/biometric_password_auth_dark.png
Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/biometric_password_auth_light.png b/chrome/app/theme/default_100_percent/common/biometric_password_auth_light.png
index 0a971d2..f8a0a73 100644
--- a/chrome/app/theme/default_100_percent/common/biometric_password_auth_light.png
+++ b/chrome/app/theme/default_100_percent/common/biometric_password_auth_light.png
Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/biometric_password_success_dark.png b/chrome/app/theme/default_100_percent/common/biometric_password_success_dark.png
index b136a787..b5bd099b 100644
--- a/chrome/app/theme/default_100_percent/common/biometric_password_success_dark.png
+++ b/chrome/app/theme/default_100_percent/common/biometric_password_success_dark.png
Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/biometric_password_success_light.png b/chrome/app/theme/default_100_percent/common/biometric_password_success_light.png
index 9c33aa4..a7a1e3a 100644
--- a/chrome/app/theme/default_100_percent/common/biometric_password_success_light.png
+++ b/chrome/app/theme/default_100_percent/common/biometric_password_success_light.png
Binary files differ
diff --git a/chrome/app/theme/default_200_percent/common/biometric_password_auth_dark.png b/chrome/app/theme/default_200_percent/common/biometric_password_auth_dark.png
index c9008cb..5ada4e8 100644
--- a/chrome/app/theme/default_200_percent/common/biometric_password_auth_dark.png
+++ b/chrome/app/theme/default_200_percent/common/biometric_password_auth_dark.png
Binary files differ
diff --git a/chrome/app/theme/default_200_percent/common/biometric_password_auth_light.png b/chrome/app/theme/default_200_percent/common/biometric_password_auth_light.png
index a1aa528..4eadd5ffa 100644
--- a/chrome/app/theme/default_200_percent/common/biometric_password_auth_light.png
+++ b/chrome/app/theme/default_200_percent/common/biometric_password_auth_light.png
Binary files differ
diff --git a/chrome/app/theme/default_200_percent/common/biometric_password_success_dark.png b/chrome/app/theme/default_200_percent/common/biometric_password_success_dark.png
index 5d72d110..c9d72f6 100644
--- a/chrome/app/theme/default_200_percent/common/biometric_password_success_dark.png
+++ b/chrome/app/theme/default_200_percent/common/biometric_password_success_dark.png
Binary files differ
diff --git a/chrome/app/theme/default_200_percent/common/biometric_password_success_light.png b/chrome/app/theme/default_200_percent/common/biometric_password_success_light.png
index c02eeed..d668fdb 100644
--- a/chrome/app/theme/default_200_percent/common/biometric_password_success_light.png
+++ b/chrome/app/theme/default_200_percent/common/biometric_password_success_light.png
Binary files differ
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index a98e25e..c53a9a71 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4072,10 +4072,14 @@
       "profile_resetter/triggered_profile_resetter.h",
       "profile_resetter/triggered_profile_resetter_factory.cc",
       "profile_resetter/triggered_profile_resetter_factory.h",
+      "profiles/delete_profile_helper.cc",
+      "profiles/delete_profile_helper.h",
       "profiles/guest_mode_policy_handler.cc",
       "profiles/guest_mode_policy_handler.h",
       "profiles/guest_profile_creation_logger.cc",
       "profiles/guest_profile_creation_logger.h",
+      "profiles/nuke_profile_directory_utils.cc",
+      "profiles/nuke_profile_directory_utils.h",
       "profiles/profile_shortcut_manager.cc",
       "profiles/profile_shortcut_manager.h",
       "profiles/profile_theme_update_service.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index bde22cb4..c311dce 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2706,22 +2706,12 @@
              kPasswordChangeInSettingsWithForcedWarningForEverySite,
          "true"}};
 
-const FeatureEntry::FeatureParam
-    kPasswordChangeInSettingsVariationWeakCredentials[] = {
-        {password_manager::features::
-             kPasswordChangeInSettingsWeakCredentialsParam.name,
-         "true"}};
-
 const FeatureEntry::FeatureVariation
     kPasswordChangeInSettingsFeatureVariations[] = {
         {"Force leak warnings for every site in settings.",
          kPasswordChangeInSettingsVariationWithForcedWarningForEverySite,
          std::size(
              kPasswordChangeInSettingsVariationWithForcedWarningForEverySite),
-         nullptr},
-        {"Include weak credentials.",
-         kPasswordChangeInSettingsVariationWeakCredentials,
-         std::size(kPasswordChangeInSettingsVariationWeakCredentials),
          nullptr}};
 
 #if BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/app_controller_mac_browsertest.mm b/chrome/browser/app_controller_mac_browsertest.mm
index fa58824..2456715 100644
--- a/chrome/browser/app_controller_mac_browsertest.mm
+++ b/chrome/browser/app_controller_mac_browsertest.mm
@@ -36,11 +36,13 @@
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/lifetime/application_lifetime_desktop.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_init_params.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_observer.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/signin/signin_util.h"
@@ -829,8 +831,9 @@
                                            ServiceAccessType::EXPLICIT_ACCESS));
 
   // Delete profile2.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // Verify the controller's history is back to profile1.
diff --git a/chrome/browser/app_controller_mac_unittest.mm b/chrome/browser/app_controller_mac_unittest.mm
index f88dfca..cb0a786 100644
--- a/chrome/browser/app_controller_mac_unittest.mm
+++ b/chrome/browser/app_controller_mac_unittest.mm
@@ -16,7 +16,9 @@
 #include "chrome/app/chrome_command_ids.h"
 #import "chrome/browser/app_controller_mac.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -199,8 +201,11 @@
   base::scoped_nsobject<AppController> ac([[AppController alloc] init]);
 
   // Delete the active profile.
-  profile_manager_.profile_manager()->ScheduleProfileForDeletion(
-      dest_path1, base::DoNothing());
+  profile_manager_.profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          dest_path1, base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   base::RunLoop().RunUntilIdle();
 
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
index 8165c7b..3b81388 100644
--- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc
+++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -516,6 +516,8 @@
     NetworkHandler::Initialize();
 
     chromeos::sensors::SensorHalDispatcher::Initialize();
+    chromeos::sensors::SensorHalDispatcher::GetInstance()
+        ->TryToEstablishMojoChannelByServiceManager();
 
     DeviceSettingsService::Get()->SetSessionManager(
         SessionManagerClient::Get(),
@@ -629,6 +631,13 @@
 int ChromeBrowserMainPartsAsh::PreEarlyInitialization() {
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
 
+  // Initialize mojo service manager. Note that this depends on the
+  // |mojo_ipc_support_| in |content::BrowserMainLoop| to be created. This
+  // should be initialized before sending any mojo invitations. Thus, those dbus
+  // service which send mojo invitation should be initialized after.
+  mojo_service_manager_closer_ =
+      mojo_service_manager::CreateConnectionAndPassCloser();
+
   if (command_line->HasSwitch(switches::kGuestSession)) {
     // Disable sync and extensions if we're in "browse without sign-in" mode.
     command_line->AppendSwitch(::syncer::kDisableSync);
@@ -712,19 +721,6 @@
   dbus_services_ = std::make_unique<internal::DBusServices>(
       std::move(feature_list_accessor_));
 
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kAshUseCrOSMojoServiceManager) ||
-      base::CommandLine::ForCurrentProcess()->HasSwitch(
-          ::switches::kBrowserTest)) {
-    // Initialize mojo service manager. Note that this depends on the
-    // |mojo_ipc_support_| in |content::BrowserMainLoop| to be created.
-    mojo_service_manager_closer_ =
-        mojo_service_manager::CreateConnectionAndPassCloser();
-
-    chromeos::sensors::SensorHalDispatcher::GetInstance()
-        ->TryToEstablishMojoChannelByServiceManager();
-  }
-
   // Need to be done after LoginState has been initialized in DBusServices().
   ::memory::MemoryKillsMonitor::Initialize();
 
diff --git a/chrome/browser/ash/dbus/fusebox_service_provider.cc b/chrome/browser/ash/dbus/fusebox_service_provider.cc
index 6cef92e3..43d07ee 100644
--- a/chrome/browser/ash/dbus/fusebox_service_provider.cc
+++ b/chrome/browser/ash/dbus/fusebox_service_provider.cc
@@ -14,6 +14,14 @@
 // This file provides the "D-Bus protocol logic" half of the FuseBox server,
 // coupled with the "business logic" half in fusebox_server.cc.
 
+// The "fusebox_staging" concept is described in
+// chrome/browser/ash/fusebox/fusebox_staging.proto
+//
+// TODO(b/255520194): remove this section.
+namespace fusebox_staging {
+const char kStat2Method[] = "Stat2";
+}  // namespace fusebox_staging
+
 namespace ash {
 
 namespace {
@@ -122,9 +130,8 @@
 void FuseBoxServiceProvider::Start(scoped_refptr<dbus::ExportedObject> object) {
   exported_object_ = object;
 
-  // TODO(b/255520194): make a protobuf-speaking Stat-like method (called
-  // Stat2) and remove Stat and the deprecated Open, Read and Close methods.
-  // The latter three have already been replaced by Open2, Read2 and Close2.
+  // TODO(b/255520194): remove the deprecated Stat, Open, Read and Close
+  // methods. They have been replaced by Stat2, Open2, Read2 and Close2.
   object->ExportMethod(fusebox::kFuseBoxServiceInterface, fusebox::kCloseMethod,
                        base::BindRepeating(&FuseBoxServiceProvider::Close,
                                            weak_ptr_factory_.GetWeakPtr()),
@@ -149,6 +156,7 @@
   ExportProtoMethod(fusebox::kRead2Method, &fusebox::Server::Read2);
   ExportProtoMethod(fusebox::kReadDir2Method, &fusebox::Server::ReadDir2);
   ExportProtoMethod(fusebox::kRmDirMethod, &fusebox::Server::RmDir);
+  ExportProtoMethod(fusebox_staging::kStat2Method, &fusebox::Server::Stat2);
   ExportProtoMethod(fusebox::kTruncateMethod, &fusebox::Server::Truncate);
   ExportProtoMethod(fusebox::kUnlinkMethod, &fusebox::Server::Unlink);
   ExportProtoMethod(fusebox::kWrite2Method, &fusebox::Server::Write2);
diff --git a/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc b/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc
index 1c03a1d2..eef4b5d 100644
--- a/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc
+++ b/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc
@@ -100,6 +100,7 @@
 #include "third_party/cros_system_api/constants/cryptohome.h"
 #include "ui/base/clipboard/clipboard_buffer.h"
 #include "ui/base/clipboard/clipboard_non_backed.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
 
 using ::ash::disks::DiskMountManager;
 using content::BrowserThread;
@@ -984,8 +985,24 @@
 
   policy::DlpFilesController* files_controller =
       rules_manager->GetDlpFilesController();
+
+  absl::optional<policy::DlpFilesController::DlpFileDestination> destination;
+  content::WebContents* web_contents = GetSenderWebContents();
+  if (!web_contents) {
+    LOG(WARNING) << "Failed to locate WebContents";
+    return RespondNow(Error("Failed to locate WebContents"));
+  }
+  ui::SelectFileDialog::Type type =
+      SelectFileDialogExtensionUserData::GetDialogTypeForWebContents(
+          web_contents);
+  if (type != ui::SelectFileDialog::Type::SELECT_SAVEAS_FILE) {
+    destination =
+        SelectFileDialogExtensionUserData::GetDialogCallerForWebContents(
+            web_contents);
+  }
+
   files_controller->GetDlpMetadata(
-      source_urls_,
+      source_urls_, destination,
       base::BindOnce(
           &FileManagerPrivateInternalGetDlpMetadataFunction::OnGetDlpMetadata,
           this));
@@ -1002,6 +1019,7 @@
     DlpMetadata metadata;
     metadata.is_dlp_restricted = md.is_dlp_restricted;
     metadata.source_url = md.source_url;
+    metadata.is_restricted_for_destination = md.is_restricted_for_destination;
     converted_list.emplace_back(std::move(metadata));
   }
   Respond(ArgumentList(
diff --git a/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.cc b/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.cc
index edd4e002..9651d44e 100644
--- a/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.cc
+++ b/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.cc
@@ -8,6 +8,7 @@
 #include "base/memory/ptr_util.h"
 #include "content/public/browser/web_contents.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
 
 const char kSelectFileDialogExtensionUserDataKey[] =
     "SelectFileDialogExtensionUserDataKey";
@@ -19,13 +20,14 @@
 void SelectFileDialogExtensionUserData::SetDialogDataForWebContents(
     content::WebContents* web_contents,
     const std::string& routing_id,
+    ui::SelectFileDialog::Type type,
     absl::optional<policy::DlpFilesController::DlpFileDestination>
         dialog_caller) {
   DCHECK(web_contents);
   web_contents->SetUserData(
       kSelectFileDialogExtensionUserDataKey,
       base::WrapUnique(new SelectFileDialogExtensionUserData(
-          routing_id, std::move(dialog_caller))));
+          routing_id, type, std::move(dialog_caller))));
 }
 
 // static
@@ -45,6 +47,23 @@
 }
 
 // static
+ui::SelectFileDialog::Type
+SelectFileDialogExtensionUserData::GetDialogTypeForWebContents(
+    content::WebContents* web_contents) {
+  // There's a race condition. This can be called from a callback after the
+  // webcontents has been deleted.
+  if (!web_contents) {
+    LOG(WARNING) << "WebContents already destroyed.";
+    return ui::SelectFileDialog::Type::SELECT_NONE;
+  }
+
+  SelectFileDialogExtensionUserData* data =
+      static_cast<SelectFileDialogExtensionUserData*>(
+          web_contents->GetUserData(kSelectFileDialogExtensionUserDataKey));
+  return data ? data->type() : ui::SelectFileDialog::Type::SELECT_NONE;
+}
+
+// static
 absl::optional<policy::DlpFilesController::DlpFileDestination>
 SelectFileDialogExtensionUserData::GetDialogCallerForWebContents(
     content::WebContents* web_contents) {
@@ -63,6 +82,9 @@
 
 SelectFileDialogExtensionUserData::SelectFileDialogExtensionUserData(
     const std::string& routing_id,
+    ui::SelectFileDialog::Type type,
     absl::optional<policy::DlpFilesController::DlpFileDestination>
         dialog_caller)
-    : routing_id_(routing_id), dialog_caller_(std::move(dialog_caller)) {}
+    : routing_id_(routing_id),
+      type_(type),
+      dialog_caller_(std::move(dialog_caller)) {}
diff --git a/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.h b/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.h
index 17b0bb9..fcffd6ea1 100644
--- a/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.h
+++ b/chrome/browser/ash/extensions/file_manager/select_file_dialog_extension_user_data.h
@@ -10,6 +10,7 @@
 #include "base/supports_user_data.h"
 #include "chrome/browser/ash/policy/dlp/dlp_files_controller.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
 
 namespace content {
 class WebContents;
@@ -25,17 +26,22 @@
   ~SelectFileDialogExtensionUserData() override;
 
   // Attaches the SelectFileDialogExtension's user data to its `web_contents`,
-  // that consists of the unique `routing_id` and optionally the
+  // that consists of the unique `routing_id`, dialog type, and optionally the
   // `dialog_caller`.
   static void SetDialogDataForWebContents(
       content::WebContents* web_contents,
       const std::string& routing_id,
+      ui::SelectFileDialog::Type type,
       absl::optional<policy::DlpFilesController::DlpFileDestination>
           dialog_caller);
   // Returns the SelectFileDialogExtension's routing id attached to
   // `web_contents`, if it can be found.
   static std::string GetRoutingIdForWebContents(
       content::WebContents* web_contents);
+  // Returns the SelectFileDialogExtension's dialog type attached to
+  // `web_contents`, if it can be found.
+  static ui::SelectFileDialog::Type GetDialogTypeForWebContents(
+      content::WebContents* web_contents);
   // Returns the SelectFileDialogExtension's caller attached to `web_contents`,
   // if it can be found.
   static absl::optional<policy::DlpFilesController::DlpFileDestination>
@@ -44,17 +50,21 @@
  private:
   SelectFileDialogExtensionUserData(
       const std::string& routing_id,
+      ui::SelectFileDialog::Type type,
       absl::optional<policy::DlpFilesController::DlpFileDestination>
           dialog_caller);
 
   const std::string& routing_id() const { return routing_id_; }
 
+  ui::SelectFileDialog::Type type() const { return type_; }
+
   absl::optional<policy::DlpFilesController::DlpFileDestination> dialog_caller()
       const {
     return dialog_caller_;
   }
 
   std::string routing_id_;
+  ui::SelectFileDialog::Type type_;
   absl::optional<policy::DlpFilesController::DlpFileDestination> dialog_caller_;
 };
 
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
index ae8795a..c2dc3f1 100644
--- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc
+++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -1283,7 +1283,8 @@
     ::testing::Values(TestCase("transferShowDlpToast").EnableDlp(),
                       TestCase("dlpShowManagedIcon").EnableDlp(),
                       TestCase("dlpContextMenuRestrictionDetails").EnableDlp(),
-                      TestCase("saveAsDlpRestrictedDirectory").EnableDlp()));
+                      TestCase("saveAsDlpRestrictedDirectory").EnableDlp(),
+                      TestCase("openDlpRestrictedFile").EnableDlp()));
 // TODO(crbug.com/1394305): Re-enable this test
 // TestCase("saveAsDlpRestrictedRedirectsToMyFiles").EnableDlp()));
 
diff --git a/chrome/browser/ash/fusebox/fusebox_server.cc b/chrome/browser/ash/fusebox/fusebox_server.cc
index 9e471ab..a852a26c 100644
--- a/chrome/browser/ash/fusebox/fusebox_server.cc
+++ b/chrome/browser/ash/fusebox/fusebox_server.cc
@@ -72,7 +72,7 @@
   // fusebox::kMonikerSubdir (also known as "moniker"). There is no
   // FileSystemURL registered for "moniker" (as opposed to for
   // "moniker/1234etc"), so ParseFileSystemURL (which returns a valid
-  // FileSystemURL on success) must return an error. However, Stat or ReadDir2
+  // FileSystemURL on success) must return an error. However, Stat2 or ReadDir2
   // on "moniker" should succeed (but return an empty directory).
   bool is_moniker_root = false;
 };
@@ -161,6 +161,16 @@
 // looks unused, but we need to keep the storage::FileSystemContext reference
 // alive until the callbacks are run.
 
+void FillInDirEntryProto(fusebox_staging::DirEntryProto* dir_entry_proto,
+                         const base::File::Info& info,
+                         bool read_only) {
+  dir_entry_proto->set_mode_bits(
+      Server::MakeModeBits(info.is_directory, read_only));
+  dir_entry_proto->set_size(info.size);
+  dir_entry_proto->set_mtime(
+      info.last_modified.ToDeltaSinceWindowsEpoch().InMicroseconds());
+}
+
 void RunCreateAndThenStatCallback(
     Server::CreateCallback callback,
     scoped_refptr<storage::FileSystemContext> fs_context,  // See § above.
@@ -182,11 +192,7 @@
 
   fusebox_staging::CreateResponseProto response_proto;
   response_proto.set_fuse_handle(fuse_handle);
-  fusebox_staging::DirEntryProto* stat = response_proto.mutable_stat();
-  stat->set_mode_bits(Server::MakeModeBits(info.is_directory, read_only));
-  stat->set_size(info.size);
-  stat->set_mtime(
-      info.last_modified.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  FillInDirEntryProto(response_proto.mutable_stat(), info, read_only);
   std::move(callback).Run(response_proto);
 }
 
@@ -246,11 +252,7 @@
   }
 
   fusebox_staging::MkDirResponseProto response_proto;
-  fusebox_staging::DirEntryProto* stat = response_proto.mutable_stat();
-  stat->set_mode_bits(Server::MakeModeBits(info.is_directory, read_only));
-  stat->set_size(info.size);
-  stat->set_mtime(
-      info.last_modified.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  FillInDirEntryProto(response_proto.mutable_stat(), info, read_only);
   std::move(callback).Run(response_proto);
 }
 
@@ -376,11 +378,7 @@
   }
 
   fusebox_staging::TruncateResponseProto response_proto;
-  fusebox_staging::DirEntryProto* stat = response_proto.mutable_stat();
-  stat->set_mode_bits(Server::MakeModeBits(info.is_directory, read_only));
-  stat->set_size(info.size);
-  stat->set_mtime(
-      info.last_modified.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  FillInDirEntryProto(response_proto.mutable_stat(), info, read_only);
   std::move(callback).Run(response_proto);
 }
 
@@ -504,6 +502,27 @@
   std::move(callback).Run(FileErrorToErrno(error_code), info, read_only);
 }
 
+void RunStat2Callback(
+    Server::Stat2Callback callback,
+    scoped_refptr<storage::FileSystemContext> fs_context,  // See § above.
+    bool read_only,
+    base::File::Error error_code,
+    const base::File::Info& info) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  int posix_error_code = FileErrorToErrno(error_code);
+  if (posix_error_code) {
+    fusebox_staging::Stat2ResponseProto response_proto;
+    response_proto.set_posix_error_code(posix_error_code);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  fusebox_staging::Stat2ResponseProto response_proto;
+  FillInDirEntryProto(response_proto.mutable_stat(), info, read_only);
+  std::move(callback).Run(response_proto);
+}
+
 std::string SubdirForTempDir(base::ScopedTempDir& scoped_temp_dir) {
   std::string basename = scoped_temp_dir.GetPath().BaseName().AsUTF8Unsafe();
   while (!basename.empty() && (basename[0] == '.')) {  // Strip leading dots.
@@ -1195,6 +1214,49 @@
           common.fs_url, metadata_fields, std::move(outer_callback)));
 }
 
+void Server::Stat2(const fusebox_staging::Stat2RequestProto& request_proto,
+                   Stat2Callback callback) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  std::string fs_url_as_string = request_proto.has_file_system_url()
+                                     ? request_proto.file_system_url()
+                                     : std::string();
+
+  auto common = ParseFileSystemURL(moniker_map_, prefix_map_, fs_url_as_string);
+  if (common.is_moniker_root) {
+    constexpr bool is_directory = true;
+    constexpr bool read_only = true;
+    fusebox_staging::Stat2ResponseProto response_proto;
+    fusebox_staging::DirEntryProto* stat = response_proto.mutable_stat();
+    stat->set_mode_bits(Server::MakeModeBits(is_directory, read_only));
+    std::move(callback).Run(response_proto);
+    return;
+  } else if (common.error_code != base::File::Error::FILE_OK) {
+    fusebox_staging::Stat2ResponseProto response_proto;
+    response_proto.set_posix_error_code(FileErrorToErrno(common.error_code));
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  constexpr auto metadata_fields =
+      storage::FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY |
+      storage::FileSystemOperation::GET_METADATA_FIELD_SIZE |
+      storage::FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED;
+
+  auto outer_callback =
+      base::BindPostTask(base::SequencedTaskRunner::GetCurrentDefault(),
+                         base::BindOnce(&RunStat2Callback, std::move(callback),
+                                        common.fs_context, common.read_only));
+
+  content::GetIOThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          base::IgnoreResult(&storage::FileSystemOperationRunner::GetMetadata),
+          // Unretained is safe: common.fs_context owns its operation_runner.
+          base::Unretained(common.fs_context->operation_runner()),
+          common.fs_url, metadata_fields, std::move(outer_callback)));
+}
+
 void Server::Truncate(
     const fusebox_staging::TruncateRequestProto& request_proto,
     TruncateCallback callback) {
diff --git a/chrome/browser/ash/fusebox/fusebox_server.h b/chrome/browser/ash/fusebox/fusebox_server.h
index 9f060b0..8da46a47 100644
--- a/chrome/browser/ash/fusebox/fusebox_server.h
+++ b/chrome/browser/ash/fusebox/fusebox_server.h
@@ -164,6 +164,14 @@
                                                bool read_only)>;
   void Stat(const std::string& fs_url_as_string, StatCallback callback);
 
+  // Stat2 returns the file or directory's metadata.
+  //
+  // Unlike Stat, it speaks protobufs.
+  using Stat2Callback = base::OnceCallback<void(
+      const fusebox_staging::Stat2ResponseProto& response)>;
+  void Stat2(const fusebox_staging::Stat2RequestProto& request,
+             Stat2Callback callback);
+
   // Truncate sets a file's size.
   using TruncateCallback = base::OnceCallback<void(
       const fusebox_staging::TruncateResponseProto& response)>;
diff --git a/chrome/browser/ash/fusebox/fusebox_staging.proto b/chrome/browser/ash/fusebox/fusebox_staging.proto
index a64e3de7..fa60976d 100644
--- a/chrome/browser/ash/fusebox/fusebox_staging.proto
+++ b/chrome/browser/ash/fusebox/fusebox_staging.proto
@@ -133,6 +133,17 @@
   optional int32 posix_error_code = 1;
 }
 
+// Stat2 returns file state.
+
+message Stat2RequestProto {
+  optional string file_system_url = 3;
+}
+
+message Stat2ResponseProto {
+  optional int32 posix_error_code = 1;
+  optional DirEntryProto stat = 3;
+}
+
 // Truncate sets a file's size.
 
 message TruncateRequestProto {
diff --git a/chrome/browser/ash/login/chrome_restart_request.cc b/chrome/browser/ash/login/chrome_restart_request.cc
index ae2de52..83a832d 100644
--- a/chrome/browser/ash/login/chrome_restart_request.cc
+++ b/chrome/browser/ash/login/chrome_restart_request.cc
@@ -213,7 +213,6 @@
     switches::kArcAvailability,
     switches::kArcAvailable,
     switches::kArcScale,
-    switches::kAshUseCrOSMojoServiceManager,
     chromeos::switches::kDbusStub,
     switches::kDisableArcDataWipe,
     switches::kDisableArcOptInVerification,
diff --git a/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc b/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc
index 8a1468b..be9798ad 100644
--- a/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc
+++ b/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc
@@ -266,7 +266,7 @@
     fake_statistics_provider_.ClearMachineStatistic(
         system::kSerialNumberKeyForTest);
     fake_statistics_provider_.SetVpdStatus(
-        system::StatisticsProvider::VpdStatus::kInvalid);
+        system::StatisticsProvider::VpdStatus::kRwInvalid);
   }
 
  private:
diff --git a/chrome/browser/ash/login/oobe_quick_start/connectivity/BUILD.gn b/chrome/browser/ash/login/oobe_quick_start/connectivity/BUILD.gn
index db6ce281..27dfacd 100644
--- a/chrome/browser/ash/login/oobe_quick_start/connectivity/BUILD.gn
+++ b/chrome/browser/ash/login/oobe_quick_start/connectivity/BUILD.gn
@@ -24,6 +24,8 @@
     "connection.h",
     "fast_pair_advertiser.cc",
     "fast_pair_advertiser.h",
+    "fido_assertion_info.cc",
+    "fido_assertion_info.h",
     "incoming_connection.cc",
     "incoming_connection.h",
     "random_session_id.cc",
diff --git a/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.cc b/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.cc
new file mode 100644
index 0000000..4bbe0034
--- /dev/null
+++ b/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.cc
@@ -0,0 +1,13 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.h"
+
+namespace ash::quick_start {
+
+FidoAssertionInfo::FidoAssertionInfo() = default;
+
+FidoAssertionInfo::~FidoAssertionInfo() = default;
+
+}  // namespace ash::quick_start
diff --git a/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.h b/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.h
new file mode 100644
index 0000000..badb41d
--- /dev/null
+++ b/chrome/browser/ash/login/oobe_quick_start/connectivity/fido_assertion_info.h
@@ -0,0 +1,41 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_LOGIN_OOBE_QUICK_START_CONNECTIVITY_FIDO_ASSERTION_INFO_H_
+#define CHROME_BROWSER_ASH_LOGIN_OOBE_QUICK_START_CONNECTIVITY_FIDO_ASSERTION_INFO_H_
+
+#include <string>
+#include <vector>
+
+namespace ash::quick_start {
+
+// A `struct` to store the information related to a FIDO assertion. It is used
+// to construct a request to Google's authentication server, for obtaining
+// users' sign-in credentials.
+struct FidoAssertionInfo {
+  FidoAssertionInfo();
+  ~FidoAssertionInfo();
+
+  // User's email.
+  std::string email;
+
+  // Base64 url encoded key identifier of the key used.
+  std::string credential_id;
+
+  // The authenticator data returned by the authenticator.
+  // https://www.w3.org/TR/webauthn/#dom-authenticatorassertionresponse-authenticatordata
+  std::vector<uint8_t> authenticator_data;
+
+  // The client data passed to the authenticator when requesting credentials.
+  // https://w3.org/TR/webauthn/#dom-authenticatorresponse-clientdatajson
+  std::vector<uint8_t> client_data;
+
+  // The signature generated by the authenticator.
+  // https://www.w3.org/TR/webauthn/#dom-authenticatorassertionresponse-signature
+  std::vector<uint8_t> signature;
+};
+
+}  // namespace ash::quick_start
+
+#endif  // CHROME_BROWSER_ASH_LOGIN_OOBE_QUICK_START_CONNECTIVITY_FIDO_ASSERTION_INFO_H_
diff --git a/chrome/browser/ash/notifications/multi_capture_notification.cc b/chrome/browser/ash/notifications/multi_capture_notification.cc
index 72cd99e2..08d0923 100644
--- a/chrome/browser/ash/notifications/multi_capture_notification.cc
+++ b/chrome/browser/ash/notifications/multi_capture_notification.cc
@@ -12,6 +12,7 @@
 #include "ash/shell.h"
 #include "base/callback_helpers.h"
 #include "base/notreached.h"
+#include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/notifications/system_notification_helper.h"
 #include "chrome/grit/generated_resources.h"
@@ -39,7 +40,8 @@
 
   // TODO(crbug.com/1356101): Add "Don't show again" for managed sessions.
   return ash::CreateSystemNotification(
-      message_center::NOTIFICATION_TYPE_SIMPLE, kMultiCaptureId,
+      message_center::NOTIFICATION_TYPE_SIMPLE,
+      base::StrCat({kMultiCaptureId, ":", host}),
       /*title=*/u"",
       /*message=*/
       l10n_util::GetStringFUTF16(IDS_MULTI_CAPTURE_NOTIFICATION_MESSAGE,
diff --git a/chrome/browser/ash/notifications/multi_capture_notification_unittest.cc b/chrome/browser/ash/notifications/multi_capture_notification_unittest.cc
index d799f60..da87827 100644
--- a/chrome/browser/ash/notifications/multi_capture_notification_unittest.cc
+++ b/chrome/browser/ash/notifications/multi_capture_notification_unittest.cc
@@ -4,8 +4,11 @@
 
 #include "chrome/browser/ash/notifications/multi_capture_notification.h"
 
+#include <codecvt>
+
 #include "ash/shell.h"
 #include "base/bind.h"
+#include "base/strings/strcat.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/browser/notifications/system_notification_helper.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
@@ -50,12 +53,24 @@
     BrowserWithTestWindowTest::TearDown();
   }
 
-  absl::optional<message_center::Notification> GetNotification() {
-    return tester_->GetNotification("multi_capture");
+  absl::optional<message_center::Notification> GetNotification(
+      const std::string& origin) {
+    return tester_->GetNotification(base::StrCat({"multi_capture:", origin}));
   }
 
   void OnNotificationAdded() { notification_count_++; }
 
+  void CheckNotification(const std::u16string& origin) {
+    std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
+    absl::optional<message_center::Notification> notification =
+        GetNotification(converter.to_bytes(origin));
+    ASSERT_TRUE(notification);
+    EXPECT_EQ(u"", notification->title());
+    EXPECT_EQ(u"Your system administrator has allowed " + origin +
+                  u" to record your screen",
+              notification->message());
+  }
+
  protected:
   user_manager::FakeUserManager* user_manager_ = nullptr;
   std::unique_ptr<user_manager::ScopedUserManager> scoped_user_manager_;
@@ -66,16 +81,26 @@
 
 TEST_F(MultiCaptureNotificationTest, NotificationTriggered) {
   multi_capture_notification_->MultiCaptureStarted(
-      /*label=*/"test_label", /*origin=*/url::Origin::CreateFromNormalizedTuple(
+      /*label=*/"test_label_1",
+      /*origin=*/url::Origin::CreateFromNormalizedTuple(
           /*scheme=*/"https", /*host=*/"example.com", /*port=*/443));
-  absl::optional<message_center::Notification> notification = GetNotification();
-  ASSERT_TRUE(notification);
-  EXPECT_EQ(u"", notification->title());
-  EXPECT_EQ(
-      u"Your system administrator has allowed example.com to record your "
-      u"screen",
-      notification->message());
+  CheckNotification(u"example.com");
   EXPECT_EQ(1u, notification_count_);
 }
 
+TEST_F(MultiCaptureNotificationTest,
+       NotificationsWithDifferentOriginsTriggered) {
+  multi_capture_notification_->MultiCaptureStarted(
+      /*label=*/"test_label_1",
+      /*origin=*/url::Origin::CreateFromNormalizedTuple(
+          /*scheme=*/"https", /*host=*/"example.com", /*port=*/443));
+  multi_capture_notification_->MultiCaptureStarted(
+      /*label=*/"test_label_2",
+      /*origin=*/url::Origin::CreateFromNormalizedTuple(
+          /*scheme=*/"https", /*host=*/"anotherexample.com", /*port=*/443));
+  CheckNotification(u"example.com");
+  CheckNotification(u"anotherexample.com");
+  EXPECT_EQ(2u, notification_count_);
+}
+
 }  // namespace ash
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
index 0b57697e..9c48230 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
@@ -127,6 +127,18 @@
   return {};
 }
 
+// Gets the component out of |destination| if possible.
+absl::optional<DlpRulesManager::Component> MaybeGetComponent(
+    Profile* profile,
+    const DlpFilesController::DlpFileDestination& destination) {
+  if (destination.component.has_value()) {
+    return destination.component;
+  }
+  DCHECK(destination.url_or_path.has_value());
+  return MapFilePathtoPolicyComponent(profile,
+                                      base::FilePath(*destination.url_or_path));
+}
+
 // Maps |component| to DlpRulesManager::Component.
 DlpRulesManager::Component MapProtoToPolicyComponent(
     ::dlp::DlpComponent component) {
@@ -355,8 +367,11 @@
 
 DlpFilesController::DlpFileMetadata::DlpFileMetadata(
     const std::string& source_url,
-    bool is_dlp_restricted)
-    : source_url(source_url), is_dlp_restricted(is_dlp_restricted) {}
+    bool is_dlp_restricted,
+    bool is_restricted_for_destination)
+    : source_url(source_url),
+      is_dlp_restricted(is_dlp_restricted),
+      is_restricted_for_destination(is_restricted_for_destination) {}
 
 DlpFilesController::DlpFileRestrictionDetails::DlpFileRestrictionDetails() =
     default;
@@ -481,11 +496,13 @@
       MapFilePathtoPolicyComponent(profile, destination.path()).has_value()) {
     return;
   }
-  GetDlpMetadata({source}, base::BindOnce(&GotFilesSourcesOfCopy, destination));
+  GetDlpMetadata({source}, absl::nullopt,
+                 base::BindOnce(&GotFilesSourcesOfCopy, destination));
 }
 
 void DlpFilesController::GetDlpMetadata(
     const std::vector<storage::FileSystemURL>& files,
+    absl::optional<DlpFileDestination> destination,
     GetDlpMetadataCallback result_callback) {
   if (!chromeos::DlpClient::Get() || !chromeos::DlpClient::Get()->IsAlive()) {
     std::move(result_callback).Run(std::vector<DlpFileMetadata>());
@@ -502,7 +519,7 @@
   chromeos::DlpClient::Get()->GetFilesSources(
       request, base::BindOnce(&DlpFilesController::ReturnDlpMetadata,
                               weak_ptr_factory_.GetWeakPtr(), std::move(inodes),
-                              std::move(result_callback)));
+                              destination, std::move(result_callback)));
 }
 
 void DlpFilesController::FilterDisallowedUploads(
@@ -656,14 +673,8 @@
   }
   auto* profile = ProfileManager::GetPrimaryUserProfile();
   DCHECK(profile);
-  absl::optional<DlpRulesManager::Component> dst_component;
-  if (destination.component.has_value()) {
-    dst_component = *destination.component;
-  } else {
-    DCHECK(destination.url_or_path.has_value());
-    dst_component = MapFilePathtoPolicyComponent(
-        profile, base::FilePath(*destination.url_or_path));
-  }
+  absl::optional<DlpRulesManager::Component> dst_component =
+      MaybeGetComponent(profile, destination);
 
   DlpFileDestination deduplication_dst;
 
@@ -913,6 +924,7 @@
 
 void DlpFilesController::ReturnDlpMetadata(
     std::vector<absl::optional<ino64_t>> inodes,
+    absl::optional<DlpFileDestination> destination,
     GetDlpMetadataCallback result_callback,
     const ::dlp::GetFilesSourcesResponse response) {
   if (response.has_error_message()) {
@@ -927,20 +939,47 @@
         nullptr);
     bool is_dlp_restricted = level != DlpRulesManager::Level::kNotSet &&
                              level != DlpRulesManager::Level::kAllow;
+    bool is_restricted_for_destination = false;
+    // Only if it's restricted by any rule and the destination is passed, check
+    // if this combination is also blocked or not.
+    if (level == DlpRulesManager::Level::kBlock && destination.has_value()) {
+      auto* profile = ProfileManager::GetPrimaryUserProfile();
+      DCHECK(profile);
+      absl::optional<DlpRulesManager::Component> dst_component =
+          MaybeGetComponent(profile, destination.value());
+      if (dst_component.has_value()) {
+        DlpRulesManager::Level dst_level = rules_manager_.IsRestrictedComponent(
+            GURL(metadata.source_url()), dst_component.value(),
+            DlpRulesManager::Restriction::kFiles, nullptr);
+        is_restricted_for_destination =
+            dst_level == DlpRulesManager::Level::kBlock;
+      } else {
+        DCHECK(destination->url_or_path.has_value());
+        DlpRulesManager::Level dst_level =
+            rules_manager_.IsRestrictedDestination(
+                GURL(metadata.source_url()),
+                GURL(destination->url_or_path.value()),
+                DlpRulesManager::Restriction::kFiles, nullptr, nullptr);
+        is_restricted_for_destination =
+            dst_level == DlpRulesManager::Level::kBlock;
+      }
+    }
+
     metadata_map.emplace(
         metadata.inode(),
-        DlpFileMetadata(metadata.source_url(), is_dlp_restricted));
+        DlpFileMetadata(metadata.source_url(), is_dlp_restricted,
+                        is_restricted_for_destination));
   }
 
   std::vector<DlpFileMetadata> result;
   for (const auto& inode : inodes) {
     if (!inode.has_value()) {
-      result.emplace_back("", false);
+      result.emplace_back("", false, false);
       continue;
     }
     auto metadata_itr = metadata_map.find(inode.value());
     if (metadata_itr == metadata_map.end()) {
-      result.emplace_back("", false);
+      result.emplace_back("", false, false);
     } else {
       result.emplace_back(metadata_itr->second);
     }
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller.h b/chrome/browser/ash/policy/dlp/dlp_files_controller.h
index 37caa6c..07e0fc7 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller.h
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller.h
@@ -60,11 +60,14 @@
   // or not and the source URL, if it exists.
   struct DlpFileMetadata {
     DlpFileMetadata() = delete;
-    DlpFileMetadata(const std::string& source_url, bool is_dlp_restricted);
+    DlpFileMetadata(const std::string& source_url,
+                    bool is_dlp_restricted,
+                    bool is_restricted_for_destination);
 
     friend bool operator==(const DlpFileMetadata& a, const DlpFileMetadata& b) {
       return a.is_dlp_restricted == b.is_dlp_restricted &&
-             a.source_url == b.source_url;
+             a.source_url == b.source_url &&
+             a.is_restricted_for_destination == b.is_restricted_for_destination;
     }
     friend bool operator!=(const DlpFileMetadata& a, const DlpFileMetadata& b) {
       return !(a == b);
@@ -74,6 +77,8 @@
     std::string source_url;
     // Whether the file is under any DLP rule or not.
     bool is_dlp_restricted;
+    // Whether the file is restricted by DLP for a specific destination.
+    bool is_restricted_for_destination;
   };
 
   // DlpFileRestrictionDetails keeps aggregated information about DLP rules
@@ -176,8 +181,10 @@
       GetDisallowedTransfersCallback result_callback);
 
   // Retrieves metadata for each entry in |files| and returns it as a list in
-  // |result_callback|.
+  // |result_callback|. If |destination| is passed, marks the files that are not
+  // allowed to be uploaded to that particular destination.
   void GetDlpMetadata(const std::vector<storage::FileSystemURL>& files,
+                      absl::optional<DlpFileDestination> destination,
                       GetDlpMetadataCallback result_callback);
 
   // Filters files disallowed to be uploaded to `destination`.
@@ -257,6 +264,7 @@
       dlp::CheckFilesTransferResponse response);
 
   void ReturnDlpMetadata(std::vector<absl::optional<ino64_t>> inodes,
+                         absl::optional<DlpFileDestination> destination,
                          GetDlpMetadataCallback result_callback,
                          const ::dlp::GetFilesSourcesResponse response);
 
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
index aee8a406..146fb0a 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
@@ -752,19 +752,122 @@
   std::vector<storage::FileSystemURL> files_to_check(
       {files_urls[0], files_urls[1], files_urls[2]});
   std::vector<DlpFilesController::DlpFileMetadata> dlp_metadata(
-      {DlpFilesController::DlpFileMetadata(kExampleUrl1, true),
-       DlpFilesController::DlpFileMetadata(kExampleUrl2, false),
-       DlpFilesController::DlpFileMetadata(kExampleUrl3, true)});
+      {DlpFilesController::DlpFileMetadata(
+           kExampleUrl1, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/false),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl2, /*is_dlp_restricted=*/false,
+           /*is_restricted_for_destination=*/false),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl3, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/false)});
 
   EXPECT_CALL(*rules_manager_, IsRestrictedByAnyRule)
       .WillOnce(testing::Return(DlpRulesManager::Level::kBlock))
       .WillOnce(testing::Return(DlpRulesManager::Level::kAllow))
       .WillOnce(testing::Return(DlpRulesManager::Level::kWarn));
+  // If destination is not passed, neither of these should be called.
+  EXPECT_CALL(*rules_manager_, IsRestrictedDestination).Times(0);
+  EXPECT_CALL(*rules_manager_, IsRestrictedComponent).Times(0);
 
   base::test::TestFuture<std::vector<DlpFilesController::DlpFileMetadata>>
       future;
   ASSERT_TRUE(files_controller_);
-  files_controller_->GetDlpMetadata(files_to_check, future.GetCallback());
+  files_controller_->GetDlpMetadata(files_to_check, absl::nullopt,
+                                    future.GetCallback());
+  EXPECT_TRUE(future.Wait());
+  EXPECT_EQ(dlp_metadata, future.Take());
+}
+
+TEST_F(DlpFilesControllerTest, GetDlpMetadata_WithComponent) {
+  std::vector<FileDaemonInfo> files{
+      FileDaemonInfo(kInode1, temp_dir_.GetPath().AppendASCII(kFilePath1),
+                     kExampleUrl1),
+      FileDaemonInfo(kInode2, temp_dir_.GetPath().AppendASCII(kFilePath2),
+                     kExampleUrl2),
+      FileDaemonInfo(kInode3, temp_dir_.GetPath().AppendASCII(kFilePath3),
+                     kExampleUrl3)};
+  std::vector<FileSystemURL> files_urls;
+  AddFilesToDlpClient(std::move(files), files_urls);
+
+  std::vector<storage::FileSystemURL> files_to_check(
+      {files_urls[0], files_urls[1], files_urls[2]});
+  std::vector<DlpFilesController::DlpFileMetadata> dlp_metadata(
+      {DlpFilesController::DlpFileMetadata(
+           kExampleUrl1, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/true),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl2, /*is_dlp_restricted=*/false,
+           /*is_restricted_for_destination=*/false),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl3, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/false)});
+
+  EXPECT_CALL(*rules_manager_, IsRestrictedByAnyRule)
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kAllow))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock));
+  // If destination is passed as component, the restriction should be checked if
+  // there are files with any "block" restriction.
+  EXPECT_CALL(*rules_manager_, IsRestrictedComponent)
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kWarn))
+      .RetiresOnSaturation();
+  EXPECT_CALL(*rules_manager_, IsRestrictedDestination).Times(0);
+
+  base::test::TestFuture<std::vector<DlpFilesController::DlpFileMetadata>>
+      future;
+  ASSERT_TRUE(files_controller_);
+  files_controller_->GetDlpMetadata(
+      files_to_check,
+      DlpFilesController::DlpFileDestination(DlpRulesManager::Component::kUsb),
+      future.GetCallback());
+  EXPECT_TRUE(future.Wait());
+  EXPECT_EQ(dlp_metadata, future.Take());
+}
+
+TEST_F(DlpFilesControllerTest, GetDlpMetadata_WithDestination) {
+  std::vector<FileDaemonInfo> files{
+      FileDaemonInfo(kInode1, temp_dir_.GetPath().AppendASCII(kFilePath1),
+                     kExampleUrl1),
+      FileDaemonInfo(kInode2, temp_dir_.GetPath().AppendASCII(kFilePath2),
+                     kExampleUrl2),
+      FileDaemonInfo(kInode3, temp_dir_.GetPath().AppendASCII(kFilePath3),
+                     kExampleUrl3)};
+  std::vector<FileSystemURL> files_urls;
+  AddFilesToDlpClient(std::move(files), files_urls);
+
+  std::vector<storage::FileSystemURL> files_to_check(
+      {files_urls[0], files_urls[1], files_urls[2]});
+  std::vector<DlpFilesController::DlpFileMetadata> dlp_metadata(
+      {DlpFilesController::DlpFileMetadata(
+           kExampleUrl1, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/true),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl2, /*is_dlp_restricted=*/false,
+           /*is_restricted_for_destination=*/false),
+       DlpFilesController::DlpFileMetadata(
+           kExampleUrl3, /*is_dlp_restricted=*/true,
+           /*is_restricted_for_destination=*/false)});
+
+  EXPECT_CALL(*rules_manager_, IsRestrictedByAnyRule)
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kAllow))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock));
+  // If destination is passed as url, the restriction should be checked if there
+  // are files with any "block" restriction.
+  EXPECT_CALL(*rules_manager_, IsRestrictedDestination)
+      .WillOnce(testing::Return(DlpRulesManager::Level::kBlock))
+      .WillOnce(testing::Return(DlpRulesManager::Level::kWarn))
+      .RetiresOnSaturation();
+  EXPECT_CALL(*rules_manager_, IsRestrictedComponent).Times(0);
+
+  base::test::TestFuture<std::vector<DlpFilesController::DlpFileMetadata>>
+      future;
+  ASSERT_TRUE(files_controller_);
+  files_controller_->GetDlpMetadata(
+      files_to_check, DlpFilesController::DlpFileDestination(kExampleUrl1),
+      future.GetCallback());
   EXPECT_TRUE(future.Wait());
   EXPECT_EQ(dlp_metadata, future.Take());
 }
@@ -779,14 +882,17 @@
 
   std::vector<storage::FileSystemURL> files_to_check({file_url});
   std::vector<DlpFilesController::DlpFileMetadata> dlp_metadata(
-      {DlpFilesController::DlpFileMetadata("", false)});
+      {DlpFilesController::DlpFileMetadata(
+          /*source_url=*/"", /*is_dlp_restricted=*/false,
+          /*is_restricted_for_destination=*/false)});
 
   EXPECT_CALL(*rules_manager_, IsRestrictedByAnyRule).Times(0);
 
   base::test::TestFuture<std::vector<DlpFilesController::DlpFileMetadata>>
       future;
   ASSERT_TRUE(files_controller_);
-  files_controller_->GetDlpMetadata(files_to_check, future.GetCallback());
+  files_controller_->GetDlpMetadata(files_to_check, absl::nullopt,
+                                    future.GetCallback());
   EXPECT_TRUE(future.Wait());
   EXPECT_EQ(dlp_metadata, future.Take());
 }
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker.cc
index 29311963..55f6dab 100644
--- a/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker.cc
+++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker.cc
@@ -133,9 +133,19 @@
   // check if the device was never owned. If VPD is broken, continue with FRE
   // check.
   switch (statistics_provider->GetVpdStatus()) {
+    // If RO_VPD is broken, state keys are not available and FRE check
+    // cannot start. To not to get stuck with forced re-enrollment, do not
+    // enforce it and let users cancel in case of permanent error.
+    case ash::system::StatisticsProvider::VpdStatus::kInvalid:
+      // Both RO and RW VPDs are broken and state keys are not available.
+      // Require re-enrollment but do not force it.
+      LOG(WARNING) << "RO_VPD and RW_VPD are broken.";
+      return FRERequirement::kRequired;
     case ash::system::StatisticsProvider::VpdStatus::kRoInvalid:
-      LOG(WARNING) << "RO_VPD is borken, but RW_VPD is valid. "
-                      "Proceeding with ownership check.";
+      // RO_VPD is broken, but RW_VPD is valid. `kActivateDateKey` indicating
+      // ownership is available and trustworthy. Proceed with with ownership
+      // check and require  re-enrollment if the device was owned.
+      LOG(WARNING) << "RO_VPD is broken. Proceeding with ownership check.";
       [[fallthrough]];
     case ash::system::StatisticsProvider::VpdStatus::kValid:
       if (!statistics_provider->GetMachineStatistic(
@@ -146,7 +156,6 @@
       }
       return FRERequirement::kRequired;
     case ash::system::StatisticsProvider::VpdStatus::kRwInvalid:
-    case ash::system::StatisticsProvider::VpdStatus::kInvalid:
       // VPD is in invalid state and FRE flag cannot be assessed. Force FRE
       // check to prevent enrollment escapes.
       LOG(ERROR) << "VPD could not be read, forcing auto-enrollment check.";
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker_unittest.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker_unittest.cc
index 9415ad8b..5a42797 100644
--- a/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker_unittest.cc
+++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker_unittest.cc
@@ -310,6 +310,16 @@
                   &fake_statistics_provider_),
               AutoEnrollmentTypeChecker::FRERequirement::kNotRequired);
   }
+
+  {
+    fake_statistics_provider_.SetVpdStatus(
+        ash::system::StatisticsProvider::VpdStatus::kInvalid);
+    // Not setting |kActivateDateKey| statistic to indicate a lack of ownership.
+
+    EXPECT_EQ(AutoEnrollmentTypeChecker::GetFRERequirementAccordingToVPD(
+                  &fake_statistics_provider_),
+              AutoEnrollmentTypeChecker::FRERequirement::kRequired);
+  }
 }
 
 TEST_F(AutoEnrollmentTypeCheckerTest,
@@ -322,15 +332,6 @@
                   &fake_statistics_provider_),
               AutoEnrollmentTypeChecker::FRERequirement::kExplicitlyRequired);
   }
-
-  {
-    fake_statistics_provider_.SetVpdStatus(
-        ash::system::StatisticsProvider::VpdStatus::kInvalid);
-
-    EXPECT_EQ(AutoEnrollmentTypeChecker::GetFRERequirementAccordingToVPD(
-                  &fake_statistics_provider_),
-              AutoEnrollmentTypeChecker::FRERequirement::kExplicitlyRequired);
-  }
 }
 
 TEST_F(AutoEnrollmentTypeCheckerTest,
@@ -354,6 +355,15 @@
                   &fake_statistics_provider_),
               AutoEnrollmentTypeChecker::FRERequirement::kRequired);
   }
+
+  {
+    fake_statistics_provider_.SetVpdStatus(
+        ash::system::StatisticsProvider::VpdStatus::kInvalid);
+
+    EXPECT_EQ(AutoEnrollmentTypeChecker::GetFRERequirementAccordingToVPD(
+                  &fake_statistics_provider_),
+              AutoEnrollmentTypeChecker::FRERequirement::kRequired);
+  }
 }
 
 TEST_F(AutoEnrollmentTypeCheckerTest,
diff --git a/chrome/browser/ash/tpm_firmware_update_unittest.cc b/chrome/browser/ash/tpm_firmware_update_unittest.cc
index 756c4b4..8481ae0 100644
--- a/chrome/browser/ash/tpm_firmware_update_unittest.cc
+++ b/chrome/browser/ash/tpm_firmware_update_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_path_override.h"
 #include "base/test/task_environment.h"
+#include "base/test/test_future.h"
 #include "base/values.h"
 #include "chrome/browser/ash/settings/scoped_cros_settings_test_helper.h"
 #include "chrome/common/chrome_features.h"
@@ -161,12 +162,15 @@
   EXPECT_TRUE(callback_modes_.empty());
 }
 
-TEST_F(TPMFirmwareUpdateModesTest, FRERequiredDueToInvalidVPDStatus) {
+TEST_F(TPMFirmwareUpdateModesTest, FRERequiredDueToInvalidRwVpdStatus) {
   statistics_provider_.SetVpdStatus(
-      system::StatisticsProvider::VpdStatus::kInvalid);
-  GetAvailableUpdateModes(std::move(callback_), base::TimeDelta());
-  EXPECT_TRUE(callback_received_);
-  EXPECT_TRUE(callback_modes_.empty());
+      system::StatisticsProvider::VpdStatus::kRwInvalid);
+  base::test::TestFuture<std::set<Mode>> future;
+  GetAvailableUpdateModes(future.GetCallback<const std::set<Mode>&>(),
+                          base::TimeDelta());
+
+  const auto& modes = future.Get();
+  EXPECT_TRUE(modes.empty());
 }
 
 TEST_F(TPMFirmwareUpdateModesTest, Pending) {
@@ -184,6 +188,28 @@
   EXPECT_EQ(kAllModes, callback_modes_);
 }
 
+TEST_F(TPMFirmwareUpdateModesTest, AvailableWithInvalidVpdStatus) {
+  statistics_provider_.SetVpdStatus(
+      system::StatisticsProvider::VpdStatus::kInvalid);
+  base::test::TestFuture<std::set<Mode>> future;
+  GetAvailableUpdateModes(future.GetCallback<const std::set<Mode>&>(),
+                          base::TimeDelta());
+
+  const auto& modes = future.Get();
+  EXPECT_EQ(kAllModes, modes);
+}
+
+TEST_F(TPMFirmwareUpdateModesTest, AvailableWithInvalidRoVpdStatus) {
+  statistics_provider_.SetVpdStatus(
+      system::StatisticsProvider::VpdStatus::kRoInvalid);
+  base::test::TestFuture<std::set<Mode>> future;
+  GetAvailableUpdateModes(future.GetCallback<const std::set<Mode>&>(),
+                          base::TimeDelta());
+
+  const auto& modes = future.Get();
+  EXPECT_EQ(kAllModes, modes);
+}
+
 TEST_F(TPMFirmwareUpdateModesTest, AvailableAfterWaiting) {
   SetUpdateAvailability(Availability::kPending);
   GetAvailableUpdateModes(std::move(callback_), base::Seconds(5));
diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc
index 1f37a16..ab228ac 100644
--- a/chrome/browser/browsing_data/cookies_tree_model.cc
+++ b/chrome/browser/browsing_data/cookies_tree_model.cc
@@ -630,6 +630,9 @@
   DetailedInfo GetDetailedInfo() const override {
     return DetailedInfo().InitQuota(&*quota_info_);
   }
+  int64_t InclusiveSize() const override {
+    return quota_info_->temporary_usage + quota_info_->syncable_usage;
+  }
 
  private:
   // |quota_info_| is expected to remain valid as long as the
diff --git a/chrome/browser/browsing_data/cookies_tree_model_unittest.cc b/chrome/browser/browsing_data/cookies_tree_model_unittest.cc
index cca15491..eafc522 100644
--- a/chrome/browser/browsing_data/cookies_tree_model_unittest.cc
+++ b/chrome/browser/browsing_data/cookies_tree_model_unittest.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/browsing_data/cookies_tree_model.h"
 
 #include <memory>
+#include <numeric>
 #include <string>
 #include <utility>
 
@@ -1686,4 +1687,19 @@
 }
 #endif
 
+TEST_F(CookiesTreeModelTest, InclusiveSize) {
+  std::unique_ptr<CookiesTreeModel> cookies_model(
+      CreateCookiesTreeModelWithInitialSample());
+
+  // The root node doesn't have a concept of inclusive size, and so we must look
+  // at the host nodes.
+  auto& host_nodes = cookies_model->GetRoot()->children();
+  uint64_t total =
+      std::accumulate(host_nodes.cbegin(), host_nodes.cend(), int64_t{0},
+                      [](int64_t total, const auto& child) {
+                        return total + child->InclusiveSize();
+                      });
+  EXPECT_EQ(51u, total);
+}
+
 }  // namespace
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index b71d47dd..c6e96b2 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -203,6 +203,7 @@
 #include "chrome/browser/ui/page_info/chrome_page_info_client.h"
 #include "ui/base/resource/resource_bundle_android.h"
 #else
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/resource_coordinator/tab_activity_watcher.h"
 #include "chrome/browser/resource_coordinator/tab_manager.h"
 #include "chrome/browser/resources_integrity.h"
@@ -1156,9 +1157,13 @@
 
 #if !BUILDFLAG(IS_ANDROID)
   // Ephemeral profiles may have been left behind if the browser crashed.
-  g_browser_process->profile_manager()->CleanUpEphemeralProfiles();
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .CleanUpEphemeralProfiles();
   // Files of deleted profiles can also be left behind after a crash.
-  g_browser_process->profile_manager()->CleanUpDeletedProfiles();
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .CleanUpDeletedProfiles();
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.cc b/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.cc
index ab2c066..50799ff 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.cc
+++ b/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.cc
@@ -18,6 +18,8 @@
 
 namespace chromeos {
 
+namespace diag = api::os_diagnostics;
+
 // DiagnosticsApiFunctionBase --------------------------------------------------
 
 DiagnosticsApiFunctionBase::DiagnosticsApiFunctionBase()
@@ -32,6 +34,17 @@
   return remote_diagnostics_service_strategy_->GetRemoteService();
 }
 
+template <class Params>
+std::unique_ptr<Params> DiagnosticsApiFunctionBase::GetParams() {
+  auto params = Params::Create(args());
+  if (!params) {
+    SetBadMessage();
+    Respond(BadMessage());
+  }
+
+  return params;
+}
+
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
 bool DiagnosticsApiFunctionBase::IsCrosApiAvailable() {
   return remote_diagnostics_service_strategy_ != nullptr;
@@ -40,11 +53,6 @@
 
 // OsDiagnosticsGetAvailableRoutinesFunction -----------------------------------
 
-OsDiagnosticsGetAvailableRoutinesFunction::
-    OsDiagnosticsGetAvailableRoutinesFunction() = default;
-OsDiagnosticsGetAvailableRoutinesFunction::
-    ~OsDiagnosticsGetAvailableRoutinesFunction() = default;
-
 void OsDiagnosticsGetAvailableRoutinesFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsDiagnosticsGetAvailableRoutinesFunction::OnResult,
                            this);
@@ -54,31 +62,22 @@
 
 void OsDiagnosticsGetAvailableRoutinesFunction::OnResult(
     const std::vector<crosapi::mojom::DiagnosticsRoutineEnum>& routines) {
-  api::os_diagnostics::GetAvailableRoutinesResponse result;
+  diag::GetAvailableRoutinesResponse result;
   for (const auto in : routines) {
-    api::os_diagnostics::RoutineType out;
+    diag::RoutineType out;
     if (converters::ConvertMojoRoutine(in, &out)) {
       result.routines.push_back(out);
     }
   }
 
-  Respond(ArgumentList(
-      api::os_diagnostics::GetAvailableRoutines::Results::Create(result)));
+  Respond(ArgumentList(diag::GetAvailableRoutines::Results::Create(result)));
 }
 
 // OsDiagnosticsGetRoutineUpdateFunction ---------------------------------------
 
-OsDiagnosticsGetRoutineUpdateFunction::OsDiagnosticsGetRoutineUpdateFunction() =
-    default;
-OsDiagnosticsGetRoutineUpdateFunction::
-    ~OsDiagnosticsGetRoutineUpdateFunction() = default;
-
 void OsDiagnosticsGetRoutineUpdateFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::GetRoutineUpdate::Params> params(
-      api::os_diagnostics::GetRoutineUpdate::Params::Create(args()));
+  const auto params = GetParams<diag::GetRoutineUpdate::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
@@ -100,7 +99,7 @@
     return;
   }
 
-  api::os_diagnostics::GetRoutineUpdateResponse result;
+  diag::GetRoutineUpdateResponse result;
   result.progress_percent = ptr->progress_percent;
 
   if (ptr->output.has_value() && !ptr->output.value().empty()) {
@@ -118,25 +117,18 @@
     }
     case crosapi::mojom::DiagnosticsRoutineUpdateUnion::Tag::kInteractiveUpdate:
       // Routine is waiting for user action. Set the status to waiting.
-      result.status = api::os_diagnostics::RoutineStatus::
-          ROUTINE_STATUS_WAITING_USER_ACTION;
+      result.status = diag::RoutineStatus::ROUTINE_STATUS_WAITING_USER_ACTION;
       result.status_message = "Waiting for user action. See user_message";
       result.user_message = converters::ConvertRoutineUserMessage(
           ptr->routine_update_union->get_interactive_update()->user_message);
       break;
   }
 
-  Respond(ArgumentList(
-      api::os_diagnostics::GetRoutineUpdate::Results::Create(result)));
+  Respond(ArgumentList(diag::GetRoutineUpdate::Results::Create(result)));
 }
 
 // DiagnosticsApiRunRoutineFunctionBase ----------------------------------------
 
-DiagnosticsApiRunRoutineFunctionBase::DiagnosticsApiRunRoutineFunctionBase() =
-    default;
-DiagnosticsApiRunRoutineFunctionBase::~DiagnosticsApiRunRoutineFunctionBase() =
-    default;
-
 void DiagnosticsApiRunRoutineFunctionBase::OnResult(
     crosapi::mojom::DiagnosticsRunRoutineResponsePtr ptr) {
   if (!ptr) {
@@ -146,273 +138,146 @@
     return;
   }
 
-  api::os_diagnostics::RunRoutineResponse result;
+  diag::RunRoutineResponse result;
   result.id = ptr->id;
   result.status = converters::ConvertRoutineStatus(ptr->status);
   Respond(WithArguments(result.ToValue()));
 }
 
+base::OnceCallback<void(crosapi::mojom::DiagnosticsRunRoutineResponsePtr)>
+DiagnosticsApiRunRoutineFunctionBase::GetOnResult() {
+  return base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
+}
+
 // OsDiagnosticsRunAcPowerRoutineFunction ------------------------------
 
-OsDiagnosticsRunAcPowerRoutineFunction::
-    OsDiagnosticsRunAcPowerRoutineFunction() = default;
-OsDiagnosticsRunAcPowerRoutineFunction::
-    ~OsDiagnosticsRunAcPowerRoutineFunction() = default;
-
 void OsDiagnosticsRunAcPowerRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunAcPowerRoutine::Params> params(
-      api::os_diagnostics::RunAcPowerRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunAcPowerRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunAcPowerRoutine(
       converters::ConvertAcPowerStatusRoutineType(
           params->request.expected_status),
-      params->request.expected_power_type, std::move(cb));
+      params->request.expected_power_type, GetOnResult());
 }
 
 // OsDiagnosticsRunBatteryCapacityRoutineFunction ------------------------------
-
-OsDiagnosticsRunBatteryCapacityRoutineFunction::
-    OsDiagnosticsRunBatteryCapacityRoutineFunction() = default;
-OsDiagnosticsRunBatteryCapacityRoutineFunction::
-    ~OsDiagnosticsRunBatteryCapacityRoutineFunction() = default;
-
 void OsDiagnosticsRunBatteryCapacityRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunBatteryCapacityRoutine(std::move(cb));
+  GetRemoteService()->RunBatteryCapacityRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunBatteryChargeRoutineFunction --------------------------------
 
-OsDiagnosticsRunBatteryChargeRoutineFunction::
-    OsDiagnosticsRunBatteryChargeRoutineFunction() = default;
-OsDiagnosticsRunBatteryChargeRoutineFunction::
-    ~OsDiagnosticsRunBatteryChargeRoutineFunction() = default;
-
 void OsDiagnosticsRunBatteryChargeRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunBatteryChargeRoutine::Params> params(
-      api::os_diagnostics::RunBatteryChargeRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunBatteryChargeRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunBatteryChargeRoutine(
       params->request.length_seconds,
-      params->request.minimum_charge_percent_required, std::move(cb));
+      params->request.minimum_charge_percent_required, GetOnResult());
 }
 
 // OsDiagnosticsRunBatteryDischargeRoutineFunction -----------------------------
 
-OsDiagnosticsRunBatteryDischargeRoutineFunction::
-    OsDiagnosticsRunBatteryDischargeRoutineFunction() = default;
-OsDiagnosticsRunBatteryDischargeRoutineFunction::
-    ~OsDiagnosticsRunBatteryDischargeRoutineFunction() = default;
-
 void OsDiagnosticsRunBatteryDischargeRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunBatteryDischargeRoutine::Params>
-      params(api::os_diagnostics::RunBatteryDischargeRoutine::Params::Create(
-          args()));
+  const auto params = GetParams<diag::RunBatteryDischargeRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunBatteryDischargeRoutine(
       params->request.length_seconds,
-      params->request.maximum_discharge_percent_allowed, std::move(cb));
+      params->request.maximum_discharge_percent_allowed, GetOnResult());
 }
 
 // OsDiagnosticsRunBatteryHealthRoutineFunction --------------------------------
 
-OsDiagnosticsRunBatteryHealthRoutineFunction::
-    OsDiagnosticsRunBatteryHealthRoutineFunction() = default;
-OsDiagnosticsRunBatteryHealthRoutineFunction::
-    ~OsDiagnosticsRunBatteryHealthRoutineFunction() = default;
-
 void OsDiagnosticsRunBatteryHealthRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunBatteryHealthRoutine(std::move(cb));
+  GetRemoteService()->RunBatteryHealthRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunCpuCacheRoutineFunction -------------------------------------
 
-OsDiagnosticsRunCpuCacheRoutineFunction::
-    OsDiagnosticsRunCpuCacheRoutineFunction() = default;
-OsDiagnosticsRunCpuCacheRoutineFunction::
-    ~OsDiagnosticsRunCpuCacheRoutineFunction() = default;
-
 void OsDiagnosticsRunCpuCacheRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunCpuCacheRoutine::Params> params(
-      api::os_diagnostics::RunCpuCacheRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunCpuCacheRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunCpuCacheRoutine(params->request.length_seconds,
-                                         std::move(cb));
+                                         GetOnResult());
 }
 
 // OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction ---------------------
 
-OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction::
-    OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction() = default;
-OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction::
-    ~OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction() = default;
-
 void OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<
-      api::os_diagnostics::RunCpuFloatingPointAccuracyRoutine::Params>
-      params(api::os_diagnostics::RunCpuFloatingPointAccuracyRoutine::Params::
-                 Create(args()));
+  const auto params =
+      GetParams<diag::RunCpuFloatingPointAccuracyRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunFloatingPointAccuracyRoutine(
-      params->request.length_seconds, std::move(cb));
+      params->request.length_seconds, GetOnResult());
 }
 
 // OsDiagnosticsRunCpuPrimeSearchRoutineFunction -------------------------------
 
-OsDiagnosticsRunCpuPrimeSearchRoutineFunction::
-    OsDiagnosticsRunCpuPrimeSearchRoutineFunction() = default;
-OsDiagnosticsRunCpuPrimeSearchRoutineFunction::
-    ~OsDiagnosticsRunCpuPrimeSearchRoutineFunction() = default;
-
 void OsDiagnosticsRunCpuPrimeSearchRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunCpuPrimeSearchRoutine::Params> params(
-      api::os_diagnostics::RunCpuPrimeSearchRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunCpuPrimeSearchRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunPrimeSearchRoutine(params->request.length_seconds,
-                                            std::move(cb));
+                                            GetOnResult());
 }
 
 // OsDiagnosticsRunCpuStressRoutineFunction ------------------------------------
 
-OsDiagnosticsRunCpuStressRoutineFunction::
-    OsDiagnosticsRunCpuStressRoutineFunction() = default;
-OsDiagnosticsRunCpuStressRoutineFunction::
-    ~OsDiagnosticsRunCpuStressRoutineFunction() = default;
-
 void OsDiagnosticsRunCpuStressRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunCpuStressRoutine::Params> params(
-      api::os_diagnostics::RunCpuStressRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunCpuStressRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunCpuStressRoutine(params->request.length_seconds,
-                                          std::move(cb));
+                                          GetOnResult());
 }
 
 // OsDiagnosticsRunDiskReadRoutineFunction -------------------------------------
 
-OsDiagnosticsRunDiskReadRoutineFunction::
-    OsDiagnosticsRunDiskReadRoutineFunction() = default;
-OsDiagnosticsRunDiskReadRoutineFunction::
-    ~OsDiagnosticsRunDiskReadRoutineFunction() = default;
-
 void OsDiagnosticsRunDiskReadRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunDiskReadRoutine::Params> params(
-      api::os_diagnostics::RunDiskReadRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunDiskReadRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunDiskReadRoutine(
       converters::ConvertDiskReadRoutineType(params->request.type),
       params->request.length_seconds, params->request.file_size_mb,
-      std::move(cb));
+      GetOnResult());
 }
 
 // OsDiagnosticsRunDnsResolutionRoutineFunction --------------------------------
 
-OsDiagnosticsRunDnsResolutionRoutineFunction::
-    OsDiagnosticsRunDnsResolutionRoutineFunction() = default;
-OsDiagnosticsRunDnsResolutionRoutineFunction::
-    ~OsDiagnosticsRunDnsResolutionRoutineFunction() = default;
-
 void OsDiagnosticsRunDnsResolutionRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunDnsResolutionRoutine(std::move(cb));
+  GetRemoteService()->RunDnsResolutionRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunDnsResolverPresentRoutineFunction ---------------------------
-
-OsDiagnosticsRunDnsResolverPresentRoutineFunction::
-    OsDiagnosticsRunDnsResolverPresentRoutineFunction() = default;
-OsDiagnosticsRunDnsResolverPresentRoutineFunction::
-    ~OsDiagnosticsRunDnsResolverPresentRoutineFunction() = default;
-
 void OsDiagnosticsRunDnsResolverPresentRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunDnsResolverPresentRoutine(std::move(cb));
+  GetRemoteService()->RunDnsResolverPresentRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunGatewayCanBePingedRoutineFunction ---------------------------
 
-OsDiagnosticsRunGatewayCanBePingedRoutineFunction::
-    OsDiagnosticsRunGatewayCanBePingedRoutineFunction() = default;
-OsDiagnosticsRunGatewayCanBePingedRoutineFunction::
-    ~OsDiagnosticsRunGatewayCanBePingedRoutineFunction() = default;
-
 void OsDiagnosticsRunGatewayCanBePingedRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunGatewayCanBePingedRoutine(std::move(cb));
+  GetRemoteService()->RunGatewayCanBePingedRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunFingerprintAliveRoutineFunction -----------------------------
@@ -431,119 +296,57 @@
 
 // OsDiagnosticsRunLanConnectivityRoutineFunction ------------------------------
 
-OsDiagnosticsRunLanConnectivityRoutineFunction::
-    OsDiagnosticsRunLanConnectivityRoutineFunction() = default;
-OsDiagnosticsRunLanConnectivityRoutineFunction::
-    ~OsDiagnosticsRunLanConnectivityRoutineFunction() = default;
-
 void OsDiagnosticsRunLanConnectivityRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunLanConnectivityRoutine(std::move(cb));
+  GetRemoteService()->RunLanConnectivityRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunMemoryRoutineFunction ---------------------------------------
 
-OsDiagnosticsRunMemoryRoutineFunction::OsDiagnosticsRunMemoryRoutineFunction() =
-    default;
-OsDiagnosticsRunMemoryRoutineFunction::
-    ~OsDiagnosticsRunMemoryRoutineFunction() = default;
-
 void OsDiagnosticsRunMemoryRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunMemoryRoutine(std::move(cb));
+  GetRemoteService()->RunMemoryRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunNvmeSelfTestRoutineFunction ---------------------------------
 
-OsDiagnosticsRunNvmeSelfTestRoutineFunction::
-    OsDiagnosticsRunNvmeSelfTestRoutineFunction() = default;
-OsDiagnosticsRunNvmeSelfTestRoutineFunction::
-    ~OsDiagnosticsRunNvmeSelfTestRoutineFunction() = default;
-
 void OsDiagnosticsRunNvmeSelfTestRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunNvmeSelfTestRoutine::Params> params(
-      api::os_diagnostics::RunNvmeSelfTestRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunNvmeSelfTestRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunNvmeSelfTestRoutine(
       converters::ConvertNvmeSelfTestRoutineType(std::move(params->request)),
-      std::move(cb));
+      GetOnResult());
 }
 
 // OsDiagnosticsRunNvmeWearLevelRoutineFunction --------------------------------
 
-OsDiagnosticsRunNvmeWearLevelRoutineFunction::
-    OsDiagnosticsRunNvmeWearLevelRoutineFunction() = default;
-OsDiagnosticsRunNvmeWearLevelRoutineFunction::
-    ~OsDiagnosticsRunNvmeWearLevelRoutineFunction() = default;
-
 void OsDiagnosticsRunNvmeWearLevelRoutineFunction::RunIfAllowed() {
-  std::unique_ptr<api::os_diagnostics::RunNvmeWearLevelRoutine::Params> params(
-      api::os_diagnostics::RunNvmeWearLevelRoutine::Params::Create(args()));
+  const auto params = GetParams<diag::RunNvmeWearLevelRoutine::Params>();
   if (!params) {
-    SetBadMessage();
-    Respond(BadMessage());
     return;
   }
 
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
   GetRemoteService()->RunNvmeWearLevelRoutine(
-      params->request.wear_level_threshold, std::move(cb));
+      params->request.wear_level_threshold, GetOnResult());
 }
 
 // OsDiagnosticsRunSensitiveSensorRoutineFunction -----------------------------
 
-OsDiagnosticsRunSensitiveSensorRoutineFunction::
-    OsDiagnosticsRunSensitiveSensorRoutineFunction() = default;
-OsDiagnosticsRunSensitiveSensorRoutineFunction::
-    ~OsDiagnosticsRunSensitiveSensorRoutineFunction() = default;
-
 void OsDiagnosticsRunSensitiveSensorRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunSensitiveSensorRoutine(std::move(cb));
+  GetRemoteService()->RunSensitiveSensorRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunSignalStrengthRoutineFunction -------------------------------
 
-OsDiagnosticsRunSignalStrengthRoutineFunction::
-    OsDiagnosticsRunSignalStrengthRoutineFunction() = default;
-OsDiagnosticsRunSignalStrengthRoutineFunction::
-    ~OsDiagnosticsRunSignalStrengthRoutineFunction() = default;
-
 void OsDiagnosticsRunSignalStrengthRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunSignalStrengthRoutine(std::move(cb));
+  GetRemoteService()->RunSignalStrengthRoutine(GetOnResult());
 }
 
 // OsDiagnosticsRunSmartctlCheckRoutineFunction --------------------------------
 
-OsDiagnosticsRunSmartctlCheckRoutineFunction::
-    OsDiagnosticsRunSmartctlCheckRoutineFunction() = default;
-OsDiagnosticsRunSmartctlCheckRoutineFunction::
-    ~OsDiagnosticsRunSmartctlCheckRoutineFunction() = default;
-
 void OsDiagnosticsRunSmartctlCheckRoutineFunction::RunIfAllowed() {
-  auto cb =
-      base::BindOnce(&DiagnosticsApiRunRoutineFunctionBase::OnResult, this);
-
-  GetRemoteService()->RunSmartctlCheckRoutine(std::move(cb));
+  GetRemoteService()->RunSmartctlCheckRoutine(GetOnResult());
 }
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.h b/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.h
index d5dfbc8..9f8daaa 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.h
+++ b/chrome/browser/chromeos/extensions/telemetry/api/diagnostics_api.h
@@ -22,15 +22,17 @@
  public:
   DiagnosticsApiFunctionBase();
 
-  DiagnosticsApiFunctionBase(const DiagnosticsApiFunctionBase&) = delete;
-  DiagnosticsApiFunctionBase& operator=(const DiagnosticsApiFunctionBase&) =
-      delete;
-
  protected:
   ~DiagnosticsApiFunctionBase() override;
 
   mojo::Remote<crosapi::mojom::DiagnosticsService>& GetRemoteService();
 
+  // Gets the parameters passed to the JavaScript call and tries to convert it
+  // to the `Params` type. If the `Params` can't be created, this resolves the
+  // corresponding JavaScript call with an error and returns `nullptr`.
+  template <class Params>
+  std::unique_ptr<Params> GetParams();
+
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
   bool IsCrosApiAvailable() override;
 #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -42,18 +44,10 @@
 
 class OsDiagnosticsGetAvailableRoutinesFunction
     : public DiagnosticsApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.getAvailableRoutines",
                              OS_DIAGNOSTICS_GETAVAILABLEROUTINES)
-
-  OsDiagnosticsGetAvailableRoutinesFunction();
-  OsDiagnosticsGetAvailableRoutinesFunction(
-      const OsDiagnosticsGetAvailableRoutinesFunction&) = delete;
-  OsDiagnosticsGetAvailableRoutinesFunction& operator=(
-      const OsDiagnosticsGetAvailableRoutinesFunction&) = delete;
-
  private:
-  ~OsDiagnosticsGetAvailableRoutinesFunction() override;
+  ~OsDiagnosticsGetAvailableRoutinesFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -64,18 +58,10 @@
 
 class OsDiagnosticsGetRoutineUpdateFunction
     : public DiagnosticsApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.getRoutineUpdate",
                              OS_DIAGNOSTICS_GETROUTINEUPDATE)
-
-  OsDiagnosticsGetRoutineUpdateFunction();
-  OsDiagnosticsGetRoutineUpdateFunction(
-      const OsDiagnosticsGetRoutineUpdateFunction&) = delete;
-  OsDiagnosticsGetRoutineUpdateFunction& operator=(
-      const OsDiagnosticsGetRoutineUpdateFunction&) = delete;
-
  private:
-  ~OsDiagnosticsGetRoutineUpdateFunction() override;
+  ~OsDiagnosticsGetRoutineUpdateFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -85,33 +71,23 @@
 
 class DiagnosticsApiRunRoutineFunctionBase : public DiagnosticsApiFunctionBase {
  public:
-  DiagnosticsApiRunRoutineFunctionBase();
-
-  DiagnosticsApiRunRoutineFunctionBase(
-      const DiagnosticsApiRunRoutineFunctionBase&) = delete;
-  DiagnosticsApiRunRoutineFunctionBase& operator=(
-      const DiagnosticsApiRunRoutineFunctionBase&) = delete;
-
   void OnResult(crosapi::mojom::DiagnosticsRunRoutineResponsePtr ptr);
 
  protected:
-  ~DiagnosticsApiRunRoutineFunctionBase() override;
+  ~DiagnosticsApiRunRoutineFunctionBase() override = default;
+
+  // Returns a callback that resolves the corresponding JavaScript call with
+  // the response passed to the callback.
+  base::OnceCallback<void(crosapi::mojom::DiagnosticsRunRoutineResponsePtr)>
+  GetOnResult();
 };
 
 class OsDiagnosticsRunAcPowerRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runAcPowerRoutine",
                              OS_DIAGNOSTICS_RUNACPOWERROUTINE)
-
-  OsDiagnosticsRunAcPowerRoutineFunction();
-  OsDiagnosticsRunAcPowerRoutineFunction(
-      const OsDiagnosticsRunAcPowerRoutineFunction&) = delete;
-  OsDiagnosticsRunAcPowerRoutineFunction& operator=(
-      const OsDiagnosticsRunAcPowerRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunAcPowerRoutineFunction() override;
+  ~OsDiagnosticsRunAcPowerRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -119,18 +95,10 @@
 
 class OsDiagnosticsRunBatteryCapacityRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryCapacityRoutine",
                              OS_DIAGNOSTICS_RUNBATTERYCAPACITYROUTINE)
-
-  OsDiagnosticsRunBatteryCapacityRoutineFunction();
-  OsDiagnosticsRunBatteryCapacityRoutineFunction(
-      const OsDiagnosticsRunBatteryCapacityRoutineFunction&) = delete;
-  OsDiagnosticsRunBatteryCapacityRoutineFunction& operator=(
-      const OsDiagnosticsRunBatteryCapacityRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunBatteryCapacityRoutineFunction() override;
+  ~OsDiagnosticsRunBatteryCapacityRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -138,18 +106,10 @@
 
 class OsDiagnosticsRunBatteryChargeRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryChargeRoutine",
                              OS_DIAGNOSTICS_RUNBATTERYCHARGEROUTINE)
-
-  OsDiagnosticsRunBatteryChargeRoutineFunction();
-  OsDiagnosticsRunBatteryChargeRoutineFunction(
-      const OsDiagnosticsRunBatteryChargeRoutineFunction&) = delete;
-  OsDiagnosticsRunBatteryChargeRoutineFunction& operator=(
-      const OsDiagnosticsRunBatteryChargeRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunBatteryChargeRoutineFunction() override;
+  ~OsDiagnosticsRunBatteryChargeRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -157,18 +117,10 @@
 
 class OsDiagnosticsRunBatteryDischargeRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryDischargeRoutine",
                              OS_DIAGNOSTICS_RUNBATTERYDISCHARGEROUTINE)
-
-  OsDiagnosticsRunBatteryDischargeRoutineFunction();
-  OsDiagnosticsRunBatteryDischargeRoutineFunction(
-      const OsDiagnosticsRunBatteryDischargeRoutineFunction&) = delete;
-  OsDiagnosticsRunBatteryDischargeRoutineFunction& operator=(
-      const OsDiagnosticsRunBatteryDischargeRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunBatteryDischargeRoutineFunction() override;
+  ~OsDiagnosticsRunBatteryDischargeRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -176,18 +128,10 @@
 
 class OsDiagnosticsRunBatteryHealthRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryHealthRoutine",
                              OS_DIAGNOSTICS_RUNBATTERYHEALTHROUTINE)
-
-  OsDiagnosticsRunBatteryHealthRoutineFunction();
-  OsDiagnosticsRunBatteryHealthRoutineFunction(
-      const OsDiagnosticsRunBatteryHealthRoutineFunction&) = delete;
-  OsDiagnosticsRunBatteryHealthRoutineFunction& operator=(
-      const OsDiagnosticsRunBatteryHealthRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunBatteryHealthRoutineFunction() override;
+  ~OsDiagnosticsRunBatteryHealthRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -195,18 +139,10 @@
 
 class OsDiagnosticsRunCpuCacheRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runCpuCacheRoutine",
                              OS_DIAGNOSTICS_RUNCPUCACHEROUTINE)
-
-  OsDiagnosticsRunCpuCacheRoutineFunction();
-  OsDiagnosticsRunCpuCacheRoutineFunction(
-      const OsDiagnosticsRunCpuCacheRoutineFunction&) = delete;
-  OsDiagnosticsRunCpuCacheRoutineFunction& operator=(
-      const OsDiagnosticsRunCpuCacheRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunCpuCacheRoutineFunction() override;
+  ~OsDiagnosticsRunCpuCacheRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -214,19 +150,11 @@
 
 class OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION(
       "os.diagnostics.runCpuFloatingPointAccuracyRoutine",
       OS_DIAGNOSTICS_RUNCPUFLOATINGPOINTACCURACYROUTINE)
-
-  OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction();
-  OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction(
-      const OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction&) = delete;
-  OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction& operator=(
-      const OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction() override;
+  ~OsDiagnosticsRunCpuFloatingPointAccuracyRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -234,18 +162,10 @@
 
 class OsDiagnosticsRunCpuPrimeSearchRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runCpuPrimeSearchRoutine",
                              OS_DIAGNOSTICS_RUNCPUPRIMESEARCHROUTINE)
-
-  OsDiagnosticsRunCpuPrimeSearchRoutineFunction();
-  OsDiagnosticsRunCpuPrimeSearchRoutineFunction(
-      const OsDiagnosticsRunCpuPrimeSearchRoutineFunction&) = delete;
-  OsDiagnosticsRunCpuPrimeSearchRoutineFunction& operator=(
-      const OsDiagnosticsRunCpuPrimeSearchRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunCpuPrimeSearchRoutineFunction() override;
+  ~OsDiagnosticsRunCpuPrimeSearchRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -253,18 +173,10 @@
 
 class OsDiagnosticsRunCpuStressRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runCpuStressRoutine",
                              OS_DIAGNOSTICS_RUNCPUSTRESSROUTINE)
-
-  OsDiagnosticsRunCpuStressRoutineFunction();
-  OsDiagnosticsRunCpuStressRoutineFunction(
-      const OsDiagnosticsRunCpuStressRoutineFunction&) = delete;
-  OsDiagnosticsRunCpuStressRoutineFunction& operator=(
-      const OsDiagnosticsRunCpuStressRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunCpuStressRoutineFunction() override;
+  ~OsDiagnosticsRunCpuStressRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -272,18 +184,10 @@
 
 class OsDiagnosticsRunDiskReadRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runDiskReadRoutine",
                              OS_DIAGNOSTICS_RUNDISKREADROUTINE)
-
-  OsDiagnosticsRunDiskReadRoutineFunction();
-  OsDiagnosticsRunDiskReadRoutineFunction(
-      const OsDiagnosticsRunDiskReadRoutineFunction&) = delete;
-  OsDiagnosticsRunDiskReadRoutineFunction& operator=(
-      const OsDiagnosticsRunDiskReadRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunDiskReadRoutineFunction() override;
+  ~OsDiagnosticsRunDiskReadRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -291,18 +195,10 @@
 
 class OsDiagnosticsRunDnsResolutionRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runDnsResolutionRoutine",
                              OS_DIAGNOSTICS_RUNDNSRESOLUTIONROUTINE)
-
-  OsDiagnosticsRunDnsResolutionRoutineFunction();
-  OsDiagnosticsRunDnsResolutionRoutineFunction(
-      const OsDiagnosticsRunDnsResolutionRoutineFunction&) = delete;
-  OsDiagnosticsRunDnsResolutionRoutineFunction& operator=(
-      const OsDiagnosticsRunDnsResolutionRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunDnsResolutionRoutineFunction() override;
+  ~OsDiagnosticsRunDnsResolutionRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -310,18 +206,10 @@
 
 class OsDiagnosticsRunDnsResolverPresentRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runDnsResolverPresentRoutine",
                              OS_DIAGNOSTICS_RUNDNSRESOLVERPRESENTROUTINE)
-
-  OsDiagnosticsRunDnsResolverPresentRoutineFunction();
-  OsDiagnosticsRunDnsResolverPresentRoutineFunction(
-      const OsDiagnosticsRunDnsResolverPresentRoutineFunction&) = delete;
-  OsDiagnosticsRunDnsResolverPresentRoutineFunction& operator=(
-      const OsDiagnosticsRunDnsResolverPresentRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunDnsResolverPresentRoutineFunction() override;
+  ~OsDiagnosticsRunDnsResolverPresentRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -348,18 +236,10 @@
 
 class OsDiagnosticsRunGatewayCanBePingedRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runGatewayCanBePingedRoutine",
                              OS_DIAGNOSTICS_RUNGATEWAYCANBEPINGEDROUTINE)
-
-  OsDiagnosticsRunGatewayCanBePingedRoutineFunction();
-  OsDiagnosticsRunGatewayCanBePingedRoutineFunction(
-      const OsDiagnosticsRunGatewayCanBePingedRoutineFunction&) = delete;
-  OsDiagnosticsRunGatewayCanBePingedRoutineFunction& operator=(
-      const OsDiagnosticsRunGatewayCanBePingedRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunGatewayCanBePingedRoutineFunction() override;
+  ~OsDiagnosticsRunGatewayCanBePingedRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -367,18 +247,10 @@
 
 class OsDiagnosticsRunLanConnectivityRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runLanConnectivityRoutine",
                              OS_DIAGNOSTICS_RUNLANCONNECTIVITYROUTINE)
-
-  OsDiagnosticsRunLanConnectivityRoutineFunction();
-  OsDiagnosticsRunLanConnectivityRoutineFunction(
-      const OsDiagnosticsRunLanConnectivityRoutineFunction&) = delete;
-  OsDiagnosticsRunLanConnectivityRoutineFunction& operator=(
-      const OsDiagnosticsRunLanConnectivityRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunLanConnectivityRoutineFunction() override;
+  ~OsDiagnosticsRunLanConnectivityRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -386,18 +258,10 @@
 
 class OsDiagnosticsRunMemoryRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runMemoryRoutine",
                              OS_DIAGNOSTICS_RUNMEMORYROUTINE)
-
-  OsDiagnosticsRunMemoryRoutineFunction();
-  OsDiagnosticsRunMemoryRoutineFunction(
-      const OsDiagnosticsRunMemoryRoutineFunction&) = delete;
-  OsDiagnosticsRunMemoryRoutineFunction& operator=(
-      const OsDiagnosticsRunMemoryRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunMemoryRoutineFunction() override;
+  ~OsDiagnosticsRunMemoryRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -405,18 +269,10 @@
 
 class OsDiagnosticsRunNvmeSelfTestRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runNvmeSelfTestRoutine",
                              OS_DIAGNOSTICS_RUNNVMESELFTESTROUTINE)
-
-  OsDiagnosticsRunNvmeSelfTestRoutineFunction();
-  OsDiagnosticsRunNvmeSelfTestRoutineFunction(
-      const OsDiagnosticsRunNvmeSelfTestRoutineFunction&) = delete;
-  OsDiagnosticsRunNvmeSelfTestRoutineFunction& operator=(
-      const OsDiagnosticsRunNvmeSelfTestRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunNvmeSelfTestRoutineFunction() override;
+  ~OsDiagnosticsRunNvmeSelfTestRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -424,18 +280,10 @@
 
 class OsDiagnosticsRunNvmeWearLevelRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runNvmeWearLevelRoutine",
                              OS_DIAGNOSTICS_RUNNVMEWEARLEVELROUTINE)
-
-  OsDiagnosticsRunNvmeWearLevelRoutineFunction();
-  OsDiagnosticsRunNvmeWearLevelRoutineFunction(
-      const OsDiagnosticsRunNvmeWearLevelRoutineFunction&) = delete;
-  OsDiagnosticsRunNvmeWearLevelRoutineFunction& operator=(
-      const OsDiagnosticsRunNvmeWearLevelRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunNvmeWearLevelRoutineFunction() override;
+  ~OsDiagnosticsRunNvmeWearLevelRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -443,18 +291,10 @@
 
 class OsDiagnosticsRunSensitiveSensorRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runSensitiveSensorRoutine",
                              OS_DIAGNOSTICS_RUNSENSITIVESENSORROUTINE)
-
-  OsDiagnosticsRunSensitiveSensorRoutineFunction();
-  OsDiagnosticsRunSensitiveSensorRoutineFunction(
-      const OsDiagnosticsRunSensitiveSensorRoutineFunction&) = delete;
-  OsDiagnosticsRunSensitiveSensorRoutineFunction& operator=(
-      const OsDiagnosticsRunSensitiveSensorRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunSensitiveSensorRoutineFunction() override;
+  ~OsDiagnosticsRunSensitiveSensorRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -462,18 +302,10 @@
 
 class OsDiagnosticsRunSignalStrengthRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runSignalStrengthRoutine",
                              OS_DIAGNOSTICS_RUNSIGNALSTRENGTHROUTINE)
-
-  OsDiagnosticsRunSignalStrengthRoutineFunction();
-  OsDiagnosticsRunSignalStrengthRoutineFunction(
-      const OsDiagnosticsRunSignalStrengthRoutineFunction&) = delete;
-  OsDiagnosticsRunSignalStrengthRoutineFunction& operator=(
-      const OsDiagnosticsRunSignalStrengthRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunSignalStrengthRoutineFunction() override;
+  ~OsDiagnosticsRunSignalStrengthRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -481,18 +313,10 @@
 
 class OsDiagnosticsRunSmartctlCheckRoutineFunction
     : public DiagnosticsApiRunRoutineFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.diagnostics.runSmartctlCheckRoutine",
                              OS_DIAGNOSTICS_RUNSMARTCTLCHECKROUTINE)
-
-  OsDiagnosticsRunSmartctlCheckRoutineFunction();
-  OsDiagnosticsRunSmartctlCheckRoutineFunction(
-      const OsDiagnosticsRunSmartctlCheckRoutineFunction&) = delete;
-  OsDiagnosticsRunSmartctlCheckRoutineFunction& operator=(
-      const OsDiagnosticsRunSmartctlCheckRoutineFunction&) = delete;
-
  private:
-  ~OsDiagnosticsRunSmartctlCheckRoutineFunction() override;
+  ~OsDiagnosticsRunSmartctlCheckRoutineFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc
index f34983c..d2a6de9 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc
+++ b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc
@@ -11,7 +11,8 @@
 #include <utility>
 #include <vector>
 
-#include "base/bind.h"
+#include "base/functional/bind.h"
+#include "base/functional/callback.h"
 #include "base/values.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h"
@@ -23,6 +24,8 @@
 
 namespace chromeos {
 
+namespace telemetry = api::os_telemetry;
+
 // TelemetryApiFunctionBase ----------------------------------------------------
 
 TelemetryApiFunctionBase::TelemetryApiFunctionBase()
@@ -44,11 +47,6 @@
 
 // OsTelemetryGetBatteryInfoFunction -------------------------------------------
 
-OsTelemetryGetBatteryInfoFunction::OsTelemetryGetBatteryInfoFunction() =
-    default;
-OsTelemetryGetBatteryInfoFunction::~OsTelemetryGetBatteryInfoFunction() =
-    default;
-
 void OsTelemetryGetBatteryInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsTelemetryGetBatteryInfoFunction::OnResult, this);
 
@@ -71,25 +69,18 @@
     serial_number = std::move(battery_info->serial_number);
   }
 
-  api::os_telemetry::BatteryInfo result =
-      converters::ConvertPtr<api::os_telemetry::BatteryInfo>(
-          std::move(battery_info));
+  telemetry::BatteryInfo result =
+      converters::ConvertPtr<telemetry::BatteryInfo>(std::move(battery_info));
 
   if (serial_number && !serial_number->empty()) {
     result.serial_number = std::move(serial_number);
   }
 
-  Respond(
-      ArgumentList(api::os_telemetry::GetBatteryInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetBatteryInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetNonRemovableBlockDevicesInfoFunction --------------------------
 
-OsTelemetryGetNonRemovableBlockDevicesInfoFunction::
-    OsTelemetryGetNonRemovableBlockDevicesInfoFunction() = default;
-OsTelemetryGetNonRemovableBlockDevicesInfoFunction::
-    ~OsTelemetryGetNonRemovableBlockDevicesInfoFunction() = default;
-
 void OsTelemetryGetNonRemovableBlockDevicesInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(
       &OsTelemetryGetNonRemovableBlockDevicesInfoFunction::OnResult, this);
@@ -108,22 +99,18 @@
   }
   auto& block_device_info = ptr->block_device_result->get_block_device_info();
 
-  auto infos = converters::ConvertPtrVector<
-      api::os_telemetry::NonRemovableBlockDeviceInfo>(
-      std::move(block_device_info));
-  api::os_telemetry::NonRemovableBlockDeviceInfoResponse result;
+  auto infos =
+      converters::ConvertPtrVector<telemetry::NonRemovableBlockDeviceInfo>(
+          std::move(block_device_info));
+  telemetry::NonRemovableBlockDeviceInfoResponse result;
   result.device_infos = std::move(infos);
 
   Respond(ArgumentList(
-      api::os_telemetry::GetNonRemovableBlockDevicesInfo::Results::Create(
-          result)));
+      telemetry::GetNonRemovableBlockDevicesInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetCpuInfoFunction -----------------------------------------------
 
-OsTelemetryGetCpuInfoFunction::OsTelemetryGetCpuInfoFunction() = default;
-OsTelemetryGetCpuInfoFunction::~OsTelemetryGetCpuInfoFunction() = default;
-
 void OsTelemetryGetCpuInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsTelemetryGetCpuInfoFunction::OnResult, this);
 
@@ -140,25 +127,20 @@
 
   const auto& cpu_info = ptr->cpu_result->get_cpu_info();
 
-  api::os_telemetry::CpuInfo result;
+  telemetry::CpuInfo result;
   if (cpu_info->num_total_threads) {
     result.num_total_threads = cpu_info->num_total_threads->value;
   }
   result.architecture = converters::Convert(cpu_info->architecture);
   result.physical_cpus =
-      converters::ConvertPtrVector<api::os_telemetry::PhysicalCpuInfo>(
+      converters::ConvertPtrVector<telemetry::PhysicalCpuInfo>(
           std::move(cpu_info->physical_cpus));
 
-  Respond(ArgumentList(api::os_telemetry::GetCpuInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetCpuInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetInternetConnectivityInfoFunction ------------------------------
 
-OsTelemetryGetInternetConnectivityInfoFunction::
-    OsTelemetryGetInternetConnectivityInfoFunction() = default;
-OsTelemetryGetInternetConnectivityInfoFunction::
-    ~OsTelemetryGetInternetConnectivityInfoFunction() = default;
-
 void OsTelemetryGetInternetConnectivityInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(
       &OsTelemetryGetInternetConnectivityInfoFunction::OnResult, this);
@@ -176,7 +158,7 @@
   }
   auto& network_info = ptr->network_result->get_network_health();
 
-  api::os_telemetry::InternetConnectivityInfo result;
+  telemetry::InternetConnectivityInfo result;
   for (auto& network : network_info->networks) {
     absl::optional<std::string> mac_address;
     if (extension()->permissions_data()->HasAPIPermission(
@@ -186,29 +168,24 @@
     }
 
     auto converted_network =
-        converters::ConvertPtr<api::os_telemetry::NetworkInfo>(
-            std::move(network));
+        converters::ConvertPtr<telemetry::NetworkInfo>(std::move(network));
 
     if (mac_address && !mac_address->empty()) {
       converted_network.mac_address = std::move(mac_address);
     }
 
     // Don't include networks with an undefined type.
-    if (converted_network.type !=
-        api::os_telemetry::NetworkType::NETWORK_TYPE_NONE) {
+    if (converted_network.type != telemetry::NetworkType::NETWORK_TYPE_NONE) {
       result.networks.push_back(std::move(converted_network));
     }
   }
 
   Respond(ArgumentList(
-      api::os_telemetry::GetInternetConnectivityInfo::Results::Create(result)));
+      telemetry::GetInternetConnectivityInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetMemoryInfoFunction --------------------------------------------
 
-OsTelemetryGetMemoryInfoFunction::OsTelemetryGetMemoryInfoFunction() = default;
-OsTelemetryGetMemoryInfoFunction::~OsTelemetryGetMemoryInfoFunction() = default;
-
 void OsTelemetryGetMemoryInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsTelemetryGetMemoryInfoFunction::OnResult, this);
 
@@ -223,7 +200,7 @@
     return;
   }
 
-  api::os_telemetry::MemoryInfo result;
+  telemetry::MemoryInfo result;
 
   const auto& memory_info = ptr->memory_result->get_memory_info();
   if (memory_info->total_memory_kib) {
@@ -240,15 +217,11 @@
         memory_info->page_faults_since_last_boot->value;
   }
 
-  Respond(
-      ArgumentList(api::os_telemetry::GetMemoryInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetMemoryInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetOemDataFunction -----------------------------------------------
 
-OsTelemetryGetOemDataFunction::OsTelemetryGetOemDataFunction() = default;
-OsTelemetryGetOemDataFunction::~OsTelemetryGetOemDataFunction() = default;
-
 void OsTelemetryGetOemDataFunction::RunIfAllowed() {
   // Protect accessing the serial number by a permission.
   if (!extension()->permissions_data()->HasAPIPermission(
@@ -271,19 +244,14 @@
     return;
   }
 
-  api::os_telemetry::OemData result;
+  telemetry::OemData result;
   result.oem_data = std::move(ptr->oem_data);
 
-  Respond(ArgumentList(api::os_telemetry::GetOemData::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetOemData::Results::Create(result)));
 }
 
 // OsTelemetryGetOsVersionInfoFunction -----------------------------------------
 
-OsTelemetryGetOsVersionInfoFunction::OsTelemetryGetOsVersionInfoFunction() =
-    default;
-OsTelemetryGetOsVersionInfoFunction::~OsTelemetryGetOsVersionInfoFunction() =
-    default;
-
 void OsTelemetryGetOsVersionInfoFunction::RunIfAllowed() {
   auto cb =
       base::BindOnce(&OsTelemetryGetOsVersionInfoFunction::OnResult, this);
@@ -307,21 +275,15 @@
     return;
   }
 
-  api::os_telemetry::OsVersionInfo result =
-      converters::ConvertPtr<api::os_telemetry::OsVersionInfo>(
+  telemetry::OsVersionInfo result =
+      converters::ConvertPtr<telemetry::OsVersionInfo>(
           std::move(system_info->os_info->os_version));
 
-  Respond(ArgumentList(
-      api::os_telemetry::GetOsVersionInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetOsVersionInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetStatefulPartitionInfoFunction ---------------------------------
 
-OsTelemetryGetStatefulPartitionInfoFunction::
-    OsTelemetryGetStatefulPartitionInfoFunction() = default;
-OsTelemetryGetStatefulPartitionInfoFunction::
-    ~OsTelemetryGetStatefulPartitionInfoFunction() = default;
-
 void OsTelemetryGetStatefulPartitionInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(
       &OsTelemetryGetStatefulPartitionInfoFunction::OnResult, this);
@@ -340,19 +302,16 @@
   auto& stateful_part_info =
       ptr->stateful_partition_result->get_partition_info();
 
-  api::os_telemetry::StatefulPartitionInfo result =
-      converters::ConvertPtr<api::os_telemetry::StatefulPartitionInfo>(
+  telemetry::StatefulPartitionInfo result =
+      converters::ConvertPtr<telemetry::StatefulPartitionInfo>(
           std::move(stateful_part_info));
 
   Respond(ArgumentList(
-      api::os_telemetry::GetStatefulPartitionInfo::Results::Create(result)));
+      telemetry::GetStatefulPartitionInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetTpmInfoFunction -----------------------------------------------
 
-OsTelemetryGetTpmInfoFunction::OsTelemetryGetTpmInfoFunction() = default;
-OsTelemetryGetTpmInfoFunction::~OsTelemetryGetTpmInfoFunction() = default;
-
 void OsTelemetryGetTpmInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsTelemetryGetTpmInfoFunction::OnResult, this);
 
@@ -368,17 +327,14 @@
   }
   auto& tpm_info = ptr->tpm_result->get_tpm_info();
 
-  api::os_telemetry::TpmInfo result =
-      converters::ConvertPtr<api::os_telemetry::TpmInfo>(std::move(tpm_info));
+  telemetry::TpmInfo result =
+      converters::ConvertPtr<telemetry::TpmInfo>(std::move(tpm_info));
 
-  Respond(ArgumentList(api::os_telemetry::GetTpmInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetTpmInfo::Results::Create(result)));
 }
 
 // OsTelemetryGetVpdInfoFunction -----------------------------------------------
 
-OsTelemetryGetVpdInfoFunction::OsTelemetryGetVpdInfoFunction() = default;
-OsTelemetryGetVpdInfoFunction::~OsTelemetryGetVpdInfoFunction() = default;
-
 void OsTelemetryGetVpdInfoFunction::RunIfAllowed() {
   auto cb = base::BindOnce(&OsTelemetryGetVpdInfoFunction::OnResult, this);
 
@@ -393,7 +349,7 @@
     return;
   }
 
-  api::os_telemetry::VpdInfo result;
+  telemetry::VpdInfo result;
 
   const auto& vpd_info = ptr->vpd_result->get_vpd_info();
   result.activate_date = vpd_info->first_power_date;
@@ -406,7 +362,7 @@
     result.serial_number = vpd_info->serial_number;
   }
 
-  Respond(ArgumentList(api::os_telemetry::GetVpdInfo::Results::Create(result)));
+  Respond(ArgumentList(telemetry::GetVpdInfo::Results::Create(result)));
 }
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h
index a8f4e154..f1a891d 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h
+++ b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h
@@ -38,39 +38,24 @@
 };
 
 class OsTelemetryGetBatteryInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getBatteryInfo",
                              OS_TELEMETRY_GETBATTERYINFO)
-
-  OsTelemetryGetBatteryInfoFunction();
-  OsTelemetryGetBatteryInfoFunction(const OsTelemetryGetBatteryInfoFunction&) =
-      delete;
-  OsTelemetryGetBatteryInfoFunction& operator=(
-      const OsTelemetryGetBatteryInfoFunction&) = delete;
+  void OnResult(crosapi::mojom::ProbeTelemetryInfoPtr ptr);
 
  private:
-  ~OsTelemetryGetBatteryInfoFunction() override;
+  ~OsTelemetryGetBatteryInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
-
-  void OnResult(crosapi::mojom::ProbeTelemetryInfoPtr ptr);
 };
 
 class OsTelemetryGetNonRemovableBlockDevicesInfoFunction
     : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getNonRemovableBlockDevicesInfo",
                              OS_TELEMETRY_GETNONREMOVABLEBLOCKDEVICESINFO)
 
-  OsTelemetryGetNonRemovableBlockDevicesInfoFunction();
-  OsTelemetryGetNonRemovableBlockDevicesInfoFunction(
-      const OsTelemetryGetNonRemovableBlockDevicesInfoFunction&) = delete;
-  OsTelemetryGetNonRemovableBlockDevicesInfoFunction& operator=(
-      const OsTelemetryGetNonRemovableBlockDevicesInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetNonRemovableBlockDevicesInfoFunction() override;
+  ~OsTelemetryGetNonRemovableBlockDevicesInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -79,16 +64,10 @@
 };
 
 class OsTelemetryGetCpuInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getCpuInfo", OS_TELEMETRY_GETCPUINFO)
 
-  OsTelemetryGetCpuInfoFunction();
-  OsTelemetryGetCpuInfoFunction(const OsTelemetryGetCpuInfoFunction&) = delete;
-  OsTelemetryGetCpuInfoFunction& operator=(
-      const OsTelemetryGetCpuInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetCpuInfoFunction() override;
+  ~OsTelemetryGetCpuInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -98,18 +77,11 @@
 
 class OsTelemetryGetInternetConnectivityInfoFunction
     : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getInternetConnectivityInfo",
                              OS_TELEMETRY_GETINTERNETCONNECTIVITYINFO)
 
-  OsTelemetryGetInternetConnectivityInfoFunction();
-  OsTelemetryGetInternetConnectivityInfoFunction(
-      const OsTelemetryGetInternetConnectivityInfoFunction&) = delete;
-  OsTelemetryGetInternetConnectivityInfoFunction& operator=(
-      const OsTelemetryGetInternetConnectivityInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetInternetConnectivityInfoFunction() override;
+  ~OsTelemetryGetInternetConnectivityInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -118,18 +90,11 @@
 };
 
 class OsTelemetryGetMemoryInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getMemoryInfo",
                              OS_TELEMETRY_GETMEMORYINFO)
 
-  OsTelemetryGetMemoryInfoFunction();
-  OsTelemetryGetMemoryInfoFunction(const OsTelemetryGetMemoryInfoFunction&) =
-      delete;
-  OsTelemetryGetMemoryInfoFunction& operator=(
-      const OsTelemetryGetMemoryInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetMemoryInfoFunction() override;
+  ~OsTelemetryGetMemoryInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -138,16 +103,10 @@
 };
 
 class OsTelemetryGetOemDataFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getOemData", OS_TELEMETRY_GETOEMDATA)
 
-  OsTelemetryGetOemDataFunction();
-  OsTelemetryGetOemDataFunction(const OsTelemetryGetOemDataFunction&) = delete;
-  OsTelemetryGetOemDataFunction& operator=(
-      const OsTelemetryGetOemDataFunction&) = delete;
-
  private:
-  ~OsTelemetryGetOemDataFunction() override;
+  ~OsTelemetryGetOemDataFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -156,18 +115,11 @@
 };
 
 class OsTelemetryGetOsVersionInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getOsVersionInfo",
                              OS_TELEMETRY_GETOSVERSIONINFO)
 
-  OsTelemetryGetOsVersionInfoFunction();
-  OsTelemetryGetOsVersionInfoFunction(
-      const OsTelemetryGetOsVersionInfoFunction&) = delete;
-  OsTelemetryGetOsVersionInfoFunction& operator=(
-      const OsTelemetryGetOsVersionInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetOsVersionInfoFunction() override;
+  ~OsTelemetryGetOsVersionInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -176,16 +128,10 @@
 };
 
 class OsTelemetryGetVpdInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getVpdInfo", OS_TELEMETRY_GETVPDINFO)
 
-  OsTelemetryGetVpdInfoFunction();
-  OsTelemetryGetVpdInfoFunction(const OsTelemetryGetVpdInfoFunction&) = delete;
-  OsTelemetryGetVpdInfoFunction& operator=(
-      const OsTelemetryGetVpdInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetVpdInfoFunction() override;
+  ~OsTelemetryGetVpdInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -195,18 +141,11 @@
 
 class OsTelemetryGetStatefulPartitionInfoFunction
     : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getStatefulPartitionInfo",
                              OS_TELEMETRY_GETSTATEFULPARTITIONINFO)
 
-  OsTelemetryGetStatefulPartitionInfoFunction();
-  OsTelemetryGetStatefulPartitionInfoFunction(
-      const OsTelemetryGetStatefulPartitionInfoFunction&) = delete;
-  OsTelemetryGetStatefulPartitionInfoFunction& operator=(
-      const OsTelemetryGetStatefulPartitionInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetStatefulPartitionInfoFunction() override;
+  ~OsTelemetryGetStatefulPartitionInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
@@ -215,16 +154,10 @@
 };
 
 class OsTelemetryGetTpmInfoFunction : public TelemetryApiFunctionBase {
- public:
   DECLARE_EXTENSION_FUNCTION("os.telemetry.getTpmInfo", OS_TELEMETRY_GETTPMINFO)
 
-  OsTelemetryGetTpmInfoFunction();
-  OsTelemetryGetTpmInfoFunction(const OsTelemetryGetTpmInfoFunction&) = delete;
-  OsTelemetryGetTpmInfoFunction& operator=(
-      const OsTelemetryGetTpmInfoFunction&) = delete;
-
  private:
-  ~OsTelemetryGetTpmInfoFunction() override;
+  ~OsTelemetryGetTpmInfoFunction() override = default;
 
   // BaseTelemetryExtensionApiGuardFunction:
   void RunIfAllowed() override;
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
index ca7b5f60..d6a6bca 100644
--- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
+++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
@@ -5640,17 +5640,15 @@
   ASSERT_TRUE(embedded_test_server()->Start());
 
   // Create a web bundle.
-  std::string pass_js_url_str =
-      embedded_test_server()->GetURL("/pass.js").spec();
-  std::string cancel_js_url_str =
-      embedded_test_server()->GetURL("/cancel.js").spec();
+  GURL pass_js_url = embedded_test_server()->GetURL("/pass.js");
+  GURL cancel_js_url = embedded_test_server()->GetURL("/cancel.js");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      pass_js_url_str,
+      pass_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'script loaded';");
   builder.AddExchange(
-      cancel_js_url_str,
+      cancel_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}}, "");
   std::vector<uint8_t> bundle = builder.CreateBundle();
   web_bundle = std::string(bundle.begin(), bundle.end());
@@ -5783,35 +5781,33 @@
   ASSERT_TRUE(embedded_test_server()->Start());
 
   // Create a web bundle.
-  std::string redirect_js_url_str =
-      embedded_test_server()->GetURL("/redirect.js").spec();
-  std::string redirected_js_url_str =
-      embedded_test_server()->GetURL("/redirected.js").spec();
-  std::string redirect_to_unlisted_js_url_str =
-      embedded_test_server()->GetURL("/redirect_to_unlisted.js").spec();
-  std::string redirected_to_unlisted_js_url_str =
-      embedded_test_server()->GetURL("/redirected_to_unlisted.js").spec();
-  std::string redirect_to_server_js_url_str =
-      embedded_test_server()->GetURL("/redirect_to_server.js").spec();
+  GURL redirect_js_url = embedded_test_server()->GetURL("/redirect.js");
+  GURL redirected_js_url = embedded_test_server()->GetURL("/redirected.js");
+  GURL redirect_to_unlisted_js_url =
+      embedded_test_server()->GetURL("/redirect_to_unlisted.js");
+  GURL redirected_to_unlisted_js_url =
+      embedded_test_server()->GetURL("/redirected_to_unlisted.js");
+  GURL redirect_to_server_js_url =
+      embedded_test_server()->GetURL("/redirect_to_server.js");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      redirect_js_url_str,
+      redirect_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect';");
   builder.AddExchange(
-      redirected_js_url_str,
+      redirected_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirected';");
   builder.AddExchange(
-      redirect_to_unlisted_js_url_str,
+      redirect_to_unlisted_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect_to_unlisted';");
   builder.AddExchange(
-      redirected_to_unlisted_js_url_str,
+      redirected_to_unlisted_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirected_to_unlisted';");
   builder.AddExchange(
-      redirect_to_server_js_url_str,
+      redirect_to_server_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect_to_server';");
 
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc b/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
index ddc628c..48c5912a 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
@@ -43,7 +43,6 @@
 #include "components/password_manager/core/browser/leak_detection/bulk_leak_check.h"
 #include "components/password_manager/core/browser/leak_detection/encryption_utils.h"
 #include "components/password_manager/core/browser/password_change_success_tracker.h"
-#include "components/password_manager/core/browser/password_feature_manager_impl.h"
 #include "components/password_manager/core/browser/password_form.h"
 #include "components/password_manager/core/browser/password_manager_client.h"
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
@@ -83,9 +82,6 @@
     password_manager::SavedPasswordsPresenter::SavedPasswordsView;
 using State = password_manager::BulkLeakCheckService::State;
 
-constexpr char kPasswordCheckScriptsCacheStateUmaKey[] =
-    "PasswordManager.BulkCheck.ScriptsCacheState";
-
 std::string GetChangePasswordUrl(const GURL& url) {
   return password_manager::CreateChangePasswordUrl(url).spec();
 }
@@ -258,11 +254,6 @@
                 int,
                 password_manager::CredentialUIEntry::Less>* id_generator)
     : profile_(profile),
-      password_feature_manager_(
-          std::make_unique<password_manager::PasswordFeatureManagerImpl>(
-              profile->GetPrefs(),
-              g_browser_process->local_state(),
-              SyncServiceFactory::GetForProfile(profile))),
       saved_passwords_presenter_(presenter),
       insecure_credentials_manager_(presenter,
                                     PasswordStoreFactory::GetForProfile(
@@ -321,34 +312,16 @@
   return insecure_credentials_manager_.UnmuteCredential(*entry);
 }
 
-// Records that a change password flow was started for |credential| and
-// whether |is_manual_flow| applies to the flow.
+// Records that a change password flow was started for |credential|.
 void PasswordCheckDelegate::RecordChangePasswordFlowStarted(
-    const api::passwords_private::PasswordUiEntry& credential,
-    bool is_manual_flow) {
+    const api::passwords_private::PasswordUiEntry& credential) {
   // If the |credential| does not have a |change_password_url|, skip it.
   if (!credential.change_password_url)
     return;
 
-  if (is_manual_flow) {
-    GetPasswordChangeSuccessTracker()->OnManualChangePasswordFlowStarted(
-        GURL(*credential.change_password_url), credential.username,
-        PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings);
-  } else {
-    GetPasswordChangeSuccessTracker()->OnChangePasswordFlowStarted(
-        GURL(*credential.change_password_url), credential.username,
-        PasswordChangeSuccessTracker::StartEvent::kAutomatedFlow,
-        PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings);
-  }
-}
-
-void PasswordCheckDelegate::RefreshScriptsIfNecessary(
-    RefreshScriptsIfNecessaryCallback callback) {
-  if (PasswordScriptsFetcher* fetcher = GetPasswordScriptsFetcher()) {
-    fetcher->RefreshScriptsIfNecessary(std::move(callback));
-    return;
-  }
-  std::move(callback).Run();
+  GetPasswordChangeSuccessTracker()->OnManualChangePasswordFlowStarted(
+      GURL(*credential.change_password_url), credential.username,
+      PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings);
 }
 
 void PasswordCheckDelegate::StartPasswordCheck(
@@ -360,56 +333,13 @@
     return;
   }
 
-  // Also return early if the check is already running or scripts are fetching.
-  if (are_scripts_fetching_ ||
-      bulk_leak_check_service_adapter_.GetBulkLeakCheckState() ==
-          State::kRunning) {
+  // Also return early if the check is already running.
+  if (bulk_leak_check_service_adapter_.GetBulkLeakCheckState() ==
+      State::kRunning) {
     std::move(callback).Run(State::kRunning);
     return;
   }
 
-  // If automated password change from password check in settings is enabled,
-  // we make sure that the cache is warm prior to analyzing passwords.
-  if (base::FeatureList::IsEnabled(
-          password_manager::features::kPasswordChangeInSettings)) {
-    if (GetPasswordScriptsFetcher()->IsCacheStale()) {
-      are_scripts_fetching_ = true;
-      // The UMA metric for a stale cache is recorded on callback.
-      GetPasswordScriptsFetcher()->RefreshScriptsIfNecessary(
-          base::BindOnce(&PasswordCheckDelegate::OnPasswordScriptsFetched,
-                         weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
-      return;
-    }
-    UMA_HISTOGRAM_ENUMERATION(kPasswordCheckScriptsCacheStateUmaKey,
-                              PasswordCheckScriptsCacheState::kCacheFresh);
-  }
-
-  // Otherwise, call directly.
-  StartPasswordAnalyses(std::move(callback));
-}
-
-void PasswordCheckDelegate::OnPasswordScriptsFetched(
-    StartPasswordCheckCallback callback) {
-  DCHECK(are_scripts_fetching_);
-  are_scripts_fetching_ = false;
-  if (PasswordsPrivateEventRouter* event_router =
-          PasswordsPrivateEventRouterFactory::GetForProfile(profile_)) {
-    // Only update if at least one credential now has a startable script.
-    std::vector<api::passwords_private::PasswordUiEntry> credentials =
-        GetInsecureCredentials();
-    if (base::ranges::any_of(
-            credentials,
-            &api::passwords_private::PasswordUiEntry::has_startable_script)) {
-      UMA_HISTOGRAM_ENUMERATION(
-          kPasswordCheckScriptsCacheStateUmaKey,
-          PasswordCheckScriptsCacheState::kCacheStaleAndUiUpdate);
-      event_router->OnInsecureCredentialsChanged(std::move(credentials));
-    } else {
-      UMA_HISTOGRAM_ENUMERATION(
-          kPasswordCheckScriptsCacheStateUmaKey,
-          PasswordCheckScriptsCacheState::kCacheStaleAndNoUiUpdate);
-    }
-  }
   StartPasswordAnalyses(std::move(callback));
 }
 
@@ -627,9 +557,6 @@
     api_credential.change_password_url = GetChangePasswordUrl(entry.GetURL());
   }
 
-  api_credential.has_startable_script =
-      CredentialSupportsAutomatedPasswordChange(entry);
-
   return api_credential;
 }
 
@@ -639,61 +566,4 @@
       GetForBrowserContext(profile_);
 }
 
-PasswordScriptsFetcher* PasswordCheckDelegate::GetPasswordScriptsFetcher()
-    const {
-  return PasswordScriptsFetcherFactory::GetForBrowserContext(profile_);
-}
-
-bool PasswordCheckDelegate::CredentialSupportsAutomatedPasswordChange(
-    const password_manager::CredentialUIEntry& entry) const {
-  // Step 1: User requirements.
-  if (!password_feature_manager_
-           ->AreRequirementsForAutomatedPasswordChangeFulfilled() ||
-      !base::FeatureList::IsEnabled(
-          password_manager::features::kPasswordChangeInSettings)) {
-    return false;
-  }
-
-  // Step 2: Credential requirements.
-  // The username must be non-empty.
-  if (entry.username.empty())
-    return false;
-
-  // By default, only phished and leaked credentials are supported - weak
-  // credentials are gated behind a separate feature.
-  if (!entry.IsPhished() && !entry.IsLeaked() &&
-      !password_manager::features::kPasswordChangeInSettingsWeakCredentialsParam
-           .Get()) {
-    return false;
-  }
-
-  // The credential must be stored in a remote store.
-  switch (password_manager_util::GetPasswordSyncState(
-      SyncServiceFactory::GetForProfile(profile_))) {
-    case password_manager::SyncState::kNotSyncing:
-      return false;
-    case password_manager::SyncState::kAccountPasswordsActiveNormalEncryption:
-      if (!entry.stored_in.contains(PasswordForm::Store::kAccountStore)) {
-        return false;
-      }
-      break;
-    case password_manager::SyncState::kSyncingWithCustomPassphrase:
-    case password_manager::SyncState::kSyncingNormalEncryption:
-      break;
-  }
-
-  // The URL must be non-empty.
-  // TODO(crbug.com/1377304): Adjust once credential grouping is implemented.
-  GURL url =
-      password_manager::IsValidAndroidFacetURI(entry.GetFirstSignonRealm())
-          ? GURL(entry.GetAffiliatedWebRealm())
-          : entry.GetURL();
-  if (url.is_empty())
-    return false;
-
-  // A script must be available.
-  return GetPasswordScriptsFetcher()->IsScriptAvailable(
-      url::Origin::Create(url));
-}
-
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate.h b/chrome/browser/extensions/api/passwords_private/password_check_delegate.h
index b5e255ea..0b46c63 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate.h
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate.h
@@ -30,8 +30,6 @@
 
 namespace password_manager {
 class PasswordChangeSuccessTracker;
-class PasswordFeatureManager;
-class PasswordScriptsFetcher;
 }  // namespace password_manager
 
 namespace extensions {
@@ -49,8 +47,6 @@
  public:
   using StartPasswordCheckCallback =
       PasswordsPrivateDelegate::StartPasswordCheckCallback;
-  using RefreshScriptsIfNecessaryCallback =
-      PasswordsPrivateDelegate::RefreshScriptsIfNecessaryCallback;
 
   PasswordCheckDelegate(
       Profile* profile,
@@ -78,15 +74,9 @@
   bool UnmuteInsecureCredential(
       const api::passwords_private::PasswordUiEntry& credential);
 
-  // Records that a change password flow was started for `credential` and
-  // whether `is_manual_flow` applies to the flow.
+  // Records that a change password flow was started for `credential`.
   void RecordChangePasswordFlowStarted(
-      const api::passwords_private::PasswordUiEntry& credential,
-      bool is_manual_flow);
-
-  // Refreshes the cache for automatic password change scripts if that is stale
-  // and runs `callback` once that is complete.
-  void RefreshScriptsIfNecessary(RefreshScriptsIfNecessaryCallback callback);
+      const api::passwords_private::PasswordUiEntry& credential);
 
   // Checks that all preconditions for running a password check are fulfilled
   // and, once that is the case, launches the password check. Invokes `callback`
@@ -130,11 +120,6 @@
   const password_manager::CredentialUIEntry* FindMatchingEntry(
       const api::passwords_private::PasswordUiEntry& credential) const;
 
-  // Reacts to a refreshed password scripts cache. Checks whether any of the
-  // compromised credentials have a password script and only then calls the
-  // event router to update the frontend.
-  void OnPasswordScriptsFetched(StartPasswordCheckCallback callback);
-
   // Starts the analyses of whether credentials are compromised and/or weak.
   // Assumes that `StartPasswordCheck()` was called prior.
   void StartPasswordAnalyses(StartPasswordCheckCallback callback);
@@ -161,23 +146,9 @@
   password_manager::PasswordChangeSuccessTracker*
   GetPasswordChangeSuccessTracker() const;
 
-  // Returns a raw pointer to the `PasswordScriptsFetcher` associated with
-  // `profile_`.
-  password_manager::PasswordScriptsFetcher* GetPasswordScriptsFetcher() const;
-
-  // Returns whether the credential `entry` supports automated password change.
-  // It assumes that the `PasswordScriptsFetcher` cache has been fetched.
-  bool CredentialSupportsAutomatedPasswordChange(
-      const password_manager::CredentialUIEntry& entry) const;
-
   // Raw pointer to the underlying profile. Needs to outlive this instance.
   raw_ptr<Profile> profile_ = nullptr;
 
-  // A password feature manager instance used to determine whether to offer
-  // automated password changes.
-  const std::unique_ptr<password_manager::PasswordFeatureManager>
-      password_feature_manager_;
-
   // Used by `insecure_credentials_manager_` to obtain the list of saved
   // passwords.
   raw_ptr<password_manager::SavedPasswordsPresenter>
@@ -203,9 +174,6 @@
   // running.
   base::WeakPtr<PasswordCheckProgress> password_check_progress_;
 
-  // Remembers whether scripts are fetching right now.
-  bool are_scripts_fetching_ = false;
-
   // Remembers whether a password check is running right now.
   bool is_check_running_ = false;
 
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
index 571678c..8ddece28 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
@@ -28,7 +28,6 @@
 #include "chrome/browser/extensions/api/passwords_private/passwords_private_event_router_factory.h"
 #include "chrome/browser/password_manager/bulk_leak_check_service_factory.h"
 #include "chrome/browser/password_manager/password_manager_test_util.h"
-#include "chrome/browser/password_manager/password_scripts_fetcher_factory.h"
 #include "chrome/browser/sync/sync_service_factory.h"
 #include "chrome/common/extensions/api/passwords_private.h"
 #include "chrome/test/base/testing_profile.h"
@@ -38,7 +37,6 @@
 #include "components/password_manager/core/browser/leak_detection/bulk_leak_check.h"
 #include "components/password_manager/core/browser/leak_detection/leak_detection_delegate_interface.h"
 #include "components/password_manager/core/browser/mock_password_change_success_tracker.h"
-#include "components/password_manager/core/browser/mock_password_scripts_fetcher.h"
 #include "components/password_manager/core/browser/password_change_success_tracker.h"
 #include "components/password_manager/core/browser/password_form.h"
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
@@ -98,13 +96,11 @@
 using password_manager::IsMuted;
 using password_manager::LeakCheckCredential;
 using password_manager::MockPasswordChangeSuccessTracker;
-using password_manager::MockPasswordScriptsFetcher;
 using password_manager::PasswordChangeSuccessTracker;
 using password_manager::PasswordChangeSuccessTrackerFactory;
 using password_manager::PasswordForm;
 using password_manager::SavedPasswordsPresenter;
 using password_manager::TestPasswordStore;
-using password_manager::metrics_util::PasswordCheckScriptsCacheState;
 using password_manager::prefs::kLastTimePasswordCheckCompleted;
 using signin::IdentityTestEnvironment;
 using ::testing::AllOf;
@@ -123,8 +119,6 @@
 
 using MockStartPasswordCheckCallback =
     base::MockCallback<PasswordCheckDelegate::StartPasswordCheckCallback>;
-using MockRefreshScriptsIfNecessaryCallback = base::MockCallback<
-    PasswordsPrivateDelegate::RefreshScriptsIfNecessaryCallback>;
 
 PasswordsPrivateEventRouter* CreateAndUsePasswordsPrivateEventRouter(
     Profile* profile) {
@@ -160,17 +154,6 @@
               })));
 }
 
-MockPasswordScriptsFetcher* CreateAndUsePasswordScriptsFetcher(
-    Profile* profile) {
-  return static_cast<MockPasswordScriptsFetcher*>(
-      PasswordScriptsFetcherFactory::GetInstance()
-          ->SetTestingSubclassFactoryAndUse(
-              profile, base::BindRepeating([](content::BrowserContext*) {
-                return std::make_unique<
-                    testing::NiceMock<MockPasswordScriptsFetcher>>();
-              })));
-}
-
 BulkLeakCheckService* CreateAndUseBulkLeakCheckService(
     signin::IdentityManager* identity_manager,
     Profile* profile) {
@@ -293,15 +276,6 @@
                                           compromise_types))));
 }
 
-// Creates a simplified matcher that only checks the username name and
-// whether a startable script exists.
-auto ExpectCredentialWithScriptInfo(const std::u16string& username,
-                                    bool has_startable_script) {
-  return AllOf(
-      Field(&PasswordUiEntry::username, base::UTF16ToASCII(username)),
-      Field(&PasswordUiEntry::has_startable_script, has_startable_script));
-}
-
 class PasswordCheckDelegateTest : public ::testing::Test {
  public:
   PasswordCheckDelegateTest() {
@@ -322,9 +296,6 @@
   MockPasswordChangeSuccessTracker& password_change_success_tracker() {
     return *password_change_success_tracker_;
   }
-  MockPasswordScriptsFetcher& password_scripts_fetcher() {
-    return *password_scripts_fetcher_;
-  }
   syncer::TestSyncService& sync_service() { return *sync_service_; }
   SavedPasswordsPresenter& presenter() { return presenter_; }
   PasswordCheckDelegate& delegate() { return delegate_; }
@@ -352,8 +323,6 @@
       CreateAndUseTestAccountPasswordStore(&profile_);
   raw_ptr<MockPasswordChangeSuccessTracker> password_change_success_tracker_ =
       CreateAndUsePasswordChangeSuccessTracker(&profile_);
-  raw_ptr<MockPasswordScriptsFetcher> password_scripts_fetcher_ =
-      CreateAndUsePasswordScriptsFetcher(&profile_);
   raw_ptr<syncer::TestSyncService> sync_service_ =
       CreateAndUseSyncService(&profile_);
   IdGenerator<password_manager::CredentialUIEntry,
@@ -692,7 +661,7 @@
   EXPECT_FALSE(delegate().UnmuteInsecureCredential(credential));
 }
 
-TEST_F(PasswordCheckDelegateTest, RecordChangePasswordFlowStartedManual) {
+TEST_F(PasswordCheckDelegateTest, RecordChangePasswordFlowStarted) {
   // Create an insecure credential.
   PasswordForm form = MakeSavedPassword(kExampleCom, kUsername1);
   AddIssueToForm(&form, InsecureType::kLeaked);
@@ -709,42 +678,7 @@
           GURL(*credential.change_password_url), credential.username,
           PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings));
 
-  delegate().RecordChangePasswordFlowStarted(credential,
-                                             /*is_manual_flow=*/true);
-}
-
-TEST_F(PasswordCheckDelegateTest, RecordChangePasswordFlowStartedAutomated) {
-  // Create an insecure credential.
-  PasswordForm form = MakeSavedPassword(kExampleCom, kUsername1);
-  AddIssueToForm(&form, InsecureType::kLeaked);
-  store().AddLogin(form);
-  RunUntilIdle();
-
-  PasswordUiEntry credential =
-      std::move(delegate().GetInsecureCredentials().at(0));
-  ASSERT_EQ(base::UTF16ToASCII(kUsername1), credential.username);
-
-  EXPECT_CALL(
-      password_change_success_tracker(),
-      OnChangePasswordFlowStarted(
-          GURL(*credential.change_password_url), credential.username,
-          PasswordChangeSuccessTracker::StartEvent::kAutomatedFlow,
-          PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings));
-
-  delegate().RecordChangePasswordFlowStarted(credential,
-                                             /*is_manual_flow=*/false);
-}
-
-TEST_F(PasswordCheckDelegateTest, RefreshScriptsIfNecessary) {
-  base::OnceClosure refresh_callback = base::DoNothing();
-  EXPECT_CALL(password_scripts_fetcher(), RefreshScriptsIfNecessary)
-      .WillOnce(MoveArg<0>(&refresh_callback));
-
-  MockRefreshScriptsIfNecessaryCallback callback;
-  delegate().RefreshScriptsIfNecessary(callback.Get());
-
-  EXPECT_CALL(callback, Run);
-  std::move(refresh_callback).Run();
+  delegate().RecordChangePasswordFlowStarted(credential);
 }
 
 TEST_F(PasswordCheckDelegateTest,
@@ -766,8 +700,7 @@
           GURL(*credential.change_password_url), credential.username,
           PasswordChangeSuccessTracker::EntryPoint::kLeakCheckInSettings));
 
-  delegate().RecordChangePasswordFlowStarted(credential,
-                                             /*is_manual_flow=*/true);
+  delegate().RecordChangePasswordFlowStarted(credential);
 }
 
 TEST_F(PasswordCheckDelegateTest,
@@ -788,8 +721,7 @@
               OnManualChangePasswordFlowStarted)
       .Times(0);
 
-  delegate().RecordChangePasswordFlowStarted(credential,
-                                             /*is_manual_flow=*/true);
+  delegate().RecordChangePasswordFlowStarted(credential);
 }
 
 // Tests that we don't create an entry in the database if there is no matching
@@ -1188,390 +1120,4 @@
             password_manager::kWellKnownChangePasswordPath);
 }
 
-TEST_F(PasswordCheckDelegateTest, HasStartableScript) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  // Add two forms, but only one already has a known issue.
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, kUsername1, kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-  const url::Origin kOrigin1 = url::Origin::Create(GURL(kExampleCom));
-
-  PasswordForm form2 = MakeSavedPassword(kExampleOrg, kUsername2, kPassword2);
-  store().AddLogin(form2);
-  const url::Origin origin2 = url::Origin::Create(GURL(kExampleOrg));
-
-  RunUntilIdle();
-
-  EXPECT_CALL(password_scripts_fetcher(), IsScriptAvailable(kOrigin1))
-      .WillOnce(Return(false));
-
-  // Only the form with the known issue shows up and does not have a startable
-  // script.
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  kUsername1, /*has_startable_script=*/false)));
-
-  // Simulate a stale cache.
-  EXPECT_CALL(password_scripts_fetcher(), IsCacheStale).WillOnce(Return(true));
-
-  base::OnceClosure refresh_callback;
-  EXPECT_CALL(password_scripts_fetcher(), RefreshScriptsIfNecessary)
-      .WillOnce(MoveArg<0>(&refresh_callback));
-
-  MockStartPasswordCheckCallback start_callback1;
-  delegate().StartPasswordCheck(start_callback1.Get());
-
-  // Starting another check will indicate that the first one is still running.
-  MockStartPasswordCheckCallback start_callback2;
-  EXPECT_CALL(start_callback2, Run(BulkLeakCheckService::State::kRunning));
-  delegate().StartPasswordCheck(start_callback2.Get());
-
-  EXPECT_CALL(start_callback1, Run(BulkLeakCheckService::State::kRunning));
-
-  // From now on, always return that scripts are available.
-  EXPECT_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillRepeatedly(Return(true));
-
-  // Signal that scripts are fetched.
-  std::move(refresh_callback).Run();
-
-  static_cast<BulkLeakCheckDelegateInterface*>(service())->OnFinishedCredential(
-      LeakCheckCredential(kUsername1, kPassword1), IsLeaked(true));
-  static_cast<BulkLeakCheckDelegateInterface*>(service())->OnFinishedCredential(
-      LeakCheckCredential(kUsername2, kPassword2), IsLeaked(true));
-  RunUntilIdle();
-
-  EXPECT_THAT(
-      delegate().GetInsecureCredentials(),
-      UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                               kUsername1, /*has_startable_script=*/true),
-                           ExpectCredentialWithScriptInfo(
-                               kUsername2, /*has_startable_script=*/true)));
-
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.BulkCheck.ScriptsCacheState",
-      PasswordCheckScriptsCacheState::kCacheStaleAndUiUpdate, 1);
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_WeakCredentials) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  // Add two forms: One that is leaked and weak and one that is only weak.
-  PasswordForm form1 =
-      MakeSavedPassword(kExampleCom, kUsername1, kWeakPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-  const url::Origin kOrigin1 = url::Origin::Create(GURL(kExampleCom));
-
-  PasswordForm form2 =
-      MakeSavedPassword(kExampleOrg, kUsername2, kWeakPassword2);
-  store().AddLogin(form2);
-  const url::Origin origin2 = url::Origin::Create(GURL(kExampleOrg));
-
-  EXPECT_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillRepeatedly(Return(true));
-
-  RunUntilIdle();
-  delegate().StartPasswordCheck();
-  RunUntilIdle();
-
-  // By default only the first form has a startable script because it is also
-  // leaked.
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              ElementsAre(ExpectCredentialWithScriptInfo(
-                              kUsername1, /*has_startable_script=*/true),
-                          ExpectCredentialWithScriptInfo(
-                              kUsername2, /*has_startable_script=*/false)));
-
-  // After setin the feature parameter for weak credentials to `true` ...
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeatureWithParameters(
-      password_manager::features::kPasswordChangeInSettings,
-      {{"weak_credentials", "true"}});
-
-  // ... both credentials are marked as having a password change script.
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              ElementsAre(ExpectCredentialWithScriptInfo(
-                              kUsername1, /*has_startable_script=*/true),
-                          ExpectCredentialWithScriptInfo(
-                              kUsername2, /*has_startable_script=*/true)));
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_SyncDisabled) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  ON_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillByDefault(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Disable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet());
-
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, kUsername1, kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-
-  RunUntilIdle();
-
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  kUsername1, /*has_startable_script=*/false)));
-  histogram_tester.ExpectTotalCount(
-      "PasswordManager.BulkCheck.ScriptsCacheState", 0u);
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_EmptyUsername) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-
-  ON_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillByDefault(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, u"", kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-
-  RunUntilIdle();
-
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  u"", /*has_startable_script=*/false)));
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_AndroidCredential) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-
-  EXPECT_CALL(password_scripts_fetcher(),
-              IsScriptAvailable(url::Origin::Create(GURL(kExampleCom))))
-      .WillRepeatedly(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  PasswordForm form = MakeSavedAndroidPassword(
-      kExampleApp, kUsername2, "Example App", kExampleCom, kWeakPassword2);
-  AddIssueToForm(&form, InsecureType::kLeaked);
-  store().AddLogin(form);
-
-  RunUntilIdle();
-
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  kUsername2, /*has_startable_script=*/true)));
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_AccountStoreUser) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/
-      {password_manager::features::kPasswordChangeInSettings,
-       password_manager::features::kPasswordChangeAccountStoreUsers},
-      /*disabled_features=*/{});
-
-  ON_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillByDefault(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Mark this user as an account store user.
-  sync_service().SetHasSyncConsent(false);
-
-  PasswordForm form1 =
-      MakeSavedPassword(kExampleCom, kUsername1, kPassword1, u"",
-                        PasswordForm::Store::kAccountStore);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  account_store().AddLogin(form1);
-
-  PasswordForm form2 = MakeSavedPassword(kExampleOrg, kUsername2, kPassword2);
-  AddIssueToForm(&form2, InsecureType::kLeaked);
-  store().AddLogin(form2);
-
-  RunUntilIdle();
-
-  // Only the account store credential is stored in a remote store - therefore
-  // the profile store credential gets marked as not having a change script.
-  EXPECT_THAT(
-      delegate().GetInsecureCredentials(),
-      UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                               kUsername1, /*has_startable_script=*/true),
-                           ExpectCredentialWithScriptInfo(
-                               kUsername2, /*has_startable_script=*/false)));
-}
-
-TEST_F(PasswordCheckDelegateTest,
-       HasStartableScript_AccountStoreUserFeatureDisabled) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/
-      {password_manager::features::kPasswordChangeInSettings},
-      /*disabled_features=*/{
-          password_manager::features::kPasswordChangeAccountStoreUsers});
-
-  ON_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillByDefault(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Mark this user as an account store user.
-  sync_service().SetHasSyncConsent(false);
-
-  PasswordForm form1 =
-      MakeSavedPassword(kExampleCom, kUsername1, kPassword1, u"",
-                        PasswordForm::Store::kAccountStore);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  account_store().AddLogin(form1);
-
-  RunUntilIdle();
-
-  // Only the account store credential is stored in a remote store - therefore
-  // the profile store credential gets marked as not having a change script.
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  kUsername1, /*has_startable_script=*/false)));
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_FeatureDisabled) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndDisableFeature(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  ON_CALL(password_scripts_fetcher(), IsScriptAvailable)
-      .WillByDefault(Return(true));
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, kUsername1, kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-
-  RunUntilIdle();
-
-  EXPECT_THAT(delegate().GetInsecureCredentials(),
-              UnorderedElementsAre(ExpectCredentialWithScriptInfo(
-                  kUsername1, /*has_startable_script=*/false)));
-  histogram_tester.ExpectTotalCount(
-      "PasswordManager.BulkCheck.ScriptsCacheState", 0u);
-}
-
-TEST_F(PasswordCheckDelegateTest, HasStartableScript_CacheFresh) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, kUsername1, kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-  const url::Origin kOrigin1 = url::Origin::Create(GURL(kExampleCom));
-
-  RunUntilIdle();
-
-  EXPECT_CALL(password_scripts_fetcher(), IsCacheStale).WillOnce(Return(false));
-  EXPECT_CALL(password_scripts_fetcher(), RefreshScriptsIfNecessary).Times(0);
-  EXPECT_CALL(password_scripts_fetcher(), IsScriptAvailable(kOrigin1))
-      .WillRepeatedly(Return(true));
-
-  delegate().StartPasswordCheck();
-  event_router_observer().ClearEvents();
-
-  RunUntilIdle();
-
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.BulkCheck.ScriptsCacheState",
-      PasswordCheckScriptsCacheState::kCacheFresh, 1);
-}
-
-TEST_F(PasswordCheckDelegateTest,
-       HasStartableScript_CredentialListUpdateAfterScriptsFetched) {
-  base::test::ScopedFeatureList feature_list(
-      password_manager::features::kPasswordChangeInSettings);
-  base::HistogramTester histogram_tester;
-
-  identity_test_env().MakeAccountAvailable(kTestEmail);
-  // Enable password sync.
-  sync_service().GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  PasswordForm form1 = MakeSavedPassword(kExampleCom, kUsername1, kPassword1);
-  AddIssueToForm(&form1, InsecureType::kLeaked);
-  store().AddLogin(form1);
-  const url::Origin kOrigin1 = url::Origin::Create(GURL(kExampleCom));
-
-  RunUntilIdle();
-
-  EXPECT_CALL(password_scripts_fetcher(), IsCacheStale).WillOnce(Return(true));
-  base::OnceClosure refresh_callback;
-  EXPECT_CALL(password_scripts_fetcher(), RefreshScriptsIfNecessary)
-      .WillOnce(MoveArg<0>(&refresh_callback));
-
-  delegate().StartPasswordCheck();
-
-  EXPECT_CALL(password_scripts_fetcher(), IsScriptAvailable(kOrigin1))
-      .WillRepeatedly(Return(true));
-
-  event_router_observer().ClearEvents();
-
-  // Signal that scripts are fetched.
-  std::move(refresh_callback).Run();
-  RunUntilIdle();
-
-  // Check that an update event was fired after the scripts were fetched.
-  EXPECT_EQ(
-      events::PASSWORDS_PRIVATE_ON_INSECURE_CREDENTIALS_CHANGED,
-      event_router_observer()
-          .events()
-          .at(api::passwords_private::OnInsecureCredentialsChanged::kEventName)
-          ->histogram_value);
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.BulkCheck.ScriptsCacheState",
-      PasswordCheckScriptsCacheState::kCacheStaleAndUiUpdate, 1);
-}
-
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_api.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_api.cc
index a75e291..6c89721 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_api.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_api.cc
@@ -351,29 +351,10 @@
   EXTENSION_FUNCTION_VALIDATE(parameters);
 
   GetDelegate(browser_context())
-      ->RecordChangePasswordFlowStarted(parameters->credential,
-                                        parameters->is_manual_flow);
+      ->RecordChangePasswordFlowStarted(parameters->credential);
   return RespondNow(NoArguments());
 }
 
-// PasswordsPrivateRefreshScriptsIfNecessaryFunction:
-PasswordsPrivateRefreshScriptsIfNecessaryFunction::
-    ~PasswordsPrivateRefreshScriptsIfNecessaryFunction() = default;
-
-ResponseAction PasswordsPrivateRefreshScriptsIfNecessaryFunction::Run() {
-  GetDelegate(browser_context())
-      ->RefreshScriptsIfNecessary(base::BindOnce(
-          &PasswordsPrivateRefreshScriptsIfNecessaryFunction::OnRefreshed,
-          this));
-
-  // OnRefreshed() might respond before we reach this point.
-  return did_respond() ? AlreadyResponded() : RespondLater();
-}
-
-void PasswordsPrivateRefreshScriptsIfNecessaryFunction::OnRefreshed() {
-  Respond(NoArguments());
-}
-
 // PasswordsPrivateStartPasswordCheckFunction:
 PasswordsPrivateStartPasswordCheckFunction::
     ~PasswordsPrivateStartPasswordCheckFunction() = default;
@@ -414,35 +395,6 @@
           GetDelegate(browser_context())->GetPasswordCheckStatus())));
 }
 
-// PasswordsPrivateStartAutomatedPasswordChangeFunction:
-PasswordsPrivateStartAutomatedPasswordChangeFunction::
-    ~PasswordsPrivateStartAutomatedPasswordChangeFunction() = default;
-
-ResponseAction PasswordsPrivateStartAutomatedPasswordChangeFunction::Run() {
-  auto parameters =
-      api::passwords_private::StartAutomatedPasswordChange::Params::Create(
-          args());
-  EXTENSION_FUNCTION_VALIDATE(parameters);
-
-  // Forward the call to the delegate.
-  GetDelegate(browser_context())
-      ->StartAutomatedPasswordChange(
-          parameters->credential,
-          base::BindOnce(&PasswordsPrivateStartAutomatedPasswordChangeFunction::
-                             OnResultReceived,
-                         this));
-
-  // `OnResultReceived()` might respond before we reach this point.
-  return did_respond() ? AlreadyResponded() : RespondLater();
-}
-
-void PasswordsPrivateStartAutomatedPasswordChangeFunction::OnResultReceived(
-    bool success) {
-  Respond(ArgumentList(
-      api::passwords_private::StartAutomatedPasswordChange::Results::Create(
-          success)));
-}
-
 // PasswordsPrivateIsAccountStoreDefaultFunction
 ResponseAction PasswordsPrivateIsAccountStoreDefaultFunction::Run() {
   return RespondNow(OneArgument(
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_api.h b/chrome/browser/extensions/api/passwords_private/passwords_private_api.h
index 64fd13de..938b6b3 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_api.h
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_api.h
@@ -304,22 +304,6 @@
   ResponseAction Run() override;
 };
 
-class PasswordsPrivateRefreshScriptsIfNecessaryFunction
-    : public ExtensionFunction {
- public:
-  DECLARE_EXTENSION_FUNCTION("passwordsPrivate.refreshScriptsIfNecessary",
-                             PASSWORDSPRIVATE_REFRESHSCRIPTSIFNECESSARY)
-
- protected:
-  ~PasswordsPrivateRefreshScriptsIfNecessaryFunction() override;
-
-  // ExtensionFunction overrides.
-  ResponseAction Run() override;
-
- private:
-  void OnRefreshed();
-};
-
 class PasswordsPrivateStartPasswordCheckFunction : public ExtensionFunction {
  public:
   DECLARE_EXTENSION_FUNCTION("passwordsPrivate.startPasswordCheck",
@@ -360,22 +344,6 @@
   ResponseAction Run() override;
 };
 
-class PasswordsPrivateStartAutomatedPasswordChangeFunction
-    : public ExtensionFunction {
- public:
-  DECLARE_EXTENSION_FUNCTION("passwordsPrivate.startAutomatedPasswordChange",
-                             PASSWORDSPRIVATE_STARTAUTOMATEDPASSWORDCHANGE)
-
- protected:
-  ~PasswordsPrivateStartAutomatedPasswordChangeFunction() override;
-
-  // ExtensionFunction overrides.
-  ResponseAction Run() override;
-
- private:
-  void OnResultReceived(bool success);
-};
-
 class PasswordsPrivateIsAccountStoreDefaultFunction : public ExtensionFunction {
  public:
   DECLARE_EXTENSION_FUNCTION("passwordsPrivate.isAccountStoreDefault",
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
index dd7a367..8f8091e 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
@@ -290,16 +290,8 @@
 }
 
 IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest,
-                       RecordChangePasswordFlowStartedManual) {
-  EXPECT_TRUE(RunPasswordsSubtest("recordChangePasswordFlowStartedManual"))
-      << message_;
-  EXPECT_EQ(last_change_flow_url(),
-            "https://example.com/.well-known/change-password");
-}
-
-IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest,
-                       RecordChangePasswordFlowStartedAutomated) {
-  EXPECT_TRUE(RunPasswordsSubtest("recordChangePasswordFlowStartedAutomated"))
+                       RecordChangePasswordFlowStarted) {
+  EXPECT_TRUE(RunPasswordsSubtest("recordChangePasswordFlowStarted"))
       << message_;
   EXPECT_EQ(last_change_flow_url(),
             "https://example.com/.well-known/change-password");
@@ -312,10 +304,6 @@
   EXPECT_EQ(last_change_flow_url(), "");
 }
 
-IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest, RefreshScriptsIfNecessary) {
-  EXPECT_TRUE(RunPasswordsSubtest("refreshScriptsIfNecessary")) << message_;
-}
-
 IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest, StartPasswordCheck) {
   set_start_password_check_state(
       password_manager::BulkLeakCheckService::State::kRunning);
@@ -342,15 +330,6 @@
   EXPECT_TRUE(RunPasswordsSubtest("getPasswordCheckStatus")) << message_;
 }
 
-IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest, StartAutomatedPasswordChange) {
-  EXPECT_TRUE(RunPasswordsSubtest("startAutomatedPasswordChange"));
-}
-
-IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest,
-                       StartAutomatedPasswordChangeWithEmptyUrl) {
-  EXPECT_TRUE(RunPasswordsSubtest("startAutomatedPasswordChangeWithEmptyUrl"));
-}
-
 IN_PROC_BROWSER_TEST_F(PasswordsPrivateApiTest, MovePasswordsToAccount) {
   EXPECT_TRUE(last_moved_passwords().empty());
   EXPECT_TRUE(RunPasswordsSubtest("movePasswordsToAccount")) << message_;
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
index ba9f769..26f252c 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
@@ -38,13 +38,9 @@
   using PlaintextPasswordCallback =
       base::OnceCallback<void(absl::optional<std::u16string>)>;
 
-  using RefreshScriptsIfNecessaryCallback = base::OnceClosure;
-
   using StartPasswordCheckCallback =
       base::OnceCallback<void(password_manager::BulkLeakCheckService::State)>;
 
-  using StartAutomatedPasswordChangeCallback = base::OnceCallback<void(bool)>;
-
   ~PasswordsPrivateDelegate() override = default;
 
   // Gets the saved passwords list.
@@ -200,16 +196,9 @@
   virtual bool UnmuteInsecureCredential(
       const api::passwords_private::PasswordUiEntry& credential) = 0;
 
-  // Records that a change password flow was started for |credential| and
-  // whether |is_manual_flow| applies to the flow.
+  // Records that a change password flow was started for |credential|.
   virtual void RecordChangePasswordFlowStarted(
-      const api::passwords_private::PasswordUiEntry& credential,
-      bool is_manual_flow) = 0;
-
-  // Refreshes the cache for automatic password change scripts if that is stale
-  // and runs `callback` once that is complete.
-  virtual void RefreshScriptsIfNecessary(
-      RefreshScriptsIfNecessaryCallback callback) = 0;
+      const api::passwords_private::PasswordUiEntry& credential) = 0;
 
   // Requests to start a check for insecure passwords. Invokes |callback|
   // once a check is running or the request was stopped via StopPasswordCheck().
@@ -221,13 +210,6 @@
   virtual api::passwords_private::PasswordCheckStatus
   GetPasswordCheckStatus() = 0;
 
-  // Starts an automated password change flow for `credential` and returns
-  // whether the credential was changed successfully by calling `callback` with
-  // a boolean parameter.
-  virtual void StartAutomatedPasswordChange(
-      const api::passwords_private::PasswordUiEntry& credential,
-      StartAutomatedPasswordChangeCallback callback) = 0;
-
   // Returns a pointer to the current instance of InsecureCredentialsManager.
   // Needed to get notified when compromised credentials are written out to
   // disk, since BulkLeakCheckService does not know about that step.
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
index c5e17837..6d6815a 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
@@ -706,15 +706,8 @@
 }
 
 void PasswordsPrivateDelegateImpl::RecordChangePasswordFlowStarted(
-    const api::passwords_private::PasswordUiEntry& credential,
-    bool is_manual_flow) {
-  password_check_delegate_.RecordChangePasswordFlowStarted(credential,
-                                                           is_manual_flow);
-}
-
-void PasswordsPrivateDelegateImpl::RefreshScriptsIfNecessary(
-    RefreshScriptsIfNecessaryCallback callback) {
-  password_check_delegate_.RefreshScriptsIfNecessary(std::move(callback));
+    const api::passwords_private::PasswordUiEntry& credential) {
+  password_check_delegate_.RecordChangePasswordFlowStarted(credential);
 }
 
 void PasswordsPrivateDelegateImpl::StartPasswordCheck(
@@ -731,38 +724,6 @@
   return password_check_delegate_.GetPasswordCheckStatus();
 }
 
-void PasswordsPrivateDelegateImpl::StartAutomatedPasswordChange(
-    const api::passwords_private::PasswordUiEntry& credential,
-    StartAutomatedPasswordChangeCallback callback) {
-  if (!credential.change_password_url) {
-    std::move(callback).Run(false);
-    return;
-  }
-
-  GURL url =
-      url::SchemeHostPort(GURL(*credential.change_password_url)).GetURL();
-  if (!url.is_valid()) {
-    std::move(callback).Run(false);
-    return;
-  }
-
-  NavigateParams params(profile_, url,
-                        ui::PageTransition::PAGE_TRANSITION_LINK);
-  params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
-  base::WeakPtr<content::NavigationHandle> navigation_handle =
-      Navigate(&params);
-
-  if (!navigation_handle) {
-    std::move(callback).Run(false);
-    return;
-  }
-
-  ApcClient* apc_client = ApcClient::GetOrCreateForWebContents(
-      navigation_handle.get()->GetWebContents());
-  apc_client->Start(url, credential.username,
-                    /*skip_login=*/false, std::move(callback));
-}
-
 void PasswordsPrivateDelegateImpl::SwitchBiometricAuthBeforeFillingState(
     content::WebContents* web_contents) {
 #if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN)
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h
index 10f1fd5..47955b48 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h
@@ -103,16 +103,10 @@
   bool UnmuteInsecureCredential(
       const api::passwords_private::PasswordUiEntry& credential) override;
   void RecordChangePasswordFlowStarted(
-      const api::passwords_private::PasswordUiEntry& credential,
-      bool is_manual_flow) override;
-  void RefreshScriptsIfNecessary(
-      RefreshScriptsIfNecessaryCallback callback) override;
+      const api::passwords_private::PasswordUiEntry& credential) override;
   void StartPasswordCheck(StartPasswordCheckCallback callback) override;
   void StopPasswordCheck() override;
   api::passwords_private::PasswordCheckStatus GetPasswordCheckStatus() override;
-  void StartAutomatedPasswordChange(
-      const api::passwords_private::PasswordUiEntry& credential,
-      StartAutomatedPasswordChangeCallback callback) override;
   password_manager::InsecureCredentialsManager* GetInsecureCredentialsManager()
       override;
   void ExtendAuthValidity() override;
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_browsertest.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_browsertest.cc
deleted file mode 100644
index a98db72..0000000
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_browsertest.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h"
-
-#include <memory>
-#include <string>
-
-#include "base/test/mock_callback.h"
-#include "base/test/scoped_feature_list.h"
-#include "chrome/browser/autofill_assistant/password_change/apc_client.h"
-#include "chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/ui_features.h"
-#include "chrome/common/extensions/api/passwords_private.h"
-#include "chrome/test/base/chrome_test_utils.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/browser_test.h"
-#include "content/public/test/browser_test_utils.h"
-#include "content/public/test/test_navigation_observer.h"
-#include "url/gurl.h"
-
-namespace extensions {
-
-namespace {
-
-constexpr char kUsername[] = "Bob";
-constexpr char kUrl[] = "https://www.example.com";
-
-class PasswordsPrivateDelegateImplBrowserTest : public InProcessBrowserTest {
- public:
-  PasswordsPrivateDelegateImplBrowserTest() {
-    // Enable the unified side panel, as this is a prerequisite for the
-    // Automated Password Change flow to be startable.
-    feature_list.InitAndEnableFeature(features::kUnifiedSidePanel);
-  }
-  ~PasswordsPrivateDelegateImplBrowserTest() override = default;
-
-  content::WebContents* web_contents() {
-    return chrome_test_utils::GetActiveWebContents(this);
-  }
-
- private:
-  base::test::ScopedFeatureList feature_list;
-};
-
-IN_PROC_BROWSER_TEST_F(PasswordsPrivateDelegateImplBrowserTest,
-                       StartAutomatedPasswordChange) {
-  PasswordsPrivateDelegateImpl delegate(browser()->profile());
-
-  const GURL url(kUrl);
-  api::passwords_private::PasswordUiEntry credential;
-  credential.username = kUsername;
-  credential.change_password_url = kUrl;
-  base::MockCallback<
-      PasswordsPrivateDelegate::StartAutomatedPasswordChangeCallback>
-      apc_callback;
-
-  content::TestNavigationObserver navigation_observer(url);
-  navigation_observer.StartWatchingNewWebContents();
-
-  delegate.StartAutomatedPasswordChange(credential, apc_callback.Get());
-  navigation_observer.Wait();
-  EXPECT_EQ(web_contents()->GetLastCommittedURL(), url);
-
-  // The `ApcClient` is running.
-  ApcClient* apc_client = ApcClient::GetOrCreateForWebContents(web_contents());
-  ASSERT_TRUE(apc_client);
-  EXPECT_TRUE(apc_client->IsRunning());
-
-  EXPECT_CALL(apc_callback, Run(false)).Times(1);
-  apc_client->Stop();
-}
-
-}  // namespace
-
-}  // namespace extensions
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_unittest.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_unittest.cc
index af2b5724..03343267 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_unittest.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl_unittest.cc
@@ -1068,6 +1068,17 @@
           static_cast<int>(
               password_manager::ImportEntry::Status::CONFLICT_ACCOUNT),
       "");
+  static_assert(
+      static_cast<int>(api::passwords_private::ImportEntryStatus::
+                           IMPORT_ENTRY_STATUS_LONG_NOTE) ==
+          static_cast<int>(password_manager::ImportEntry::Status::LONG_NOTE),
+      "");
+  static_assert(
+      static_cast<int>(api::passwords_private::ImportEntryStatus::
+                           IMPORT_ENTRY_STATUS_LONG_CONCATENATED_NOTE) ==
+          static_cast<int>(
+              password_manager::ImportEntry::Status::LONG_CONCATENATED_NOTE),
+      "");
 }
 
 TEST_F(PasswordsPrivateDelegateImplTest, VerifyCastingOfImportResultsStatus) {
diff --git a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
index dc1573a..902d68b 100644
--- a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
+++ b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
@@ -281,17 +281,11 @@
 }
 
 void TestPasswordsPrivateDelegate::RecordChangePasswordFlowStarted(
-    const api::passwords_private::PasswordUiEntry& credential,
-    bool is_manual_flow) {
+    const api::passwords_private::PasswordUiEntry& credential) {
   last_change_flow_url_ =
       credential.change_password_url ? *credential.change_password_url : "";
 }
 
-void TestPasswordsPrivateDelegate::RefreshScriptsIfNecessary(
-    RefreshScriptsIfNecessaryCallback callback) {
-  std::move(callback).Run();
-}
-
 void TestPasswordsPrivateDelegate::StartPasswordCheck(
     StartPasswordCheckCallback callback) {
   start_password_check_triggered_ = true;
@@ -302,13 +296,6 @@
   stop_password_check_triggered_ = true;
 }
 
-void TestPasswordsPrivateDelegate::StartAutomatedPasswordChange(
-    const api::passwords_private::PasswordUiEntry& credential,
-    StartAutomatedPasswordChangeCallback callback) {
-  std::move(callback).Run(credential.change_password_url &&
-                          GURL(*credential.change_password_url).is_valid());
-}
-
 api::passwords_private::PasswordCheckStatus
 TestPasswordsPrivateDelegate::GetPasswordCheckStatus() {
   api::passwords_private::PasswordCheckStatus status;
diff --git a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.h b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.h
index b8e4926..a8ca3955 100644
--- a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.h
+++ b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.h
@@ -84,18 +84,10 @@
   // Fake implementation of `RecordChangePasswordFlowStarted`. Sets the url
   // returned by `last_change_flow_url()`.
   void RecordChangePasswordFlowStarted(
-      const api::passwords_private::PasswordUiEntry& credential,
-      bool is_manual_flow) override;
-  // Fake implementation of `RefreshScriptsIfNecessary` that directly calls
-  // `callback`.
-  void RefreshScriptsIfNecessary(
-      RefreshScriptsIfNecessaryCallback callback) override;
+      const api::passwords_private::PasswordUiEntry& credential) override;
   void StartPasswordCheck(StartPasswordCheckCallback callback) override;
   void StopPasswordCheck() override;
   api::passwords_private::PasswordCheckStatus GetPasswordCheckStatus() override;
-  void StartAutomatedPasswordChange(
-      const api::passwords_private::PasswordUiEntry& credential,
-      StartAutomatedPasswordChangeCallback callback) override;
   password_manager::InsecureCredentialsManager* GetInsecureCredentialsManager()
       override;
   void ExtendAuthValidity() override;
diff --git a/chrome/browser/extensions/api/web_request/web_request_apitest.cc b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
index b08bf1f..4af9968d 100644
--- a/chrome/browser/extensions/api/web_request/web_request_apitest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
@@ -4120,11 +4120,10 @@
   ASSERT_TRUE(StartEmbeddedTestServer());
 
   // Create a web bundle.
-  std::string script_url_str =
-      embedded_test_server()->GetURL("/test.js").spec();
+  GURL script_url = embedded_test_server()->GetURL("/test.js");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      script_url_str,
+      script_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'ScriptDone';");
   builder.AddExchange(
@@ -4244,17 +4243,15 @@
   ASSERT_TRUE(StartEmbeddedTestServer());
 
   // Create a web bundle.
-  std::string pass_js_url_str =
-      embedded_test_server()->GetURL("/pass.js").spec();
-  std::string cancel_js_url_str =
-      embedded_test_server()->GetURL("/cancel.js").spec();
+  GURL pass_js_url = embedded_test_server()->GetURL("/pass.js");
+  GURL cancel_js_url = embedded_test_server()->GetURL("/cancel.js");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      pass_js_url_str,
+      pass_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'script loaded';");
   builder.AddExchange(
-      cancel_js_url_str,
+      cancel_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}}, "");
   builder.AddExchange(
       pass_uuid_in_package_js_url,
@@ -4371,11 +4368,10 @@
   ASSERT_TRUE(StartEmbeddedTestServer());
 
   // Create a web bundle.
-  std::string target_txt_url_str =
-      embedded_test_server()->GetURL("/target.txt").spec();
+  GURL target_txt_url = embedded_test_server()->GetURL("/target.txt");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      target_txt_url_str,
+      target_txt_url,
       {{":status", "200"}, {"content-type", "text/plain"}, {"foo", "bar"}},
       "Hello world");
   std::vector<uint8_t> bundle = builder.CreateBundle();
@@ -4581,35 +4577,33 @@
   ASSERT_TRUE(StartEmbeddedTestServer());
 
   // Create a web bundle.
-  std::string redirect_js_url_str =
-      embedded_test_server()->GetURL("/redirect.js").spec();
-  std::string redirected_js_url_str =
-      embedded_test_server()->GetURL("/redirected.js").spec();
-  std::string redirect_to_unlisted_js_url_str =
-      embedded_test_server()->GetURL("/redirect_to_unlisted.js").spec();
-  std::string redirected_to_unlisted_js_url_str =
-      embedded_test_server()->GetURL("/redirected_to_unlisted.js").spec();
-  std::string redirect_to_server_js_url_str =
-      embedded_test_server()->GetURL("/redirect_to_server.js").spec();
+  GURL redirect_js_url = embedded_test_server()->GetURL("/redirect.js");
+  GURL redirected_js_url = embedded_test_server()->GetURL("/redirected.js");
+  GURL redirect_to_unlisted_js_url =
+      embedded_test_server()->GetURL("/redirect_to_unlisted.js");
+  GURL redirected_to_unlisted_js_url =
+      embedded_test_server()->GetURL("/redirected_to_unlisted.js");
+  GURL redirect_to_server_js_url =
+      embedded_test_server()->GetURL("/redirect_to_server.js");
   web_package::WebBundleBuilder builder;
   builder.AddExchange(
-      redirect_js_url_str,
+      redirect_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect';");
   builder.AddExchange(
-      redirected_js_url_str,
+      redirected_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirected';");
   builder.AddExchange(
-      redirect_to_unlisted_js_url_str,
+      redirect_to_unlisted_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect_to_unlisted';");
   builder.AddExchange(
-      redirected_to_unlisted_js_url_str,
+      redirected_to_unlisted_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirected_to_unlisted';");
   builder.AddExchange(
-      redirect_to_server_js_url_str,
+      redirect_to_server_js_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'redirect_to_server';");
   std::vector<uint8_t> bundle = builder.CreateBundle();
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index c3904b2f..247ea81 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1563,27 +1563,27 @@
   },
   {
     "name": "eche-swa",
-    "owners": [ "dhnishi" ],
+    "owners": [ "nayebi@google.com" ],
     "expiry_milestone": 115
   },
   {
     "name": "eche-swa-debug-mode",
-    "owners": [ "dhnishi" ],
+    "owners": [ "nayebi@google.com" ],
     "expiry_milestone": 115
   },
   {
     "name": "eche-swa-disable-stun-server",
-    "owners": [ "dhnishi", "mavishsu@google.com", "ftsui@google.com" ],
+    "owners": [ "nayebi@google.com", "mavishsu@google.com", "ftsui@google.com" ],
     "expiry_milestone": 115
   },
   {
     "name": "eche-swa-measure-latency",
-    "owners": [ "paulzchen@google.com", "guanrulee@google.com" ],
+    "owners": [ "paulzchen@google.com", "guanrulee@google.com", "nayebi@google.com" ],
     "expiry_milestone": 115
   },
   {
     "name": "eche-swa-send-start-signaling",
-    "owners": [ "dhnishi", "mavishsu@google.com" ],
+    "owners": [ "nayebi@google.com", "mavishsu@google.com" ],
     "expiry_milestone": 115
   },
   {
diff --git a/chrome/browser/lacros/account_manager/account_profile_mapper.cc b/chrome/browser/lacros/account_manager/account_profile_mapper.cc
index 217cb69a..4360c15c 100644
--- a/chrome/browser/lacros/account_manager/account_profile_mapper.cc
+++ b/chrome/browser/lacros/account_manager/account_profile_mapper.cc
@@ -19,6 +19,7 @@
 #include "base/ranges/algorithm.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/lacros/account_manager/add_account_helper.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -510,9 +511,11 @@
       // profile.
       // TODO(https://crbug.com/1257610): ensure that the user cannot cancel the
       // profile deletion.
-      g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-          entry->GetPath(), base::DoNothing(),
-          ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_REMOVED_LACROS);
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .MaybeScheduleProfileForDeletion(
+              entry->GetPath(), base::DoNothing(),
+              ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_REMOVED_LACROS);
     }
   }
   return removed_ids;
diff --git a/chrome/browser/lifetime/browser_shutdown.cc b/chrome/browser/lifetime/browser_shutdown.cc
index 17d63fc..e09b41d6 100644
--- a/chrome/browser/lifetime/browser_shutdown.cc
+++ b/chrome/browser/lifetime/browser_shutdown.cc
@@ -30,7 +30,7 @@
 #include "chrome/browser/buildflags.h"
 #include "chrome/browser/lifetime/application_lifetime_chromeos.h"
 #include "chrome/browser/lifetime/switch_utils.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -289,7 +289,7 @@
 
   // crbug.com/95079 - This needs to happen after the browser process object
   // goes away.
-  ProfileManager::NukeDeletedProfilesFromDisk();
+  NukeDeletedProfilesFromDisk();
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   ash::BootTimesRecorder::Get()->AddLogoutTimeMarker("BrowserDeleted", true);
diff --git a/chrome/browser/metrics/extensions_metrics_provider.cc b/chrome/browser/metrics/extensions_metrics_provider.cc
index 53686683..7c2f11c 100644
--- a/chrome/browser/metrics/extensions_metrics_provider.cc
+++ b/chrome/browser/metrics/extensions_metrics_provider.cc
@@ -16,6 +16,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/time/time.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
 #include "chrome/browser/extensions/extension_management.h"
 #include "chrome/browser/extensions/install_verifier.h"
 #include "chrome/browser/profiles/profile.h"
@@ -484,6 +485,11 @@
       g_browser_process->profile_manager()->GetLoadedProfiles();
   last_sample_time_ = base::Time::Now();
   for (Profile* profile : profiles) {
+    if (extensions::ChromeContentBrowserClientExtensionsPart::
+            AreExtensionsDisabledForProfile(profile)) {
+      continue;
+    }
+
     std::vector<ExtensionInstallProto> installs =
         GetInstallsForProfile(profile, last_sample_time_);
     for (ExtensionInstallProto& install : installs)
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/mouseover.html b/chrome/browser/page_load_metrics/integration_tests/data/mouseover.html
index f291be7..4771b84a 100644
--- a/chrome/browser/page_load_metrics/integration_tests/data/mouseover.html
+++ b/chrome/browser/page_load_metrics/integration_tests/data/mouseover.html
@@ -16,12 +16,23 @@
     document.body.appendChild(zoom);
   }
 };
+const loadBackgroundImage = size => {
+  return event => {
+    const div = document.createElement("div");
+    const [width, height] = size.split("x");
+    div.style = `background-image: url(/images/green-${size}.png); width: ${width}; height: ${height}`;
+    document.body.appendChild(div);
+  }
+};
 
 // Turn off BFCache to see if it helps with BFCache bot flakes.
 window.addEventListener("unload", () => { console.log("Turn off BFCache"); });
 
-image.addEventListener("mouseover", loadImage("100x50"));
-span.addEventListener("mouseover", loadImage("256x256"));
+const registerMouseover = background => {
+  const func = background ? loadBackgroundImage : loadImage;
+  image.addEventListener("mouseover", func("100x50"));
+  span.addEventListener("mouseover", func("256x256"));
+}
 
 const dispatch_mouseover = () => {
   span.dispatchEvent(new Event("mouseover"))
diff --git a/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc
index d065eb2..1ce7e24 100644
--- a/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc
+++ b/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc
@@ -339,7 +339,8 @@
                    /*expected=*/true, /*entries=*/0);
 }
 
-class MouseoverLCPTest : public MetricIntegrationTest {
+class MouseoverLCPTest : public MetricIntegrationTest,
+                         public testing::WithParamInterface<bool> {
  public:
   void test_mouseover(const char* html_name,
                       blink::LargestContentfulPaintType flag_set,
@@ -358,6 +359,11 @@
     waiter->AddMinimumCompleteResourcesExpectation(2);
     Start();
     Load(html_name);
+    std::string background = GetParam() ? "true" : "false";
+    EXPECT_EQ(EvalJs(web_contents()->GetPrimaryMainFrame(),
+                     "registerMouseover(" + background + ")")
+                  .error,
+              "");
     EXPECT_EQ(
         EvalJs(web_contents()->GetPrimaryMainFrame(), "run_test(1)").error, "");
 
@@ -421,7 +427,9 @@
   }
 };
 
-IN_PROC_BROWSER_TEST_F(MouseoverLCPTest,
+INSTANTIATE_TEST_SUITE_P(All, MouseoverLCPTest, ::testing::Values(false, true));
+
+IN_PROC_BROWSER_TEST_P(MouseoverLCPTest,
                        LargestContentfulPaint_MouseoverOverLCPImage) {
   test_mouseover("/mouseover.html",
                  blink::LargestContentfulPaintType::kAfterMouseover,
@@ -432,7 +440,7 @@
                  /*expected=*/true);
 }
 
-IN_PROC_BROWSER_TEST_F(MouseoverLCPTest,
+IN_PROC_BROWSER_TEST_P(MouseoverLCPTest,
                        LargestContentfulPaint_MouseoverOverLCPImageReplace) {
   test_mouseover("/mouseover.html?replace",
                  blink::LargestContentfulPaintType::kAfterMouseover,
@@ -443,7 +451,7 @@
                  /*expected=*/true);
 }
 
-IN_PROC_BROWSER_TEST_F(MouseoverLCPTest,
+IN_PROC_BROWSER_TEST_P(MouseoverLCPTest,
                        LargestContentfulPaint_MouseoverOverBody) {
   test_mouseover("/mouseover.html",
                  blink::LargestContentfulPaintType::kAfterMouseover,
@@ -454,7 +462,7 @@
                  /*expected=*/false);
 }
 
-IN_PROC_BROWSER_TEST_F(MouseoverLCPTest,
+IN_PROC_BROWSER_TEST_P(MouseoverLCPTest,
                        LargestContentfulPaint_MouseoverOverLCPImageThenBody) {
   test_mouseover("/mouseover.html?dispatch",
                  blink::LargestContentfulPaintType::kAfterMouseover,
diff --git a/chrome/browser/password_check/android/password_check_manager_unittest.cc b/chrome/browser/password_check/android/password_check_manager_unittest.cc
index 51288cd..3035d79 100644
--- a/chrome/browser/password_check/android/password_check_manager_unittest.cc
+++ b/chrome/browser/password_check/android/password_check_manager_unittest.cc
@@ -202,13 +202,6 @@
   void InitializeManager() {
     manager_ =
         std::make_unique<PasswordCheckManager>(&profile_, &mock_observer_);
-
-    // Fetch scripts availability. This it normally done externally before a
-    // password check is triggered.
-    EXPECT_CALL(fetcher(), RefreshScriptsIfNecessary)
-        .WillOnce(Invoke(
-            [](base::OnceClosure callback) { std::move(callback).Run(); }));
-
     manager_->RefreshScripts();
   }
 
diff --git a/chrome/browser/password_manager/android/save_update_password_message_delegate.cc b/chrome/browser/password_manager/android/save_update_password_message_delegate.cc
index 2be3d67..6e843c9 100644
--- a/chrome/browser/password_manager/android/save_update_password_message_delegate.cc
+++ b/chrome/browser/password_manager/android/save_update_password_message_delegate.cc
@@ -210,9 +210,9 @@
 
   update_password_ = update_password;
 
-  bool use_followup_button_text = HasMultipleCredentialsStored();
+  bool use_followup_button = HasMultipleCredentialsStored();
   message_->SetPrimaryButtonText(l10n_util::GetStringUTF16(
-      GetPrimaryButtonTextId(update_password, use_followup_button_text)));
+      GetPrimaryButtonTextId(update_password, use_followup_button)));
 
   if (password_manager::features::UsesUnifiedPasswordManagerBranding()) {
     message_->SetIconResourceId(ResourceMapper::MapToJavaDrawableId(
@@ -223,11 +223,18 @@
         ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_INFOBAR_SAVE_PASSWORD));
   }
 
-  // With detailed dialog feature enabled the cog button is always shown
-  // (it was shown only for Save password dialog before)
-  if (base::FeatureList::IsEnabled(kPasswordEditDialogWithDetails)) {
+  // With kPasswordEditDialogWithDetails feature on: the cog button is always
+  // shown for the save message and for the update message when there is
+  // just one password stored for the web site. When there are multiple
+  // credentials stored, the dialog will be called anyway from the followup
+  // button, so there are no options to put under the cog.
+  // With kPasswordEditDialogWithDetails feature off: the cog button is
+  // shown only for the Save password message.
+  if (base::FeatureList::IsEnabled(kPasswordEditDialogWithDetails) &&
+      (!update_password || !use_followup_button)) {
     SetupCogMenuForDialogWithDetails(message_, update_password);
-  } else if (!update_password) {
+  } else if (!base::FeatureList::IsEnabled(kPasswordEditDialogWithDetails) &&
+             !update_password) {
     SetupCogMenu(message_, update_password);
   }
 }
diff --git a/chrome/browser/password_manager/android/save_update_password_message_delegate_unittest.cc b/chrome/browser/password_manager/android/save_update_password_message_delegate_unittest.cc
index 16d174c..e70d50f8 100644
--- a/chrome/browser/password_manager/android/save_update_password_message_delegate_unittest.cc
+++ b/chrome/browser/password_manager/android/save_update_password_message_delegate_unittest.cc
@@ -442,6 +442,70 @@
   DismissMessage(messages::DismissReason::UNKNOWN);
 }
 
+// Tests that secondary menu icon is set for the save password message
+// with kPasswordEditDialogWithDetails feature on.
+TEST_P(SaveUpdatePasswordMessageDelegateTest,
+       CogButton_SavePassword_PasswordEditDialogWithDetails) {
+  base::test::ScopedFeatureList scoped_feature_state;
+  scoped_feature_state.InitWithFeatures(
+      {password_manager::features::kPasswordEditDialogWithDetails,
+       password_manager::features::kUnifiedPasswordManagerAndroidBranding},
+      {});
+  SetPendingCredentials(kUsername, kPassword);
+  auto form_manager =
+      CreateFormManager(GURL(kDefaultUrl), empty_best_matches());
+  EnqueueMessage(std::move(form_manager), /*user_signed_in=*/false,
+                 /*update_password=*/false);
+
+  EXPECT_EQ(ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SETTINGS),
+            GetMessageWrapper()->GetSecondaryIconResourceId());
+
+  DismissMessage(messages::DismissReason::UNKNOWN);
+}
+
+// Tests that secondary menu icon is set for the update password message
+// in case when user has only single credential stored for the web site
+// with kPasswordEditDialogWithDetails feature on.
+TEST_P(SaveUpdatePasswordMessageDelegateTest,
+       CogButton_SingleCredUpdatePassword_PasswordEditDialogWithDetails) {
+  base::test::ScopedFeatureList scoped_feature_state;
+  scoped_feature_state.InitWithFeatures(
+      {password_manager::features::kPasswordEditDialogWithDetails,
+       password_manager::features::kUnifiedPasswordManagerAndroidBranding},
+      {});
+  SetPendingCredentials(kUsername, kPassword);
+  auto form_manager =
+      CreateFormManager(GURL(kDefaultUrl), empty_best_matches());
+  EnqueueMessage(std::move(form_manager), /*user_signed_in=*/false,
+                 /*update_password=*/true);
+
+  EXPECT_EQ(ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SETTINGS),
+            GetMessageWrapper()->GetSecondaryIconResourceId());
+
+  DismissMessage(messages::DismissReason::UNKNOWN);
+}
+
+// Tests that secondary menu icon is not set for the update password message
+// in case when user has multiple credentials stored for the web site
+// with kPasswordEditDialogWithDetails feature on.
+TEST_P(SaveUpdatePasswordMessageDelegateTest,
+       NoCogButton_MultipleCredUpdatePassword_PasswordEditDialogWithDetails) {
+  base::test::ScopedFeatureList scoped_feature_state;
+  scoped_feature_state.InitWithFeatures(
+      {password_manager::features::kPasswordEditDialogWithDetails,
+       password_manager::features::kUnifiedPasswordManagerAndroidBranding},
+      {});
+  SetPendingCredentials(kUsername, kPassword);
+  auto form_manager =
+      CreateFormManager(GURL(kDefaultUrl), two_forms_best_matches());
+  EnqueueMessage(std::move(form_manager), /*user_signed_in=*/false,
+                 /*update_password=*/true);
+
+  EXPECT_EQ(0, GetMessageWrapper()->GetSecondaryIconResourceId());
+
+  DismissMessage(messages::DismissReason::UNKNOWN);
+}
+
 // Tests that the description is set correctly when signed-in user saves a
 // password.
 TEST_P(SaveUpdatePasswordMessageDelegateTest,
diff --git a/chrome/browser/password_manager/password_scripts_fetcher_factory.cc b/chrome/browser/password_manager/password_scripts_fetcher_factory.cc
index 4d0314a..12b7d3f1 100644
--- a/chrome/browser/password_manager/password_scripts_fetcher_factory.cc
+++ b/chrome/browser/password_manager/password_scripts_fetcher_factory.cc
@@ -8,14 +8,11 @@
 #include <utility>
 
 #include "base/no_destructor.h"
-#include "chrome/browser/autofill_assistant/common_dependencies_chrome.h"
 #include "chrome/browser/password_manager/account_password_store_factory.h"
 #include "chrome/browser/password_manager/affiliation_service_factory.h"
 #include "chrome/browser/password_manager/password_store_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "components/autofill_assistant/browser/public/autofill_assistant.h"
-#include "components/autofill_assistant/browser/public/autofill_assistant_factory.h"
 #include "components/password_manager/core/browser/capabilities_service_impl.h"
 #include "components/password_manager/core/browser/saved_passwords_capabilities_fetcher.h"
 #include "components/password_manager/core/browser/site_affiliation/affiliation_service_impl.h"
@@ -49,23 +46,12 @@
 
 KeyedService* PasswordScriptsFetcherFactory::BuildServiceInstanceFor(
     content::BrowserContext* browser_context) const {
-  std::unique_ptr<autofill_assistant::AutofillAssistant> autofill_assistant =
-      autofill_assistant::AutofillAssistantFactory::CreateForBrowserContext(
-          browser_context,
-          std::make_unique<autofill_assistant::CommonDependenciesChrome>(
-              browser_context));
-
-  std::unique_ptr<CapabilitiesServiceImpl> service =
-      std::make_unique<CapabilitiesServiceImpl>(std::move(autofill_assistant));
-
   Profile* profile = Profile::FromBrowserContext(browser_context);
-  password_manager::AffiliationService* affiliation_service =
-      AffiliationServiceFactory::GetForProfile(profile);
 
   return new password_manager::SavedPasswordsCapabilitiesFetcher(
-      std::move(service),
+      std::make_unique<CapabilitiesServiceImpl>(),
       std::make_unique<password_manager::SavedPasswordsPresenter>(
-          affiliation_service,
+          AffiliationServiceFactory::GetForProfile(profile),
           PasswordStoreFactory::GetForProfile(
               profile, ServiceAccessType::EXPLICIT_ACCESS),
           AccountPasswordStoreFactory::GetForProfile(
diff --git a/chrome/browser/privacy_sandbox/android/java/res/layout/privacy_sandbox_consent_eea_v4.xml b/chrome/browser/privacy_sandbox/android/java/res/layout/privacy_sandbox_consent_eea_v4.xml
index bd852d8..d11c5777 100644
--- a/chrome/browser/privacy_sandbox/android/java/res/layout/privacy_sandbox_consent_eea_v4.xml
+++ b/chrome/browser/privacy_sandbox/android/java/res/layout/privacy_sandbox_consent_eea_v4.xml
@@ -65,7 +65,7 @@
                     android:importantForAccessibility="no" />
 
                 <TextView
-                    android:id="@+id/privacy_sandbox_notice_title"
+                    android:id="@+id/privacy_sandbox_m1_consent_title"
                     android:layout_marginBottom="@dimen/privacy_sandbox_dialog_title_margin"
                     android:layout_marginHorizontal="@dimen/list_item_default_margin"
                     android:layout_width="wrap_content"
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogController.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogController.java
index 6dc3dd2..edc9874 100644
--- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogController.java
+++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogController.java
@@ -11,6 +11,7 @@
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
+import org.chromium.chrome.browser.privacy_sandbox.v4.PrivacySandboxDialogConsentEEAV4;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.components.browser_ui.settings.SettingsLauncher;
 
@@ -22,7 +23,7 @@
 public class PrivacySandboxDialogController {
     private static WeakReference<Dialog> sDialog;
     private static Boolean sShowNew;
-    private static Boolean sDisableAnimations;
+    private static boolean sDisableAnimations;
     // TODO(crbug.com/1330704): This variable and its usage can be removed when the PrivacySandbox
     // promo logic will be decoupled from the NewTabPage.
     private static boolean sNewNoticeShownInCurrentSession;
@@ -43,6 +44,12 @@
         switch (promptType) {
             case PromptType.NONE:
                 return false;
+            case PromptType.M1_CONSENT:
+                dialog = new PrivacySandboxDialogConsentEEAV4(
+                        context, /*disableAnimations=*/sDisableAnimations);
+                dialog.show();
+                sDialog = new WeakReference<>(dialog);
+                return true;
             case PromptType.NOTICE:
                 boolean newNotice = showNewNotice();
                 if (launchContext == PrivacySandboxDialogLaunchContext.NEW_TAB_PAGE && newNotice) {
@@ -50,7 +57,7 @@
                     if (bottomSheetController == null) return false;
                     new PrivacySandboxBottomSheetNotice(
                             context, bottomSheetController, settingsLauncher)
-                            .showNotice(/*animate = */ sDisableAnimations == null);
+                            .showNotice(/*animate=*/!sDisableAnimations);
                     sNewNoticeShownInCurrentSession = true;
                 } else if (launchContext == PrivacySandboxDialogLaunchContext.BROWSER_START
                         && !newNotice) {
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java
index b738b221..847bed5 100644
--- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java
+++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java
@@ -11,13 +11,9 @@
 import android.widget.LinearLayout;
 import android.widget.ScrollView;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-
 import org.chromium.base.task.PostTask;
 import org.chromium.base.task.TaskTraits;
 import org.chromium.chrome.browser.privacy_sandbox.R;
-import org.chromium.components.browser_ui.settings.SettingsLauncher;
 import org.chromium.ui.widget.ButtonCompat;
 import org.chromium.ui.widget.CheckableImageView;
 
@@ -27,7 +23,6 @@
 public class PrivacySandboxDialogConsentEEAV4 extends Dialog implements View.OnClickListener {
     private static final int SPINNER_DURATION_MS = 1500;
 
-    private SettingsLauncher mSettingsLauncher;
     private View mContentView;
 
     private final CheckableImageView mExpandArrowView;
@@ -35,12 +30,11 @@
     private LinearLayout mDropdownElement;
     private LinearLayout mProgressBarContainer;
     private LinearLayout mConsentViewContainer;
-    private boolean mDisableAnimationForTesting;
+    private boolean mAreAnimationsDisabled;
 
-    public PrivacySandboxDialogConsentEEAV4(
-            Context context, @NonNull SettingsLauncher settingsLauncher) {
+    public PrivacySandboxDialogConsentEEAV4(Context context, boolean disableAnimations) {
         super(context, R.style.ThemeOverlay_BrowserUI_Fullscreen);
-        mSettingsLauncher = settingsLauncher;
+        mAreAnimationsDisabled = disableAnimations;
         mContentView =
                 LayoutInflater.from(context).inflate(R.layout.privacy_sandbox_consent_eea_v4, null);
         setContentView(mContentView);
@@ -128,11 +122,6 @@
     }
 
     private long getSpinnerDuration() {
-        return mDisableAnimationForTesting ? 0 : SPINNER_DURATION_MS;
-    }
-
-    @VisibleForTesting
-    public void disableAnimationForTesting(boolean disable) {
-        mDisableAnimationForTesting = disable;
+        return mAreAnimationsDisabled ? 0 : SPINNER_DURATION_MS;
     }
 }
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java
index cd39068..035bc8a 100644
--- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java
+++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java
@@ -64,7 +64,6 @@
 @RunWith(ChromeJUnit4ClassRunner.class)
 @Batch(Batch.PER_CLASS)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3)
 public final class PrivacySandboxDialogTest {
     @ClassRule
     public static DisableAnimationsTestRule disableAnimationsRule = new DisableAnimationsTestRule();
@@ -148,6 +147,7 @@
                 mDialog.dismiss();
                 mDialog = null;
             }
+            PrivacySandboxDialogController.disableAnimationsForTesting();
             PrivacySandboxDialogController.maybeLaunchPrivacySandboxDialog(context,
                     sActivityTestRule.getActivity(), mSettingsLauncher, /*isIncognito=*/false,
                     mBottomSheetController);
@@ -199,7 +199,7 @@
     public void testRenderEEAConsent() throws IOException {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mDialog = new PrivacySandboxDialogConsentEEAV4(
-                    sActivityTestRule.getActivity(), mSettingsLauncher);
+                    sActivityTestRule.getActivity(), /*animate = */ false);
             mDialog.show();
         });
         renderViewWithId(R.id.privacy_sandbox_dialog, "privacy_sandbox_eea_consent_dialog");
@@ -290,6 +290,7 @@
 
     @Test
     @SmallTest
+    @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3)
     public void testControllerShowsNotice() throws IOException, InterruptedException {
         PrivacySandboxDialogController.setShowNewNoticeForTesting(false);
         mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.NOTICE);
@@ -319,6 +320,7 @@
 
     @Test
     @SmallTest
+    @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3)
     public void testControllerShowsBottomSheet() {
         PrivacySandboxDialogController.setShowNewNoticeForTesting(true);
         mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.NOTICE);
@@ -361,4 +363,31 @@
         launchDialog(PrivacySandboxDialogLaunchContext.NEW_TAB_PAGE);
         onView(withText(R.string.privacy_sandbox_notice_sheet_title)).check(doesNotExist());
     }
+
+    @Test
+    @SmallTest
+    public void testControllerShowsEEAConsent() throws IOException {
+        // TODO(b/254408752): Verify actions are correctly recorded.
+        mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.M1_CONSENT);
+        launchDialog();
+        // Verify that the EEA consent is shown
+        onViewWaiting(withId(R.id.privacy_sandbox_m1_consent_title));
+        // Accept the consent and verify it worked correctly.
+        onView(withId(R.id.ack_button)).perform(click());
+        onView(withId(R.id.privacy_sandbox_m1_consent_title)).check(doesNotExist());
+
+        launchDialog();
+        // Click on the expanding section and verify it worked correctly.
+        onViewWaiting(withId(R.id.privacy_sandbox_m1_consent_title));
+        onView(withId(R.id.dropdown_element)).perform(scrollTo(), click());
+
+        onView(withId(R.id.privacy_sandbox_consent_eea_dropdown)).perform(scrollTo());
+        onView(withId(R.id.privacy_sandbox_consent_eea_dropdown)).check(matches(isDisplayed()));
+        onView(withId(R.id.dropdown_element)).perform(scrollTo(), click());
+        onView(withId(R.id.privacy_sandbox_consent_eea_dropdown)).check(doesNotExist());
+
+        // Decline the consent and verify it worked correctly.
+        onView(withId(R.id.no_button)).perform(click());
+        onView(withId(R.id.privacy_sandbox_m1_consent_title)).check(doesNotExist());
+    }
 }
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
index 49c8e42..fb66a84e 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
@@ -754,10 +754,6 @@
   if (privacy_sandbox::kPrivacySandboxSettings3ForceShowNoticeForTesting.Get())
     return PromptType::kNotice;
 
-  // If the release 3 feature is not enabled, no prompt is required.
-  if (!base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3))
-    return PromptType::kNone;
-
   // If neither consent or notice is required, no prompt is required.
   if (!privacy_sandbox::kPrivacySandboxSettings3ConsentRequired.Get() &&
       !privacy_sandbox::kPrivacySandboxSettings3NoticeRequired.Get()) {
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
index f79a406..e161f40 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
@@ -43,11 +43,5 @@
 PrivacySandboxSettingsDelegate::~PrivacySandboxSettingsDelegate() = default;
 
 bool PrivacySandboxSettingsDelegate::IsPrivacySandboxRestricted() {
-  // When the Privacy Sandbox 3 feature is enabled, the Sandbox is restricted
-  // based on account capabilities.
-  if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) {
-    return PrivacySandboxRestrictedByAcccountCapability(profile_);
-  }
-  // No restrictions apply otherwise.
-  return false;
+  return PrivacySandboxRestrictedByAcccountCapability(profile_);
 }
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate_unittest.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate_unittest.cc
index d9152e9..b4d36988 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate_unittest.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate_unittest.cc
@@ -64,8 +64,6 @@
 
 TEST_F(PrivacySandboxSettingsDelegateTest,
        CapabilityRestrictionForSignedInUser) {
-  feature_list()->InitAndEnableFeature(
-      privacy_sandbox::kPrivacySandboxSettings3);
   // Sign the user in.
   identity_test_env()->MakePrimaryAccountAvailable(
       kTestEmail, signin::ConsentLevel::kSignin);
@@ -80,14 +78,6 @@
   EXPECT_TRUE(delegate()->IsPrivacySandboxRestricted());
   SetPrivacySandboxAccountCapability(kTestEmail, true);
   EXPECT_FALSE(delegate()->IsPrivacySandboxRestricted());
-
-  // If the Privacy Sandbox Settings 3 feature is disabled the capability
-  // restriction should not apply.
-  feature_list()->Reset();
-  feature_list()->InitAndDisableFeature(
-      privacy_sandbox::kPrivacySandboxSettings3);
-  SetPrivacySandboxAccountCapability(kTestEmail, false);
-  EXPECT_FALSE(delegate()->IsPrivacySandboxRestricted());
 }
 
 TEST_F(PrivacySandboxSettingsDelegateTest,
diff --git a/chrome/browser/profiles/delete_profile_helper.cc b/chrome/browser/profiles/delete_profile_helper.cc
new file mode 100644
index 0000000..ef3047b
--- /dev/null
+++ b/chrome/browser/profiles/delete_profile_helper.cc
@@ -0,0 +1,388 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/profiles/delete_profile_helper.h"
+
+#include "base/bind.h"
+#include "base/feature_list.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/functional/callback.h"
+#include "base/json/values_util.h"
+#include "base/logging.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/browser_features.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/download/download_core_service.h"
+#include "chrome/browser/download/download_core_service_factory.h"
+#include "chrome/browser/password_manager/password_store_factory.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+#include "chrome/browser/profiles/profile_attributes_entry.h"
+#include "chrome/browser/profiles/profile_attributes_storage.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profiles_state.h"
+#include "chrome/browser/sync/sync_service_factory.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/common/pref_names.h"
+#include "components/keep_alive_registry/keep_alive_types.h"
+#include "components/keep_alive_registry/scoped_keep_alive.h"
+#include "components/password_manager/core/browser/password_store_interface.h"
+#include "components/prefs/scoped_user_pref_update.h"
+#include "components/sync/driver/sync_service.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+namespace {
+
+// Called after a deleted profile was checked and cleaned up.
+void ProfileCleanedUp(base::Value profile_path_value) {
+  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
+                                        prefs::kProfilesDeleted);
+  deleted_profiles->EraseValue(profile_path_value);
+}
+
+// Helper function that deletes entries from the kProfilesLastActive pref list.
+// It is called when every ephemeral profile is handled.
+void RemoveFromLastActiveProfilesPrefList(const base::FilePath& path) {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  ScopedListPrefUpdate update(local_state, prefs::kProfilesLastActive);
+  base::Value::List& profile_list = update.Get();
+  base::Value entry_value = base::Value(path.BaseName().AsUTF8Unsafe());
+  profile_list.EraseValue(entry_value);
+}
+
+bool IsRegisteredAsEphemeral(ProfileAttributesStorage* storage,
+                             const base::FilePath& profile_dir) {
+  ProfileAttributesEntry* entry =
+      storage->GetProfileAttributesWithPath(profile_dir);
+  return entry && entry->IsEphemeral();
+}
+
+}  // namespace
+
+DeleteProfileHelper::DeleteProfileHelper(ProfileManager& profile_manager)
+    : profile_manager_(profile_manager) {}
+
+DeleteProfileHelper::~DeleteProfileHelper() = default;
+
+void DeleteProfileHelper::MaybeScheduleProfileForDeletion(
+    const base::FilePath& profile_dir,
+    ProfileLoadedCallback callback,
+    ProfileMetrics::ProfileDelete deletion_source) {
+  if (!ScheduleProfileDirectoryForDeletion(profile_dir))
+    return;
+
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  ProfileAttributesEntry* entry =
+      storage.GetProfileAttributesWithPath(profile_dir);
+  if (entry) {
+    storage.RecordDeletedProfileState(entry);
+  }
+  ProfileMetrics::LogProfileDeleteUser(deletion_source);
+
+  DCHECK(profiles::IsMultipleProfilesEnabled());
+  DCHECK(!IsProfileDirectoryMarkedForDeletion(profile_dir));
+
+  Profile* profile = profile_manager_->GetProfileByPath(profile_dir);
+  if (profile) {
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+    CHECK(!profile->IsMainProfile());
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+    // Cancel all in-progress downloads before deleting the profile to prevent a
+    // "Do you want to exit Google Chrome and cancel the downloads?" prompt
+    // (crbug.com/336725).
+    DownloadCoreService* service =
+        DownloadCoreServiceFactory::GetForBrowserContext(profile);
+    service->CancelDownloads();
+    DCHECK_EQ(0, service->NonMaliciousDownloadCount());
+
+    // Close all browser windows before deleting the profile. If the user
+    // cancels the closing of any tab in an OnBeforeUnload event, profile
+    // deletion is also cancelled. (crbug.com/289390)
+    BrowserList::CloseAllBrowsersWithProfile(
+        profile,
+        base::BindRepeating(
+            &DeleteProfileHelper::EnsureActiveProfileExistsBeforeDeletion,
+            base::Unretained(this), base::Passed(std::move(callback))),
+        base::BindRepeating(&CancelProfileDeletion), false);
+  } else {
+    EnsureActiveProfileExistsBeforeDeletion(std::move(callback), profile_dir);
+  }
+}
+
+void DeleteProfileHelper::ScheduleEphemeralProfileForDeletion(
+    const base::FilePath& profile_dir) {
+  DCHECK(IsRegisteredAsEphemeral(
+      &profile_manager_->GetProfileAttributesStorage(), profile_dir));
+  DCHECK_EQ(0u, chrome::GetBrowserCount(
+                    profile_manager_->GetProfileByPath(profile_dir)));
+  absl::optional<base::FilePath> new_active_profile_dir =
+      profile_manager_->FindLastActiveProfile(base::BindRepeating(
+          [](const base::FilePath& profile_dir, ProfileAttributesEntry* entry) {
+            return entry->GetPath() != profile_dir;
+          },
+          profile_dir));
+  if (!new_active_profile_dir.has_value())
+    new_active_profile_dir =
+        profile_manager_->GenerateNextProfileDirectoryPath();
+  DCHECK(!new_active_profile_dir->empty());
+  RemoveFromLastActiveProfilesPrefList(profile_dir);
+
+  FinishDeletingProfile(profile_dir, new_active_profile_dir.value());
+}
+
+void DeleteProfileHelper::CleanUpEphemeralProfiles() {
+  base::FilePath last_used_profile_base_name =
+      profile_manager_->GetLastUsedProfileBaseName();
+  bool last_active_profile_deleted = false;
+  base::FilePath new_profile_path;
+  std::vector<base::FilePath> profiles_to_delete;
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  std::vector<ProfileAttributesEntry*> entries =
+      storage.GetAllProfilesAttributes();
+  for (ProfileAttributesEntry* entry : entries) {
+    base::FilePath profile_path = entry->GetPath();
+    if (entry->IsEphemeral()) {
+      profiles_to_delete.push_back(profile_path);
+      RemoveFromLastActiveProfilesPrefList(profile_path);
+      if (profile_path.BaseName() == last_used_profile_base_name)
+        last_active_profile_deleted = true;
+    } else if (new_profile_path.empty()) {
+      new_profile_path = profile_path;
+    }
+  }
+
+  // If the last active profile was ephemeral or all profiles are deleted due to
+  // ephemeral, set a new one.
+  if (last_active_profile_deleted ||
+      (entries.size() == profiles_to_delete.size() &&
+       !profiles_to_delete.empty())) {
+    if (new_profile_path.empty())
+      new_profile_path = profile_manager_->GenerateNextProfileDirectoryPath();
+
+    profiles::SetLastUsedProfile(new_profile_path.BaseName());
+  }
+
+  for (const base::FilePath& profile_path : profiles_to_delete) {
+    base::ThreadPool::PostTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDisk, profile_path,
+                       base::OnceClosure()));
+
+    storage.RemoveProfile(profile_path);
+  }
+}
+
+void DeleteProfileHelper::CleanUpDeletedProfiles() {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  const base::Value::List& deleted_profiles =
+      local_state->GetList(prefs::kProfilesDeleted);
+
+  for (const base::Value& value : deleted_profiles) {
+    absl::optional<base::FilePath> profile_path = base::ValueToFilePath(value);
+    // Although it should never happen, make sure this is a valid path in the
+    // user_data_dir, so we don't accidentally delete something else.
+    if (profile_path && profile_manager_->IsAllowedProfilePath(*profile_path)) {
+      if (base::PathExists(*profile_path)) {
+        LOG(WARNING) << "Files of a deleted profile still exist after restart. "
+                        "Cleaning up now.";
+        base::ThreadPool::PostTask(
+            FROM_HERE,
+            {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+             base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+            base::BindOnce(&NukeProfileFromDisk, *profile_path,
+                           base::BindOnce(&ProfileCleanedUp, value.Clone())));
+      } else {
+        // Everything is fine, the profile was removed on shutdown.
+        content::GetUIThreadTaskRunner({})->PostTask(
+            FROM_HERE, base::BindOnce(&ProfileCleanedUp, value.Clone()));
+      }
+    } else {
+      LOG(ERROR) << "Found invalid profile path in deleted_profiles: "
+                 << profile_path->AsUTF8Unsafe();
+      NOTREACHED();
+    }
+  }
+}
+
+void DeleteProfileHelper::EnsureActiveProfileExistsBeforeDeletion(
+    ProfileLoadedCallback callback,
+    const base::FilePath& profile_dir) {
+  // In case we delete non-active profile and current profile is valid, proceed.
+  const base::FilePath last_used_profile_path =
+      profile_manager_->GetLastUsedProfileDir();
+  const base::FilePath guest_profile_path =
+      profile_manager_->GetGuestProfilePath();
+  Profile* last_used_profile =
+      profile_manager_->GetProfileByPath(last_used_profile_path);
+  if (last_used_profile_path != profile_dir &&
+      last_used_profile_path != guest_profile_path && last_used_profile) {
+    FinishDeletingProfile(profile_dir, last_used_profile_path);
+    return;
+  }
+
+  // Search for an active browser and use its profile as active if possible.
+  for (Browser* browser : *BrowserList::GetInstance()) {
+    Profile* profile = browser->profile();
+    base::FilePath cur_path = profile->GetPath();
+    if (cur_path != profile_dir && cur_path != guest_profile_path &&
+        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
+      OnNewActiveProfileInitialized(profile_dir, cur_path, std::move(callback),
+                                    nullptr, profile);
+      return;
+    }
+  }
+
+  // There no valid browsers to fallback, search for any existing valid profile.
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  base::FilePath fallback_profile_path;
+  std::vector<ProfileAttributesEntry*> entries =
+      storage.GetAllProfilesAttributes();
+  for (ProfileAttributesEntry* entry : entries) {
+    base::FilePath cur_path = entry->GetPath();
+    // Make sure that this profile is not pending deletion.
+    if (cur_path != profile_dir && cur_path != guest_profile_path &&
+        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
+      fallback_profile_path = cur_path;
+      break;
+    }
+  }
+
+  // If we're deleting the last profile, then create a new profile in its place.
+  // Load existing profile otherwise.
+  if (fallback_profile_path.empty()) {
+    fallback_profile_path =
+        profile_manager_->GenerateNextProfileDirectoryPath();
+    // A new profile about to be created.
+    ProfileMetrics::LogProfileAddNewUser(
+        ProfileMetrics::ADD_NEW_USER_LAST_DELETED);
+  }
+
+  // When this is called all browser windows may be about to be destroyed
+  // (but still exist in BrowserList), which means shutdown may be about to
+  // start. Use a KeepAlive to ensure shutdown doesn't start.
+  std::unique_ptr<ScopedKeepAlive> keep_alive =
+      std::make_unique<ScopedKeepAlive>(KeepAliveOrigin::PROFILE_MANAGER,
+                                        KeepAliveRestartOption::DISABLED);
+  // Create and/or load fallback profile.
+  profile_manager_->CreateProfileAsync(
+      fallback_profile_path,
+      base::BindOnce(&DeleteProfileHelper::OnNewActiveProfileInitialized,
+                     base::Unretained(this), profile_dir, fallback_profile_path,
+                     std::move(callback), std::move(keep_alive)));
+}
+
+void DeleteProfileHelper::FinishDeletingProfile(
+    const base::FilePath& profile_dir,
+    const base::FilePath& new_active_profile_dir) {
+  // Update the last used profile pref before closing browser windows. This
+  // way the correct last used profile is set for any notification observers.
+  profiles::SetLastUsedProfile(new_active_profile_dir.BaseName());
+
+  // Attempt to load the profile before deleting it to properly clean up
+  // profile-specific data stored outside the profile directory.
+  profile_manager_->LoadProfileByPath(
+      profile_dir, false,
+      base::BindOnce(&DeleteProfileHelper::OnLoadProfileForProfileDeletion,
+                     base::Unretained(this), profile_dir));
+  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
+    // Prevents CreateProfileAsync from re-creating the profile.
+    MarkProfileDirectoryForDeletion(profile_dir);
+  }
+}
+
+void DeleteProfileHelper::OnLoadProfileForProfileDeletion(
+    const base::FilePath& profile_dir,
+    Profile* profile) {
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+
+  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
+    // Ensure RemoveProfile() knows to nuke the profile directory after it's
+    // done.
+    MarkProfileDirectoryForDeletion(profile_dir);
+  }
+
+  if (profile) {
+    // TODO(estade): Migrate additional code in this block to observe
+    // ProfileManager instead of handling shutdown here.
+    profile_manager_->NotifyOnProfileMarkedForPermanentDeletion(profile);
+
+    // Disable sync for doomed profile.
+    if (SyncServiceFactory::HasSyncService(profile)) {
+      syncer::SyncService* sync_service =
+          SyncServiceFactory::GetForProfile(profile);
+      // Ensure data is cleared even if sync was already off.
+      sync_service->StopAndClear();
+    }
+
+    // Some platforms store passwords in keychains. They should be removed.
+    scoped_refptr<password_manager::PasswordStoreInterface> password_store =
+        PasswordStoreFactory::GetForProfile(profile,
+                                            ServiceAccessType::EXPLICIT_ACCESS)
+            .get();
+    if (password_store.get()) {
+      password_store->RemoveLoginsCreatedBetween(base::Time(),
+                                                 base::Time::Max());
+    }
+
+    // The Profile Data doesn't get wiped until Chrome closes. Since we promised
+    // that the user's data would be removed, do so immediately.
+    //
+    // With DestroyProfileOnBrowserClose, this adds a KeepAlive. So the Profile*
+    // only gets deleted *after* browsing data is removed. This also clears some
+    // keepalives in the process, e.g. due to background extensions getting
+    // uninstalled.
+    profiles::RemoveBrowsingDataForProfile(profile_dir);
+
+    // Clean-up pref data that won't be cleaned up by deleting the profile dir.
+    profile->GetPrefs()->OnStoreDeletionFromDisk();
+
+  } else {
+    // We failed to load the profile, but it's safe to delete a not yet loaded
+    // Profile from disk.
+    base::ThreadPool::PostTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDisk, profile_dir, base::OnceClosure()));
+  }
+
+  storage.RemoveProfile(profile_dir);
+
+  if (profile &&
+      base::FeatureList::IsEnabled(features::kDestroyProfileOnBrowserClose)) {
+    // Allow the Profile* to be deleted, even if it had no browser windows.
+    profile_manager_->ClearFirstBrowserWindowKeepAlive(profile);
+  }
+}
+
+void DeleteProfileHelper::OnNewActiveProfileInitialized(
+    const base::FilePath& profile_to_delete_path,
+    const base::FilePath& new_active_profile_path,
+    ProfileLoadedCallback callback,
+    std::unique_ptr<ScopedKeepAlive> keep_alive,
+    Profile* loaded_profile) {
+  DCHECK(loaded_profile);
+  if (IsProfileDirectoryMarkedForDeletion(new_active_profile_path)) {
+    // If the profile we tried to load as the next active profile has been
+    // deleted, then retry deleting this profile to redo the logic to load
+    // the next available profile.
+    EnsureActiveProfileExistsBeforeDeletion(std::move(callback),
+                                            profile_to_delete_path);
+    return;
+  }
+
+  FinishDeletingProfile(profile_to_delete_path, new_active_profile_path);
+  std::move(callback).Run(loaded_profile);
+}
diff --git a/chrome/browser/profiles/delete_profile_helper.h b/chrome/browser/profiles/delete_profile_helper.h
new file mode 100644
index 0000000..e7d097bd
--- /dev/null
+++ b/chrome/browser/profiles/delete_profile_helper.h
@@ -0,0 +1,93 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
+#define CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
+
+#include "base/functional/callback_forward.h"
+#include "base/memory/raw_ref.h"
+#include "chrome/browser/profiles/profile_metrics.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace base {
+class FilePath;
+}
+
+class Profile;
+class ProfileManager;
+class ScopedKeepAlive;
+
+// This class offers a few helper functions for profile deletion. Note that the
+// `DeleteProfileHelper` does not delete actual C++ Profile objects, as this is
+// done through the `ScopedProfileKeepAlive` mechanism and
+// `ProfileManager::RemoveProfile()`.
+// The `DeleteProfileHelper` is responsible for:
+// - deleting the profile as a user-visible concept: removes it from the
+//   `ProfileAttributesStorage` and deletes the user data on disk.
+// - creates or loads another profile before the last profile is deleted.
+class DeleteProfileHelper {
+ public:
+  using ProfileLoadedCallback = base::OnceCallback<void(Profile*)>;
+
+  explicit DeleteProfileHelper(ProfileManager& profile_manager);
+
+  ~DeleteProfileHelper();
+
+  DeleteProfileHelper(const DeleteProfileHelper&) = delete;
+  DeleteProfileHelper& operator=(const DeleteProfileHelper&) = delete;
+
+  // Schedules the profile at the given path to be deleted on shutdown. If we're
+  // deleting the last profile, a new one will be created in its place, and in
+  // that case the callback will be called when profile creation is complete.
+  // Silently exits if profile is either scheduling or marked for deletion.
+  void MaybeScheduleProfileForDeletion(
+      const base::FilePath& profile_dir,
+      ProfileLoadedCallback callback,
+      ProfileMetrics::ProfileDelete deletion_source);
+
+  // Schedules the ephemeral profile at the given path to be deleted on
+  // shutdown. New profiles will not be created.
+  void ScheduleEphemeralProfileForDeletion(const base::FilePath& profile_dir);
+
+  // Checks if any ephemeral profiles are left behind (e.g. because of a browser
+  // crash) and schedule them for deletion.
+  void CleanUpEphemeralProfiles();
+
+  // Checks if files of deleted profiles are left behind (e.g. because of a
+  // browser crash) and delete them in case they still exist.
+  void CleanUpDeletedProfiles();
+
+ private:
+  // Continues the scheduled profile deletion after closing all the profile's
+  // browsers tabs. Creates a new profile if the profile to be deleted is the
+  // last non-supervised profile. In the Mac, loads the next non-supervised
+  // profile if the profile to be deleted is the active profile.
+  void EnsureActiveProfileExistsBeforeDeletion(
+      ProfileLoadedCallback callback,
+      const base::FilePath& profile_dir);
+
+  // Schedules the profile at the given path to be deleted on shutdown,
+  // and marks the new profile as active.
+  void FinishDeletingProfile(const base::FilePath& profile_dir,
+                             const base::FilePath& new_active_profile_dir);
+  void OnLoadProfileForProfileDeletion(const base::FilePath& profile_dir,
+                                       Profile* profile);
+
+  // If the `loaded_profile` has been loaded successfully and isn't already
+  // scheduled for deletion, then finishes adding `profile_to_delete_dir` to the
+  // queue of profiles to be deleted, and updates the kProfileLastUsed
+  // preference based on `last_non_supervised_profile_path`. `keep_alive` may be
+  // null and is used to ensure shutdown does not start.
+  void OnNewActiveProfileInitialized(
+      const base::FilePath& profile_to_delete_path,
+      const base::FilePath& last_non_supervised_profile_path,
+      ProfileLoadedCallback callback,
+      std::unique_ptr<ScopedKeepAlive> keep_alive,
+      Profile* loaded_profile);
+
+  const raw_ref<ProfileManager>
+      profile_manager_;  // Owns the `DeleteProfileHelper`.
+};
+
+#endif  // CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
diff --git a/chrome/browser/profiles/nuke_profile_directory_utils.cc b/chrome/browser/profiles/nuke_profile_directory_utils.cc
new file mode 100644
index 0000000..7f947f3
--- /dev/null
+++ b/chrome/browser/profiles/nuke_profile_directory_utils.cc
@@ -0,0 +1,163 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+
+#include <map>
+
+#include "base/check_op.h"
+#include "base/containers/contains.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/json/values_util.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/no_destructor.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile_metrics.h"
+#include "chrome/common/chrome_paths_internal.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/scoped_user_pref_update.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+namespace {
+
+// Used in metrics for NukeProfileFromDisk(). Keep in sync with enums.xml.
+//
+// Entries should not be renumbered and numeric values should never be reused.
+//
+// Note: there are maximum 3 attempts to nuke a profile.
+enum class NukeProfileResult {
+  // Success values. Make sure they are consecutive.
+  kSuccessFirstAttempt = 0,
+  kSuccessSecondAttempt = 1,
+  kSuccessThirdAttempt = 2,
+
+  // Failure values. Make sure they are consecutive.
+  kFailureFirstAttempt = 10,
+  kFailureSecondAttempt = 11,
+  kFailureThirdAttempt = 12,
+  kMaxValue = kFailureThirdAttempt,
+};
+
+const size_t kNukeProfileMaxRetryCount = 3;
+
+// Profile deletion can pass through two stages:
+enum class ProfileDeletionStage {
+  // At SCHEDULING stage some actions are made before profile deletion,
+  // where one of them is the closure of browser windows. Deletion is cancelled
+  // if the user choose explicitly not to close any of the tabs.
+  SCHEDULING,
+  // At MARKED stage profile can be safely removed from disk.
+  MARKED
+};
+
+using ProfileDeletionMap = std::map<base::FilePath, ProfileDeletionStage>;
+ProfileDeletionMap& ProfilesToDelete() {
+  static base::NoDestructor<ProfileDeletionMap> profiles_to_delete;
+  return *profiles_to_delete;
+}
+
+NukeProfileResult GetNukeProfileResult(size_t retry_count, bool success) {
+  DCHECK_LT(retry_count, kNukeProfileMaxRetryCount);
+  const size_t value =
+      retry_count +
+      static_cast<size_t>(success ? NukeProfileResult::kSuccessFirstAttempt
+                                  : NukeProfileResult::kFailureFirstAttempt);
+  DCHECK_LE(value, static_cast<size_t>(NukeProfileResult::kMaxValue));
+  return static_cast<NukeProfileResult>(value);
+}
+
+// Implementation of NukeProfileFromDisk(), retrying at most |max_retry_count|
+// times on failure. |retry_count| (initially 0) keeps track of the
+// number of attempts so far.
+void NukeProfileFromDiskImpl(const base::FilePath& profile_path,
+                             size_t retry_count,
+                             size_t max_retry_count,
+                             base::OnceClosure done_callback) {
+  // TODO(crbug.com/1191455): Make FileSystemProxy/FileSystemImpl expose its
+  // LockTable, and/or fire events when locks are released. That way we could
+  // wait for all the locks in |profile_path| to be released, rather than having
+  // this retry logic.
+  const base::TimeDelta kRetryDelay = base::Seconds(1);
+
+  // Delete both the profile directory and its corresponding cache.
+  base::FilePath cache_path;
+  chrome::GetUserCacheDirectory(profile_path, &cache_path);
+
+  bool success = base::DeletePathRecursively(profile_path);
+  success = base::DeletePathRecursively(cache_path) && success;
+
+  base::UmaHistogramEnumeration("Profile.NukeFromDisk.Result",
+                                GetNukeProfileResult(retry_count, success));
+
+  if (!success && retry_count < max_retry_count - 1) {
+    // Failed, try again in |kRetryDelay| seconds.
+    base::ThreadPool::PostDelayedTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDiskImpl, profile_path, retry_count + 1,
+                       max_retry_count, std::move(done_callback)),
+        kRetryDelay);
+    return;
+  }
+
+  if (done_callback) {
+    content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
+                                                 std::move(done_callback));
+  }
+}
+
+}  // namespace
+
+void NukeDeletedProfilesFromDisk() {
+  for (const auto& item : ProfilesToDelete()) {
+    if (item.second == ProfileDeletionStage::MARKED) {
+      NukeProfileFromDiskImpl(item.first, /*retry_count=*/0,
+                              /*max_retry_count=*/1, base::OnceClosure());
+    }
+  }
+  ProfilesToDelete().clear();
+}
+
+void NukeProfileFromDisk(const base::FilePath& profile_path,
+                         base::OnceClosure done_callback) {
+  NukeProfileFromDiskImpl(profile_path, /*retry_count=*/0,
+                          kNukeProfileMaxRetryCount, std::move(done_callback));
+}
+
+bool IsProfileDirectoryMarkedForDeletion(const base::FilePath& profile_path) {
+  const auto it = ProfilesToDelete().find(profile_path);
+  return it != ProfilesToDelete().end() &&
+         it->second == ProfileDeletionStage::MARKED;
+}
+
+void CancelProfileDeletion(const base::FilePath& path) {
+  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
+         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
+  ProfilesToDelete().erase(path);
+  ProfileMetrics::LogProfileDeleteUser(ProfileMetrics::DELETE_PROFILE_ABORTED);
+}
+
+// Schedule a profile for deletion if it isn't already scheduled.
+// Returns whether the profile has been newly scheduled.
+bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path) {
+  if (base::Contains(ProfilesToDelete(), path))
+    return false;
+  ProfilesToDelete()[path] = ProfileDeletionStage::SCHEDULING;
+  return true;
+}
+
+void MarkProfileDirectoryForDeletion(const base::FilePath& path) {
+  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
+         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
+  ProfilesToDelete()[path] = ProfileDeletionStage::MARKED;
+  // Remember that this profile was deleted and files should have been deleted
+  // on shutdown. In case of a crash remaining files are removed on next start.
+  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
+                                        prefs::kProfilesDeleted);
+  deleted_profiles->Append(base::FilePathToValue(path));
+}
diff --git a/chrome/browser/profiles/nuke_profile_directory_utils.h b/chrome/browser/profiles/nuke_profile_directory_utils.h
new file mode 100644
index 0000000..3719ad6
--- /dev/null
+++ b/chrome/browser/profiles/nuke_profile_directory_utils.h
@@ -0,0 +1,37 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
+#define CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
+
+#include "base/functional/callback_forward.h"
+
+namespace base {
+class FilePath;
+}
+
+// Physically remove deleted profile directories from disk.
+void NukeDeletedProfilesFromDisk();
+
+// Physically remove deleted profile directories from disk. Afterwards, calls
+// |done_callback| on the UI thread.
+void NukeProfileFromDisk(const base::FilePath& profile_path,
+                         base::OnceClosure done_callback);
+
+// Returns if profile is marked for deletion.
+bool IsProfileDirectoryMarkedForDeletion(const base::FilePath& profile_path);
+
+// Cancel a scheduling deletion, so ScheduleProfileDirectoryForDeletion can be
+// called again successfully.
+void CancelProfileDeletion(const base::FilePath& path);
+
+// Schedule a profile for deletion if it isn't already scheduled.
+// Returns whether the profile has been newly scheduled.
+bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path);
+
+// Marks the profile path for deletion. It will be deleted when
+// `NukeDeletedProfilesFromDisk()` is called.
+void MarkProfileDirectoryForDeletion(const base::FilePath& path);
+
+#endif  // CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
index fc3709fc..6c74e3f1 100644
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -25,14 +25,11 @@
 #include "base/json/values_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
-#include "base/metrics/user_metrics.h"
-#include "base/no_destructor.h"
 #include "base/observer_list.h"
 #include "base/ranges/algorithm.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "base/task/deferred_sequenced_task_runner.h"
 #include "base/task/thread_pool.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/trace_event/trace_event.h"
@@ -40,23 +37,18 @@
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/accessibility/accessibility_labels_service.h"
 #include "chrome/browser/accessibility/accessibility_labels_service_factory.h"
-#include "chrome/browser/bookmarks/bookmark_model_factory.h"
 #include "chrome/browser/browser_features.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.h"
 #include "chrome/browser/buildflags.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
-#include "chrome/browser/download/download_core_service.h"
-#include "chrome/browser/download/download_core_service_factory.h"
 #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
-#include "chrome/browser/password_manager/password_store_factory.h"
 #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
-#include "chrome/browser/profiles/bookmark_model_loaded_observer.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_init_params.h"
@@ -65,31 +57,25 @@
 #include "chrome/browser/profiles/profile_destroyer.h"
 #include "chrome/browser/profiles/profile_key.h"
 #include "chrome/browser/profiles/profile_manager_observer.h"
-#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_selections.h"
 #include "chrome/browser/profiles/profiles_state.h"
 #include "chrome/browser/signin/account_reconcilor_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/primary_account_policy_manager_factory.h"
 #include "chrome/browser/signin/signin_util.h"
-#include "chrome/browser/sync/sync_service_factory.h"
-#include "chrome/browser/ui/startup/startup_browser_creator.h"
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
 #include "chrome/browser/unified_consent/unified_consent_service_factory.h"
 #include "chrome/common/buildflags.h"
 #include "chrome/common/chrome_constants.h"
-#include "chrome/common/chrome_paths_internal.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/logging_chrome.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/account_id/account_id.h"
-#include "components/bookmarks/browser/bookmark_model.h"
 #include "components/bookmarks/common/bookmark_pref_names.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
-#include "components/password_manager/core/browser/password_store_interface.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
 #include "components/search_engines/default_search_manager.h"
@@ -100,7 +86,6 @@
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "components/signin/public/identity_manager/primary_account_mutator.h"
 #include "components/sync/base/stop_source.h"
-#include "components/sync/driver/sync_service.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/notification_service.h"
@@ -134,11 +119,10 @@
 #if !BUILDFLAG(IS_ANDROID)
 #include "chrome/browser/accessibility/live_caption_controller_factory.h"
 #include "chrome/browser/lifetime/application_lifetime_desktop.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "components/keep_alive_registry/keep_alive_types.h"
-#include "components/keep_alive_registry/scoped_keep_alive.h"
 #include "components/live_caption/live_caption_controller.h"
 #endif
 
@@ -178,46 +162,10 @@
 #include "chrome/browser/chromeos/extensions/contact_center_insights/contact_center_insights_extension_manager.h"
 #endif
 
-using base::UserMetricsAction;
 using content::BrowserThread;
 
 namespace {
 
-// Used in metrics for NukeProfileFromDisk(). Keep in sync with enums.xml.
-//
-// Entries should not be renumbered and numeric values should never be reused.
-//
-// Note: there are maximum 3 attempts to nuke a profile.
-enum class NukeProfileResult {
-  // Success values. Make sure they are consecutive.
-  kSuccessFirstAttempt = 0,
-  kSuccessSecondAttempt = 1,
-  kSuccessThirdAttempt = 2,
-
-  // Failure values. Make sure they are consecutive.
-  kFailureFirstAttempt = 10,
-  kFailureSecondAttempt = 11,
-  kFailureThirdAttempt = 12,
-  kMaxValue = kFailureThirdAttempt,
-};
-
-const size_t kNukeProfileMaxRetryCount = 3;
-
-// Profile deletion can pass through two stages:
-enum class ProfileDeletionStage {
-  // At SCHEDULING stage some actions are made before profile deletion,
-  // where one of them is the closure of browser windows. Deletion is cancelled
-  // if the user choose explicitly not to close any of the tabs.
-  SCHEDULING,
-  // At MARKED stage profile can be safely removed from disk.
-  MARKED
-};
-using ProfileDeletionMap = std::map<base::FilePath, ProfileDeletionStage>;
-ProfileDeletionMap& ProfilesToDelete() {
-  static base::NoDestructor<ProfileDeletionMap> profiles_to_delete;
-  return *profiles_to_delete;
-}
-
 int64_t ComputeFilesSize(const base::FilePath& directory,
                          const base::FilePath::StringType& pattern) {
   int64_t running_size = 0;
@@ -279,103 +227,6 @@
     UMA_HISTOGRAM_COUNTS_10000("Profile.AppCount", enabled_app_count);
 }
 
-#if !BUILDFLAG(IS_ANDROID)
-// Schedule a profile for deletion if it isn't already scheduled.
-// Returns whether the profile has been newly scheduled.
-bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path) {
-  if (base::Contains(ProfilesToDelete(), path))
-    return false;
-  ProfilesToDelete()[path] = ProfileDeletionStage::SCHEDULING;
-  return true;
-}
-
-void MarkProfileDirectoryForDeletion(const base::FilePath& path) {
-  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
-         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
-  ProfilesToDelete()[path] = ProfileDeletionStage::MARKED;
-  // Remember that this profile was deleted and files should have been deleted
-  // on shutdown. In case of a crash remaining files are removed on next start.
-  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
-                                        prefs::kProfilesDeleted);
-  deleted_profiles->Append(base::FilePathToValue(path));
-}
-
-// Cancel a scheduling deletion, so ScheduleProfileDirectoryForDeletion can be
-// called again successfully.
-void CancelProfileDeletion(const base::FilePath& path) {
-  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
-         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
-  ProfilesToDelete().erase(path);
-  ProfileMetrics::LogProfileDeleteUser(ProfileMetrics::DELETE_PROFILE_ABORTED);
-}
-#endif
-
-NukeProfileResult GetNukeProfileResult(size_t retry_count, bool success) {
-  DCHECK_LT(retry_count, kNukeProfileMaxRetryCount);
-  const size_t value =
-      retry_count +
-      static_cast<size_t>(success ? NukeProfileResult::kSuccessFirstAttempt
-                                  : NukeProfileResult::kFailureFirstAttempt);
-  DCHECK_LE(value, static_cast<size_t>(NukeProfileResult::kMaxValue));
-  return static_cast<NukeProfileResult>(value);
-}
-
-// Implementation of NukeProfileFromDisk(), retrying at most |max_retry_count|
-// times on failure. |retry_count| (initially 0) keeps track of the
-// number of attempts so far.
-void NukeProfileFromDiskImpl(const base::FilePath& profile_path,
-                             size_t retry_count,
-                             size_t max_retry_count,
-                             base::OnceClosure done_callback) {
-  // TODO(crbug.com/1191455): Make FileSystemProxy/FileSystemImpl expose its
-  // LockTable, and/or fire events when locks are released. That way we could
-  // wait for all the locks in |profile_path| to be released, rather than having
-  // this retry logic.
-  const base::TimeDelta kRetryDelay = base::Seconds(1);
-
-  // Delete both the profile directory and its corresponding cache.
-  base::FilePath cache_path;
-  chrome::GetUserCacheDirectory(profile_path, &cache_path);
-
-  bool success = base::DeletePathRecursively(profile_path);
-  success = base::DeletePathRecursively(cache_path) && success;
-
-  base::UmaHistogramEnumeration("Profile.NukeFromDisk.Result",
-                                GetNukeProfileResult(retry_count, success));
-
-  if (!success && retry_count < max_retry_count - 1) {
-    // Failed, try again in |kRetryDelay| seconds.
-    base::ThreadPool::PostDelayedTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDiskImpl, profile_path, retry_count + 1,
-                       max_retry_count, std::move(done_callback)),
-        kRetryDelay);
-    return;
-  }
-
-  if (done_callback) {
-    content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
-                                                 std::move(done_callback));
-  }
-}
-
-// Physically remove deleted profile directories from disk. Afterwards, calls
-// |done_callback| on the UI thread.
-void NukeProfileFromDisk(const base::FilePath& profile_path,
-                         base::OnceClosure done_callback) {
-  NukeProfileFromDiskImpl(profile_path, /*retry_count=*/0,
-                          kNukeProfileMaxRetryCount, std::move(done_callback));
-}
-
-// Called after a deleted profile was checked and cleaned up.
-void ProfileCleanedUp(base::Value profile_path_value) {
-  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
-                                        prefs::kProfilesDeleted);
-  deleted_profiles->EraseValue(profile_path_value);
-}
-
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 
 // Returns the number of installed (and enabled) apps, excluding any component
@@ -429,17 +280,6 @@
   return entry && entry->IsEphemeral();
 }
 
-// Helper function that deletes entries from the kProfilesLastActive pref list.
-// It is called when every ephemeral profile is handled.
-void RemoveFromLastActiveProfilesPrefList(base::FilePath path) {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  ScopedListPrefUpdate update(local_state, prefs::kProfilesLastActive);
-  base::Value::List& profile_list = update.Get();
-  base::Value entry_value = base::Value(path.BaseName().AsUTF8Unsafe());
-  profile_list.EraseValue(entry_value);
-}
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 bool IsLoggedIn() {
   return user_manager::UserManager::IsInitialized() &&
@@ -478,21 +318,6 @@
   return out;
 }
 
-base::FilePath GetLastUsedProfileBaseName() {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  base::FilePath last_used_profile_base_name =
-      local_state->GetFilePath(prefs::kProfileLastUsed);
-  // Make sure the system profile can't be the one marked as the last one used
-  // since it shouldn't get a browser.
-  if (!last_used_profile_base_name.empty() &&
-      last_used_profile_base_name.value() != chrome::kSystemProfileDir) {
-    return last_used_profile_base_name;
-  }
-
-  return base::FilePath::FromASCII(chrome::kInitialProfile);
-}
-
 #if BUILDFLAG(IS_CHROMEOS)
 void UpdateSupervisedUserPref(Profile* profile, bool is_child) {
   DCHECK(profile);
@@ -542,7 +367,12 @@
 }  // namespace
 
 ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
-    : user_data_dir_(user_data_dir) {
+    : user_data_dir_(user_data_dir)
+#if !BUILDFLAG(IS_ANDROID)
+      ,
+      delete_profile_helper_(std::make_unique<DeleteProfileHelper>(*this))
+#endif
+{
 #if !BUILDFLAG(IS_ANDROID)
   closing_all_browsers_subscription_ = chrome::AddClosingAllBrowsersCallback(
       base::BindRepeating(&ProfileManager::OnClosingAllBrowsersChanged,
@@ -588,14 +418,6 @@
   ProfileDestroyer::DestroyPendingProfilesForShutdown();
 }
 
-// static
-bool ProfileManager::IsProfileDirectoryMarkedForDeletion(
-    const base::FilePath& profile_path) {
-  const auto it = ProfilesToDelete().find(profile_path);
-  return it != ProfilesToDelete().end() &&
-         it->second == ProfileDeletionStage::MARKED;
-}
-
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 // static
 void ProfileManager::ShutdownSessionServices() {
@@ -616,16 +438,6 @@
 #endif
 
 // static
-void ProfileManager::NukeDeletedProfilesFromDisk() {
-  for (const auto& item : ProfilesToDelete()) {
-    if (item.second == ProfileDeletionStage::MARKED)
-      NukeProfileFromDiskImpl(item.first, /*retry_count=*/0,
-                              /*max_retry_count=*/1, base::OnceClosure());
-  }
-  ProfilesToDelete().clear();
-}
-
-// static
 Profile* ProfileManager::GetLastUsedProfile() {
   ProfileManager* profile_manager = g_browser_process->profile_manager();
 
@@ -936,6 +748,22 @@
   return user_data_dir_.Append(GetLastUsedProfileBaseName());
 }
 
+// static
+base::FilePath ProfileManager::GetLastUsedProfileBaseName() {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  base::FilePath last_used_profile_base_name =
+      local_state->GetFilePath(prefs::kProfileLastUsed);
+  // Make sure the system profile can't be the one marked as the last one used
+  // since it shouldn't get a browser.
+  if (!last_used_profile_base_name.empty() &&
+      last_used_profile_base_name.value() != chrome::kSystemProfileDir) {
+    return last_used_profile_base_name;
+  }
+
+  return base::FilePath::FromASCII(chrome::kInitialProfile);
+}
+
 base::FilePath ProfileManager::GetProfileDirForEmail(const std::string& email) {
   for (const auto* entry :
        GetProfileAttributesStorage().GetAllProfilesAttributes()) {
@@ -977,8 +805,10 @@
     return false;
   }
 
+#if !BUILDFLAG(IS_ANDROID)
   if (IsProfileDirectoryMarkedForDeletion(path))
     return false;
+#endif
 
   return true;
 }
@@ -1012,6 +842,7 @@
                       : std::map<ProfileKeepAliveOrigin, int>();
 }
 
+#if !BUILDFLAG(IS_ANDROID)
 // static
 void ProfileManager::CreateMultiProfileAsync(
     const std::u16string& name,
@@ -1080,6 +911,7 @@
                                     new_path, std::move(initialized_callback),
                                     std::move(created_callback))));
 }
+#endif  // !BUILDFLAG(IS_ANDROID)
 
 // static
 base::FilePath ProfileManager::GetGuestProfilePath() {
@@ -1158,77 +990,6 @@
 }
 #endif
 
-#if !BUILDFLAG(IS_ANDROID)
-void ProfileManager::MaybeScheduleProfileForDeletion(
-    const base::FilePath& profile_dir,
-    ProfileLoadedCallback callback,
-    ProfileMetrics::ProfileDelete deletion_source) {
-  if (!ScheduleProfileDirectoryForDeletion(profile_dir))
-    return;
-
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  ProfileAttributesEntry* entry =
-      storage.GetProfileAttributesWithPath(profile_dir);
-  if (entry) {
-    storage.RecordDeletedProfileState(entry);
-  }
-  ProfileMetrics::LogProfileDeleteUser(deletion_source);
-
-  ScheduleProfileForDeletion(profile_dir, std::move(callback));
-}
-
-void ProfileManager::ScheduleProfileForDeletion(
-    const base::FilePath& profile_dir,
-    ProfileLoadedCallback callback) {
-  DCHECK(profiles::IsMultipleProfilesEnabled());
-  DCHECK(!IsProfileDirectoryMarkedForDeletion(profile_dir));
-
-  Profile* profile = GetProfileByPath(profile_dir);
-  if (profile) {
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
-    CHECK(!profile->IsMainProfile());
-#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
-    // Cancel all in-progress downloads before deleting the profile to prevent a
-    // "Do you want to exit Google Chrome and cancel the downloads?" prompt
-    // (crbug.com/336725).
-    DownloadCoreService* service =
-        DownloadCoreServiceFactory::GetForBrowserContext(profile);
-    service->CancelDownloads();
-    DCHECK_EQ(0, service->NonMaliciousDownloadCount());
-
-    // Close all browser windows before deleting the profile. If the user
-    // cancels the closing of any tab in an OnBeforeUnload event, profile
-    // deletion is also cancelled. (crbug.com/289390)
-    BrowserList::CloseAllBrowsersWithProfile(
-        profile,
-        base::BindRepeating(
-            &ProfileManager::EnsureActiveProfileExistsBeforeDeletion,
-            base::Unretained(this), base::Passed(std::move(callback))),
-        base::BindRepeating(&CancelProfileDeletion), false);
-  } else {
-    EnsureActiveProfileExistsBeforeDeletion(std::move(callback), profile_dir);
-  }
-}
-
-void ProfileManager::ScheduleEphemeralProfileForDeletion(
-    const base::FilePath& profile_dir) {
-  DCHECK_EQ(0u, chrome::GetBrowserCount(GetProfileByPath(profile_dir)));
-  DCHECK(IsRegisteredAsEphemeral(&GetProfileAttributesStorage(), profile_dir));
-  absl::optional<base::FilePath> new_active_profile_dir =
-      FindLastActiveProfile(base::BindRepeating(
-          [](const base::FilePath& profile_dir, ProfileAttributesEntry* entry) {
-            return entry->GetPath() != profile_dir;
-          },
-          profile_dir));
-  if (!new_active_profile_dir.has_value())
-    new_active_profile_dir = GenerateNextProfileDirectoryPath();
-  DCHECK(!new_active_profile_dir->empty());
-  RemoveFromLastActiveProfilesPrefList(profile_dir);
-
-  FinishDeletingProfile(profile_dir, new_active_profile_dir.value());
-}
-#endif  // !BUILDFLAG(IS_ANDROID)
-
 void ProfileManager::AutoloadProfiles() {
   // If running in the background is disabled for the browser, do not autoload
   // any profiles.
@@ -1251,83 +1012,6 @@
   }
 }
 
-void ProfileManager::CleanUpEphemeralProfiles() {
-  const base::FilePath last_used_profile_base_name =
-      GetLastUsedProfileBaseName();
-  bool last_active_profile_deleted = false;
-  base::FilePath new_profile_path;
-  std::vector<base::FilePath> profiles_to_delete;
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  std::vector<ProfileAttributesEntry*> entries =
-      storage.GetAllProfilesAttributes();
-  for (ProfileAttributesEntry* entry : entries) {
-    base::FilePath profile_path = entry->GetPath();
-    if (entry->IsEphemeral()) {
-      profiles_to_delete.push_back(profile_path);
-      RemoveFromLastActiveProfilesPrefList(profile_path);
-      if (profile_path.BaseName() == last_used_profile_base_name)
-        last_active_profile_deleted = true;
-    } else if (new_profile_path.empty()) {
-      new_profile_path = profile_path;
-    }
-  }
-
-  // If the last active profile was ephemeral or all profiles are deleted due to
-  // ephemeral, set a new one.
-  if (last_active_profile_deleted ||
-      (entries.size() == profiles_to_delete.size() &&
-       !profiles_to_delete.empty())) {
-    if (new_profile_path.empty())
-      new_profile_path = GenerateNextProfileDirectoryPath();
-
-    profiles::SetLastUsedProfile(new_profile_path.BaseName());
-  }
-
-  for (const base::FilePath& profile_path : profiles_to_delete) {
-    base::ThreadPool::PostTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDisk, profile_path,
-                       base::OnceClosure()));
-
-    storage.RemoveProfile(profile_path);
-  }
-}
-
-void ProfileManager::CleanUpDeletedProfiles() {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  const base::Value::List& deleted_profiles =
-      local_state->GetList(prefs::kProfilesDeleted);
-
-  for (const base::Value& value : deleted_profiles) {
-    absl::optional<base::FilePath> profile_path = base::ValueToFilePath(value);
-    // Although it should never happen, make sure this is a valid path in the
-    // user_data_dir, so we don't accidentally delete something else.
-    if (profile_path && IsAllowedProfilePath(*profile_path)) {
-      if (base::PathExists(*profile_path)) {
-        LOG(WARNING) << "Files of a deleted profile still exist after restart. "
-                        "Cleaning up now.";
-        base::ThreadPool::PostTask(
-            FROM_HERE,
-            {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-             base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-            base::BindOnce(&NukeProfileFromDisk, *profile_path,
-                           base::BindOnce(&ProfileCleanedUp, value.Clone())));
-      } else {
-        // Everything is fine, the profile was removed on shutdown.
-        content::GetUIThreadTaskRunner({})->PostTask(
-            FROM_HERE, base::BindOnce(&ProfileCleanedUp, value.Clone()));
-      }
-    } else {
-      LOG(ERROR) << "Found invalid profile path in deleted_profiles: "
-                 << profile_path->AsUTF8Unsafe();
-      NOTREACHED();
-    }
-  }
-}
-
 void ProfileManager::InitProfileUserPrefs(Profile* profile) {
   TRACE_EVENT0("browser", "ProfileManager::InitProfileUserPrefs");
   ProfileAttributesStorage& storage = GetProfileAttributesStorage();
@@ -1615,6 +1299,12 @@
   DeleteProfileIfNoKeepAlive(info);
 }
 
+void ProfileManager::NotifyOnProfileMarkedForPermanentDeletion(
+    Profile* profile) {
+  for (auto& observer : observers_)
+    observer.OnProfileMarkedForPermanentDeletion(profile);
+}
+
 void ProfileManager::DeleteProfileIfNoKeepAlive(const ProfileInfo* info) {
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
   if (GetTotalRefCount(info->keep_alives) != 0)
@@ -2054,153 +1744,6 @@
 }
 
 #if !BUILDFLAG(IS_ANDROID)
-void ProfileManager::EnsureActiveProfileExistsBeforeDeletion(
-    ProfileLoadedCallback callback,
-    const base::FilePath& profile_dir) {
-  // In case we delete non-active profile and current profile is valid, proceed.
-  const base::FilePath last_used_profile_path = GetLastUsedProfileDir();
-  const base::FilePath guest_profile_path = GetGuestProfilePath();
-  Profile* last_used_profile = GetProfileByPath(last_used_profile_path);
-  if (last_used_profile_path != profile_dir &&
-      last_used_profile_path != guest_profile_path && last_used_profile) {
-    FinishDeletingProfile(profile_dir, last_used_profile_path);
-    return;
-  }
-
-  // Search for an active browser and use its profile as active if possible.
-  for (Browser* browser : *BrowserList::GetInstance()) {
-    Profile* profile = browser->profile();
-    base::FilePath cur_path = profile->GetPath();
-    if (cur_path != profile_dir && cur_path != guest_profile_path &&
-        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
-      OnNewActiveProfileInitialized(profile_dir, cur_path, std::move(callback),
-                                    nullptr, profile);
-      return;
-    }
-  }
-
-  // There no valid browsers to fallback, search for any existing valid profile.
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  base::FilePath fallback_profile_path;
-  std::vector<ProfileAttributesEntry*> entries =
-      storage.GetAllProfilesAttributes();
-  for (ProfileAttributesEntry* entry : entries) {
-    base::FilePath cur_path = entry->GetPath();
-    // Make sure that this profile is not pending deletion.
-    if (cur_path != profile_dir && cur_path != guest_profile_path &&
-        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
-      fallback_profile_path = cur_path;
-      break;
-    }
-  }
-
-  // If we're deleting the last profile, then create a new profile in its place.
-  // Load existing profile otherwise.
-  if (fallback_profile_path.empty()) {
-    fallback_profile_path = GenerateNextProfileDirectoryPath();
-    // A new profile about to be created.
-    ProfileMetrics::LogProfileAddNewUser(
-        ProfileMetrics::ADD_NEW_USER_LAST_DELETED);
-  }
-
-  // When this is called all browser windows may be about to be destroyed
-  // (but still exist in BrowserList), which means shutdown may be about to
-  // start. Use a KeepAlive to ensure shutdown doesn't start.
-  std::unique_ptr<ScopedKeepAlive> keep_alive =
-      std::make_unique<ScopedKeepAlive>(KeepAliveOrigin::PROFILE_MANAGER,
-                                        KeepAliveRestartOption::DISABLED);
-  // Create and/or load fallback profile.
-  CreateProfileAsync(
-      fallback_profile_path,
-      base::BindOnce(&ProfileManager::OnNewActiveProfileInitialized,
-                     base::Unretained(this), profile_dir, fallback_profile_path,
-                     std::move(callback), std::move(keep_alive)));
-}
-
-void ProfileManager::OnLoadProfileForProfileDeletion(
-    const base::FilePath& profile_dir,
-    Profile* profile) {
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-
-  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
-    // Ensure RemoveProfile() knows to nuke the profile directory after it's
-    // done.
-    MarkProfileDirectoryForDeletion(profile_dir);
-  }
-
-  if (profile) {
-    // TODO(estade): Migrate additional code in this block to observe
-    // ProfileManager instead of handling shutdown here.
-    for (auto& observer : observers_)
-      observer.OnProfileMarkedForPermanentDeletion(profile);
-
-    // Disable sync for doomed profile.
-    if (SyncServiceFactory::HasSyncService(profile)) {
-      syncer::SyncService* sync_service =
-          SyncServiceFactory::GetForProfile(profile);
-      // Ensure data is cleared even if sync was already off.
-      sync_service->StopAndClear();
-    }
-
-    // Some platforms store passwords in keychains. They should be removed.
-    scoped_refptr<password_manager::PasswordStoreInterface> password_store =
-        PasswordStoreFactory::GetForProfile(profile,
-                                            ServiceAccessType::EXPLICIT_ACCESS)
-            .get();
-    if (password_store.get()) {
-      password_store->RemoveLoginsCreatedBetween(base::Time(),
-                                                 base::Time::Max());
-    }
-
-    // The Profile Data doesn't get wiped until Chrome closes. Since we promised
-    // that the user's data would be removed, do so immediately.
-    //
-    // With DestroyProfileOnBrowserClose, this adds a KeepAlive. So the Profile*
-    // only gets deleted *after* browsing data is removed. This also clears some
-    // keepalives in the process, e.g. due to background extensions getting
-    // uninstalled.
-    profiles::RemoveBrowsingDataForProfile(profile_dir);
-
-    // Clean-up pref data that won't be cleaned up by deleting the profile dir.
-    profile->GetPrefs()->OnStoreDeletionFromDisk();
-
-  } else {
-    // We failed to load the profile, but it's safe to delete a not yet loaded
-    // Profile from disk.
-    base::ThreadPool::PostTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDisk, profile_dir, base::OnceClosure()));
-  }
-
-  storage.RemoveProfile(profile_dir);
-
-  if (profile &&
-      base::FeatureList::IsEnabled(features::kDestroyProfileOnBrowserClose)) {
-    // Allow the Profile* to be deleted, even if it had no browser windows.
-    ClearFirstBrowserWindowKeepAlive(profile);
-  }
-}
-
-void ProfileManager::FinishDeletingProfile(
-    const base::FilePath& profile_dir,
-    const base::FilePath& new_active_profile_dir) {
-  // Update the last used profile pref before closing browser windows. This
-  // way the correct last used profile is set for any notification observers.
-  profiles::SetLastUsedProfile(new_active_profile_dir.BaseName());
-
-  // Attempt to load the profile before deleting it to properly clean up
-  // profile-specific data stored outside the profile directory.
-  LoadProfileByPath(
-      profile_dir, false,
-      base::BindOnce(&ProfileManager::OnLoadProfileForProfileDeletion,
-                     base::Unretained(this), profile_dir));
-  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
-    // Prevents CreateProfileAsync from re-creating the profile.
-    MarkProfileDirectoryForDeletion(profile_dir);
-  }
-}
 
 absl::optional<base::FilePath> ProfileManager::FindLastActiveProfile(
     base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate) {
@@ -2242,6 +1785,10 @@
 #endif  //! BUILDFLAG(IS_CHROMEOS_ASH)
 }
 
+DeleteProfileHelper& ProfileManager::GetDeleteProfileHelper() {
+  return *delete_profile_helper_;
+}
+
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 ProfileManager::ProfileInfo* ProfileManager::RegisterOwnedProfile(
@@ -2481,7 +2028,7 @@
     // Delete if the profile is an ephemeral profile and it is not in the
     // profile creation flow.
     // TODO(crbug.com/1369535): Delete the profile when there is no keep alive.
-    ScheduleEphemeralProfileForDeletion(path);
+    delete_profile_helper_->ScheduleEphemeralProfileForDeletion(path);
   } else if (!profile->IsOffTheRecord()) {
     auto* browsing_data_lifetime_manager =
         ChromeBrowsingDataLifetimeManagerFactory::GetForProfile(
@@ -2557,26 +2104,6 @@
   profile_manager_->UpdateLastUser(last_active);
 }
 
-void ProfileManager::OnNewActiveProfileInitialized(
-    const base::FilePath& profile_to_delete_path,
-    const base::FilePath& new_active_profile_path,
-    ProfileLoadedCallback callback,
-    std::unique_ptr<ScopedKeepAlive> keep_alive,
-    Profile* loaded_profile) {
-  DCHECK(loaded_profile);
-  if (IsProfileDirectoryMarkedForDeletion(new_active_profile_path)) {
-    // If the profile we tried to load as the next active profile has been
-    // deleted, then retry deleting this profile to redo the logic to load
-    // the next available profile.
-    EnsureActiveProfileExistsBeforeDeletion(std::move(callback),
-                                            profile_to_delete_path);
-    return;
-  }
-
-  FinishDeletingProfile(profile_to_delete_path, new_active_profile_path);
-  std::move(callback).Run(loaded_profile);
-}
-
 void ProfileManager::OnClosingAllBrowsersChanged(bool closing) {
   // Save active profiles when the browser begins shutting down, or if shutdown
   // is cancelled. The active profiles won't be changed during the shutdown
diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
index e0d0b86..12ebd7d 100644
--- a/chrome/browser/profiles/profile_manager.h
+++ b/chrome/browser/profiles/profile_manager.h
@@ -31,6 +31,7 @@
 #include "chrome/common/buildflags.h"
 
 #if !BUILDFLAG(IS_ANDROID)
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/ui/browser_list_observer.h"
 #endif  // !BUILDFLAG(IS_ANDROID)
 
@@ -38,10 +39,10 @@
 class AccountProfileMapper;
 #endif
 
+class DeleteProfileHelper;
 class ProfileAttributesStorage;
 enum class ProfileKeepAliveOrigin;
 class ProfileManagerObserver;
-class ScopedKeepAlive;
 class ScopedProfileKeepAlive;
 
 // Manages the lifecycle of Profile objects.
@@ -62,9 +63,6 @@
   static void ShutdownSessionServices();
 #endif
 
-  // Physically remove deleted profile directories from disk.
-  static void NukeDeletedProfilesFromDisk();
-
   // Get the Profile last used (the Profile to which owns the most recently
   // focused window) with this Chrome build. If no signed profile has been
   // stored in Local State, hand back the Default profile.
@@ -187,6 +185,7 @@
   // Get the path of the last used profile, or if that's undefined, the default
   // profile.
   base::FilePath GetLastUsedProfileDir();
+  static base::FilePath GetLastUsedProfileBaseName();
 
   // Returns the path of a profile with the requested account, or the empty
   // path if none exists.
@@ -206,6 +205,7 @@
   // otherwise return null.
   Profile* GetProfileByPath(const base::FilePath& path) const;
 
+#if !BUILDFLAG(IS_ANDROID)
   // Asynchronously creates a new profile in the next available multiprofile
   // directory. Directories are named "profile_1", "profile_2", etc., in
   // sequence of creation. (Because directories can be removed, however, it may
@@ -227,6 +227,7 @@
       bool is_hidden,
       base::OnceCallback<void(Profile*)> initialized_callback,
       base::OnceCallback<void(Profile*)> created_callback = {});
+#endif  // !BUILDFLAG(IS_ANDROID)
 
   // Returns the full path to be used for guest profiles.
   static base::FilePath GetGuestProfilePath();
@@ -261,42 +262,21 @@
 #endif
 
 #if !BUILDFLAG(IS_ANDROID)
-  // Less strict version of ScheduleProfileForDeletion(), silently exits if
-  // profile is either scheduling or marked for deletion.
-  void MaybeScheduleProfileForDeletion(
-      const base::FilePath& profile_dir,
-      ProfileLoadedCallback callback,
-      ProfileMetrics::ProfileDelete deletion_source);
-
-  // Schedules the profile at the given path to be deleted on shutdown. If we're
-  // deleting the last profile, a new one will be created in its place, and in
-  // that case the callback will be called when profile creation is complete.
-  void ScheduleProfileForDeletion(const base::FilePath& profile_dir,
-                                  ProfileLoadedCallback callback);
-
-  // Schedules the ephemeral profile at the given path to be deleted on
-  // shutdown. New profiles will not be created.
-  void ScheduleEphemeralProfileForDeletion(const base::FilePath& profile_dir);
+  // Searches for the latest active profile that respects |predicate|, already
+  // loaded preferably. Returns nullopt if no existing profile respects all the
+  // conditions.
+  absl::optional<base::FilePath> FindLastActiveProfile(
+      base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate);
 
   // Deletes Guest profile's browsing data.
   static void CleanUpGuestProfile();
-#endif
 
-  // Returns if profile is marked for deletion.
-  static bool IsProfileDirectoryMarkedForDeletion(
-      const base::FilePath& profile_dir);
+  DeleteProfileHelper& GetDeleteProfileHelper();
+#endif
 
   // Autoloads profiles if they are running background apps.
   void AutoloadProfiles();
 
-  // Checks if any ephemeral profiles are left behind (e.g. because of a browser
-  // crash) and schedule them for deletion.
-  void CleanUpEphemeralProfiles();
-
-  // Checks if files of deleted profiles are left behind (e.g. because of a
-  // browser crash) and delete them in case they still exist.
-  void CleanUpDeletedProfiles();
-
   // Initializes user prefs of |profile|. This includes profile name and
   // avatar values.
   void InitProfileUserPrefs(Profile* profile);
@@ -350,6 +330,12 @@
   // browser window.
   void ClearFirstBrowserWindowKeepAlive(const Profile* profile);
 
+  // Returns whether |path| is allowed for profile creation.
+  bool IsAllowedProfilePath(const base::FilePath& path) const;
+
+  // Notifies `OnProfileMarkedForPermanentDeletion()` to the observers.
+  void NotifyOnProfileMarkedForPermanentDeletion(Profile* profile);
+
  protected:
   // Creates a new profile by calling into the profile's profile creation
   // method. Virtual so that unittests can return a TestingProfile instead
@@ -480,29 +466,6 @@
   // null if creation fails.
   Profile* CreateAndInitializeProfile(const base::FilePath& profile_dir);
 
-#if !BUILDFLAG(IS_ANDROID)
-  // Continues the scheduled profile deletion after closing all the profile's
-  // browsers tabs. Creates a new profile if the profile to be deleted is the
-  // last non-supervised profile. In the Mac, loads the next non-supervised
-  // profile if the profile to be deleted is the active profile.
-  void EnsureActiveProfileExistsBeforeDeletion(
-      ProfileLoadedCallback callback,
-      const base::FilePath& profile_dir);
-
-  // Schedules the profile at the given path to be deleted on shutdown,
-  // and marks the new profile as active.
-  void FinishDeletingProfile(const base::FilePath& profile_dir,
-                             const base::FilePath& new_active_profile_dir);
-  void OnLoadProfileForProfileDeletion(const base::FilePath& profile_dir,
-                                       Profile* profile);
-
-  // Searches for the latest active profile that respects |predicate|, already
-  // loaded preferably. Returns nullopt if no existing profile respects all the
-  // conditions.
-  absl::optional<base::FilePath> FindLastActiveProfile(
-      base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate);
-#endif
-
   // Registers profile with given info. Returns pointer to created ProfileInfo
   // entry.
   ProfileInfo* RegisterUnownedProfile(Profile* profile);
@@ -517,9 +480,6 @@
   // should be used carefully.
   Profile* GetProfileByPathInternal(const base::FilePath& path) const;
 
-  // Returns whether |path| is allowed for profile creation.
-  bool IsAllowedProfilePath(const base::FilePath& path) const;
-
   // Whether a new profile can be created at |path|.
   bool CanCreateProfileAtPath(const base::FilePath& path) const;
 
@@ -562,18 +522,6 @@
     raw_ptr<ProfileManager> profile_manager_;
   };
 
-  // If the `loaded_profile` has been loaded successfully and isn't already
-  // scheduled for deletion, then finishes adding `profile_to_delete_dir` to the
-  // queue of profiles to be deleted, and updates the kProfileLastUsed
-  // preference based on `last_non_supervised_profile_path`. `keep_alive` may be
-  // null and is used to ensure shutdown does not start.
-  void OnNewActiveProfileInitialized(
-      const base::FilePath& profile_to_delete_path,
-      const base::FilePath& last_non_supervised_profile_path,
-      ProfileLoadedCallback callback,
-      std::unique_ptr<ScopedKeepAlive> keep_alive,
-      Profile* loaded_profile);
-
   void OnClosingAllBrowsersChanged(bool closing);
 #endif  // !BUILDFLAG(IS_ANDROID)
 
@@ -608,6 +556,8 @@
 
 #if !BUILDFLAG(IS_ANDROID)
   BrowserListObserver browser_list_observer_{this};
+
+  std::unique_ptr<DeleteProfileHelper> delete_profile_helper_;
 #endif  // !BUILDFLAG(IS_ANDROID)
 
   // Maps profile path to ProfileInfo (if profile has been created). Use
diff --git a/chrome/browser/profiles/profile_manager_browsertest.cc b/chrome/browser/profiles/profile_manager_browsertest.cc
index fe57097..c4f252d 100644
--- a/chrome/browser/profiles/profile_manager_browsertest.cc
+++ b/chrome/browser/profiles/profile_manager_browsertest.cc
@@ -28,6 +28,7 @@
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/profiles/profile_window.h"
 #include "chrome/browser/profiles/profiles_state.h"
@@ -313,8 +314,9 @@
       storage.GetAllProfilesAttributes().front()->GetPath();
   EXPECT_FALSE(singleton_profile_path.empty());
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(singleton_profile_path,
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      singleton_profile_path, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   // Run the message loop until the profile is actually deleted (as indicated
   // by the callback above being called).
@@ -353,7 +355,8 @@
 
   // Delete inactive profile.
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(new_path, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      new_path, base::DoNothing(), ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   profile_deletion_observer.Wait();
 
   // Make sure there only preexisted profile left.
@@ -380,7 +383,7 @@
   base::FilePath current_profile_path = browser()->profile()->GetPath();
   base::FilePath new_last_used_path = new_profile_path;
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
-  // Deleting the main profile on Lacros is not allowed.
+  // Deleting the main profile on Lacros is not allwed.
   // Set the current profile to the new profile.
   new_last_used_path = browser()->profile()->GetPath();
   ASSERT_EQ(Browser::GetCreationStatusForProfile(new_profile),
@@ -396,8 +399,9 @@
 
   // Delete current profile.
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(current_profile_path,
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      current_profile_path, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   profile_deletion_observer.Wait();
 
   // Make sure a profile created earlier become the only profile.
@@ -447,8 +451,9 @@
     if (Profile::IsMainProfilePath(profile_path))
       continue;
 #endif
-    profile_manager->ScheduleProfileForDeletion(profile_path,
-                                                base::DoNothing());
+    profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+        profile_path, base::DoNothing(),
+        ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
     old_profile_paths.push_back(profile_path);
   }
   profile_deletion_observer.Wait();
@@ -768,8 +773,11 @@
   EXPECT_EQ(1u, verify_add.GetPasswords().size());
 
   MultipleProfileDeletionObserver profile_deletion_observer(1U);
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      profile->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   // run_loop.Run();
   profile_deletion_observer.Wait();
 
diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc
index 5462092..54008533 100644
--- a/chrome/browser/profiles/profile_manager_unittest.cc
+++ b/chrome/browser/profiles/profile_manager_unittest.cc
@@ -28,6 +28,7 @@
 #include "chrome/browser/policy/profile_policy_connector.h"
 #include "chrome/browser/prefs/browser_prefs.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
 #include "chrome/browser/profiles/profile.h"
@@ -197,6 +198,7 @@
                        base::Unretained(mock_observer)));
   }
 
+#if !BUILDFLAG(IS_ANDROID)
   // Helper function to create a profile with |name| for a profile |manager|.
   void CreateMultiProfileAsync(ProfileManager* manager,
                                const std::string& name,
@@ -208,6 +210,7 @@
         base::BindOnce(&MockObserver::OnProfileCreated,
                        base::Unretained(mock_observer)));
   }
+#endif  // !BUILDFLAG(IS_ANDROID)
 
   // Helper function to add a profile with |profile_name| to |profile_manager|'s
   // ProfileAttributesStorage, and return the profile created.
@@ -1543,7 +1546,7 @@
   initial_last_active_profile_list.Append(
       base::Value(path2.BaseName().MaybeAsASCII()));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
   const base::Value::List& final_last_active_profile_list =
       local_state->GetList(prefs::kProfilesLastActive);
@@ -1561,7 +1564,7 @@
 
   // Mark the remaining profile ephemeral and clean up.
   storage.GetAllProfilesAttributes()[0]->SetIsEphemeral(true);
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
 
   // The profile should be deleted, and the last used profile set to a new one.
@@ -1614,7 +1617,7 @@
   initial_last_active_profile_list.Append(
       base::Value(path.BaseName().MaybeAsASCII()));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
   const base::Value::List& final_last_active_profile_list =
       local_state->GetList(prefs::kProfilesLastActive);
@@ -1653,7 +1656,7 @@
   PrefService* local_state = g_browser_process->local_state();
   local_state->SetString(prefs::kProfileLastUsed, std::string("Guest Profile"));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
 
   ASSERT_EQ(0u, storage.GetNumberOfProfiles());
@@ -1770,7 +1773,9 @@
   local_state->SetString(prefs::kProfileLastUsed, profile_basename1);
 
   // Delete the active profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   EXPECT_EQ(profile_path2, profile_manager->GetLastUsedProfile()->GetPath());
@@ -1803,7 +1808,9 @@
   local_state->SetString(prefs::kProfileLastUsed, profile_basename1);
 
   // Delete the active profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // A new profile should have been created
@@ -1863,7 +1870,9 @@
   local_state->SetString(prefs::kProfileLastUsed, guest_profile_basename);
 
   // Delete the other profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // A new profile should have been created.
@@ -1907,8 +1916,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the default name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(default_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -1951,8 +1961,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the original, custom name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(custom_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -2004,8 +2015,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the original, actual profile name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(gaia_given_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -2127,7 +2139,9 @@
 
   // Delete the active profile. This should switch and load the unloaded
   // profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   content::RunAllTasksUntilIdle();
 
@@ -2201,10 +2215,14 @@
   // Try to break this flow by setting the active profile to Profile2 in the
   // middle (so after the first posted message), and trying to delete Profile2,
   // so that the ProfileManager has to look for a different profile to load.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   local_state->SetString(prefs::kProfileLastUsed,
                          profile_path2.BaseName().MaybeAsASCII());
-  profile_manager->ScheduleProfileForDeletion(profile_path2, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path2, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   EXPECT_EQ(profile_path3, profile_manager->GetLastUsedProfile()->GetPath());
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index b308b85..b853d43a 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -592,15 +592,16 @@
       content::Referrer(referring_url.GetAsReferrer(), params.referrer_policy));
 }
 
-content::WebContents* GetWebContentsToUse(content::WebContents* web_contents) {
+content::WebContents* GetWebContentsToUse(
+    content::RenderFrameHost* render_frame_host) {
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   // If we're viewing in a MimeHandlerViewGuest, use its embedder WebContents.
   auto* guest_view =
-      extensions::MimeHandlerViewGuest::FromWebContents(web_contents);
+      extensions::MimeHandlerViewGuest::FromRenderFrameHost(render_frame_host);
   if (guest_view)
     return guest_view->embedder_web_contents();
 #endif
-  return web_contents;
+  return content::WebContents::FromRenderFrameHost(render_frame_host);
 }
 
 bool g_custom_id_ranges_initialized = false;
@@ -723,7 +724,7 @@
       protocol_handler_registry_(
           ProtocolHandlerRegistryFactory::GetForBrowserContext(GetProfile())),
       accessibility_labels_submenu_model_(this),
-      embedder_web_contents_(GetWebContentsToUse(source_web_contents_)),
+      embedder_web_contents_(GetWebContentsToUse(&render_frame_host)),
       autofill_context_menu_manager_(
           autofill::PersonalDataManagerFactory::GetForProfile(
               GetProfile()->GetOriginalProfile()),
@@ -1756,7 +1757,7 @@
 
 void RenderViewContextMenu::AppendPluginItems() {
   if (params_.page_url == params_.src_url ||
-      (guest_view::GuestViewBase::IsGuest(source_web_contents_) &&
+      (guest_view::GuestViewBase::IsGuest(GetRenderFrameHost()) &&
        (!embedder_web_contents_ || !embedder_web_contents_->IsSavable()))) {
     // Both full page and embedded plugins are hosted as guest now,
     // the difference is a full page plugin is not considered as savable.
@@ -3083,8 +3084,8 @@
 }
 
 bool RenderViewContextMenu::IsViewSourceEnabled() const {
-  if (!!extensions::MimeHandlerViewGuest::FromWebContents(
-          source_web_contents_)) {
+  if (!!extensions::MimeHandlerViewGuest::FromRenderFrameHost(
+          GetRenderFrameHost())) {
     return false;
   }
   // Disallow ViewSource if DevTools are disabled.
@@ -3117,8 +3118,8 @@
   // If no |chrome_translate_client| attached with this WebContents or we're
   // viewing in a MimeHandlerViewGuest translate will be disabled.
   if (!chrome_translate_client ||
-      !!extensions::MimeHandlerViewGuest::FromWebContents(
-          source_web_contents_)) {
+      !!extensions::MimeHandlerViewGuest::FromRenderFrameHost(
+          GetRenderFrameHost())) {
     return false;
   }
   std::string source_lang =
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
index f973ba22..0070b17 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Aktuelle Uhrzeit</translation>
 <translation id="1161762950103988776">Sprung</translation>
 <translation id="1164857107703583584">Mit Sprungbefehlen kannst du effizient zwischen den Elementen einer Webseite wechseln.</translation>
+<translation id="116896278675803795">Sprache automatisch an ausgewählte Inhalte anpassen</translation>
 <translation id="1175914831232945926">Ziffern</translation>
 <translation id="1181003590763099524">An den Anfang verschieben</translation>
 <translation id="1188858454923323853">ergänzend</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
index 69b7aae..6739cc9 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Ora corrente</translation>
 <translation id="1161762950103988776">Collegamenti</translation>
 <translation id="1164857107703583584">I comandi di spostamento possono essere utilizzati per navigare in modo efficiente in una pagina web.</translation>
+<translation id="116896278675803795">Cambia automaticamente la lingua in base ai contenuti selezionati</translation>
 <translation id="1175914831232945926">Cifre</translation>
 <translation id="1181003590763099524">sposta all'inizio</translation>
 <translation id="1188858454923323853">elementi complementari</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
index f8af2f4..a02c3a6 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Азыркы убакыт</translation>
 <translation id="1161762950103988776">Секирүү</translation>
 <translation id="1164857107703583584">Секирүү буйруктары менен веб баракчадагы объекттерге тез өтүүгө болот.</translation>
+<translation id="116896278675803795">Тандалган контентке дал келтирүү үчүн тилди автоматтык түрдө өзгөртүү</translation>
 <translation id="1175914831232945926">Сандар</translation>
 <translation id="1181003590763099524">башына жылдыруу</translation>
 <translation id="1188858454923323853">кошумча</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb
index ead96e7..80604b7e 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Dabartinis laikas</translation>
 <translation id="1161762950103988776">Perėjimas</translation>
 <translation id="1164857107703583584">Naudojant perėjimo komandas galima efektyviai naršyti tinklalapį.</translation>
+<translation id="116896278675803795">Automatiškai keisti kalbą, kad atitiktų pasirinktą turinį</translation>
 <translation id="1175914831232945926">Skaitmenys</translation>
 <translation id="1181003590763099524">perkelti į pradžią</translation>
 <translation id="1188858454923323853">papildomas</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
index 68b6e03..4612544 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Hora atual</translation>
 <translation id="1161762950103988776">Saltar</translation>
 <translation id="1164857107703583584">Podem ser utilizados comandos de avanço para navegar eficazmente numa página Web.</translation>
+<translation id="116896278675803795">Alterar automaticamente o idioma para corresponder ao conteúdo selecionado</translation>
 <translation id="1175914831232945926">Dígitos</translation>
 <translation id="1181003590763099524">mover para o início</translation>
 <translation id="1188858454923323853">complementar</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb
index c7d6018..c5feb5f 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Ora actuală</translation>
 <translation id="1161762950103988776">Accesează</translation>
 <translation id="1164857107703583584">Comenzile de navigare pot fi folosite pentru a naviga eficient într-o pagină web.</translation>
+<translation id="116896278675803795">Setează schimbarea automată a limbii, astfel încât să corespundă conținutului selectat</translation>
 <translation id="1175914831232945926">Cifre</translation>
 <translation id="1181003590763099524">mută la început</translation>
 <translation id="1188858454923323853">complementar</translation>
diff --git a/chrome/browser/resources/chromeos/login/BUILD.gn b/chrome/browser/resources/chromeos/login/BUILD.gn
index 355e2326..ad7fe62c 100644
--- a/chrome/browser/resources/chromeos/login/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/BUILD.gn
@@ -212,8 +212,6 @@
     "components/test_util.m.js",
     "components/web_view_helper.m.js",
     "components/web_view_loader.m.js",
-    "screens/common/hw_data_collection.m.js",
-    "screens/common/smart_privacy_protection.m.js",
     "screens/common/sync_consent.m.js",
 
     # Special files.
@@ -272,6 +270,7 @@
     "screens/common/gaia_signin.js",
     "screens/common/gesture_navigation.js",
     "screens/common/guest_tos.js",
+    "screens/common/hw_data_collection.js",
     "screens/common/local_state_error.js",
     "screens/common/managed_terms_of_service.js",
     "screens/common/marketing_opt_in.js",
@@ -286,6 +285,7 @@
     "screens/common/recommend_apps.js",
     "screens/common/saml_confirm_password.js",
     "screens/common/signin_fatal_error.js",
+    "screens/common/smart_privacy_protection.js",
     "screens/common/theme_selection.js",
     "screens/common/tpm_error.js",
     "screens/common/user_creation.js",
@@ -385,7 +385,9 @@
 }
 
 js_library("display_manager") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/display_manager.js" ]
+  sources = [
+    "$root_gen_dir/chrome/browser/resources/chromeos/login/display_manager.js",
+  ]
   deps = [
     ":multi_tap_detector",
     "../keyboard:keyboard_utils.m",
diff --git a/chrome/browser/resources/chromeos/login/screens.js b/chrome/browser/resources/chromeos/login/screens.js
index 500f9223..596ef7d 100644
--- a/chrome/browser/resources/chromeos/login/screens.js
+++ b/chrome/browser/resources/chromeos/login/screens.js
@@ -22,7 +22,7 @@
 import './screens/common/gaia_signin.js';
 import './screens/common/gesture_navigation.js';
 import './screens/common/guest_tos.js';
-import './screens/common/hw_data_collection.m.js';
+import './screens/common/hw_data_collection.js';
 import './screens/common/local_state_error.js';
 import './screens/common/managed_terms_of_service.js';
 import './screens/common/marketing_opt_in.js';
@@ -37,7 +37,7 @@
 import './screens/common/recommend_apps.js';
 import './screens/common/saml_confirm_password.js';
 import './screens/common/signin_fatal_error.js';
-import './screens/common/smart_privacy_protection.m.js';
+import './screens/common/smart_privacy_protection.js';
 import './screens/common/sync_consent.m.js';
 import './screens/common/theme_selection.js';
 import './screens/common/tpm_error.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
index 62fae82..e2fb17ac 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
@@ -12,11 +12,7 @@
 assert(is_chromeos, "OOBE UI is only available on ChromeOS builds")
 
 group("polymer3_elements") {
-  public_deps = [
-    ":hw_data_collection_module",
-    ":smart_privacy_protection_module",
-    ":sync_consent_module",
-  ]
+  public_deps = [ ":sync_consent_module" ]
 }
 
 group("closure_compile") {
@@ -53,7 +49,7 @@
     ":gaia_signin",
     ":gesture_navigation",
     ":guest_tos",
-    ":hw_data_collection.m",
+    ":hw_data_collection",
     ":local_state_error",
     ":managed_terms_of_service",
     ":marketing_opt_in",
@@ -67,7 +63,7 @@
     ":recommend_apps",
     ":saml_confirm_password",
     ":signin_fatal_error",
-    ":smart_privacy_protection.m",
+    ":smart_privacy_protection",
     ":sync_consent.m",
     ":theme_selection",
     ":tpm_error",
@@ -317,15 +313,15 @@
   ]
 }
 
-js_library("hw_data_collection.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.m.js" ]
+js_library("hw_data_collection") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.js" ]
   deps = [
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:oobe_dialog_host_behavior.m",
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_text_button",
   ]
-  extra_deps = [ ":hw_data_collection_module" ]
+  extra_deps = [ ":web_components" ]
 }
 
 js_library("local_state_error") {
@@ -574,8 +570,8 @@
   extra_deps = [ ":web_components" ]
 }
 
-js_library("smart_privacy_protection.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.m.js" ]
+js_library("smart_privacy_protection") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.js" ]
   deps = [
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:oobe_dialog_host_behavior.m",
@@ -584,7 +580,7 @@
     "../../components/dialogs:oobe_adaptive_dialog",
     "//ui/webui/resources/js:load_time_data.m",
   ]
-  extra_deps = [ ":smart_privacy_protection_module" ]
+  extra_deps = [ ":web_components" ]
 }
 
 js_library("sync_consent.m") {
@@ -674,24 +670,6 @@
   extra_deps = [ ":web_components" ]
 }
 
-polymer_modulizer("hw_data_collection") {
-  js_file = "hw_data_collection.js"
-  html_file = "hw_data_collection.html"
-  html_type = "dom-module"
-  auto_imports = oobe_auto_imports
-  namespace_rewrites = oobe_namespace_rewrites
-  migrated_imports = oobe_migrated_imports
-}
-
-polymer_modulizer("smart_privacy_protection") {
-  js_file = "smart_privacy_protection.js"
-  html_file = "smart_privacy_protection.html"
-  html_type = "dom-module"
-  auto_imports = oobe_auto_imports
-  migrated_imports = oobe_migrated_imports
-  namespace_rewrites = oobe_namespace_rewrites
-}
-
 polymer_modulizer("sync_consent") {
   js_file = "sync_consent.js"
   html_file = "sync_consent.html"
@@ -719,6 +697,7 @@
     "gaia_signin.js",
     "gesture_navigation.js",
     "guest_tos.js",
+    "hw_data_collection.js",
     "local_state_error.js",
     "managed_terms_of_service.js",
     "marketing_opt_in.js",
@@ -733,6 +712,7 @@
     "recommend_apps.js",
     "saml_confirm_password.js",
     "signin_fatal_error.js",
+    "smart_privacy_protection.js",
     "theme_selection.js",
     "tpm_error.js",
     "user_creation.js",
diff --git a/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.html b/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.html
index a9ff85b..238d8c7 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.html
+++ b/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.html
@@ -4,55 +4,35 @@
 found in the LICENSE file.
 -->
 
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="oobe-dialog-host-styles">
+  #dataUsageLabelContainer {
+    color: var(--google-grey-700); /* #5F6368 */
+    line-height: 18px;
+  }
 
-<link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_shared_style.css.html">
-<link rel="import" href="chrome://resources/html/action_link.html">
-
-<link rel="import" href="../../components/oobe_icons.html">
-<link rel="import" href="../../components/behaviors/login_screen_behavior.html">
-<link rel="import" href="../../components/behaviors/oobe_i18n_behavior.html">
-<link rel="import" href="../../components/behaviors/oobe_dialog_host_behavior.html">
-<link rel="import" href="../../components/buttons/oobe_text_button.html">
-<link rel="import" href="../../components/common_styles/common_styles.html">
-<link rel="import" href="../../components/common_styles/oobe_dialog_host_styles.html">
-<link rel="import" href="../../components/dialogs/oobe_adaptive_dialog.html">
-
-<dom-module id="hw-data-collection-element">
-  <template>
-    <style include="oobe-dialog-host-styles">
-      #dataUsageLabelContainer {
-        color: var(--google-grey-700); /* #5F6368 */
-        line-height: 18px;
-      }
-
-      #dataUsageLabel {
-        cursor: pointer;
-      }
-    </style>
-    <oobe-adaptive-dialog id="dialog" role="dialog">
-      <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon>
-      <h1 slot="title">[[i18nDynamic(locale, 'HWDataCollectionTitle')]]</h1>
-      <div slot="content" class="flex layout vertical center-justified">
-        <span inner-h-t-m-l="[[getHWDataCollectionContent_(locale)]]"></span>
-        <div id="logging" class="layout horizontal">
-          <cr-checkbox id="dataUsage" class="layout self-center"
-              checked="{{dataUsageChecked}}" on-change="onDataUsageChanged_"
-              aria-labelledby="usageStatsLabel">
-            <div id="dataUsageLabelContainer">
-              <span id="dataUsageLabel">
-                [[i18nDynamic(locale, 'HWDataCollectionUsageInfo')]]
-              </span>
-            </div>
-          </cr-checkbox>
+  #dataUsageLabel {
+    cursor: pointer;
+  }
+</style>
+<oobe-adaptive-dialog id="dialog" role="dialog">
+  <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon>
+  <h1 slot="title">[[i18nDynamic(locale, 'HWDataCollectionTitle')]]</h1>
+  <div slot="content" class="flex layout vertical center-justified">
+    <span inner-h-t-m-l="[[getHWDataCollectionContent_(locale)]]"></span>
+    <div id="logging" class="layout horizontal">
+      <cr-checkbox id="dataUsage" class="layout self-center"
+          checked="{{dataUsageChecked}}" on-change="onDataUsageChanged_"
+          aria-labelledby="usageStatsLabel">
+        <div id="dataUsageLabelContainer">
+          <span id="dataUsageLabel">
+            [[i18nDynamic(locale, 'HWDataCollectionUsageInfo')]]
+          </span>
         </div>
-      </div>
-      <div slot="bottom-buttons">
-        <oobe-text-button id="acceptButton" on-click="onAcceptButtonClicked_"
-            inverse text-key="HWDataCollectionNextButton"></oobe-text-button>
-      </div>
-    </oobe-adaptive-dialog>
-  </template>
-  <script src="hw_data_collection.js"></script>
-</dom-module>
+      </cr-checkbox>
+    </div>
+  </div>
+  <div slot="bottom-buttons">
+    <oobe-text-button id="acceptButton" on-click="onAcceptButtonClicked_"
+        inverse text-key="HWDataCollectionNextButton"></oobe-text-button>
+  </div>
+</oobe-adaptive-dialog>
diff --git a/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.js b/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.js
index 330a919..75adc12 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/hw_data_collection.js
@@ -6,7 +6,24 @@
  * @fileoverview Polymer element for HW data collection screen.
  */
 
-/* #js_imports_placeholder */
+import '//resources/cr_elements/cr_checkbox/cr_checkbox.js';
+import '//resources/cr_elements/cr_shared_style.css.js';
+import '//resources/js/action_link.js';
+
+import '../../components/oobe_icons.m.js';
+import '../../components/buttons/oobe_text_button.js';
+import '../../components/common_styles/common_styles.m.js';
+import '../../components/common_styles/oobe_dialog_host_styles.m.js';
+import '../../components/dialogs/oobe_adaptive_dialog.js';
+
+
+import {html, mixinBehaviors, Polymer, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
+import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
+import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
+
+
 
 /**
  * @constructor
@@ -14,9 +31,9 @@
  * @implements {LoginScreenBehaviorInterface}
  * @implements {OobeI18nBehaviorInterface}
  */
-const HWDataCollectionScreenElementBase = Polymer.mixinBehaviors(
+const HWDataCollectionScreenElementBase = mixinBehaviors(
     [OobeDialogHostBehavior, OobeI18nBehavior, LoginScreenBehavior],
-    Polymer.Element);
+    PolymerElement);
 
 /**
  * @polymer
@@ -26,7 +43,9 @@
     return 'hw-data-collection-element';
   }
 
-  /* #html_template_placeholder */
+  static get template() {
+    return html`{__html_template__}`;
+  }
 
   static get properties() {
     return {
diff --git a/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.html b/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.html
index eb78b31..9211b7e 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.html
+++ b/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.html
@@ -4,100 +4,81 @@
 found in the LICENSE file.
 -->
 
-<link rel="import" href="chrome://resources/html/load_time_data.html">
-<link rel="import" href="chrome://resources/html/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
+<style include="oobe-dialog-host-styles">
+  .overview-list-item {
+    border-bottom: 1px solid var(--google-grey-200);
+    padding: 16px;
+  }
 
-<link rel="import" href="../../components/oobe_icons.html">
-<link rel="import" href="../../components/behaviors/login_screen_behavior.html">
-<link rel="import" href="../../components/behaviors/oobe_dialog_host_behavior.html">
-<link rel="import" href="../../components/behaviors/oobe_i18n_behavior.html">
-<link rel="import" href="../../components/buttons/oobe_text_button.html">
-<link rel="import" href="../../components/common_styles/common_styles.html">
-<link rel="import" href="../../components/common_styles/oobe_dialog_host_styles.html">
-<link rel="import" href="../../components/dialogs/oobe_adaptive_dialog.html">
+  .overview-list-item-title {
+    color: var(--oobe-header-text-color);
+    font-size: 14px;
+    font-weight: 500; /* roboto-medium */
+    line-height: 24px;
+    margin-bottom: 4px;
+  }
 
-<dom-module id="smart-privacy-protection-element">
-  <template>
-    <style include="oobe-dialog-host-styles">
-      .overview-list-item {
-        border-bottom: 1px solid var(--google-grey-200);
-        padding: 16px;
-      }
+  .overview-list-item-icon {
+    --iron-icon-fill-color: var(--google-blue-600);
+    padding-inline-end: 16px;
+  }
 
-      .overview-list-item-title {
-        color: var(--oobe-header-text-color);
-        font-size: 14px;
-        font-weight: 500; /* roboto-medium */
-        line-height: 24px;
-        margin-bottom: 4px;
-      }
+  .overview-list-item-description {
+    padding-inline-end: 16px;
+  }
 
-      .overview-list-item-icon {
-        --iron-icon-fill-color: var(--google-blue-600);
-        padding-inline-end: 16px;
-      }
+  .content-footer {
+    padding-top: 16px;
+  }
 
-      .overview-list-item-description {
-        padding-inline-end: 16px;
-      }
-
-      .content-footer {
-        padding-top: 16px;
-      }
-
-      .subtitle-illustration {
-        max-height: 250px;
-      }
-    </style>
-      <oobe-adaptive-dialog role="dialog"
-          aria-label$="[[i18nDynamic(locale,
-              'smartPrivacyProtectionScreenTitle')]]">
-        <iron-icon slot="icon" icon="cr:security"></iron-icon>
-        <h1 slot="title">
-          [[i18nDynamic(locale, 'smartPrivacyProtectionScreenTitle')]]
-        </h1>
-        <img slot="subtitle" src="images/smart_privacy.svg"
-            class="oobe-illustration subtitle-illustration" aria-hidden="true">
-        <div slot="content" class="landscape-header-aligned">
-          <div id="quickDimSection" class="overview-list-item layout horizontal"
-              hidden="[[!isQuickDimEnabled_]]">
-            <iron-icon class="overview-list-item-icon" icon="oobe-24:lock">
-            </iron-icon>
-            <div class="flex layout vertical center-justified">
-              <div role="heading" aria-level="2"
-                  class="overview-list-item-title">
-                [[i18nDynamic(locale, 'smartPrivacyProtectionScreenLock')]]
-              </div>
-              <div class="overview-list-item-description">
-                [[i18nDynamic(locale, 'smartPrivacyProtectionScreenLockDesc')]]
-              </div>
-            </div>
+  .subtitle-illustration {
+    max-height: 250px;
+  }
+</style>
+  <oobe-adaptive-dialog role="dialog"
+      aria-label$="[[i18nDynamic(locale,
+          'smartPrivacyProtectionScreenTitle')]]">
+    <iron-icon slot="icon" icon="cr:security"></iron-icon>
+    <h1 slot="title">
+      [[i18nDynamic(locale, 'smartPrivacyProtectionScreenTitle')]]
+    </h1>
+    <img slot="subtitle" src="images/smart_privacy.svg"
+        class="oobe-illustration subtitle-illustration" aria-hidden="true">
+    <div slot="content" class="landscape-header-aligned">
+      <div id="quickDimSection" class="overview-list-item layout horizontal"
+          hidden="[[!isQuickDimEnabled_]]">
+        <iron-icon class="overview-list-item-icon" icon="oobe-24:lock">
+        </iron-icon>
+        <div class="flex layout vertical center-justified">
+          <div role="heading" aria-level="2"
+              class="overview-list-item-title">
+            [[i18nDynamic(locale, 'smartPrivacyProtectionScreenLock')]]
           </div>
-          <div class="content-footer">
-            [[i18nDynamic(locale, 'smartPrivacyProtectionContent')]]
+          <div class="overview-list-item-description">
+            [[i18nDynamic(locale, 'smartPrivacyProtectionScreenLockDesc')]]
           </div>
         </div>
-        <div slot="bottom-buttons">
-          <oobe-text-button id="noThanksButton"
-              on-click="onNoThanksButtonClicked_"
-              label-for-aria="[[i18nDynamic(locale,
-                  'smartPrivacyProtectionTurnOffButton')]]">
-            <div slot="text">
-              [[i18nDynamic(locale, 'smartPrivacyProtectionTurnOffButton')]]
-            </div>
-          </oobe-text-button>
-          <oobe-text-button id="turnOnButton" inverse="[[!isMinorMode_]]"
-              class="focus-on-show" on-click="onTurnOnButtonClicked_"
-              label-for-aria="[[i18nDynamic(locale,
-                  'smartPrivacyProtectionTurnOnButton')]]">
-            <div slot="text">
-              [[i18nDynamic(locale, 'smartPrivacyProtectionTurnOnButton')]]
-            </div>
-          </oobe-text-button>
+      </div>
+      <div class="content-footer">
+        [[i18nDynamic(locale, 'smartPrivacyProtectionContent')]]
+      </div>
+    </div>
+    <div slot="bottom-buttons">
+      <oobe-text-button id="noThanksButton"
+          on-click="onNoThanksButtonClicked_"
+          label-for-aria="[[i18nDynamic(locale,
+              'smartPrivacyProtectionTurnOffButton')]]">
+        <div slot="text">
+          [[i18nDynamic(locale, 'smartPrivacyProtectionTurnOffButton')]]
         </div>
-      </oobe-adaptive-dialog>
-  </template>
-  <script src="smart_privacy_protection.js"></script>
-</dom-module>
+      </oobe-text-button>
+      <oobe-text-button id="turnOnButton" inverse="[[!isMinorMode_]]"
+          class="focus-on-show" on-click="onTurnOnButtonClicked_"
+          label-for-aria="[[i18nDynamic(locale,
+              'smartPrivacyProtectionTurnOnButton')]]">
+        <div slot="text">
+          [[i18nDynamic(locale, 'smartPrivacyProtectionTurnOnButton')]]
+        </div>
+      </oobe-text-button>
+    </div>
+  </oobe-adaptive-dialog>
diff --git a/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.js b/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.js
index c430bdc..00787340 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/smart_privacy_protection.js
@@ -6,7 +6,21 @@
  * @fileoverview Polymer element for smart privacy protection screen.
  */
 
-/* #js_imports_placeholder */
+import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
+import '//resources/polymer/v3_0/iron-iconset-svg/iron-iconset-svg.js';
+import '../../components/oobe_icons.m.js';
+import '../../components/common_styles/common_styles.m.js';
+import '../../components/common_styles/oobe_dialog_host_styles.m.js';
+
+import {loadTimeData} from '//resources/js/load_time_data.m.js';
+import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
+import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
+import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
+import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
+import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
+
 
 /**
  * @constructor
@@ -14,9 +28,9 @@
  * @implements {LoginScreenBehaviorInterface}
  * @implements {OobeI18nBehaviorInterface}
  */
-const SmartPrivacyProtectionScreenElementBase = Polymer.mixinBehaviors(
+const SmartPrivacyProtectionScreenElementBase = mixinBehaviors(
     [OobeDialogHostBehavior, OobeI18nBehavior, LoginScreenBehavior],
-    Polymer.Element);
+    PolymerElement);
 
 /**
  * @polymer
@@ -27,7 +41,9 @@
     return 'smart-privacy-protection-element';
   }
 
-  /* #html_template_placeholder */
+  static get template() {
+    return html`{__html_template__}`;
+  }
 
   static get properties() {
     return {
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index 470518c..1763393 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -148,7 +148,6 @@
     "controls/settings_dropdown_menu.ts",
     "controls/settings_radio_group.ts",
     "controls/settings_slider.ts",
-    "controls/settings_textarea.ts",
     "controls/settings_toggle_button.ts",
     "downloads_page/downloads_page.ts",
     "on_startup_page/on_startup_page.ts",
diff --git a/chrome/browser/resources/settings/autofill_page/address_edit_dialog.html b/chrome/browser/resources/settings/autofill_page/address_edit_dialog.html
index de15d5a..d4f1523a 100644
--- a/chrome/browser/resources/settings/autofill_page/address_edit_dialog.html
+++ b/chrome/browser/resources/settings/autofill_page/address_edit_dialog.html
@@ -32,7 +32,7 @@
       }
 
       cr-input:not(.last-row),
-      settings-textarea,
+      cr-textarea,
       .md-select {
         margin-bottom: var(--cr-form-field-bottom-spacing);
       }
@@ -70,11 +70,11 @@
           <div class="address-row">
             <template is="dom-repeat" items="[[item]]">
               <template is="dom-if" if="[[item.isTextArea]]">
-                <settings-textarea label="[[item.component.fieldName]]"
+                <cr-textarea label="[[item.component.fieldName]]"
                     value="{{item.value}}" on-value-changed="updateCanSave_"
                     class$="address-column [[long_(item)]]"
                     spellcheck="false" maxlength="1000">
-                </settings-textarea>
+                </cr-textarea>
               </template>
               <template is="dom-if" if="[[!item.isTextArea]]">
                 <cr-input type="text" label="[[item.component.fieldName]]"
diff --git a/chrome/browser/resources/settings/autofill_page/address_edit_dialog.ts b/chrome/browser/resources/settings/autofill_page/address_edit_dialog.ts
index b768c9b..55f9040 100644
--- a/chrome/browser/resources/settings/autofill_page/address_edit_dialog.ts
+++ b/chrome/browser/resources/settings/autofill_page/address_edit_dialog.ts
@@ -11,16 +11,16 @@
 import 'chrome://resources/cr_elements/cr_input/cr_input.js';
 import 'chrome://resources/cr_elements/cr_shared_style.css.js';
 import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import 'chrome://resources/cr_elements/md_select.css.js';
 import '../settings_shared.css.js';
 import '../settings_vars.css.js';
-import '../controls/settings_textarea.js';
 
 import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
 import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
 import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import {assertNotReached} from 'chrome://resources/js/assert_ts.js';
 import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
+import {assertNotReached} from 'chrome://resources/js/assert_ts.js';
 import {flush, microTask, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {loadTimeData} from '../i18n_setup.js';
diff --git a/chrome/browser/resources/settings/autofill_page/password_check_list_item.html b/chrome/browser/resources/settings/autofill_page/password_check_list_item.html
index ec88c7a..eff677445 100644
--- a/chrome/browser/resources/settings/autofill_page/password_check_list_item.html
+++ b/chrome/browser/resources/settings/autofill_page/password_check_list_item.html
@@ -6,17 +6,6 @@
         --iron-icon-fill-color: var(--text-color-action);
       }
 
-      #change-password-automatically-icon {
-        --cr-icon-image: url(chrome://settings/images/google_assistant.svg);
-        -webkit-mask-size: 12px;
-        background-color: var(--text-color-action);
-        display: block;
-        height: 16px;
-        margin-inline-end: 0;
-        margin-inline-start: 10px;
-        width: 16px;
-      }
-
       #insecurePassword {
         background-color: transparent;
         border: none;
@@ -80,19 +69,12 @@
         fill: var(--google-blue-600);
       }
 
-      #change-password-automatically-icon.icon-weak-cta {
-        background-color: var(--google-blue-600);
-      }
-
       /* dark mode */
       @media (prefers-color-scheme: dark) {
         .icon-weak-cta {
           fill: var(--google-blue-300);
         }
 
-        #change-password-automatically-icon.icon-weak-cta {
-          background-color: var(--google-blue-300);
-        }
       }
 
       :host-context([dir='rtl']) #insecureOrigin {
@@ -140,15 +122,9 @@
           <cr-button id="changePasswordButton" class$="[[buttonClass_]]"
               on-click="onChangePasswordClick_">
             $i18n{changePasswordButton}
-            <template is="dom-if" if="[[!item.hasStartableScript]]">
-              <iron-icon icon="cr:open-in-new" id="change-password-link-icon"
-                  class$="[[iconClass_]]">
-              </iron-icon>
-            </template>
-            <template is="dom-if" if="[[item.hasStartableScript]]">
-              <span id="change-password-automatically-icon"
-                  class$="cr-icon [[iconClass_]]"></span>
-            </template>
+            <iron-icon icon="cr:open-in-new" id="change-password-link-icon"
+                class$="[[iconClass_]]">
+            </iron-icon>
           </cr-button>
           <a id="alreadyChanged" hidden="[[!clickedChangePassword]]"
               is="action-link" on-click="onAlreadyChangedClick_">
diff --git a/chrome/browser/resources/settings/autofill_page/password_check_list_item.ts b/chrome/browser/resources/settings/autofill_page/password_check_list_item.ts
index b23c2650..38131d3a 100644
--- a/chrome/browser/resources/settings/autofill_page/password_check_list_item.ts
+++ b/chrome/browser/resources/settings/autofill_page/password_check_list_item.ts
@@ -122,20 +122,12 @@
   private onChangePasswordClick_() {
     this.fire_('change-password-clicked', {id: this.item.id});
 
-    if (this.item.hasStartableScript) {
-      // TODO(crbug.com/1340073): Consider removing element on receiving result.
-      this.passwordManager_.startAutomatedPasswordChange(this.item);
-    } else {
-      assert(this.item.changePasswordUrl);
-      OpenWindowProxyImpl.getInstance().openURL(this.item.changePasswordUrl);
-    }
-
-    this.passwordManager_.recordPasswordCheckInteraction(
-        this.item.hasStartableScript ?
-            PasswordCheckInteraction.CHANGE_PASSWORD_AUTOMATICALLY :
-            PasswordCheckInteraction.CHANGE_PASSWORD);
-    this.passwordManager_.recordChangePasswordFlowStarted(
-        this.item, /*is_manual_flow=*/ !this.item.hasStartableScript);
+    assert(this.item.changePasswordUrl);
+    OpenWindowProxyImpl.getInstance().openURL(this.item.changePasswordUrl);
+    PasswordManagerImpl.getInstance().recordChangePasswordFlowStarted(
+        this.item);
+    PasswordManagerImpl.getInstance().recordPasswordCheckInteraction(
+        PasswordCheckInteraction.CHANGE_PASSWORD);
   }
 
   private onMoreClick_(event: Event) {
@@ -168,10 +160,6 @@
     return 'icon-weak-cta';
   }
 
-  private getIconName_(): string {
-    return this.item.hasStartableScript ? '' : 'cr:open-in-new';
-  }
-
   private computePassword_(): string {
     const NUM_PLACEHOLDERS = 10;
     return this.item.password || ' '.repeat(NUM_PLACEHOLDERS);
diff --git a/chrome/browser/resources/settings/autofill_page/password_edit_dialog.html b/chrome/browser/resources/settings/autofill_page/password_edit_dialog.html
index e4b55e7..0f3c8b8 100644
--- a/chrome/browser/resources/settings/autofill_page/password_edit_dialog.html
+++ b/chrome/browser/resources/settings/autofill_page/password_edit_dialog.html
@@ -45,9 +45,9 @@
         margin: var(--cr-form-field-bottom-spacing) 0;
       }
 
-      :host([dialog-mode='edit']) settings-textarea,
-      :host([dialog-mode='add']) settings-textarea {
-        --settings-textarea-footer-display: flex;
+      :host([dialog-mode='edit']) cr-textarea,
+      :host([dialog-mode='add']) cr-textarea {
+        --cr-textarea-footer-display: flex;
       }
     </style>
     <cr-dialog id="dialog" close-text="$i18n{close}" show-on-attach>
@@ -120,7 +120,7 @@
         </div>
         <template is="dom-if" if="[[shouldShowNote_(dialogMode)]]" restamp>
           <div class="divider"></div>
-          <settings-textarea label="$i18n{passwordNoteLabel}"
+          <cr-textarea label="$i18n{passwordNoteLabel}"
               value="{{note_}}"
               id="note"
               readonly$="[[isInFederatedViewMode_]]"
@@ -128,7 +128,7 @@
               second-footer="[[noteSecondFooter_]]"
               invalid="[[noteInvalid_]]"
               autogrow>
-          </settings-textarea>
+          </cr-textarea>
         </template>
       </div>
       <div slot="button-container">
diff --git a/chrome/browser/resources/settings/autofill_page/password_edit_dialog.ts b/chrome/browser/resources/settings/autofill_page/password_edit_dialog.ts
index 0f5cc68e..85ba830 100644
--- a/chrome/browser/resources/settings/autofill_page/password_edit_dialog.ts
+++ b/chrome/browser/resources/settings/autofill_page/password_edit_dialog.ts
@@ -13,6 +13,7 @@
 import 'chrome://resources/cr_elements/cr_input/cr_input.js';
 import 'chrome://resources/cr_elements/cr_icons.css.js';
 import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import '../icons.html.js';
 import '../settings_shared.css.js';
 import '../settings_vars.css.js';
@@ -21,8 +22,8 @@
 import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
 import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
 import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
 import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
+import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {loadTimeData} from '../i18n_setup.js';
diff --git a/chrome/browser/resources/settings/autofill_page/password_manager_proxy.ts b/chrome/browser/resources/settings/autofill_page/password_manager_proxy.ts
index 2cf97f0..b9bc7c3 100644
--- a/chrome/browser/resources/settings/autofill_page/password_manager_proxy.ts
+++ b/chrome/browser/resources/settings/autofill_page/password_manager_proxy.ts
@@ -208,13 +208,6 @@
   optInForAccountStorage(optIn: boolean): void;
 
   /**
-   * Refreshes the cache for automatic password change scripts if the cache is
-   * stale.
-   * @return A promise that resolves when the cache is fresh.
-   */
-  refreshScriptsIfNecessary(): Promise<void>;
-
-  /**
    * Requests the start of the bulk password check.
    */
   startBulkPasswordCheck(): Promise<void>;
@@ -236,13 +229,6 @@
       Promise<chrome.passwordsPrivate.PasswordCheckStatus>;
 
   /**
-   * Starts an automated password change flow.
-   * @param credential The credential for which to start the flow.
-   */
-  startAutomatedPasswordChange(
-      credential: chrome.passwordsPrivate.PasswordUiEntry): Promise<boolean>;
-
-  /**
    * Dismisses / mutes the |insecureCredential| in the passwords store.
    */
   muteInsecureCredential(insecureCredential:
@@ -255,12 +241,10 @@
                                chrome.passwordsPrivate.PasswordUiEntry): void;
 
   /**
-   * Records the state of a change password flow for |insecureCredential|
-   * and notes it is a manual flow via |isManualFlow|.
+   * Records the state of a change password flow for |insecureCredential|.
    */
   recordChangePasswordFlowStarted(
-      insecureCredential: chrome.passwordsPrivate.PasswordUiEntry,
-      isManualFlow: boolean): void;
+      insecureCredential: chrome.passwordsPrivate.PasswordUiEntry): void;
 
   /**
    * Requests extension of authentication validity.
@@ -490,19 +474,10 @@
     return chrome.passwordsPrivate.getPasswordCheckStatus();
   }
 
-  startAutomatedPasswordChange(credential:
-                                   chrome.passwordsPrivate.PasswordUiEntry) {
-    return chrome.passwordsPrivate.startAutomatedPasswordChange(credential);
-  }
-
   optInForAccountStorage(optIn: boolean) {
     chrome.passwordsPrivate.optInForAccountStorage(optIn);
   }
 
-  refreshScriptsIfNecessary() {
-    return chrome.passwordsPrivate.refreshScriptsIfNecessary();
-  }
-
   startBulkPasswordCheck() {
     // Note: PasswordCheck can be run automatically, such as when the row or
     // button is clicked from the passwords_section page. In this case, we also
@@ -531,11 +506,9 @@
     chrome.passwordsPrivate.unmuteInsecureCredential(insecureCredential);
   }
 
-  recordChangePasswordFlowStarted(
-      insecureCredential: chrome.passwordsPrivate.PasswordUiEntry,
-      isManualFlow: boolean) {
-    chrome.passwordsPrivate.recordChangePasswordFlowStarted(
-        insecureCredential, isManualFlow);
+  recordChangePasswordFlowStarted(insecureCredential:
+                                      chrome.passwordsPrivate.PasswordUiEntry) {
+    chrome.passwordsPrivate.recordChangePasswordFlowStarted(insecureCredential);
   }
 
   extendAuthValidity() {
diff --git a/chrome/browser/resources/settings/autofill_page/passwords_import_dialog.ts b/chrome/browser/resources/settings/autofill_page/passwords_import_dialog.ts
index 78ed87d1..0106a738 100644
--- a/chrome/browser/resources/settings/autofill_page/passwords_import_dialog.ts
+++ b/chrome/browser/resources/settings/autofill_page/passwords_import_dialog.ts
@@ -336,6 +336,9 @@
         return this.i18n('importPasswordsConflictDevice');
       case chrome.passwordsPrivate.ImportEntryStatus.CONFLICT_ACCOUNT:
         return this.i18n('importPasswordsConflictAccount', this.accountEmail);
+      case chrome.passwordsPrivate.ImportEntryStatus.LONG_NOTE:
+      case chrome.passwordsPrivate.ImportEntryStatus.LONG_CONCATENATED_NOTE:
+        return this.i18n('importPasswordsLongNote');
       case chrome.passwordsPrivate.ImportEntryStatus.UNKNOWN_ERROR:
       default:
         assertNotReached();
diff --git a/chrome/browser/resources/settings/autofill_page/passwords_section.ts b/chrome/browser/resources/settings/autofill_page/passwords_section.ts
index d706d53..6f384ebf9 100644
--- a/chrome/browser/resources/settings/autofill_page/passwords_section.ts
+++ b/chrome/browser/resources/settings/autofill_page/passwords_section.ts
@@ -227,14 +227,6 @@
         value: false,
       },
 
-      isAutomaticPasswordChangeEnabled_: {
-        type: Boolean,
-        value() {
-          return loadTimeData.getBoolean(
-              'enableAutomaticPasswordChangeInSettings');
-        },
-      },
-
       isPasswordViewPageEnabled_: {
         type: Boolean,
         value() {
@@ -292,7 +284,6 @@
   private numberOfDevicePasswords_: number;
   private hasPasswordExceptions_: boolean;
   private shouldShowBanner_: boolean;
-  private isAutomaticPasswordChangeEnabled_: boolean;
   private isPasswordViewPageEnabled_: boolean;
   private shouldShowDevicePasswordsLink_: boolean;
   private trustedVaultBannerState_: TrustedVaultBannerState;
@@ -395,12 +386,6 @@
       return;
     }
 
-    // If password change scripts are enabled, the scripts cache should be
-    // refreshed to minimize any UI modifications on the password check page.
-    if (this.isAutomaticPasswordChangeEnabled_) {
-      this.passwordManager_.refreshScriptsIfNecessary();
-    }
-
     // Show the auth timeout dialog if the URL has the URL param.
     const params = Router.getInstance().getQueryParameters();
     if (!params.get(PASSWORD_MANAGER_AUTH_TIMEOUT_PARAM)) {
diff --git a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.html b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.html
index ae099c48..2ad7bdf5 100644
--- a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.html
@@ -136,9 +136,9 @@
         </template>
       </h3>
 
-      <settings-textarea id="config" value="{{editableConfig_}}" rows=12
+      <cr-textarea id="config" value="{{editableConfig_}}" rows=12
           spellcheck="false" disabled="[[isManaged_]]">
-      </settings-textarea>
+      </cr-textarea>
 
       <div id="config-error-container"
           hidden="[[!showError_(configErrorText_)]]">
diff --git a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts
index 22ce121..dbcb735b 100644
--- a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts
+++ b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts
@@ -14,19 +14,19 @@
 import 'chrome://resources/cr_elements/icons.html.js';
 import 'chrome://resources/cr_elements/policy/cr_policy_indicator.js';
 import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import 'chrome://resources/js/action_link.js';
 import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
-import '../../controls/settings_textarea.js';
 import '../../settings_shared.css.js';
 
 import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
 import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
+import {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
 import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {flush, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {SettingsTextareaElement} from '../../controls/settings_textarea.js';
 import {castExists} from '../assert_extras.js';
 import {recordSettingChange} from '../metrics_recorder.js';
 
@@ -421,7 +421,7 @@
     // Don't fall for the classical blunder 0 == false.
     if (result.errorInfo.lineIndex !== undefined) {
       const textArea = castExists(
-          this.shadowRoot!.querySelector<SettingsTextareaElement>('#config')!
+          this.shadowRoot!.querySelector<CrTextareaElement>('#config')!
               .shadowRoot!.querySelector<HTMLTextAreaElement>('#input'));
       errorLine = this.selectAndScrollTo_(textArea, result.errorInfo.lineIndex);
     }
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.gni b/chrome/browser/resources/settings/chromeos/os_settings.gni
index 5429813e..4300f37 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.gni
+++ b/chrome/browser/resources/settings/chromeos/os_settings.gni
@@ -141,7 +141,6 @@
   "controls/settings_dropdown_menu.ts",
   "controls/settings_radio_group.ts",
   "controls/settings_slider.ts",
-  "controls/settings_textarea.ts",
   "controls/settings_toggle_button.ts",
   "people_page/signout_dialog.ts",
   "people_page/sync_account_control.ts",
diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts
index 61a6064..ce664240 100644
--- a/chrome/browser/resources/settings/lazy_load.ts
+++ b/chrome/browser/resources/settings/lazy_load.ts
@@ -73,6 +73,7 @@
 export {CrIconButtonElement} from 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
 export {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
 export {CrSliderElement} from 'chrome://resources/cr_elements/cr_slider/cr_slider.js';
+export {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 export {getToastManager} from 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js';
 export {IronListElement} from 'chrome://resources/polymer/v3_0/iron-list/iron-list.js';
 export {SettingsAppearanceFontsPageElement} from './appearance_page/appearance_fonts_page.js';
@@ -120,7 +121,6 @@
 export {SettingsCheckboxElement} from './controls/settings_checkbox.js';
 export {SettingsRadioGroupElement} from './controls/settings_radio_group.js';
 export {SettingsSliderElement} from './controls/settings_slider.js';
-export {SettingsTextareaElement} from './controls/settings_textarea.js';
 export {DownloadsBrowserProxy, DownloadsBrowserProxyImpl} from './downloads_page/downloads_browser_proxy.js';
 export {SettingsDownloadsPageElement} from './downloads_page/downloads_page.js';
 // <if expr="_google_chrome and is_win">
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.ts b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
index d6b00eff..1df73c6 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.ts
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
@@ -148,12 +148,9 @@
     }
     // </if>
 
-    // Currently, only automated password change uses Autofill Assistant. Only
-    // show the toggle if at least one entry point is enabled.
-    // Additional, the user must be signed in since the consent dialog uses the
+    // The user must be signed in since the consent dialog uses the
     // sync bridge for consent recording.
-    return loadTimeData.getBoolean('isAutomatedPasswordChangeEnabled') &&
-        !!this.syncStatus && !!this.syncStatus.signedIn;
+    return !!this.syncStatus && !!this.syncStatus.signedIn;
   }
 
   private showPriceEmailNotificationsToggle_(): boolean {
diff --git a/chrome/browser/resources/settings/privacy_page/secure_dns_input.html b/chrome/browser/resources/settings/privacy_page/secure_dns_input.html
index 59d9be82..118487c 100644
--- a/chrome/browser/resources/settings/privacy_page/secure_dns_input.html
+++ b/chrome/browser/resources/settings/privacy_page/secure_dns_input.html
@@ -5,16 +5,16 @@
         width: 100%;
       }
 
-      settings-textarea {
+      cr-textarea {
         width: 100%;
         --cr-input-width: 75%;
-        --settings-textarea-footer-display: flex;
+        --cr-textarea-footer-display: flex;
       }
     </style>
     <!-- Max length of 100 KB to prevent browser from freezing. -->
-    <settings-textarea id="input" value="{{value}}" rows=1 autogrow="true"
+    <cr-textarea id="input" value="{{value}}" rows=1 autogrow="true"
         placeholder="$i18n{secureDnsCustomPlaceholder}" invalid="[[showError_]]"
         first-footer="[[errorText_]]" maxlength="102400" spellcheck="false"
         on-keypress="onKeyPress_" on-input="onInput_"
         on-blur="validate" on-change="validate">
-    </settings-textarea>
+    </cr-textarea>
diff --git a/chrome/browser/resources/settings/privacy_page/secure_dns_input.ts b/chrome/browser/resources/settings/privacy_page/secure_dns_input.ts
index 2e8bc5c6..788ba2f 100644
--- a/chrome/browser/resources/settings/privacy_page/secure_dns_input.ts
+++ b/chrome/browser/resources/settings/privacy_page/secure_dns_input.ts
@@ -7,9 +7,11 @@
  * with the secure DNS setting to configure custom servers. It is based on
  * `home-url-input`.
  */
+import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
+
+import {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {SettingsTextareaElement} from '../controls/settings_textarea';
 import {loadTimeData} from '../i18n_setup.js';
 
 import {PrivacyPageBrowserProxy, PrivacyPageBrowserProxyImpl} from './privacy_page_browser_proxy.js';
@@ -17,7 +19,7 @@
 
 export interface SecureDnsInputElement {
   $: {
-    input: SettingsTextareaElement,
+    input: CrTextareaElement,
   };
 }
 
diff --git a/chrome/browser/resources/support_tool/DIR_METADATA b/chrome/browser/resources/support_tool/DIR_METADATA
new file mode 100644
index 0000000..5fbed30
--- /dev/null
+++ b/chrome/browser/resources/support_tool/DIR_METADATA
@@ -0,0 +1,7 @@
+buganizer {
+  component_id: 1111615 # ChromeOS > Software > Commercial (Enterprise) > Supportability
+}
+buganizer_public {
+    component_id: 1199457 # ChromeOS > Public Tracker > Services > Supportability
+}
+team_email: "chromeos-commercial-supportability@google.com"
\ No newline at end of file
diff --git a/chrome/browser/signin/primary_account_policy_manager.cc b/chrome/browser/signin/primary_account_policy_manager.cc
index 313753c..e6a33db5 100644
--- a/chrome/browser/signin/primary_account_policy_manager.cc
+++ b/chrome/browser/signin/primary_account_policy_manager.cc
@@ -8,6 +8,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profiles_state.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
@@ -296,10 +297,13 @@
 
   DCHECK(profiles::IsMultipleProfilesEnabled());
 
-  g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-      profile_path,
-      hide_ui_for_testing_ ? base::DoNothing()
-                           : base::BindOnce(&webui::OpenNewWindowForProfile),
-      ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_NOT_ALLOWED);
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile_path,
+          hide_ui_for_testing_
+              ? base::DoNothing()
+              : base::BindOnce(&webui::OpenNewWindowForProfile),
+          ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_NOT_ALLOWED);
 }
 #endif  // defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/signin/signin_ui_util_browsertest.cc b/chrome/browser/signin/signin_ui_util_browsertest.cc
index 7778e28..f95f77e 100644
--- a/chrome/browser/signin/signin_ui_util_browsertest.cc
+++ b/chrome/browser/signin/signin_ui_util_browsertest.cc
@@ -11,6 +11,7 @@
 #include "base/test/bind.h"
 #include "build/buildflag.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
@@ -65,8 +66,11 @@
   EXPECT_EQ(1, browser->tab_strip_model()->count());
 
   // Profile deletion closes the browser.
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      new_profile->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          new_profile->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   ui_test_utils::WaitForBrowserToClose(browser);
   EXPECT_FALSE(chrome::FindBrowserWithProfile(new_profile));
 
diff --git a/chrome/browser/support_tool/DIR_METADATA b/chrome/browser/support_tool/DIR_METADATA
index 9327e8d..5fbed30 100644
--- a/chrome/browser/support_tool/DIR_METADATA
+++ b/chrome/browser/support_tool/DIR_METADATA
@@ -1,3 +1,7 @@
-buganizer: {
-  component_id: 1111615
+buganizer {
+  component_id: 1111615 # ChromeOS > Software > Commercial (Enterprise) > Supportability
 }
+buganizer_public {
+    component_id: 1199457 # ChromeOS > Public Tracker > Services > Supportability
+}
+team_email: "chromeos-commercial-supportability@google.com"
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
index 3dcde8a5..2d01dff 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
@@ -11,7 +11,7 @@
 <translation id="3653689374478248324">Você vai fazer login em <ph name="SITE_NAME" /></translation>
 <translation id="3950820424414687140">Fazer login</translation>
 <translation id="4598345735110653698">Gerenciar senhas de acesso</translation>
-<translation id="4907224763885298217">Use seu bloqueio de tela</translation>
+<translation id="4907224763885298217">Usar bloqueio de tela</translation>
 <translation id="5012523644916800014">Gerenciar senhas e chaves de acesso</translation>
 <translation id="5441504010984421144">Lista de credenciais a serem preenchidas por toque aberta no tamanho máximo.</translation>
 <translation id="5591247451101092906">Usar senha ou chave de acesso salva?</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
index 3e20721..8d54c23 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Vervalmaand</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> sal in Chrome oopmaak. Deur voort te gaan, stem jy in tot <ph name="BEGIN_LINK1" />Google se diensbepalings<ph name="END_LINK1" /> en <ph name="BEGIN_LINK2" />Google Chrome en Chrome-bedryfstelsel se bykomende diensbepalings<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Blad is nie vanlyn beskikbaar nie: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Sien gewilde webwerwe deur op die "Topwerwe"-knoppie te tik</translation>
 <translation id="1173894706177603556">Hernoem</translation>
 <translation id="1177863135347784049">Gepasmaak</translation>
 <translation id="1181037720776840403">Verwyder</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Kan nie reaksies aflaai nie. Probeer weer.</translation>
 <translation id="8354977102499939946">Soek vinnig met jou stem. Gaan na Instellings om hierdie kortpad te wysig.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> aflaaie is teruggestel</translation>
-<translation id="8364299278605033898">Sien gewilde webwerwe</translation>
 <translation id="8368001212524806591">Spoor prys na</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Hoe ons hierdie data gebruik:<ph name="END_BOLD" /> Chrome kan jou belangstellings skat. 'n Werf wat jy besoek kan Chrome later vra om jou belangstellings te sien om die advertensies wat jy sien, te personaliseer.</translation>
 <translation id="8387617938027387193">Verifieer dat dit jy is</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
index cc15b93..4286d5b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ጊዜው የሚያልፍበት ወር</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> በChrome ውስጥ ይከፈታል። በመቀጠልዎ በ<ph name="BEGIN_LINK1" />Google አገልግሎት ውል<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />የGoogle Chrome እና የChromeOS ተጨማሪ አገልግሎት ውል<ph name="END_LINK2" /> ይስማማሉ።</translation>
 <translation id="1154704303112745282">ገጽ ከመስመር ውጭ አይገኝም፦ <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">የ«ከፍተኛ ጣቢያዎች» አዝራሩን መታ በማድረግ ታዋቂ ድር ጣቢያዎችን ይመልከቱ</translation>
 <translation id="1173894706177603556">ዳግም ሰይም</translation>
 <translation id="1177863135347784049">ብጁ</translation>
 <translation id="1181037720776840403">አስወግድ</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">ምላሾችን ማውረድ አልተቻለም። እንደገና ይሞክሩ።</translation>
 <translation id="8354977102499939946">በድምጽዎ በፍጥነት ይፈልጉ። ይህን አቋራጭ ለማርትዕ ወደ ቅንብሮች ይሂዱ።</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ውርዶች ወደነበሩበት ተመልሰዋል</translation>
-<translation id="8364299278605033898">ታዋቂ ድር ጣቢያዎችን ይመልከቱ</translation>
 <translation id="8368001212524806591">የዋጋን ዱካ ይከታተሉ</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ይህን ውሂብ እንዴት እንደምንጠቀምበት፦<ph name="END_BOLD" /> Chrome የእርስዎን ዝንባሌዎች ሊገምት ይችላል። በኋላ ላይ እርስዎ የሚጎበኙት ጣቢያ እርስዎ የሚያዩዋቸውን ማስታወቂያዎች ግላዊነት ለማላበስ Chrome ዝንባሌዎችዎን እንዲያይ ሊጠይቅ ይችላል።</translation>
 <translation id="8387617938027387193">እርስዎን መሆንዎን ያረጋግጡ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
index b398c0e..5f321b2 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
@@ -12,6 +12,7 @@
 <translation id="1062628064301375934">مساعدتنا في تصميم تجربة تصفُّح أكثر خصوصية</translation>
 <translation id="107147699690128016">في حال تغيير امتداد الملف، قد يفتح الملف في تطبيق مختلف ومن المحتمل أن يشكّل خطورة على جهازك.</translation>
 <translation id="1089606299949659462">اكتملت المراجعة</translation>
+<translation id="1091604859693995976">إعادة التحميل لعرض محتوى الخلاصة</translation>
 <translation id="1095761715416917775">ضمان إمكانية الوصول إلى بيانات المزامنة دائمًا</translation>
 <translation id="1100066534610197918">فتح في علامة تبويب جديدة في مجموعة</translation>
 <translation id="1103142993930332957">‏هل تريد المساهمة في تحسين أداء Chrome؟</translation>
@@ -30,7 +31,6 @@
 <translation id="1149401351239820326">شهر انتهاء الصلاحية</translation>
 <translation id="1150263420752757504">‏سيتم فتح تطبيق "<ph name="APP_NAME" />" في Chrome. تعني المتابعة موافقتك على <ph name="BEGIN_LINK1" />بنود خدمة Google<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />بنود الخدمة الإضافية لكل من متصفّح Google Chrome ونظام التشغيل Chrome<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">لا تتوفّر الصفحة بلا اتصال بالإنترنت: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">عرض المواقع الإلكترونية الشائعة من خلال النقر على الزر "أهم المواقع"</translation>
 <translation id="1173894706177603556">إعادة تسمية</translation>
 <translation id="1177863135347784049">مخصص</translation>
 <translation id="1181037720776840403">إزالة</translation>
@@ -1367,7 +1367,6 @@
 <translation id="8352996530981010042">يتعذّر تنزيل التفاعلات. يُرجى إعادة المحاولة.</translation>
 <translation id="8354977102499939946">يتيح لك هذا الزر إجراء بحث صوتي بسرعة. ولتعديل هذا الاختصار، انتقِل إلى "الإعدادات".</translation>
 <translation id="835847953965672673">تمّت استعادة <ph name="NUMBER_OF_DOWNLOADS" /> عملية تنزيل.</translation>
-<translation id="8364299278605033898">عرض المواقع الإلكترونية الشائعة</translation>
 <translation id="8368001212524806591">تتبُّع السعر</translation>
 <translation id="8383226135083126309">‏<ph name="BEGIN_BOLD" />كيف نستخدم البيانات:<ph name="END_BOLD" /> بإمكان متصفّح Chrome تقدير اهتماماتك. بعد ذلك، يمكن للموقع الإلكتروني الذي تنتقل إليه أن يطلب من Chrome معرفة اهتماماتك من أجل تخصيص الإعلانات التي تظهر لك.</translation>
 <translation id="8387617938027387193">إثبات هويتك</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 0a31d2e..d5bf009 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ম্যাদ উকলা মাহ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chromeত খুলিব। অব্যাহত ৰাখি আপুনি <ph name="BEGIN_LINK1" />Googleৰ সেৱাৰ চৰ্তাৱলী<ph name="END_LINK1" /> আৰু <ph name="BEGIN_LINK2" />Google Chrome আৰু ChromeOSৰ সেৱাৰ অতিৰিক্ত চৰ্তাৱলী<ph name="END_LINK2" />ত সন্মতি দিয়ে।</translation>
 <translation id="1154704303112745282">পৃষ্ঠাখন অফলাইনত উপলব্ধ নহয়: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"শীর্ষ ছাইটসমূহ" বুটামটো টিপি জনপ্ৰিয় ৱেবছাইটসমূহ চাওক</translation>
 <translation id="1173894706177603556">নতুন নাম দিয়ক</translation>
 <translation id="1177863135347784049">কাষ্টম</translation>
 <translation id="1181037720776840403">আঁতৰাওক</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">প্ৰতিক্ৰিয়া ডাউনল’ড কৰিব পৰা নগ’ল। পুনৰ চেষ্টা কৰক।</translation>
 <translation id="8354977102499939946">আপোনাৰ কণ্ঠস্বৰৰ দ্বাৰা ক্ষিপ্ৰভাৱে সন্ধান কৰক। এই শ্বৰ্টকাটটো সম্পাদনা কৰিবলৈ ছেটিঙলৈ যাওক।</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> টা ডাউনল’ড পুনঃস্থাপন কৰা হৈছে</translation>
-<translation id="8364299278605033898">জনপ্ৰিয় ৱেবছাইটসমূহ চাওক</translation>
 <translation id="8368001212524806591">মূল্য ট্ৰেক কৰক</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />আমি এই ডেটা কেনেকৈ ব্যৱহাৰ কৰোঁ:<ph name="END_BOLD" /> Chromeএ আপোনাৰ আগ্ৰহ থকা বিষয়বস্তু অনুমান কৰিব পাৰে। পাছত, আপুনি চোৱা কোনো ছাইটে আপুনি দেখা বিজ্ঞাপনসমূহ ব্যক্তিগতকৰণ কৰিবলৈ Chromeক আপোনাৰ আগ্ৰহ থকা বিষয়বস্তু দেখুৱাবলৈ অনুৰোধ কৰিব পাৰে।</translation>
 <translation id="8387617938027387193">এইয়া আপুনিয়েই বুলি সত্যাপন কৰক</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index e85df8ef..95d8ee4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Bitmə ayı</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chrome'da açılacaq. Davam etməklə, <ph name="BEGIN_LINK1" />Google Xidmət Şərtləri<ph name="END_LINK1" /> və <ph name="BEGIN_LINK2" />Google Chrome və ChromeOS Əlavə Xidmət Şərtləri<ph name="END_LINK2" /> ilə razılaşırsınız.</translation>
 <translation id="1154704303112745282">Səhifə oflayn əlçatan deyil: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"Popluyar saytlar" seçiminə klikləyin və məşhur saytlara baxın</translation>
 <translation id="1173894706177603556">Adını dəyişin</translation>
 <translation id="1177863135347784049">İxtiyari</translation>
 <translation id="1181037720776840403">Silin</translation>
@@ -1377,7 +1376,6 @@
 <translation id="8352996530981010042">Reaksiyaları endirmək olmur. Yenə cəhd edin.</translation>
 <translation id="8354977102499939946">Səsinizlə sürətlə axtarın. Bu qısayolu redaktə etmək üçün Ayarlara keçin.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> endirmə bərpa edilib</translation>
-<translation id="8364299278605033898">Populyar veb saytlara baxın</translation>
 <translation id="8368001212524806591">Qiyməti izləyin</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Bu datanı necə istifadə edirik:<ph name="END_BOLD" /> Chrome maraqlarınızı təxmin edə bilər. Daha sonra ziyarət etdiyiniz sayt gördüyünüz reklamları fərdiləşdirmək üçün Chrome'dan maraqlarınızı görməyi tələb edə bilər.</translation>
 <translation id="8387617938027387193">Kimliyinizi doğrulayın</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index e5c3e53..2f12585f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Месяц заканчэння тэрміну дзеяння</translation>
 <translation id="1150263420752757504">Праграма "<ph name="APP_NAME" />" адкрыецца ў Chrome. Працягваючы, вы згаджаецеся з <ph name="BEGIN_LINK1" />Умовамі выкарыстання Google<ph name="END_LINK1" /> і <ph name="BEGIN_LINK2" />Дадатковымі ўмовамі выкарыстання Google Chrome і Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Старонка недаступная па-за сеткай: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Праглядайце папулярныя вэб-сайты, націснуўшы кнопку "Топ сайтаў"</translation>
 <translation id="1173894706177603556">Перайменаваць</translation>
 <translation id="1177863135347784049">Карыстальніцкая</translation>
 <translation id="1181037720776840403">Выдаліць</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Не ўдалося спампаваць рэакцыі. Паўтарыце спробу.</translation>
 <translation id="8354977102499939946">Хуткі пошук з дапамогай галасавых каманд. Каб змяніць функцыю гэтай кнопкі, перайдзіце ў Налады.</translation>
 <translation id="835847953965672673">Спамповак адноўлена: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Праглядайце папулярныя вэб-сайты</translation>
 <translation id="8368001212524806591">Адсочваць цану</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Як мы выкарыстоўваем гэтыя даныя:<ph name="END_BOLD" /> Chrome можа ацаніць вашы інтарэсы. Пазней сайты, якія вы наведваеце, могуць запытваць у Chrome дазвол на прагляд вашых інтарэсаў для персаналізацыі рэкламы, якая вам паказваецца.</translation>
 <translation id="8387617938027387193">Прайдзіце спраўджанне асобы</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
index e32fe1d..51ca7d4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Месец на валидност</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ще се отвори в Chrome. С продължаването си приемате <ph name="BEGIN_LINK1" />Общите условия на Google<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Допълнителните общи условия на Chrome и Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Страницата не е достъпна офлайн: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Вижте популярните уебсайтове, като докоснете бутона „Водещи сайтове“</translation>
 <translation id="1173894706177603556">Преименуване</translation>
 <translation id="1177863135347784049">По избор</translation>
 <translation id="1181037720776840403">Премахване</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Реакциите не могат да се изтеглят. Опитайте отново.</translation>
 <translation id="8354977102499939946">Бързо търсене с гласа ви. За да редактирате този пряк път, отворете настройките.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> изтегляния бяха възстановени</translation>
-<translation id="8364299278605033898">Вижте популярните уебсайтове</translation>
 <translation id="8368001212524806591">Проследяване на цената</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Как използваме тези данни<ph name="END_BOLD" />: Chrome може да прогнозира интересите ви. По-късно посетен от вас сайт може да поиска от Chrome информация за интересите ви с цел да персонализира показваните ви реклами.</translation>
 <translation id="8387617938027387193">Потвърдете, че сте вие</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index 6398abd..8f52392 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">মেয়াদ শেষের মাস</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chrome-এ খুলবে। চালিয়ে যাওয়ার মাধ্যমে, আপনি <ph name="BEGIN_LINK1" />Google-এর পরিষেবার শর্তাবলী<ph name="END_LINK1" /> এবং <ph name="BEGIN_LINK2" />Google Chrome ও ChromeOS-এর পরিষেবার অতিরিক্ত শর্তাবলী<ph name="END_LINK2" /> মেনে নিচ্ছেন।</translation>
 <translation id="1154704303112745282">পৃষ্ঠাটি অফলাইনে লোড করা যাবে না: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"সেরা সাইট" বোতামে ট্যাপ করে জনপ্রিয় ওয়েবসাইটগুলি দেখুন</translation>
 <translation id="1173894706177603556">পুনঃনামকরণ</translation>
 <translation id="1177863135347784049">কাস্টম</translation>
 <translation id="1181037720776840403">সরান</translation>
@@ -1381,7 +1380,6 @@
 <translation id="8352996530981010042">প্রতিক্রিয়া ডাউনলোড করা যাচ্ছে না। আবার চেষ্টা করুন।</translation>
 <translation id="8354977102499939946">আপনার ভয়েস ব্যবহার করে দ্রুত সার্চ করুন। এই শর্টকাট এডিট করতে, সেটিংসে যান।</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" />টি ডাউনলোড ফিরিয়ে আনা হয়েছে</translation>
-<translation id="8364299278605033898">জনপ্রিয় ওয়েবসাইট দেখুন</translation>
 <translation id="8368001212524806591">দাম ট্র্যাক করুন</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />এই ডেটা আমরা কীভাবে ব্যবহার করি:<ph name="END_BOLD" /> Chrome আপনার আগ্রহ অনুমান করতে পারে। পরে, আপনি যে সাইটটি দেখেন সেটি আপনার দেখা বিজ্ঞাপনগুলিকে পছন্দমতো করার জন্য Chrome-কে আপনার আগ্রহগুলি দেখতে বলতে পারে।</translation>
 <translation id="8387617938027387193">আপনার পরিচয় যাচাই করান</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
index b0926aa..deccd48 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mjesec isteka</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> će se otvoriti u Chromeu. Ako nastavite, pristajete na <ph name="BEGIN_LINK1" />Googleove Uslove korištenja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dodatne Uslove korištenja usluge za Google Chrome i ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stranica je nedostupna van mreže: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Dodirnite dugme "Popularno" i pristupite popularnim web lokacijama</translation>
 <translation id="1173894706177603556">Promijeni naziv</translation>
 <translation id="1177863135347784049">Prilagođeno</translation>
 <translation id="1181037720776840403">Ukloni</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Nije moguće preuzeti reakcije. Pokušajte ponovo.</translation>
 <translation id="8354977102499939946">Brzo pretražujte pomoću glasa. Da uredite ovu prečicu, idite u Postavke.</translation>
 <translation id="835847953965672673">Broj vraćenih preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Pogledajte popularne web lokacije</translation>
 <translation id="8368001212524806591">Praćenje cijene</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kako koristimo ove podatke:<ph name="END_BOLD" /> Chrome može procijeniti vaša interesovanja. Kasnije, web lokacija koju ste posjetili može zatražiti od Chromea da pogleda vaša interesovanja radi personalizacije oglasa koje vidite.</translation>
 <translation id="8387617938027387193">Potvrdite identitet</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 9204d1d..8112d3a 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mes de caducitat</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> s'obrirà a Chrome. En continuar, acceptes les <ph name="BEGIN_LINK1" />condicions del servei de Google<ph name="END_LINK1" /> i les <ph name="BEGIN_LINK2" />condicions del servei addicionals de Google Chrome i Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Pàgina no disponible sense connexió: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Toca el botó Llocs populars per veure les tendències en llocs web</translation>
 <translation id="1173894706177603556">Canvia el nom</translation>
 <translation id="1177863135347784049">Personalitzat</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">No es poden baixar les reaccions. Torna-ho a provar.</translation>
 <translation id="8354977102499939946">Cerca ràpidament amb la veu. Per editar aquesta drecera, ves a Configuració.</translation>
 <translation id="835847953965672673">S'han restaurat <ph name="NUMBER_OF_DOWNLOADS" /> baixades</translation>
-<translation id="8364299278605033898">Mostra llocs web populars</translation>
 <translation id="8368001212524806591">Fes un seguiment del preu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Com utilitzem aquestes dades<ph name="END_BOLD" />: Chrome pot estimar els teus interessos. Després, un lloc web que visitis pot demanar els teus interessos a Chrome per personalitzar els anuncis que veus.</translation>
 <translation id="8387617938027387193">Verifica que ets tu</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 a64de0e..a0d3509 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Měsíc vypršení platnosti</translation>
 <translation id="1150263420752757504">Aplikace <ph name="APP_NAME" /> se otevře v Chromu. Pokračováním vyjadřujete souhlas se <ph name="BEGIN_LINK1" />smluvními podmínkami společnosti Google<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />dodatečnými smluvními podmínkami prohlížeče Chrome a systému ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stránka je v režimu offline nedostupná: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Populární weby zobrazíte klepnutím na tlačítko Top weby</translation>
 <translation id="1173894706177603556">Přejmenovat</translation>
 <translation id="1177863135347784049">Vlastní</translation>
 <translation id="1181037720776840403">Odebrat</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Reakce nelze stáhnout. Zkuste to znovu.</translation>
 <translation id="8354977102499939946">Rychle vyhledávat hlasem. Tuto zkratku můžete upravit v Nastavení.</translation>
 <translation id="835847953965672673">Obnovená stahování: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Zobrazit populární weby</translation>
 <translation id="8368001212524806591">Sledovat cenu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Jak tyto údaje využíváme:<ph name="END_BOLD" /> Chrome dokáže odhadovat vaše zájmy. Později může navštívený web požádat Chrome o sdělení vašich zájmů, aby vám mohl přizpůsobit zobrazované reklamy.</translation>
 <translation id="8387617938027387193">Potvrďte, že jste to vy</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
index 82bc2870..e21c7a6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mis darfod</translation>
 <translation id="1150263420752757504">Bydd <ph name="APP_NAME" /> yn agor yn Chrome. Drwy barhau, rydych yn cytuno i <ph name="BEGIN_LINK1" />Delerau Gwasanaeth Google<ph name="END_LINK1" />, a <ph name="BEGIN_LINK2" />Thelerau Gwasanaeth Ychwanegol Google Chrome a ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Nid yw'r dudalen ar gael all-lein: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Gweld gwefannau poblogaidd drwy dapio'r botwm "Gwefannau poblogaidd"</translation>
 <translation id="1173894706177603556">Ailenwi</translation>
 <translation id="1177863135347784049">Personol</translation>
 <translation id="1181037720776840403">Dileu</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Methu â lawrlwytho ymatebion. Rhowch gynnig arall arni.</translation>
 <translation id="8354977102499939946">Chwilio yn gyflym â'ch llais. I olygu'r llwybr byr hwn, ewch i'r Gosodiadau.</translation>
 <translation id="835847953965672673">Mae <ph name="NUMBER_OF_DOWNLOADS" /> lawrlwythiad wedi'u hadfer</translation>
-<translation id="8364299278605033898">Gweld gwefannau poblogaidd</translation>
 <translation id="8368001212524806591">Dilyn y pris</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Sut rydym yn defnyddio'r data hyn:<ph name="END_BOLD" /> Gall Chrome amcangyfrif eich diddordebau. Yn nes ymlaen, gall gwefan rydych yn ymweld â hi ofyn i Chrome weld eich diddordebau er mwyn personoleiddio'r hysbysebion rydych yn eu gweld.</translation>
 <translation id="8387617938027387193">Cadarnhewch mai chi sydd yno</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 a0e5dc1c..cade333 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Udløbsmåned</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> åbnes i Chrome. Når du fortsætter, accepterer du <ph name="BEGIN_LINK1" />Googles servicevilkår<ph name="END_LINK1" /> og de <ph name="BEGIN_LINK2" />yderligere servicevilkår for Google Chrome og ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Siden er ikke tilgængelig offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Se populære websites ved at trykke på knappen "Topwebsites"</translation>
 <translation id="1173894706177603556">Omdøb</translation>
 <translation id="1177863135347784049">Tilpasset</translation>
 <translation id="1181037720776840403">Fjern</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Reaktionerne kunne ikke downloades. Prøv igen.</translation>
 <translation id="8354977102499939946">Søg hurtigt med din stemme. Gå til Indstillinger for at redigere denne genvej.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads blev gendannet</translation>
-<translation id="8364299278605033898">Se populære websites</translation>
 <translation id="8368001212524806591">Overvåg pris</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Sådan bruger vi disse data:<ph name="END_BOLD" /> Chrome kan estimere dine interesser. Senere kan et website, du besøger, anmode Chrome om at se dine interesser med henblik på at tilpasse de annoncer, du ser.</translation>
 <translation id="8387617938027387193">Bekræft din identitet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index 1a1c166..a32f395 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Ablaufmonat</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> wird in Chrome geöffnet. Wenn du fortfährst, stimmst du den <ph name="BEGIN_LINK1" />Nutzungsbedingungen von Google<ph name="END_LINK1" /> und den <ph name="BEGIN_LINK2" />zusätzlichen Nutzungsbedingungen für Google Chrome und Chrome OS<ph name="END_LINK2" /> zu.</translation>
 <translation id="1154704303112745282">Seite offline nicht verfügbar: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Tippe auf die Schaltfläche "Top-Websites", um beliebte Websites zu sehen</translation>
 <translation id="1173894706177603556">Umbenennen</translation>
 <translation id="1177863135347784049">Benutzerdefiniert</translation>
 <translation id="1181037720776840403">Entfernen</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Du kannst ganz einfach Dinge wie Mediensteuerelemente, Inkognitositzungen und Downloads verwalten</translation>
 <translation id="2571711316400087311">Anbieten, Seiten in anderen Sprachen an Google Übersetzer zu senden</translation>
 <translation id="2573452357057307036">Hier erfährst du, wie du Chrome als Standardbrowser festlegen kannst</translation>
+<translation id="2580436639406015883">Für die Spam- und Betrugsreduzierung werden Private Stake Tokens verwendet, um Websites bei der Betrugsbekämpfung und der Unterscheidung zwischen Bots und Personen zu unterstützen.
+
+Auf Grundlage deiner Interaktion mit einer Website, z. B. wenn du dich regelmäßig in einem Konto anmeldest, kann diese Website ein Private Stake Token für deinen Browser ausstellen. Wenn andere von dir besuchte Websites später dann ein gültiges Private Stake Token finden, ist die Wahrscheinlichkeit höher, dass du als Person und nicht als Bot eingestuft wirst.
+
+Private Stake Tokens verbessern den Datenschutz im Web und können nicht dazu verwendet werden, deine Identität zu ermitteln.</translation>
 <translation id="2581165646603367611">Alle Cookies, der Cache und andere Daten von Websites, die Chrome nicht für wichtig hält, werden gelöscht.</translation>
 <translation id="2587052924345400782">Neuere Version verfügbar</translation>
 <translation id="2593272815202181319">Monospace</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Aktuelle Gerätesprache</translation>
 <translation id="414128724510021958">Desktopwebsites werden standardmäßig angefordert</translation>
 <translation id="4141536112466364990">Informationen zu Chrome</translation>
+<translation id="4147131678541801076">Wenn Tests aktiviert sind, werden für die Spam- und Betrugsreduzierung Private Stake Tokens verwendet, um Websites bei der Betrugsbekämpfung und der Unterscheidung zwischen Bots und Personen zu unterstützen.
+
+Auf Grundlage deiner Interaktion mit einer Website, z. B. wenn du dich regelmäßig in einem Konto anmeldest, kann diese Website ein Private Stake Token für deinen Browser ausstellen. Wenn andere von dir besuchte Websites später dann ein gültiges Private Stake Token finden, ist die Wahrscheinlichkeit höher, dass du als Person und nicht als Bot eingestuft wirst.
+
+Private Stake Tokens verbessern den Datenschutz im Web und können nicht dazu verwendet werden, deine Identität zu ermitteln.</translation>
 <translation id="4162867837470729563">Die Liste der Freigabeoptionen ist vollständig geöffnet.</translation>
 <translation id="4170011742729630528">Der Dienst ist momentan nicht verfügbar. Bitte versuche es später erneut.</translation>
 <translation id="4177222230309051052">Alle deine Lesezeichen abrufen</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">Passwörter werden auf diesem Gerät im Passwortmanager gespeichert</translation>
 <translation id="4766678251456904326">Konto zum Gerät hinzufügen</translation>
 <translation id="4769095993849849966">Neuer Dateiname</translation>
+<translation id="4778653490315793244">Noch keine Inhalte vorhanden</translation>
 <translation id="4787736314074622408">Möchtest du <ph name="ITEM_TITLE" /> löschen?</translation>
 <translation id="4791358705705538979">Hilft dir, Aufgaben im Internet durchzuführen, z. B. beim Bezahlen</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Vor 1 Tag aktiv</translation>
 <translation id="7975379999046275268">Seitenvorschau <ph name="BEGIN_NEW" />Neu<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Wenn du Passwörter ansehen möchtest, richte zuerst eine Displaysperre auf deinem Gerät ein</translation>
+<translation id="7995059495660416932">Inhalte werden angezeigt, sobald sie verfügbar sind</translation>
 <translation id="799576009106109668">Du kannst schneller surfen, da Inhalte basierend auf deinen Seitenaufrufen proaktiv geladen werden</translation>
 <translation id="7998918019931843664">Geschlossenen Tab wieder öffnen</translation>
 <translation id="8004582292198964060">Browser</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Reaktionen konnten nicht heruntergeladen werden. Versuche es noch einmal.</translation>
 <translation id="8354977102499939946">Schnelle Sprachsuche verwenden. Wenn du diese Verknüpfung bearbeiten möchtest, rufe die Einstellungen auf.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> Downloads wurden wiederhergestellt</translation>
-<translation id="8364299278605033898">Beliebte Websites ansehen</translation>
 <translation id="8368001212524806591">Preis beobachten</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />So verwenden wir diese Daten<ph name="END_BOLD" />: Chrome kann deine Interessen schätzen. Wenn du eine Website besuchst, kann diese von Chrome dann deine Interessen anfordern, um die dir gezeigte Werbung zu personalisieren.</translation>
 <translation id="8387617938027387193">Deine Identität bestätigen</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Du meldest dich mit einem von <ph name="MANAGED_DOMAIN" /> verwalteten Konto an und gibst dem Administrator der Domain Kontrolle über deine Chrome-Daten. Die Daten werden diesem Konto dauerhaft zugeordnet. Wenn du dich von Chrome abmeldest, werden deine Daten auf dem Gerät gelöscht, bleiben jedoch in deinem Google-Konto erhalten.</translation>
 <translation id="9022774213089566801">Häufig besucht</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Video}other{# Videos}}</translation>
+<translation id="9042827002460091668">Prüfe deine Internetverbindung und versuch es noch einmal</translation>
 <translation id="9042893549633094279">Datenschutz und Sicherheit</translation>
 <translation id="9050666287014529139">Passphrase</translation>
 <translation id="9063523880881406963">"Desktopversion ansehen" deaktivieren</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
index 6ffb3d6..e2f263d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Μήνας λήξης</translation>
 <translation id="1150263420752757504">Η εφαρμογή <ph name="APP_NAME" /> θα ανοίξει στο Chrome. Εάν συνεχίσετε, συμφωνείτε με τους <ph name="BEGIN_LINK1" />Όρους Παροχής Υπηρεσιών της Google<ph name="END_LINK1" /> και τους <ph name="BEGIN_LINK2" />Πρόσθετους Όρους Παροχής Υπηρεσιών του Google Chrome και του Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Η σελίδα δεν είναι διαθέσιμη εκτός σύνδεσης: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Δείτε δημοφιλείς ιστοτόπους πατώντας το κουμπί "Κορυφαίοι ιστότοποι"</translation>
 <translation id="1173894706177603556">Μετονομασία</translation>
 <translation id="1177863135347784049">Προσαρμοσμένη</translation>
 <translation id="1181037720776840403">Κατάργηση</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Δεν είναι δυνατή η λήψη των αντιδράσεων. Δοκιμάστε ξανά.</translation>
 <translation id="8354977102499939946">Κάντε γρήγορη αναζήτηση με φωνητικές εντολές. Για να επεξεργαστείτε αυτήν τη συντόμευση, μεταβείτε στις Ρυθμίσεις.</translation>
 <translation id="835847953965672673">Έγινε επαναφορά <ph name="NUMBER_OF_DOWNLOADS" /> λήψεων.</translation>
-<translation id="8364299278605033898">Δείτε δημοφιλείς ιστοτόπους</translation>
 <translation id="8368001212524806591">Παρακολούθηση τιμής</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Πώς χρησιμοποιούμε αυτά τα δεδομένα:<ph name="END_BOLD" /> Το Chrome μπορεί να κάνει εκτιμήσεις για τα ενδιαφέροντά σας. Αργότερα, ένας ιστότοπος που επισκέπτεστε μπορεί να ζητήσει από το Chrome να δει τα ενδιαφέροντά σας, προκειμένου να εξατομικεύσει τις διαφημίσεις που βλέπετε.</translation>
 <translation id="8387617938027387193">Επαλήθευση ταυτότητας</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
index efe1ec0..857cce5b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Expiry month</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> will open in Chrome. By continuing, you agree to the <ph name="BEGIN_LINK1" />Google Terms of Service<ph name="END_LINK1" />, and the <ph name="BEGIN_LINK2" />Google Chrome and Chrome OS additional Terms of Service<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Page unavailable offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">See popular websites by tapping the 'Top sites' button</translation>
 <translation id="1173894706177603556">Rename</translation>
 <translation id="1177863135347784049">Customised</translation>
 <translation id="1181037720776840403">Remove</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Can’t download reactions. Try again.</translation>
 <translation id="8354977102499939946">Quickly search with your voice. To edit this shortcut, go to Settings.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads restored</translation>
-<translation id="8364299278605033898">See popular websites</translation>
 <translation id="8368001212524806591">Track price</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />How we use this data:<ph name="END_BOLD" /> Chrome can estimate your interests. Later, a site that you visit can ask Chrome to see your interests in order to personalise the ads that you see.</translation>
 <translation id="8387617938027387193">Verify that it’s you</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index f8171a8..02258a5c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mes de vencimiento</translation>
 <translation id="1150263420752757504">Se abrirá <ph name="APP_NAME" /> en Chrome. Si continúas, aceptas las <ph name="BEGIN_LINK1" />Condiciones del Servicio de Google<ph name="END_LINK1" /> y las <ph name="BEGIN_LINK2" />Condiciones del Servicio Adicionales de Google Chrome y Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Página no disponible sin conexión: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Presiona el botón "Populares" para ver los sitios web más conocidos</translation>
 <translation id="1173894706177603556">Cambiar nombre</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1181037720776840403">Quitar</translation>
@@ -333,7 +332,7 @@
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{Se cerrará <ph name="TAB_COUNT_ONE" /> pestaña de incógnito.}other{Se cerrarán <ph name="TAB_COUNT_MANY" /> pestañas de incógnito.}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Se verificó hace 1 día}other{Se verificó hace # días}}</translation>
 <translation id="2842985007712546952">Carpeta principal</translation>
-<translation id="2851291081585704741">Estás sin conexión</translation>
+<translation id="2851291081585704741">No tienes conexión</translation>
 <translation id="2856503607207334158">No se pudo acceder.</translation>
 <translation id="2860954141821109167">Comprueba que este dispositivo tenga una app de teléfono habilitada</translation>
 <translation id="2861923151411510142">Algunas funciones de Chrome ya no estarán disponibles</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">No se pueden descargar las reacciones. Vuelve a intentarlo.</translation>
 <translation id="8354977102499939946">Haz una búsqueda rápida con la voz. Para editar este atajo, ve a Configuración.</translation>
 <translation id="835847953965672673">Se restablecieron <ph name="NUMBER_OF_DOWNLOADS" /> descargas</translation>
-<translation id="8364299278605033898">Ver sitios populares</translation>
 <translation id="8368001212524806591">Seguir precio</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cómo usamos esta información:<ph name="END_BOLD" /> Chrome puede estimar tus intereses. Luego, los sitios que visites pueden consultar tus intereses con Chrome para personalizar los anuncios que te muestran.</translation>
 <translation id="8387617938027387193">Verifica que eres tú</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index d25cdf5..eb6a80e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mes de caducidad</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> se abrirá en Chrome. Al continuar, aceptas los <ph name="BEGIN_LINK1" />Términos del Servicio de Google<ph name="END_LINK1" /> y los <ph name="BEGIN_LINK2" />Términos del Servicio Adicionales de Google Chrome y ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Página no disponible sin conexión: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Toca el botón Populares para ver los sitios web más populares</translation>
 <translation id="1173894706177603556">Cambiar nombre</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1181037720776840403">Quitar</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">No se pueden descargar las reacciones. Inténtalo de nuevo.</translation>
 <translation id="8354977102499939946">Busca rápidamente con la voz. Para editar esta combinación de teclas, ve a Configuración.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> descargas restauradas</translation>
-<translation id="8364299278605033898">Descubre los sitios web populares</translation>
 <translation id="8368001212524806591">Seguir precio</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cómo usamos estos datos:<ph name="END_BOLD" /> Chrome puede estimar tus intereses. Después, un sitio que visites puede pedirle a Chrome consultar tus intereses para personalizar los anuncios que veas.</translation>
 <translation id="8387617938027387193">Verifica que eres tú</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
index b6012484..c5ad927 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Aegumiskuu</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> avaneb Chrome'is. Jätkates nõustute <ph name="BEGIN_LINK1" />Google'i teenusetingimustega<ph name="END_LINK1" /> ning <ph name="BEGIN_LINK2" />Google Chrome'i ja Chrome OS-i lisateenusetingimustega<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Leht pole võrguühenduseta saadaval: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Vaadake populaarseid veebisaite, puudutades nuppu „Popid saidid”</translation>
 <translation id="1173894706177603556">Muuda nime</translation>
 <translation id="1177863135347784049">Kohandatud</translation>
 <translation id="1181037720776840403">Eemalda</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Ei saa reaktsioone alla laadida. Proovige uuesti.</translation>
 <translation id="8354977102499939946">Otsige kiirelt oma hääle abil. Selle otsetee muutmiseks avage menüü Seaded.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> allalaadimist taastati</translation>
-<translation id="8364299278605033898">Vaadake populaarseid veebisaite</translation>
 <translation id="8368001212524806591">Jälgi hinda</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kuidas neid andmeid kasutame?<ph name="END_BOLD" /> Chrome saab teie huvisid prognoosida. Hiljem saab teie külastatav sait küsida Chrome'ilt teie huvisid, et isikupärastada teile kuvatavaid reklaame.</translation>
 <translation id="8387617938027387193">Kinnitage oma isik</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index 00da2455..278b7ca 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Iraungitze-hilabetea</translation>
 <translation id="1150263420752757504">Chrome-n irekiko da <ph name="APP_NAME" />. Aurrera egiten baduzu, onartu egingo dituzu <ph name="BEGIN_LINK1" />Google-ren Zerbitzu-baldintzak<ph name="END_LINK1" /> eta <ph name="BEGIN_LINK2" />Google Chrome-ren eta Chrome OS-ren Zerbitzu-baldintza gehigarriak<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Orria ez dago erabilgarri konexiorik gabe: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Sakatu "Webgune nagusiak" botoia webgune ezagunak ikusteko</translation>
 <translation id="1173894706177603556">Aldatu izena</translation>
 <translation id="1177863135347784049">Pertsonalizatua</translation>
 <translation id="1181037720776840403">Kendu</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Ezin da deskargatu erreakziorik. Saiatu berriro.</translation>
 <translation id="8354977102499939946">Bilatu bizkor ahotsa erabilita. Lasterbide hau editatzeko, joan ezarpenetara.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> deskarga leheneratu dira</translation>
-<translation id="8364299278605033898">Ikusi webgune ezagunak</translation>
 <translation id="8368001212524806591">Egin prezioen jarraipena</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Nola erabiltzen ditugu datu horiek?<ph name="END_BOLD" /> Chrome-k zure interesak estima ditzake. Beranduago, bisitatzen duzun webgune batek zure interesak ikusteko eska diezaioke Chrome-ri, agertzen zaizkizun iragarkiak pertsonalizatze aldera.</translation>
 <translation id="8387617938027387193">Egiaztatu zeu zarela</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index cc002dc4..16087a8 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ماه انقضا</translation>
 <translation id="1150263420752757504">‏<ph name="APP_NAME" /> در Chrome باز می‌شود. درصورت ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات Google<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />شرایط خدمات تکمیلی Google Chrome و ChromeOS<ph name="END_LINK2" /> موافقت می‌کنید.</translation>
 <translation id="1154704303112745282">صفحه <ph name="VIOLATED_URL" /> به‌صورت آفلاین دردسترس نیست</translation>
-<translation id="1171770572613082465">با ضربه زدن روی دکمه «سایت‌های برتر»، وب‌سایت‌های پرطرفدار را ببینید</translation>
 <translation id="1173894706177603556">تغییر نام</translation>
 <translation id="1177863135347784049">سفارشی</translation>
 <translation id="1181037720776840403">حذف</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">واکنش‌ها بارگیری نشد. دوباره امتحان کنید.</translation>
 <translation id="8354977102499939946">به‌سرعت با صدایتان جستجو کنید. برای ویرایش این میان‌بر، به «تنظیمات» بروید.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> بارگیری بازیابی شد</translation>
-<translation id="8364299278605033898">مشاهده وب‌سایت‌های پرطرفدار</translation>
 <translation id="8368001212524806591">پیگیری قیمت</translation>
 <translation id="8383226135083126309">‏<ph name="BEGIN_BOLD" />نحوه استفاده ما از این داده‌ها:<ph name="END_BOLD" /> Chrome می‌تواند علایق شما را برآورد کند. بعداً، سایتی که از آن بازدید می‌کنید می‌تواند برای شخصی کردن آگهی‌هایی که به شما نشان می‌دهد از Google بخواهد علایق شما را ببیند.</translation>
 <translation id="8387617938027387193">هویتتان را به تأیید برسانید</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
index 0ca3d1ef..9b09ebb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Viimeinen voimassaolokuukausi</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> avautuu Chromessa. Jatkamalla hyväksyt <ph name="BEGIN_LINK1" />Googlen käyttöehdot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />Google Chromen ja Chrome-käyttöjärjestelmän lisäkäyttöehdot<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Sivu ei saatavilla offline-tilassa: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Katso suositut sivustot napauttamalla Suosituimmat sivustot ‑painiketta</translation>
 <translation id="1173894706177603556">Muuta nimeä</translation>
 <translation id="1177863135347784049">Muokattu</translation>
 <translation id="1181037720776840403">Poista</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Reaktioiden lataaminen ei onnistunut. Yritä uudelleen.</translation>
 <translation id="8354977102499939946">Hae nopeasti äänikomennoilla. Voit muokata pikakuvaketta asetuksista.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> latausta palautettu</translation>
-<translation id="8364299278605033898">Katso suositut sivustot</translation>
 <translation id="8368001212524806591">Seuraa hintaa</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Miten käytämme tätä dataa:<ph name="END_BOLD" /> Chrome voi rakentaa kuvaa kiinnostuksen kohteistasi. Sivut, joilla käyt, voivat myöhemmin pyytää Chromelta tietoa kiinnostuksen kohteistasi ja personoida näkemiäsi mainoksia.</translation>
 <translation id="8387617938027387193">Todenna henkilöllisyytesi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index 474731f..78f029ce 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Buwan ng pag-expire</translation>
 <translation id="1150263420752757504">Bubukas ang <ph name="APP_NAME" /> sa Chrome. Sa pamamagitan ng pagpapatuloy, sumasang-ayon ka sa <ph name="BEGIN_LINK1" />Mga Tuntunin ng Serbisyo ng Google<ph name="END_LINK1" />, at sa <ph name="BEGIN_LINK2" />Mga Karagdagang Tuntunin ng Serbisyo ng Google Chrome at ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Hindi available ang page kapag offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Tingnan ang mga sikat na website sa pamamagitan ng pag-tap sa button na "Mga nangungunang site"</translation>
 <translation id="1173894706177603556">Pangalanang muli</translation>
 <translation id="1177863135347784049">Custom</translation>
 <translation id="1181037720776840403">Alisin</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Hindi ma-download ang mga reaksyon. Subukan ulit.</translation>
 <translation id="8354977102499939946">Mabilis na maghanap gamit ang iyong boses. Para i-edit ang shortcut na ito, pumunta sa Mga Setting.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> (na) download ang na-restore</translation>
-<translation id="8364299278605033898">Tingnan ang mga sikat na website</translation>
 <translation id="8368001212524806591">Subaybayan ang presyo</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Paano namin ginagamit ang data na ito:<ph name="END_BOLD" /> Puwedeng tantyahin ng Chrome ang iyong mga interes. Sa ibang pagkakataon, puwedeng hilingin ng site na binibisita mo sa Chrome na makita ang iyong mga interes para ma-personalize ang mga ad na nakikita mo.</translation>
 <translation id="8387617938027387193">I-verify na ikaw ito</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index 9e78e54..15a023a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mois d'expiration</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> s'ouvrira dans Chrome. En continuant, vous acceptez les <ph name="BEGIN_LINK1" />conditions d'utilisation de Google<ph name="END_LINK1" /> et les <ph name="BEGIN_LINK2" />conditions d'utilisation supplémentaires de Google Chrome et de Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Cette page n'est pas accessible hors ligne : <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Affichez des sites Web populaires en touchant le bouton « Sites populaires »</translation>
 <translation id="1173894706177603556">Renommer</translation>
 <translation id="1177863135347784049">Personnalisé</translation>
 <translation id="1181037720776840403">Supprimer</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Impossible de télécharger les réactions. Réessayez.</translation>
 <translation id="8354977102499939946">Effectuez une recherche rapide à l'aide de commandes vocales. Pour modifier ce raccourci, accédez à Paramètres.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> téléchargements restaurés</translation>
-<translation id="8364299278605033898">Afficher des sites Web populaires</translation>
 <translation id="8368001212524806591">Suivre le prix</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Comment nous utilisons ces données :<ph name="END_BOLD" /> Chrome peut estimer vos centres d'intérêt. Ultérieurement, un site que vous visitez peut demander à Chrome de voir vos centres d'intérêt afin de personnaliser les annonces que vous voyez.</translation>
 <translation id="8387617938027387193">Confirmez que c'est vous</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index 0fb1b01..9b3ee584 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mois d'expiration</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> va s'ouvrir dans Chrome. En continuant, vous acceptez les <ph name="BEGIN_LINK1" />Conditions d'utilisation de Google<ph name="END_LINK1" /> et les <ph name="BEGIN_LINK2" />Conditions d'utilisation supplémentaires de Google Chrome et Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Page non disponible hors connexion : <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Appuyez sur le bouton "Sites populaires" pour afficher les sites Web les plus visités</translation>
 <translation id="1173894706177603556">Renommer</translation>
 <translation id="1177863135347784049">Personnalisé</translation>
 <translation id="1181037720776840403">Supprimer</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Impossible de télécharger les réactions. Réessayez.</translation>
 <translation id="8354977102499939946">Rechercher rapidement par commande vocale. Pour modifier ce raccourci, accédez aux paramètres.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> téléchargements restaurés</translation>
-<translation id="8364299278605033898">Affichez les sites Web populaires</translation>
 <translation id="8368001212524806591">Effectuer le suivi du prix</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Comment nous utilisons ces données<ph name="END_BOLD" /> : Chrome peut estimer quels sont vos centres d'intérêt. Ensuite, un site que vous consultez pourra demander à Chrome de voir vos centres d'intérêt pour personnaliser les annonces qui vous sont présentées.</translation>
 <translation id="8387617938027387193">Confirmez votre identité</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
index dfffa1d..7c94065 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mes de caducidade</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> abrirase en Chrome. Ao continuar, aceptas as <ph name="BEGIN_LINK1" />Condicións de servizo de Google<ph name="END_LINK1" />, así como as <ph name="BEGIN_LINK2" />Condicións de servizo adicionais de Google Chrome e Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Páxina non dispoñible sen conexión: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Para descubrir sitios web populares, toca o botón Populares</translation>
 <translation id="1173894706177603556">Cambiar o nome</translation>
 <translation id="1177863135347784049">Personalizada</translation>
 <translation id="1181037720776840403">Eliminar</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Non se puideron descargar as reaccións. Téntao de novo.</translation>
 <translation id="8354977102499939946">Fai buscas rapidamente coa voz. Para editar este atallo, vai a Configuración.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> descargas restauradas</translation>
-<translation id="8364299278605033898">Descubre sitios web populares</translation>
 <translation id="8368001212524806591">Facer seguimento do prezo</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Como usamos estes datos?<ph name="END_BOLD" /> Chrome pode facer unha estimación dos teus intereses. Máis tarde, un sitio que visites pode consultarlle a Chrome os teus intereses para personalizar os anuncios que se che mostren.</translation>
 <translation id="8387617938027387193">Verifica que es ti</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
index d4dbd4d7..d472867 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">સમય સમાપ્તિ મહિનો</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chromeમાં ખુલશે. આગળ વધીને, તમે <ph name="BEGIN_LINK1" />Googleની સેવાની શરતો<ph name="END_LINK1" /> અને <ph name="BEGIN_LINK2" />Google Chrome તથા ChromeOSની વધારાની સેવાની શરતો<ph name="END_LINK2" /> સાથે સંમત થાઓ છો.</translation>
 <translation id="1154704303112745282">પેજ ઑફલાઇન ઉપલબ્ધ નથી: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"લોકપ્રિય સાઇટ" બટન પર ટૅપ કરીને લોકપ્રિય વેબસાઇટ જુઓ</translation>
 <translation id="1173894706177603556">નામ બદલો</translation>
 <translation id="1177863135347784049">કસ્ટમ</translation>
 <translation id="1181037720776840403">કાઢી નાખો</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">પ્રતિક્રિયાઓ ડાઉનલોડ કરી શકાતી નથી. ફરી પ્રયાસ કરો.</translation>
 <translation id="8354977102499939946">તમારા અવાજ વડે ઝડપથી શોધો. આ શૉર્ટકટમાં ફેરફાર કરવા માટે, સેટિંગ પર જાઓ.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ડાઉનલોડ રિસ્ટોર કર્યા</translation>
-<translation id="8364299278605033898">લોકપ્રિય વેબસાઇટ જુઓ</translation>
 <translation id="8368001212524806591">કિંમત ટ્રૅક કરો</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />અમે આ ડેટાનો ઉપયોગ કેવી રીતે કરીએ છીએ:<ph name="END_BOLD" /> Chrome તમારી રુચિઓનું અનુમાન લગાવી શકે છે. પછી, તમે જેની મુલાકાત લો તે સાઇટ Chromeને તમારી રુચિઓ જોવા માટે કહી શકે છે, જેથી તમને જોવા મળતી જાહેરાતોને મનગમતી બનાવી શકાય.</translation>
 <translation id="8387617938027387193">આ તમે જ છો તેનો પુરાવો આપો</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
index ef1e92ec..798f76d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">समाप्ति माह</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />, Chrome में खुलेगा. जारी रखने का मतलब है कि आप <ph name="BEGIN_LINK1" />Google की सेवा की शर्तों<ph name="END_LINK1" /> के साथ-साथ <ph name="BEGIN_LINK2" />Google Chrome और ChromeOS की सेवा की अन्य शर्तों<ph name="END_LINK2" /> से सहमत हैं.</translation>
 <translation id="1154704303112745282">यह पेज ऑफ़लाइन उपलब्ध नहीं है: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"मुख्य साइटें" बटन पर टैप करके लोकप्रिय साइटें देखें</translation>
 <translation id="1173894706177603556">नाम बदलें</translation>
 <translation id="1177863135347784049">कस्टम</translation>
 <translation id="1181037720776840403">हटाएं</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">प्रतिक्रियाओं को डाउनलोड नहीं किया जा सकता. फिर से कोशिश करें.</translation>
 <translation id="8354977102499939946">बोलकर तेज़ी से खोजें. इस शॉर्टकट में बदलाव करने के लिए, सेटिंग पर जाएं.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड वापस लाया गया</translation>
-<translation id="8364299278605033898">लोकप्रिय वेबसाइटें देखें</translation>
 <translation id="8368001212524806591">कीमत ट्रैक करें</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />हम इस डेटा का इस्तेमाल कैसे करते हैं:<ph name="END_BOLD" /> इस डेटा की मदद से, Chrome आपकी पसंद का अनुमान लगा पाता है. Chrome जब आपकी पसंद का अनुमान लगा लेता है, किसी दूसरी साइट पर जाने पर, वह साइट Chrome से आपकी पसंद जानने की अनुमति मांग सकती है. साइट यह अनुमति इसलिए मांगती है, ताकि वह आपको आपकी पसंद के हिसाब से विज्ञापन दिखा सके.</translation>
 <translation id="8387617938027387193">अपनी पहचान की पुष्टि करें</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
index d6feeff9..158012a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mjesec isteka</translation>
 <translation id="1150263420752757504">Aplikacija <ph name="APP_NAME" /> otvorit će se u Chromeu. Nastavljanjem prihvaćate <ph name="BEGIN_LINK1" />Googleove uvjete pružanja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dodatne uvjete pružanja usluge za Google Chrome i Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stranica nije dostupna offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Dodirom na gumb "Najpopularnije web-lokacije" pogledajte popularne web-lokacije</translation>
 <translation id="1173894706177603556">Preimenuj</translation>
 <translation id="1177863135347784049">Prilagođeno</translation>
 <translation id="1181037720776840403">Ukloni</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Preuzimanje reakcija nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="8354977102499939946">Brzo pretražujte glasovno. Da biste uredili prečac, otvorite Postavke.</translation>
 <translation id="835847953965672673">Vraćen je sljedeći broj preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Pogledajte popularne web-lokacije</translation>
 <translation id="8368001212524806591">Prati cijenu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kako upotrebljavamo te podatke<ph name="END_BOLD" />: Chrome može procijeniti vaše interese. Web-lokacija koju posjetite nakon toga može od Chromea tražiti podatke o vašim interesima kako bi prilagodila oglase koji će vam se prikazivati.</translation>
 <translation id="8387617938027387193">Potvrdite da ste to vi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index 6df86d6..0a1f8b7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Lejárat hónapja</translation>
 <translation id="1150263420752757504">A(z) <ph name="APP_NAME" /> a Chrome-ban fog megnyílni. A továbblépéssel Ön elfogadja a <ph name="BEGIN_LINK1" />Google Általános Szerződési Feltételeket<ph name="END_LINK1" />, valamint <ph name="BEGIN_LINK2" />A Google Chrome és a ChromeOS Kiegészítő Általános Szerződési Feltételeit<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Az oldal nem áll rendelkezésre offline módban: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">A „Népszerűek” gombra koppintva megtekintheti a népszerű webhelyeket</translation>
 <translation id="1173894706177603556">Átnevezés</translation>
 <translation id="1177863135347784049">Egyéni</translation>
 <translation id="1181037720776840403">Eltávolítás</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Nem lehet letölteni a reakciókat. Próbálja újra.</translation>
 <translation id="8354977102499939946">Gyorsan végezhet hangalapú keresést. A gyorsparancs szerkesztéséhez lépjen a Beállításokhoz.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> letöltés visszaállítva</translation>
-<translation id="8364299278605033898">Tekintse meg a népszerű webhelyeket</translation>
 <translation id="8368001212524806591">Ár nyomon követése</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Az adatok felhasználási módja:<ph name="END_BOLD" /> A Chrome meg tudja becsülni az Ön érdeklődési köreit. Később az Ön által felkeresett webhelyek a megjelenő hirdetések személyre szabása érdekében kérhetik a Chrome-tól az Ön érdeklődési köreinek megismerését.</translation>
 <translation id="8387617938027387193">Igazolja, hogy Ön az</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
index fdccdcb0..e762b72 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Ժամկետի սպառման ամիսը</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> հավելվածը կբացվի Chrome-ում։ Շարունակելով՝ դուք ընդունում եք <ph name="BEGIN_LINK1" />Google-ի օգտագործման պայմանները<ph name="END_LINK1" /> և <ph name="BEGIN_LINK2" />Google Chrome-ի և ChromeOS-ի օգտագործման լրացուցիչ պայմանները<ph name="END_LINK2" />։</translation>
 <translation id="1154704303112745282">Էջն անցանց ռեժիմում հասանելի չէ՝ <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Սեղմեք «Կայքերի ընտրանի» կոճակը և դիտեք թոփ կայքերը</translation>
 <translation id="1173894706177603556">Վերանվանել</translation>
 <translation id="1177863135347784049">Անհատականացված</translation>
 <translation id="1181037720776840403">Ջնջել</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Չհաջողվեց ներբեռնել արձագանքները։ Նորից փորձեք։</translation>
 <translation id="8354977102499939946">Արագ որոնեք ձայնային հրահանգների օգնությամբ։ Այս դյուրանցումը փոփոխելու համար անցեք կարգավորումներ։</translation>
 <translation id="835847953965672673">Վերականգնվել է <ph name="NUMBER_OF_DOWNLOADS" /> ներբեռնում</translation>
-<translation id="8364299278605033898">Դիտեք թոփ կայքերը</translation>
 <translation id="8368001212524806591">Հետևել գներին</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Ինչպես ենք մենք օգտագործում այս տվյալները.<ph name="END_BOLD" /> Chrome-ը կարող է գնահատել ձեր հետաքրքրությունները։ Ավելի ուշ կայքը, որն այցելում եք, կարող է Chrome-ից ձեր հետաքրքրությունները տեսնելու թույլտվություն խնդրել՝ ձեզ ցուցադրվող գովազդն անհատականացնելու նպատակով։</translation>
 <translation id="8387617938027387193">Հաստատեք ձեր ինքնությունը</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 6cf3be638..07cb99e32 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Bulan akhir masa berlaku</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> akan dibuka di Chrome. Dengan melanjutkan, Anda menyetujui <ph name="BEGIN_LINK1" />Persyaratan Layanan Google<ph name="END_LINK1" /> serta <ph name="BEGIN_LINK2" />Persyaratan Layanan Tambahan Google Chrome dan ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Halaman tidak tersedia saat offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Lihat situs populer dengan mengetuk tombol "Situs populer"</translation>
 <translation id="1173894706177603556">Ganti nama</translation>
 <translation id="1177863135347784049">Sesuaikan</translation>
 <translation id="1181037720776840403">Hapus</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Tidak dapat mendownload reaksi. Coba lagi.</translation>
 <translation id="8354977102499939946">Telusuri dengan cepat menggunakan suara Anda. Untuk mengedit pintasan ini, buka Setelan.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> download dipulihkan</translation>
-<translation id="8364299278605033898">Lihat situs yang populer</translation>
 <translation id="8368001212524806591">Pantau harga</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cara kami menggunakan data ini:<ph name="END_BOLD" /> Chrome dapat memperkirakan minat Anda. Kemudian, situs yang Anda buka dapat meminta Chrome untuk melihat minat Anda agar dapat mempersonalisasi iklan yang Anda lihat.</translation>
 <translation id="8387617938027387193">Verifikasi diri Anda</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
index d5b6faa..9b8bc5d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Fyrningarmánuður</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> opnast í Chrome. Með því að halda áfram samþykkirðu <ph name="BEGIN_LINK1" />þjónustuskilmála Google<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />viðbótarþjónustuskilmála Google Chrome og ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Síða ekki í boði án nettengingar: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Sjáðu vinsæl vefsvæði með því að ýta á hnappinn „Vinsælast“</translation>
 <translation id="1173894706177603556">Endurnefna</translation>
 <translation id="1177863135347784049">Sérsniðið</translation>
 <translation id="1181037720776840403">Fjarlægja</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Ekki tókst að sækja viðbrögð. Reyndu aftur.</translation>
 <translation id="8354977102499939946">Beittu röddinni til að leita á skjótan hátt. Opnaðu stillingar til að breyta þessari flýtileið.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> niðurhöl endurheimt</translation>
-<translation id="8364299278605033898">Sjáðu vinsæl vefsvæði</translation>
 <translation id="8368001212524806591">Vakta verð</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Svona notum við þessi gögn:<ph name="END_BOLD" /> Chrome getur áætlað áhugasvið þitt. Seinna getur vefsvæði sem þú opnar beðið Chrome um að sýna áhugasvið þitt til að hægt sé að sérsníða auglýsingarnar sem þú sérð.</translation>
 <translation id="8387617938027387193">Staðfestu hver þú ert</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 d7f6bea5..357500d 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mese di scadenza</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> si aprirà in Chrome. Se continui, accetti i <ph name="BEGIN_LINK1" />Termini di servizio di Google<ph name="END_LINK1" /> e i <ph name="BEGIN_LINK2" />Termini di servizio aggiuntivi di Google Chrome e ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Pagina non disponibile offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Scopri i siti web più visitati toccando il pulsante "Siti principali"</translation>
 <translation id="1173894706177603556">Rinomina</translation>
 <translation id="1177863135347784049">Personalizzati</translation>
 <translation id="1181037720776840403">Rimuovi</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Potrai gestire facilmente i controlli multimediali, le sessioni in incognito, i download e altro ancora</translation>
 <translation id="2571711316400087311">Proponi di inviare pagine in altre lingue a Google Traduttore</translation>
 <translation id="2573452357057307036">Scopri come impostare Chrome come browser predefinito</translation>
+<translation id="2580436639406015883">La riduzione di spam e attività fraudolente è basata su token di stato privati per aiutare i siti a contrastare le attività fraudolente e a distinguere i bot dalle persone.
+
+In base alla tua interazione con un sito, ad esempio l'accesso regolare a un account, il sito in questione può emettere un token di stato privato per il browser in uso. Dopodiché, se altri siti che visiti cercano e trovano un token di stato privato valido, è più probabile che ti considerino una persona e non un bot.
+
+I token di stato privati migliorano la privacy sul Web e non possono essere usati per scoprire la tua identità.</translation>
 <translation id="2581165646603367611">Verrà svuotata la cache e verranno cancellati i cookie e altri dati relativi a siti che Chrome non ritiene importanti.</translation>
 <translation id="2587052924345400782">Nuova versione disponibile</translation>
 <translation id="2593272815202181319">Monospace</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Lingua attuale del dispositivo</translation>
 <translation id="414128724510021958">Siti desktop richiesti per impostazione predefinita</translation>
 <translation id="4141536112466364990">Imparare a usare Chrome</translation>
+<translation id="4147131678541801076">Quando sono attive le prove, la riduzione di spam e attività fraudolente è basata su token di stato privati per aiutare i siti a contrastare le attività fraudolente e a distinguere i bot dalle persone.
+
+In base alla tua interazione con un sito, ad esempio l'accesso regolare a un account, il sito in questione può emettere un token di stato privato per il browser in uso. Dopodiché, se altri siti che visiti cercano e trovano un token di stato privato valido, è più probabile che ti considerino una persona e non un bot.
+
+I token di stato privati migliorano la privacy sul Web e non possono essere usati per scoprire la tua identità.</translation>
 <translation id="4162867837470729563">Elenco di opzioni di condivisione a schermo intero.</translation>
 <translation id="4170011742729630528">Il servizio non è disponibile, riprova più tardi.</translation>
 <translation id="4177222230309051052">Recupera tutti i tuoi preferiti</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">Le password vengono salvate in Gestore delle password su questo dispositivo</translation>
 <translation id="4766678251456904326">Aggiungi un account al dispositivo</translation>
 <translation id="4769095993849849966">Nuovo nome file</translation>
+<translation id="4778653490315793244">Nessun contenuto da mostrare</translation>
 <translation id="4787736314074622408">Eliminare il file <ph name="ITEM_TITLE" />?</translation>
 <translation id="4791358705705538979">Ti aiuta a completare le attività sul Web, come i pagamenti</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Attivo 1 giorno fa</translation>
 <translation id="7975379999046275268">Anteprima pagina <ph name="BEGIN_NEW" />Novità<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Per visualizzare le password, imposta un blocco schermo sul tuo dispositivo</translation>
+<translation id="7995059495660416932">Vedrai i contenuti non appena saranno disponibili</translation>
 <translation id="799576009106109668">Navigherai più velocemente perché i contenuti vengono caricati in modo proattivo in base alla pagina web che stai visitando</translation>
 <translation id="7998918019931843664">Riapri la scheda chiusa</translation>
 <translation id="8004582292198964060">Browser</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Impossibile scaricare le reazioni. Riprova.</translation>
 <translation id="8354977102499939946">Cerca rapidamente con la tua voce. Per modificare questa scorciatoia, vai a Impostazioni.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> download ripristinati</translation>
-<translation id="8364299278605033898">Scopri i siti web più visitati</translation>
 <translation id="8368001212524806591">Monitora prezzo</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Come utilizziamo questi dati:<ph name="END_BOLD" /> Chrome può stimare i tuoi interessi. Dopodiché, un sito che visiti può chiedere a Chrome di conoscere i tuoi interessi per personalizzare gli annunci da mostrarti.</translation>
 <translation id="8387617938027387193">Verifica la tua identità</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Stai per eseguire l'accesso con un account gestito da <ph name="MANAGED_DOMAIN" /> e consentire al relativo amministratore di avere il controllo dei tuoi dati di Chrome. I tuoi dati verranno associati definitivamente a questo account. Se esci da Chrome, i dati verranno eliminati da questo dispositivo, ma rimarranno memorizzati nel tuo Account Google.</translation>
 <translation id="9022774213089566801">Più visitati</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# video}other{# video}}</translation>
+<translation id="9042827002460091668">Controlla la connessione a Internet e riprova</translation>
 <translation id="9042893549633094279">Privacy e sicurezza</translation>
 <translation id="9050666287014529139">Passphrase</translation>
 <translation id="9063523880881406963">Disattiva Richiedi sito desktop</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
index b29aff7..e8109eb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">חודש פקיעת התוקף</translation>
 <translation id="1150263420752757504">‏האפליקציה <ph name="APP_NAME" /> תיפתח ב-Chrome. המשך הפעולה מבטא הסכמה <ph name="BEGIN_LINK1" />לתנאים ולהגבלות של Google<ph name="END_LINK1" /> ו<ph name="BEGIN_LINK2" />לתנאים ולהגבלות הנוספים של Google Chrome ו-ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">הדף הזה לא זמין ללא חיבור לאינטרנט: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">הקשה על הלחצן "אתרים נבחרים" תציג אתרים פופולריים</translation>
 <translation id="1173894706177603556">שינוי שם</translation>
 <translation id="1177863135347784049">מותאם אישית</translation>
 <translation id="1181037720776840403">הסרה</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">לא ניתן להוריד תגובות. אפשר לנסות שוב.</translation>
 <translation id="8354977102499939946">חיפוש מהיר באמצעות הקול. ניתן לערוך את קיצור הדרך הזה ב'הגדרות'.</translation>
 <translation id="835847953965672673">שוחזרו <ph name="NUMBER_OF_DOWNLOADS" /> הורדות</translation>
-<translation id="8364299278605033898">הצגת אתרים פופולריים</translation>
 <translation id="8368001212524806591">מעקב אחר המחיר</translation>
 <translation id="8383226135083126309">‏<ph name="BEGIN_BOLD" />איך אנחנו משתמשים בנתונים האלה:<ph name="END_BOLD" /> Chrome יכול להעריך מהם תחומי העניין שלך. לאחר מכן, אתר שבו ביקרת יכול לשלוח בקשה ל-Chrome כדי לגלות מהם תחומי העניין שלך ולהתאים אישית את המודעות שמוצגות לך.</translation>
 <translation id="8387617938027387193">אימות הזהות שלך</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index 498a908..acb60ad 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">有効期限(月)</translation>
 <translation id="1150263420752757504">Chrome で <ph name="APP_NAME" /> を開きます。続行すると、<ph name="BEGIN_LINK1" />Google 利用規約<ph name="END_LINK1" />と <ph name="BEGIN_LINK2" />Google Chrome および Chrome OS 追加利用規約<ph name="END_LINK2" />に同意したものと見なされます。</translation>
 <translation id="1154704303112745282">オフラインで使用できないページ: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">人気のウェブサイトを表示するには、[上位のサイト] ボタンをタップします</translation>
 <translation id="1173894706177603556">名前を変更</translation>
 <translation id="1177863135347784049">カスタム</translation>
 <translation id="1181037720776840403">削除</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">リアクションをダウンロードできません。もう一度お試しください。</translation>
 <translation id="8354977102499939946">音声ですばやく検索します。このショートカットは [設定] で編集できます。</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> 件のダウンロードが復元されました</translation>
-<translation id="8364299278605033898">人気のウェブサイトを表示します</translation>
 <translation id="8368001212524806591">価格のトラッキング</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />このデータの利用方法:<ph name="END_BOLD" /> Chrome はユーザーの興味 / 関心を推定できます。その後、アクセスしたサイトは、表示する広告をパーソナライズするために、Chrome にユーザーの興味 / 関心を確認するよう依頼できます。</translation>
 <translation id="8387617938027387193">本人確認</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index 81fd638..f0015fe 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ვადის გასვლის თვე</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> გაიხსნება Chrome-ში. გაგრძელებით ეთანხმებით <ph name="BEGIN_LINK1" />Google-ის მომსახურების პირობებს<ph name="END_LINK1" />, ასევე, <ph name="BEGIN_LINK2" />Google Chrome-ისა და ChromeOS-ის მომსახურების დამატებით პირობებს<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">გვერდი მიუწვდომელია ხაზგარეშე რეჟიმში: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">იხილეთ პოპულარული ვებსაიტები „ტოპ-საიტების“ ღილაკზე შეხებით</translation>
 <translation id="1173894706177603556">სახელის შეცვლა</translation>
 <translation id="1177863135347784049">მორგებული</translation>
 <translation id="1181037720776840403">ამოშლა</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">რეაქციების ჩამოტვირთვა ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="8354977102499939946">სწრაფად მოიძიეთ ხმის მეშვეობით. ამ მალსახმობის რედაქტირებისთვის გადადით პარამეტრებზე.</translation>
 <translation id="835847953965672673">აღდგენილია <ph name="NUMBER_OF_DOWNLOADS" /> ჩამოტვირთვა</translation>
-<translation id="8364299278605033898">იხილეთ პოპულარული ვებსაიტები</translation>
 <translation id="8368001212524806591">ფასებისთვის თვალის მიდევნება</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ამ მონაცემთა გამოყენების წესი:<ph name="END_BOLD" /> Chrome-ს შეუძლია თქვენი ინტერესების პროგნოზირება. მოგვიანებით, თქვენ მიერ მონახულებულ საიტს საშუალება ექნება, Chrome-ს სთხოვოს თქვენი ინტერესების ჩვენება, თქვენთვის ხილული რეკლამის პერსონალიზების მიზნით.</translation>
 <translation id="8387617938027387193">დაადასტურეთ ვინაობა</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index 380b81aa..6de49c7c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Жарамдылық мерзімі бітетін ай</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> қолданбасы Chrome браузерінде ашылады. Жалғастыру арқылы <ph name="BEGIN_LINK1" />Google Қызмет көрсету шарттарына<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />Google Chrome және ChromeOS Қосымша қызмет көрсету шарттарына<ph name="END_LINK2" /> келісесіз.</translation>
 <translation id="1154704303112745282">Бет офлайн режимде қолжетімді емес: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"Танымал сайт" түймесін түрту арқылы танымал веб-сайттарды көріңіз.</translation>
 <translation id="1173894706177603556">Атын өзгерту</translation>
 <translation id="1177863135347784049">Реттелетін</translation>
 <translation id="1181037720776840403">Өшіру</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">Эмоциялар жүктеп алынбады. Қайталап көріңіз.</translation>
 <translation id="8354977102499939946">Дауыспен жылдам іздеу. Бұл таңбашаны өзгерту үшін "Параметрлер" бөліміне өтіңіз.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> жүктеп алынған файл қалпына келтірілді.</translation>
-<translation id="8364299278605033898">Танымал веб-сайттарды көріңіз.</translation>
 <translation id="8368001212524806591">Бағаларды біліп жүру</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Бұл дерек қалай пайдаланылады:<ph name="END_BOLD" /> Chrome қызығушылықтарыңызды болжайды. Кейін сіз кірген сайт жарнамаларды жекелендіру үшін Chrome браузерінен қызығушылықтарыңыз туралы ақпаратты сұрап алады.</translation>
 <translation id="8387617938027387193">Жеке басыңызды растаңыз</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index 50113576..52519652e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ខែផុតកំណត់</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> នឹងបើកនៅក្នុង Chrome។ ប្រសិនបើបន្ត មានន័យថា​អ្នកយល់ព្រម​តាម<ph name="BEGIN_LINK1" />លក្ខខណ្ឌ​ប្រើប្រាស់ Google<ph name="END_LINK1" /> និង<ph name="BEGIN_LINK2" />លក្ខខណ្ឌ​ប្រើប្រាស់​បន្ថែមរបស់ Google Chrome និង ChromeOS<ph name="END_LINK2" />។</translation>
 <translation id="1154704303112745282">មិនអាចប្រើទំព័រពេលគ្មានអ៊ីនធឺណិតបានទេ៖ <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">មើល​គេហទំព័រ​ពេញនិយម ដោយ​ចុច​ប៊ូតុង "គេហទំព័រ​ពេញនិយម"</translation>
 <translation id="1173894706177603556">ប្តូរឈ្មោះ</translation>
 <translation id="1177863135347784049">ផ្ទាល់ខ្លួន</translation>
 <translation id="1181037720776840403">ដកចេញ</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">មិនអាច​ទាញយក​ប្រតិកម្ម​បានទេ។ សូមព្យាយាមម្ដងទៀត។</translation>
 <translation id="8354977102499939946">ស្វែងរកដោយប្រើសំឡេងរបស់អ្នកបានយ៉ាងរហ័ស។ ដើម្បីកែ​ផ្លូវកាត់​នេះ សូមចូល​ទៅកាន់​ការកំណត់​។</translation>
 <translation id="835847953965672673">បានស្ដារការ​ទាញយក <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">មើល​គេហទំព័រ​ពេញនិយម</translation>
 <translation id="8368001212524806591">តាម​ដាន​តម្លៃ​</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />របៀបដែលយើងប្រើទិន្នន័យនេះ៖<ph name="END_BOLD" /> Chrome អាចប៉ាន់ស្មានចំណាប់អារម្មណ៍របស់អ្នក។ ក្រោយមកទៀត គេហទំព័រដែលអ្នកចូលមើលអាចស្នើសុំ Chrome ដើម្បីមើលចំណាប់អារម្មណ៍របស់អ្នក ដើម្បីកំណត់ការផ្សាយពាណិជ្ជកម្មដែលអ្នកមើលឃើញឱ្យស្របនឹងអ្នក។</translation>
 <translation id="8387617938027387193">ផ្ទៀងផ្ទាត់ថាជាអ្នក</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index 6941de0..0adbe89 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ಮುಕ್ತಾಯದ ತಿಂಗಳು</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />, Chrome ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ. ಮುಂದುವರಿಯುವ ಮೂಲಕ, ನೀವು <ph name="BEGIN_LINK1" />Google ಸೇವಾ ನಿಯಮಗಳು<ph name="END_LINK1" />, ಹಾಗೂ <ph name="BEGIN_LINK2" />Google Chrome ಮತ್ತು ChromeOS ಹೆಚ್ಚುವರಿ ಸೇವಾ ನಿಯಮಗಳಿಗೆ<ph name="END_LINK2" /> ಸಮ್ಮತಿಸುತ್ತೀರಿ.</translation>
 <translation id="1154704303112745282">ಪುಟ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"ಉನ್ನತ ಸೈಟ್‌ಗಳು" ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡುವ ಮೂಲಕ ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="1173894706177603556">ಮರುಹೆಸರಿಸು</translation>
 <translation id="1177863135347784049">ಕಸ್ಟಮ್</translation>
 <translation id="1181037720776840403">ತೆಗೆದುಹಾಕು</translation>
@@ -1378,7 +1377,6 @@
 <translation id="8352996530981010042">ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="8354977102499939946">ನಿಮ್ಮ ಧ್ವನಿಯ ಮೂಲಕ ತ್ವರಿತವಾಗಿ ಹುಡುಕಿ. ಈ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ</translation>
-<translation id="8364299278605033898">ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="8368001212524806591">ಬೆಲೆ ಟ್ರ್ಯಾಕ್ ಮಾಡಿ</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ನಾವು ಈ ಡೇಟಾವನ್ನು ಹೇಗೆ ಬಳಸುತ್ತೇವೆ:<ph name="END_BOLD" /> Chrome ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಅಂದಾಜು ಮಾಡಬಲ್ಲದು. ಆನಂತರ, ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್ ನಿಮಗೆ ಕಾಣಿಸುವ ಜಾಹೀರಾತುಗಳನ್ನು ವೈಯಕ್ತಿಕಗೊಳಿಸಲು ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ತೋರಿಸುವಂತೆ Chrome ಅನ್ನು ಕೇಳಬಹುದು.</translation>
 <translation id="8387617938027387193">ಇದು ನೀವೇ ಎಂಬುದನ್ನು ದೃಢೀಕರಿಸಿ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index 89d92be..9de39be 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">유효기간 월</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> 앱이 Chrome에서 열립니다. 계속하면 <ph name="BEGIN_LINK1" />Google 서비스 약관<ph name="END_LINK1" /> 및 <ph name="BEGIN_LINK2" />Chrome 및 ChromeOS 추가 서비스 약관<ph name="END_LINK2" />에 동의하는 것으로 간주됩니다.</translation>
 <translation id="1154704303112745282">오프라인에서 사용할 수 없는 페이지: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">'인기 사이트' 버튼을 탭하여 인기 웹사이트를 확인하세요.</translation>
 <translation id="1173894706177603556">이름 바꾸기</translation>
 <translation id="1177863135347784049">맞춤설정</translation>
 <translation id="1181037720776840403">삭제</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">반응을 다운로드할 수 없습니다. 다시 시도하세요.</translation>
 <translation id="8354977102499939946">음성으로 빠르게 검색합니다. 바로가기를 수정하려면 설정으로 이동하세요.</translation>
 <translation id="835847953965672673">다운로드 <ph name="NUMBER_OF_DOWNLOADS" />개 복원됨</translation>
-<translation id="8364299278605033898">인기 웹사이트 보기</translation>
 <translation id="8368001212524806591">가격 추적</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Google의 데이터 사용 방식:<ph name="END_BOLD" /> Chrome은 관심분야를 예측할 수 있습니다. 방문하는 사이트에서 광고 개인 최적화를 위해 내 관심분야를 보여달라고 Chrome에 요청할 수 있습니다.</translation>
 <translation id="8387617938027387193">본인 인증</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index 5fe73f1..55df0b7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Колдонуу мөөнөтү аяктаган ай</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chrome'до ачылат. Улантуу менен, <ph name="BEGIN_LINK1" />Google'дун Тейлөө шарттарына<ph name="END_LINK1" /> жана <ph name="BEGIN_LINK2" />Google Chrome менен ChromeOS'тун Кошумча Тейлөө шарттарына<ph name="END_LINK2" /> макулдугуңузду билдиресиз.</translation>
 <translation id="1154704303112745282">Барак оффлайнда жеткиликсиз: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"Мыкты шаарлар" баскычын басып, таанымал вебсайттарды көрүңүз</translation>
 <translation id="1173894706177603556">Атын өзгөртүү</translation>
 <translation id="1177863135347784049">Өзгөчөлөштүрүлгөн</translation>
 <translation id="1181037720776840403">Алып салуу</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Медиафайлдарды, Жашыруун сеанстарды, жүктөп алууларды жана башкаларды оңой башкара аласыз</translation>
 <translation id="2571711316400087311">Башка тилдердеги барактарды Google Котормочуга жөнөтүү сунушталсын</translation>
 <translation id="2573452357057307036">Chrome'ду демейки серепчи катары жөндөгөндү үйрөнүп алыңыз</translation>
+<translation id="2580436639406015883">Спам жана шылуундук жеке абал токендеринин негизинде азаят. Алар сайттарга шылуундукка каршы күрөшүү жана ботторду адамдардан айырмалоого жардам берет.
+
+Сайт менен иштөөңүз, мисалы, аккаунтуңузга ар дайым кирүү сыяктуу аракетиңиздин негизинде ал сайт серепчиңизге жеке абал токенин бере алат. Кийинчерээк, баш баккан сайттарыңыз жеке абал токенин текшерип, аны жарактуу деп тапса, сизди көбүнчө бот катары эмес, адам катары кабыл алат.
+
+Жеке абал токендери Интернетте купуялыгыңызды жакшыртат жана алар менен өздүгүңүз тууралуу маалыматты аныктоого болбойт.</translation>
 <translation id="2581165646603367611">Ушуну менен Chrome үчүн анча маанилүү болбогон кукилер, кэш жана сайттын башка нерселери тазаланат.</translation>
 <translation id="2587052924345400782">Жаңыраак версиясы бар</translation>
 <translation id="2593272815202181319">Monospace</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Түзмөктүн учурдагы тили</translation>
 <translation id="414128724510021958">Демейки шартта суралган компьютердик версиялар</translation>
 <translation id="4141536112466364990">Chrome'ду үйрөнүңүз</translation>
+<translation id="4147131678541801076">Сыноолор күйүк болгондо, спам жана шылуундук жеке абал токендеринин негизинде азаят. Алар сайттарга шылуундукка каршы күрөшүү жана ботторду адамдардан айырмалоого жардам берет.
+
+Сайт менен иштөөңүз, мисалы, аккаунтуңузга ар дайым кирүү сыяктуу аракетиңиздин негизинде ал сайт серепчиңизге жеке абал токенин бере алат. Кийинчерээк, баш баккан сайттарыңыз жеке абал токенин текшерип, аны жарактуу деп тапса, сизди көбүнчө бот катары эмес, адам катары кабыл алат.
+
+Жеке абал токендери Интернетте купуялыгыңызды жакшыртат жана алар менен өздүгүңүз тууралуу маалыматты аныктоого болбойт.</translation>
 <translation id="4162867837470729563">Бөлүшүү параметрлеринин тизмеси толук экранда ачылды.</translation>
 <translation id="4170011742729630528">Бул кызмат учурда иштебейт, бир аздан кийин аракет кылып көрүңүз.</translation>
 <translation id="4177222230309051052">Бардык кыстамаларды алыңыз</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">Сырсөздөр ушул түзмөктө Сырсөздөрдү башкаргычка сакталат</translation>
 <translation id="4766678251456904326">Түзмөккө аккаунт кошуңуз</translation>
 <translation id="4769095993849849966">Файлдын жаңы аталышы</translation>
+<translation id="4778653490315793244">Азырынча көрсөтө турган эч нерсе жок</translation>
 <translation id="4787736314074622408"><ph name="ITEM_TITLE" /> өчүрөсүзбү?</translation>
 <translation id="4791358705705538979">Интернетте иштерди аткарууга, мисалы, төлөм жүргүзүүгө жардам берет</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Соңку аракеттер: 1 күн мурун</translation>
 <translation id="7975379999046275268">Баракты алдын ала көрүү <ph name="BEGIN_NEW" />Жаңы<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Сырсөздөрдү көрүү үчүн түзмөгүңүзгө экран кулпусун коюп алыңыз</translation>
+<translation id="7995059495660416932">Контентти жеткиликтүү болгондо көрөсүз</translation>
 <translation id="799576009106109668">Мазмун учурда ачылып турган веб-баракчанын негизинде жүктөлгөндүктөн, барактарды тезирээк карап чыгасыз</translation>
 <translation id="7998918019931843664">Жабылган кыстырманы кайра ачуу</translation>
 <translation id="8004582292198964060">Серепчи</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Реакциялар жүктөлбөй жатат. Кайталоо.</translation>
 <translation id="8354977102499939946">Оозеки ыкчам издеңиз. Бул ыкчам баскычты түзөтүү үчүн жөндөөлөргө өтүңүз.</translation>
 <translation id="835847953965672673">Жүктөлүп алынган <ph name="NUMBER_OF_DOWNLOADS" /> нерсе калыбына келтирилди</translation>
-<translation id="8364299278605033898">Таанымал вебсайттарды көрүү</translation>
 <translation id="8368001212524806591">Баага көз салуу</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Бул маалыматты кантип колдонобуз:<ph name="END_BOLD" /> Chrome кызыккан нерселериңизди болжолдой алат. Кийинчерээк сиз баш баккан сайттар Chrome'дон кызыккан нерселериңиз тууралуу маалымат алып, ылайыктуу жарнамаларды көрсөтө алат.</translation>
 <translation id="8387617938027387193">Өзүңүздү ырастаңыз</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Сиз <ph name="MANAGED_DOMAIN" /> доменинин администратору тарабынан башкарылган аккаунтка кирип жатасыз. Ал мындан тарта сиздин аккаунтуңузга байланган Chrome дайын-даректериңизды башкарып калат. Chrome аккаунткан чыксаңыз, бул түзмөктөн дайын-даректериңиз жок кылынып, бирок Google Каттоо эсебинде сакталып кала берет.</translation>
 <translation id="9022774213089566801">Көп каралгандар</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# видео}other{# видео}}</translation>
+<translation id="9042827002460091668">Интернет байланышыңызды текшерип, кайталап көрүңүз</translation>
 <translation id="9042893549633094279">Купуялык жана коопсуздук</translation>
 <translation id="9050666287014529139">Купуя сөз айкашы</translation>
 <translation id="9063523880881406963">Иш тактасынын сайтындагы суроо-талапты өчүрүү</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index e98468e9..8bd4954 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ເດືອນ​ໝົດອາຍຸ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ຈະເປີດໃນ Chrome. ໂດຍການສືບຕໍ່, ແມ່ນຖືວ່າທ່ານຍອມຮັບ <ph name="BEGIN_LINK1" />ຂໍ້ກຳນົດບໍລິການ Google<ph name="END_LINK1" /> ແລະ <ph name="BEGIN_LINK2" />ຂໍ້ກຳນົດບໍລິການເພີ່ມເຕີມ Google Chrome ແລະ ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">ໜ້າບໍ່ມີໃຫ້ແບບອອບລາຍ: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">ເບິ່ງເວັບໄຊຍອດນິຍົມໂດຍການແຕະປຸ່ມ "ເວັບໄຊຍອດນິຍົມ"</translation>
 <translation id="1173894706177603556">ໃສ່ຊື່ໃໝ່</translation>
 <translation id="1177863135347784049">ກໍານົດເອງ</translation>
 <translation id="1181037720776840403">ລຶບອອກ</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ບໍ່ສາມາດດາວໂຫຼດຣີແອັກຊັນໄດ້. ກະລຸນາລອງໃໝ່.</translation>
 <translation id="8354977102499939946">ຊອກຫາດ້ວຍສຽງຂອງທ່ານແບບໄວໆ. ເພື່ອແກ້ໄຂທາງລັດນີ້, ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າ.</translation>
 <translation id="835847953965672673">ກູ້ຄືນການດາວໂຫຼດ <ph name="NUMBER_OF_DOWNLOADS" /> ລາຍການແລ້ວ</translation>
-<translation id="8364299278605033898">ເບິ່ງເວັບໄຊຍອດນິຍົມ</translation>
 <translation id="8368001212524806591">ຕິດຕາມລາຄາ</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ພວກເຮົາໃຊ້ຂໍ້ມູນນີ້ແນວໃດ:<ph name="END_BOLD" /> Chrome ສາມາດປະເມີນຄວາມສົນໃຈຂອງທ່ານໄດ້. ເວັບໄຊໃດໜຶ່ງທີ່ທ່ານເຂົ້າເບິ່ງຈະສາມາດຂໍ Chrome ເພື່ອເບິ່ງຄວາມສົນໃຈຂອງທ່ານໃນພາຍຫຼັງໄດ້ເພື່ອປັບແຕ່ງໂຄສະນາທີ່ທ່ານເຫັນໃຫ້ເປັນສ່ວນຕົວ.</translation>
 <translation id="8387617938027387193">ຢັ້ງຢືນວ່າແມ່ນທ່ານ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index ab6eeb1..c450406 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Galiojimo laiko pabaigos mėnuo</translation>
 <translation id="1150263420752757504">„<ph name="APP_NAME" />“ bus atidaryta naršyklėje „Chrome“. Tęsdami sutinkate su <ph name="BEGIN_LINK1" />„Google“ paslaugų teikimo sąlygomis<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />„Google Chrome“ bei „Chrome“ OS papildomomis paslaugų teikimo sąlygomis<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Puslapis nepasiekiamas neprisijungus: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Žr. populiarias svetaines palietę mygtuką „Populiariausios svetainės“</translation>
 <translation id="1173894706177603556">Pervadinti</translation>
 <translation id="1177863135347784049">Priskirtas</translation>
 <translation id="1181037720776840403">Pašalinti</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Galėsite lengvai valdyti medijos valdiklius, inkognito režimo seansus, atsisiuntimus ir kt.</translation>
 <translation id="2571711316400087311">Siūlyti siųsti puslapius kitomis kalbomis į „Google“ vertėją</translation>
 <translation id="2573452357057307036">Sužinokite, kaip nustatyti „Chrome“ kaip numatytąją naršyklę</translation>
+<translation id="2580436639406015883">Šlamšto ir apgaulių siekiama sumažinti pasikliaujant privačiais prieigos raktais, kurie padeda svetainėms išvengti apgaulių bei atskirti robotus nuo žmonių.
+
+Remiantis jūsų sąveika su svetaine, pvz., reguliariais prisijungimais prie paskyros, svetainė gali išduoti privatų prieigos raktą jūsų naršyklei. Vėliau, jei kitos svetainės, kuriose lankotės, tikrins, ar nėra galiojančio privataus prieigos rakto, ir jį ras, labiau tikėtina, kad jos jus laikys žmogumi, o ne robotu.
+
+Privatūs prieigos raktai pagerina privatumą žiniatinklyje ir negali būti naudojami jūsų tapatybei atskleisti.</translation>
 <translation id="2581165646603367611">Bus išvalyti slapukai, talpykla ir kiti svetainių duomenys, kurių „Chrome“ nelaiko svarbiais.</translation>
 <translation id="2587052924345400782">Pasiekiama naujesnė versija</translation>
 <translation id="2593272815202181319">Lygiaplotis</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Dabartinės įrenginio kalba</translation>
 <translation id="414128724510021958">Svetainės kompiuteriams, kurių užklausos pateikiamos pagal numatytuosius nustatymus</translation>
 <translation id="4141536112466364990">Informacija apie „Chrome“</translation>
+<translation id="4147131678541801076">Naudojant šias bandomąsias versijas, siekiama sumažinti šlamšto ir apgaulių pasikliaujant privačiais prieigos raktais, kurie padeda svetainėms išvengti apgaulių bei atskirti robotus nuo žmonių.
+
+Remiantis jūsų sąveika su svetaine, pvz., reguliariais prisijungimais prie paskyros, svetainė gali išduoti privatų prieigos raktą jūsų naršyklei. Vėliau, jei kitos svetainės, kuriose lankotės, tikrins, ar nėra galiojančio privataus prieigos rakto, ir jį ras, labiau tikėtina, kad jos jus laikys žmogumi, o ne robotu.
+
+Privatūs prieigos raktai pagerina privatumą žiniatinklyje ir negali būti naudojami jūsų tapatybei atskleisti.</translation>
 <translation id="4162867837470729563">Bendrinimo parinkčių sąrašas per visą ekrano aukštį.</translation>
 <translation id="4170011742729630528">Paslauga nepasiekiama; vėliau bandykite dar kartą.</translation>
 <translation id="4177222230309051052">Gaukite visas žymes</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">Slaptažodžiai saugomi Slaptažodžių tvarkyklėje šiame įrenginyje</translation>
 <translation id="4766678251456904326">Pridėti paskyrą prie įrenginio</translation>
 <translation id="4769095993849849966">Naujo failo pavadinimas</translation>
+<translation id="4778653490315793244">Dar nėra rodytino turinio</translation>
 <translation id="4787736314074622408">Ar norite ištrinti „<ph name="ITEM_TITLE" />“?</translation>
 <translation id="4791358705705538979">Padedama jums atlikti užduotis, pvz., atsiskaitymo veiksmus, žiniatinklyje</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Aktyvus prieš 1 d.</translation>
 <translation id="7975379999046275268">Peržiūrėti puslapį <ph name="BEGIN_NEW" />Naujas<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Jei norite peržiūrėti slaptažodžius, pirmiausia nustatykite įrenginio ekrano užraktą</translation>
+<translation id="7995059495660416932">Matysite turinį, kai jis bus pasiekiamas</translation>
 <translation id="799576009106109668">Naršysite greičiau, nes turinys įkeliamas proaktyviai remiantis tinklalapiu, kuriame šiuo metu lankotės</translation>
 <translation id="7998918019931843664">Iš naujo atidarykite uždarytą skirtuko lapą</translation>
 <translation id="8004582292198964060">Naršyklė</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Nepavyko atsisiųsti reakcijų. Bandykite dar kartą.</translation>
 <translation id="8354977102499939946">Sparčiai ieškokite balsu. Jei norite redaguoti šį spartųjį klavišą, eikite į skiltį „Nustatymai“.</translation>
 <translation id="835847953965672673">Atkurta atsisiuntimų: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Žr. populiarias svetaines</translation>
 <translation id="8368001212524806591">Stebėti kainą</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kaip naudojame šiuos duomenis:<ph name="END_BOLD" /> „Chrome“ gali įvertinti jūsų pomėgius. Vėliau svetainė, kurioje lankotės, gali paprašyti „Chrome“ peržiūrėti jūsų pomėgius, kad galėtų suasmeninti jūsų matomus skelbimus.</translation>
 <translation id="8387617938027387193">Jūsų tapatybės patvirtinimas</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Prisijungiate naudodami „<ph name="MANAGED_DOMAIN" />“ tvarkomą paskyrą ir suteikiate jos administratoriui galimybę valdyti jūsų „Chrome“ duomenis. Duomenys bus visam laikui susieti su šia paskyra. Atsijungę nuo „Chrome“ ištrinsite duomenis iš šio įrenginio, bet jie ir toliau bus saugomi „Google“ paskyroje.</translation>
 <translation id="9022774213089566801">Dažnai lankytasi</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vaizdo įrašas}one{# vaizdo įrašas}few{# vaizdo įrašai}many{# vaizdo įrašo}other{# vaizdo įrašų}}</translation>
+<translation id="9042827002460091668">Patikrinkite interneto ryšį ir bandykite dar kartą</translation>
 <translation id="9042893549633094279">Privatumas ir sauga</translation>
 <translation id="9050666287014529139">Slaptafrazė</translation>
 <translation id="9063523880881406963">Išjungti stalinio kompiuterio svetainės užklausą</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
index 0718a228..acede5e3b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Derīguma termiņa mēnesis</translation>
 <translation id="1150263420752757504">Lietotne <ph name="APP_NAME" /> tiks atvērta pārlūkā Chrome. Turpinot jūs piekrītat <ph name="BEGIN_LINK1" />Google pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" />, kā arī <ph name="BEGIN_LINK2" />Google Chrome un Chrome OS pakalpojumu sniegšanas papildu noteikumiem<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Šī lapa nav pieejama bezsaistē: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Lai skatītu populāras tīmekļa vietnes, pieskarieties pogai “Populāras”</translation>
 <translation id="1173894706177603556">Pārdēvēt</translation>
 <translation id="1177863135347784049">Pielāgota</translation>
 <translation id="1181037720776840403">Noņemt</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Nevar lejupielādēt reakcijas. Mēģiniet vēlreiz.</translation>
 <translation id="8354977102499939946">Ātra meklēšana ar balsi. Lai rediģētu šo saīsni, pārejiet uz iestatījumiem.</translation>
 <translation id="835847953965672673">Lejupielādes atjaunotas, skaits: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Skatīt populāras vietnes</translation>
 <translation id="8368001212524806591">Izsekot cenu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kā mēs izmantojam šos datus:<ph name="END_BOLD" /> pārlūkā Chrome var aptuveni noteikt jūsu intereses. Vēlāk kāda jūsu apmeklēta vietne var pieprasīt pārlūkam Chrome atļauju skatīt jūsu intereses, lai personalizētu jums rādāmās reklāmas.</translation>
 <translation id="8387617938027387193">Apstipriniet, ka tas esat jūs</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
index e7daf4e..7cc913a6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Месец на истекување</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ќе се отвори во Chrome. Ако продолжите, се согласувате со <ph name="BEGIN_LINK1" />Условите за користење на Google<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Дополнителните услови за користење на Google Chrome и Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Страницата е недостапна офлајн: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Допрете го копчето „Популарни“ за да ги разгледате популарните веб-сајтови</translation>
 <translation id="1173894706177603556">Преименувај</translation>
 <translation id="1177863135347784049">Приспособено</translation>
 <translation id="1181037720776840403">Отстрани</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Не може да се преземат реакции. Обидете се повторно.</translation>
 <translation id="8354977102499939946">Брзо пребарувајте со гласот. За да ја измените кратенкава, одете во „Поставки“.</translation>
 <translation id="835847953965672673">Вратени се <ph name="NUMBER_OF_DOWNLOADS" /> преземања</translation>
-<translation id="8364299278605033898">Разгледајте ги популарните веб-сајтови</translation>
 <translation id="8368001212524806591">Следи ја цената</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Како ги користиме овие податоци:<ph name="END_BOLD" /> Chrome може да ги процени вашите интереси. Подоцна, сајтот што го посетувате може да побара од Chrome да ги види вашите интереси за да ги персонализира рекламите што ги гледате.</translation>
 <translation id="8387617938027387193">Потврдете дека сте вие</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 307df25..ea35f3d 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">കാലാവധി കഴിയുന്ന മാസം</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />, Chrome-ൽ തുറക്കും. തുടരുന്നതിലൂടെ, നിങ്ങൾ <ph name="BEGIN_LINK1" />Google സേവന നിബന്ധനകളും<ph name="END_LINK1" /> <ph name="BEGIN_LINK2" />Google Chrome, ChromeOS അധിക സേവന നിബന്ധനകളും<ph name="END_LINK2" /> അംഗീകരിക്കുന്നു.</translation>
 <translation id="1154704303112745282">ഓഫ്‌ലൈനിൽ പേജ് ലഭ്യമല്ല: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"മികച്ച സൈറ്റുകൾ" ബട്ടൺ ടാപ്പ് ചെയ്‌ത് ജനപ്രിയ വെബ്‌സൈറ്റുകൾ കാണുക</translation>
 <translation id="1173894706177603556">പേരുമാറ്റുക</translation>
 <translation id="1177863135347784049">ഇഷ്ടാനുസൃതം</translation>
 <translation id="1181037720776840403">നീക്കംചെയ്യൂ</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">പ്രതികരണങ്ങൾ ഡൗൺലോഡ് ചെയ്യാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="8354977102499939946">നിങ്ങളുടെ ശബ്ദം ഉപയോഗിച്ച് വേഗത്തിൽ തിരയുക. ഈ കുറുക്കുവഴി എഡിറ്റ് ചെയ്യാൻ ക്രമീകരണത്തിലേക്ക് പോകുക.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ഡൗൺലോഡുകൾ പുനഃസ്ഥാപിച്ചു</translation>
-<translation id="8364299278605033898">ജനപ്രിയ വെബ്‌സൈറ്റുകൾ കാണുക</translation>
 <translation id="8368001212524806591">നിരക്ക് ട്രാക്ക് ചെയ്യുക</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ഈ ഡാറ്റ ഞങ്ങൾ എങ്ങനെ ഉപയോഗിക്കുന്നു:<ph name="END_BOLD" /> Chrome-ന് നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ നിർണ്ണയിക്കാനാകും. പിന്നീട്, കാണുന്ന പരസ്യങ്ങൾ വ്യക്തിപരമാക്കുന്നതിന് നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ കാണിക്കാൻ നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റിന് Chrome-നോട് ആവശ്യപ്പെടാം.</translation>
 <translation id="8387617938027387193">ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index 6d94795..71cf2036 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Хугацаа дуусах сар</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />-г Chrome-д нээнэ. Үргэлжлүүлснээр та <ph name="BEGIN_LINK1" />Google-н үйлчилгээний нөхцөл<ph name="END_LINK1" /> болон <ph name="BEGIN_LINK2" />Google Chrome, ChromeOS-н үйлчилгээний нэмэлт нөхцөлийг<ph name="END_LINK2" /> зөвшөөрч байна.</translation>
 <translation id="1154704303112745282">Хуудас офлайн үед боломжгүй: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"Шилдэг сайтууд" товчлуурыг товшин, түгээмэл хэрэглэгддэг веб сайтыг харна уу</translation>
 <translation id="1173894706177603556">Нэр солих</translation>
 <translation id="1177863135347784049">Хэвийн</translation>
 <translation id="1181037720776840403">Хасах</translation>
@@ -1378,7 +1377,6 @@
 <translation id="8352996530981010042">Хариу үйлдлүүдийг татах боломжгүй. Дахин оролдоно уу.</translation>
 <translation id="8354977102499939946">Дуу хоолойгоороо шуурхай хайгаарай. Энэ товчлолыг засахын тулд Тохиргоо руу очно уу.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> татаж авсан файлыг сэргээсэн</translation>
-<translation id="8364299278605033898">Түгээмэл хэрэглэгддэг веб сайтыг харах</translation>
 <translation id="8368001212524806591">Үнэ хянах</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Бид энэ өгөгдлийг хэрхэн ашигладаг вэ?:<ph name="END_BOLD" /> Chrome таны сонирхлыг тооцоолох боломжтой. Дараа нь таны зочилсон сайт таны хардаг зарыг хувийн болгохын тулд Chrome-с таны сонирхлыг харахыг хүсэх боломжтой.</translation>
 <translation id="8387617938027387193">Өөрийгөө мөн болохыг бататгана уу</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index d6d40a0a3..754199d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">कालबाह्य होण्याचा महिना:</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> हे Chrome मध्ये उघडेल. पुढे सुरू ठेवून, तुम्ही <ph name="BEGIN_LINK1" />Google सेवा अटी<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />Google Chrome व ChromeOS च्या अतिरिक्त सेवा अटी<ph name="END_LINK2" /> यांना सहमती दर्शवता.</translation>
 <translation id="1154704303112745282">पेज ऑफलाइन उपलब्ध नाही: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"टॉप साइट" बटणावर टॅप करून लोकप्रिय वेबसाइट पहा</translation>
 <translation id="1173894706177603556">नाव बदला</translation>
 <translation id="1177863135347784049">कस्टम</translation>
 <translation id="1181037720776840403">काढून टाका</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">प्रतिक्रिया डाउनलोड करू शकत नाही. पुन्हा प्रयत्न करा.</translation>
 <translation id="8354977102499939946">तुमचा आवाज वापरून झटपट शोधा. हा शॉर्टकट संपादित करण्यासाठी, सेटिंग्ज वर जा.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड रिस्टोअर केले</translation>
-<translation id="8364299278605033898">लोकप्रिय वेबसाइट पहा</translation>
 <translation id="8368001212524806591">किंमत ट्रॅक करणे</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />आम्ही हा डेटा कसा वापरतो:<ph name="END_BOLD" /> Chrome तुमच्या स्वारस्यांचा अंदाज लावू शकते. नंतर, तुम्ही पाहता त्या जाहिराती पर्सनलाइझ करण्यासाठी तुम्ही भेट देता ती साइट Chrome ला तुमची स्वारस्ये पाहण्याची विनंती करू शकते.</translation>
 <translation id="8387617938027387193">हे तुम्हीच आहात याची पडताळणी करा</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 808010e..a520078 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Bulan tamat tempoh</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> akan dibuka dalam Chrome. Dengan meneruskan penggunaan, anda bersetuju menerima <ph name="BEGIN_LINK1" />Syarat Perkhidmatan Google<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />Syarat Perkhidmatan Tambahan Google Chrome dan Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Halaman tidak tersedia di luar talian: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Lihat laman web popular dengan mengetik butang "Tapak popular"</translation>
 <translation id="1173894706177603556">Namakan semula</translation>
 <translation id="1177863135347784049">Tersuai</translation>
 <translation id="1181037720776840403">Alih keluar</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Tidak dapat memuat turun reaksi. Cuba lagi.</translation>
 <translation id="8354977102499939946">Cari menggunakan suara anda dengan pantas. Untuk mengedit pintasan ini, pergi ke Tetapan.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> muat turun dipulihkan</translation>
-<translation id="8364299278605033898">Lihat laman web popular</translation>
 <translation id="8368001212524806591">Jejak harga</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cara kami menggunakan data ini:<ph name="END_BOLD" /> Chrome boleh menganggarkan minat anda. Kemudian, laman yang anda lawati boleh meminta Chrome melihat minat anda untuk memeribadikan iklan yang anda lihat.</translation>
 <translation id="8387617938027387193">Sahkan itu anda</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
index a2806cb..46883dc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">သက်တမ်းကုန်ဆုံးမည့်လ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ကို Chrome တွင် ဖွင့်ပါမည်။ ရှေ့ဆက်ခြင်းဖြင့် သင်သည် <ph name="BEGIN_LINK1" />Google ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_LINK1" /> နှင့် <ph name="BEGIN_LINK2" />Google Chrome နှင့် ChromeOS ထပ်တိုး ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_LINK2" /> ကို သဘောတူရာရောက်သည်။</translation>
 <translation id="1154704303112745282">အော့ဖ်လိုင်းတွင် စာမျက်နှာကိုမရနိုင်ပါ - <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"ထိပ်တန်း ဝဘ်ဆိုက်များ" ခလုတ်ကို တို့ခြင်းဖြင့် လူကြိုက်များသော ဝဘ်ဆိုက်များ ကြည့်ရန်</translation>
 <translation id="1173894706177603556">အမည်ပြောင်းရန်</translation>
 <translation id="1177863135347784049">စိတ်ကြိုက်</translation>
 <translation id="1181037720776840403">ဖယ်ရှားရန်</translation>
@@ -1378,7 +1377,6 @@
 <translation id="8352996530981010042">တုံ့ပြန်မှုများကို ဒေါင်းလုဒ်လုပ်၍ မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="8354977102499939946">သင့်အသံဖြင့် အမြန်ရှာပါ။ ဤဖြတ်လမ်းလင့်ခ်ကို ပြင်ဆင်ရန် ‘ဆက်တင်များ’ သို့ သွားပါ။</translation>
 <translation id="835847953965672673">ဒေါင်းလုဒ် <ph name="NUMBER_OF_DOWNLOADS" /> ပြန်ယူပြီးပြီ</translation>
-<translation id="8364299278605033898">လူကြိုက်များသော ဝဘ်ဆိုက်များ ကြည့်ရန်</translation>
 <translation id="8368001212524806591">ဈေးနှုန်း စောင့်ကြည့်ခြင်း</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ကျွန်ုပ်တို့ ဤဒေတာ အသုံးပြုပုံ-<ph name="END_BOLD" /> Chrome က သင့်စိတ်ဝင်စားမှုများကို ခန့်မှန်းနိုင်သည်။ နောက်ပိုင်းတွင် မြင်တွေ့မည့် ကြော်ငြာများကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန် သင့်စိတ်ဝင်စားမှုများကို သင်ဝင်ကြည့်သည့် ဝဘ်ဆိုက်က Chrome ထံ တောင်းဆိုနိုင်သည်။</translation>
 <translation id="8387617938027387193">သင်ဖြစ်ကြောင်း အတည်ပြုပါ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index 2b7c4a76..59466ec 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">म्याद सकिने महिना</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chrome मा खुल्ने छ। तपाईंले जारी राख्नुभयो भने तपाईं <ph name="BEGIN_LINK1" />Google का सेवाका सर्त<ph name="END_LINK1" /> र <ph name="BEGIN_LINK2" />Google Chrome तथा ChromeOS का सेवाका अतिरिक्त सर्तहरू<ph name="END_LINK2" />मा सहमति जनाउनुहुन्छ भन्ने अर्थ लाग्छ।</translation>
 <translation id="1154704303112745282">यो पृष्ठ अफलाइन मोडमा उपलब्ध छैन: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"शीर्ष साइटहरू" नामक बटनमा ट्याप गरी लोकप्रिय वेबसाइटहरू हेर्नुहोस्</translation>
 <translation id="1173894706177603556">पुन: नामाकरण गर्नुहोस्</translation>
 <translation id="1177863135347784049">अनुकूल</translation>
 <translation id="1181037720776840403">हटाउनुहोस्</translation>
@@ -1378,7 +1377,6 @@
 <translation id="8352996530981010042">प्रतिक्रियाहरू डाउनलोड गर्न सकिँदैन। फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="8354977102499939946">आफ्नो आवाज प्रयोग गरी छिटोछरितो रूपमा खोज्नुहोस्। यो सर्टकट परिवर्तन गर्न सेटिङमा जानुहोस्।</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> वटा डाउनलोड रिस्टोर गरिए</translation>
-<translation id="8364299278605033898">लोकप्रिय वेबसाइटहरू हेर्नुहोस्</translation>
 <translation id="8368001212524806591">मूल्य ट्रयाक गर्नुहोस्</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />हामीले यो डेटा कसरी प्रयोग गर्छौँ:<ph name="END_BOLD" /> Chrome ले तपाईंका रुचिहरू पत्ता लगाउन सक्छ। तपाईंले यसपछि खोल्ने साइटले Chrome सँग तपाईंलाई देखाइने विज्ञापनहरू पर्सनलाइज गर्ने प्रयोजनका लागि तपाईंका रुचिहरू हेर्ने अनुमति माग्न सक्छ।</translation>
 <translation id="8387617938027387193">यो व्यक्ति तपाईं नै हो भन्ने कुरा पुष्टि गर्नुहोस्</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 0d698a748..924a2df 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Vervalmaand</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> wordt geopend in Chrome. Als je doorgaat, ga je akkoord met de <ph name="BEGIN_LINK1" />Servicevoorwaarden van Google<ph name="END_LINK1" /> en met de <ph name="BEGIN_LINK2" />Aanvullende servicevoorwaarden van Google Chrome en Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Pagina niet offline beschikbaar: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Bekijk populaire websites door op de knop Topsites te tikken</translation>
 <translation id="1173894706177603556">Naam wijzigen</translation>
 <translation id="1177863135347784049">Aangepast</translation>
 <translation id="1181037720776840403">Verwijderen</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Kan reacties niet downloaden. Probeer het opnieuw.</translation>
 <translation id="8354977102499939946">Zoek snel met je stem. Je kunt deze snelkoppeling bewerken via Instellingen.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads hersteld</translation>
-<translation id="8364299278605033898">Bekijk populaire websites</translation>
 <translation id="8368001212524806591">Prijs volgen</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Hoe we deze gegevens gebruiken:<ph name="END_BOLD" /> Chrome kan een schatting van je interesses maken. Later kan een site die je bezoekt Chrome vragen om je interesses te bekijken zodat de advertenties die je ziet kunnen worden gepersonaliseerd.</translation>
 <translation id="8387617938027387193">Je identiteit verifiëren</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
index 4f27c453..f70782a3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Utløpsmåned</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> åpnes i Chrome. Ved å fortsette samtykker du i <ph name="BEGIN_LINK1" />Googles vilkår for bruk<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />tilleggsvilkårene for bruk av Google Chrome og ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Siden er ikke tilgjengelig uten nett: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Se populære nettsteder ved å trykke på «Populært»-knappen</translation>
 <translation id="1173894706177603556">Gi nytt navn</translation>
 <translation id="1177863135347784049">Tilpasset</translation>
 <translation id="1181037720776840403">Fjern</translation>
@@ -1367,7 +1366,6 @@
 <translation id="8352996530981010042">Kan ikke laste ned reaksjoner. Prøv på nytt.</translation>
 <translation id="8354977102499939946">Søk raskt med stemmen din. For å redigere denne snarveien, gå til Innstillinger.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> nedlastinger er gjenopprettet</translation>
-<translation id="8364299278605033898">Se populære nettsteder</translation>
 <translation id="8368001212524806591">Spor prisen</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Slik bruker vi disse dataene:<ph name="END_BOLD" /> Chrome kan anslå interessene dine. Senere kan nettsteder du besøker, spørre Chrome om interessene dine for å kunne sette personlig preg på annonsene du ser.</translation>
 <translation id="8387617938027387193">Bekreft at det er deg</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
index 831341ce..b432258 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ମିଆଦ ଶେଷ ହେଉଥିବା ମାସ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chromeରେ ଖୋଲିବ। ଜାରି ରଖି, ଆପଣ <ph name="BEGIN_LINK1" />Google ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_LINK1" /> ଏବଂ <ph name="BEGIN_LINK2" />Google Chrome ଏବଂ ChromeOSର ଅତିରିକ୍ତ ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_LINK2" />ରେ ସମ୍ମତ ହୁଅନ୍ତି।</translation>
 <translation id="1154704303112745282">ପୃଷ୍ଠାଟି ଅଫଲାଇନରେ ଉପଲବ୍ଧ ନାହିଁ: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"ଶ୍ରେଷ୍ଠ ସାଇଟ୍‍ଗୁଡ଼ିକ" ବଟନ୍ ଟାପ୍ କରି ଲୋକପ୍ରିୟ ୱେବ୍‌ସାଇଟ୍‌ଗୁଡ଼ିକ ଦେଖନ୍ତୁ</translation>
 <translation id="1173894706177603556">ରିନେମ୍ କରନ୍ତୁ</translation>
 <translation id="1177863135347784049">କଷ୍ଟମ୍‌</translation>
 <translation id="1181037720776840403">କାଢ଼ି ଦିଅନ୍ତୁ</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ପ୍ରତିକ୍ରିୟାଗୁଡ଼ିକୁ ଡାଉନଲୋଡ କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="8354977102499939946">ଆପଣଙ୍କ ଭଏସ୍ ମାଧ୍ୟମରେ ଶୀଘ୍ର ସନ୍ଧାନ କରନ୍ତୁ। ଏହି ସର୍ଟକଟକୁ ଏଡିଟ୍ କରିବା ପାଇଁ, ସେଟିଂସକୁ ଯାଆନ୍ତୁ।</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" />ଟି ଡାଉନଲୋଡ୍ ରିଷ୍ଟୋର୍ କରାଯାଇଛି</translation>
-<translation id="8364299278605033898">ଲୋକପ୍ରିୟ ୱେବ୍‍ସାଇଟ୍‌ଗୁଡ଼ିକ ଦେଖନ୍ତୁ</translation>
 <translation id="8368001212524806591">ମୂଲ୍ୟ ଟ୍ରାକ କରନ୍ତୁ</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ଆମେ ଏହି ଡାଟାକୁ କିପରି ବ୍ୟବହାର କରୁ:<ph name="END_BOLD" /> Chrome ଆପଣଙ୍କ ରୁଚିଗୁଡ଼ିକୁ ଆକଳନ କରିପାରିବ। ପରେ, ଆପଣ ଭିଜିଟ କରୁଥିବା ଏକ ସାଇଟ, ଆପଣ ଦେଖୁଥିବା ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ପର୍ସନାଲାଇଜ କରିବା ପାଇଁ Chromeକୁ ଆପଣଙ୍କ ରୁଚିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ କହିପାରିବ।</translation>
 <translation id="8387617938027387193">ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index 88a0ac9..1ad2636 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">ਮਿਆਦ ਸਮਾਪਤੀ ਦਾ ਮਹੀਨਾ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ਨੂੰ Chrome ਵਿੱਚ ਖੋਲ੍ਹਿਆ ਜਾਵੇਗਾ। ਜਾਰੀ ਰੱਖ ਕੇ, ਤੁਸੀਂ <ph name="BEGIN_LINK1" />Google ਦੇ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_LINK1" /> ਅਤੇ <ph name="BEGIN_LINK2" />Google Chrome ਅਤੇ ChromeOS ਦੇ ਵਧੀਕ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_LINK2" /> ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ।</translation>
 <translation id="1154704303112745282">ਪੰਨਾ ਆਫ਼ਲਾਈਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"ਪ੍ਰਮੁੱਖ ਸਾਈਟਾਂ" ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਕੇ ਪ੍ਰਸਿੱਧ ਵੈੱਬਸਾਈਟਾਂ ਦੇਖੋ</translation>
 <translation id="1173894706177603556">ਮੁੜ-ਨਾਮਕਰਨ ਕਰੋ</translation>
 <translation id="1177863135347784049">ਵਿਉਂਂਤੀ</translation>
 <translation id="1181037720776840403">ਹਟਾਓ</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ਪ੍ਰਤਿਕਿਰਿਆਵਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="8354977102499939946">ਤੁਰੰਤ ਆਪਣੀ ਅਵਾਜ਼ ਨਾਲ ਖੋਜੋ। ਇਸ ਸ਼ਾਰਟਕੱਟ ਦਾ ਸੰਪਾਦਨ ਕਰਨ ਲਈ, ਸੈਟਿੰਗਾਂ 'ਤੇ ਜਾਓ।</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ਡਾਊਨਲੋਡਾਂ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਗਿਆ</translation>
-<translation id="8364299278605033898">ਪ੍ਰਸਿੱਧ ਵੈੱਬਸਾਈਟਾਂ ਦੇਖੋ</translation>
 <translation id="8368001212524806591">ਕੀਮਤ 'ਤੇ ਨਜ਼ਰ ਰੱਖੋ</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ਅਸੀਂ ਇਸ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਦੇ ਹਾਂ:<ph name="END_BOLD" /> Chrome ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾ ਸਕਦਾ ਹੈ। ਬਾਅਦ ਵਿੱਚ, ਤੁਸੀਂ ਜਿਹੜੀ ਸਾਈਟ 'ਤੇ ਜਾਂਦੇ ਹੋ ਉਹ Chrome ਨੂੰ ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੇ ਜਾਣ ਵਾਲੇ ਵਿਗਿਆਪਨਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਵਾਸਤੇ ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ ਨੂੰ ਦੇਖਣ ਲਈ ਕਹਿ ਸਕਦੀ ਹੈ।</translation>
 <translation id="8387617938027387193">ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
index b3a6730..47cfc61 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Miesiąc utraty ważności</translation>
 <translation id="1150263420752757504">Aplikacja <ph name="APP_NAME" /> zostanie otwarta w Chrome. Przechodząc dalej, wyrażasz zgodę na <ph name="BEGIN_LINK1" />Warunki korzystania z usług Google<ph name="END_LINK1" /> oraz <ph name="BEGIN_LINK2" />Dodatkowe warunki korzystania z Google Chrome i Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Strona niedostępna offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Zobacz najpopularniejsze strony, klikając przycisk „Popularne”</translation>
 <translation id="1173894706177603556">Zmień nazwę</translation>
 <translation id="1177863135347784049">Niestandardowe</translation>
 <translation id="1181037720776840403">Usuń</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Nie udało się pobrać reakcji. Spróbuj ponownie.</translation>
 <translation id="8354977102499939946">Szybko wyszukaj głosowo. Aby edytować ten skrót, otwórz Ustawienia.</translation>
 <translation id="835847953965672673">Przywrócone pliki: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Zobacz najpopularniejsze strony</translation>
 <translation id="8368001212524806591">Monitorowanie cen</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Jak używamy tych danych:<ph name="END_BOLD" /> Chrome może oszacować, jakie są Twoje zainteresowania. Później odwiedzana przez Ciebie witryna może wykorzystać te informacje, aby spersonalizować wyświetlane Ci reklamy.</translation>
 <translation id="8387617938027387193">Potwierdź, że to Ty</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 8203dc97..f7c06cd 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mês de expiração</translation>
 <translation id="1150263420752757504">O app <ph name="APP_NAME" /> será aberto no Chrome. Ao continuar, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço do Google<ph name="END_LINK1" /> e os <ph name="BEGIN_LINK2" />Termos de Serviço adicionais do Google Chrome e do ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Página indisponível off-line: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Toque no botão "Sites famosos" para ver os sites muito acessados</translation>
 <translation id="1173894706177603556">Renomear</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1181037720776840403">Remover</translation>
@@ -1380,7 +1379,6 @@
 <translation id="8352996530981010042">Não foi possível fazer o download das reações. Tente novamente.</translation>
 <translation id="8354977102499939946">Pesquisar rapidamente usando sua voz. Para editar esse atalho, acesse as Configurações.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads restaurados</translation>
-<translation id="8364299278605033898">Ver sites conhecidos</translation>
 <translation id="8368001212524806591">Monitorar preço</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Como usamos esses dados<ph name="END_BOLD" />: o Chrome pode fazer uma estimativa dos seus interesses. Sites que você visitar vão poder pedir ao Chrome para ver seus interesses e personalizar os anúncios mostrados a você.</translation>
 <translation id="8387617938027387193">Confirme que é você</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
index 3297c60..b6c492ac1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mês de expiração</translation>
 <translation id="1150263420752757504">A app <ph name="APP_NAME" /> vai abrir no Chrome. Ao continuar, aceita os <ph name="BEGIN_LINK1" />Termos de Utilização da Google<ph name="END_LINK1" /> e os <ph name="BEGIN_LINK2" />Termos de Utilização Adicionais do Google Chrome e ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Página indisponível offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Veja Websites populares ao tocar no botão "Principais sites"</translation>
 <translation id="1173894706177603556">Mudar nome</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1181037720776840403">Remover</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Vai poder gerir facilmente controlos de multimédia, sessões de Navegação anónima, transferências e muito mais</translation>
 <translation id="2571711316400087311">Disponibilizar-se para enviar páginas noutros idiomas para o Google Tradutor</translation>
 <translation id="2573452357057307036">Saiba como definir o Chrome como o seu navegador predefinido</translation>
+<translation id="2580436639406015883">A redução de spam e fraudes depende de símbolos de estado privados para ajudar os sites a combater fraudes e distinguir bots de pessoas.
+
+Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
+
+Os símbolos de estado privado melhoram a privacidade na Web e não podem ser usados para descobrir a sua identidade.</translation>
 <translation id="2581165646603367611">Esta ação elimina os cookies, a cache e outros dados de sites que o Chrome não considera importantes.</translation>
 <translation id="2587052924345400782">Versão mais recente dispon.</translation>
 <translation id="2593272815202181319">Monoespaço</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Idioma do dispositivo atual</translation>
 <translation id="414128724510021958">Sites para computador pedidos por predefinição</translation>
 <translation id="4141536112466364990">Conheça o Chrome</translation>
+<translation id="4147131678541801076">Quando as avaliações estão ativadas, a redução de spam e fraudes depende de símbolos de estado privado para ajudar os sites a combater fraudes e distinguir bots de pessoas.
+
+Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
+
+Os símbolos de estado privado melhoram a privacidade na Web e não podem ser usados para descobrir a sua identidade.</translation>
 <translation id="4162867837470729563">Lista de opções de partilha à altura total.</translation>
 <translation id="4170011742729630528">O serviço não está disponível. Tente mais tarde.</translation>
 <translation id="4177222230309051052">Obtenha todos os marcadores</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">As palavras-passe são guardadas no Gestor de Palavras-passe neste dispositivo</translation>
 <translation id="4766678251456904326">Adicionar conta ao dispositivo</translation>
 <translation id="4769095993849849966">Novo nome do ficheiro</translation>
+<translation id="4778653490315793244">Nada a apresentar de momento</translation>
 <translation id="4787736314074622408">Quer eliminar <ph name="ITEM_TITLE" />?</translation>
 <translation id="4791358705705538979">Ajuda a concluir tarefas, como pagamentos, na Web.</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Ativo há 1 dia</translation>
 <translation id="7975379999046275268">Pré-visualizar página <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Para ver as palavras-passe, defina primeiro um bloqueio de ecrã no dispositivo.</translation>
+<translation id="7995059495660416932">É apresentado conteúdo quando este ficar disponível</translation>
 <translation id="799576009106109668">Irá navegar mais depressa porque os conteúdos são carregados proativamente com base na página Web que está a visitar</translation>
 <translation id="7998918019931843664">Reabrir separador fechado</translation>
 <translation id="8004582292198964060">Navegador</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Não é possível transferir reações. Tente novamente.</translation>
 <translation id="8354977102499939946">Pesquise com a sua voz rapidamente. Para editar este atalho, aceda às Definições.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> transferências restauradas.</translation>
-<translation id="8364299278605033898">Veja Websites populares</translation>
 <translation id="8368001212524806591">Monitorizar preço</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Como usamos estes dados:<ph name="END_BOLD" /> o Chrome pode estimar os seus interesses. Posteriormente, um site que visitar pode pedir ao Chrome para ver os seus interesses para personalizar os anúncios que vê.</translation>
 <translation id="8387617938027387193">Valide a sua identidade</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Está a iniciar sessão com uma conta gerida por <ph name="MANAGED_DOMAIN" /> e a conceder ao respetivo gestor o controlo dos seus dados do Chrome. Os dados ficarão permanentemente associados a esta conta. Terminar sessão no Chrome elimina os seus dados deste dispositivo, embora permaneçam armazenados na Conta Google.</translation>
 <translation id="9022774213089566801">Visitados frequentemente</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vídeo}other{# vídeos}}</translation>
+<translation id="9042827002460091668">Verifique a ligação à Internet e tente novamente.</translation>
 <translation id="9042893549633094279">Privacidade e segurança</translation>
 <translation id="9050666287014529139">Frase de acesso</translation>
 <translation id="9063523880881406963">Desativar Pedir site para computador</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index 652d1c0..cda78c9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Luna expirării</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> se va deschide în Chrome. Dacă alegi să continui, ești de acord cu <ph name="BEGIN_LINK1" />Termenii și condițiile Google<ph name="END_LINK1" /> și cu <ph name="BEGIN_LINK2" />Termenii și condițiile suplimentare pentru Google Chrome și Sistemul de operare Chrome<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Pagina nu este disponibilă offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Vezi site-uri populare atingând butonul „Site-uri de top”</translation>
 <translation id="1173894706177603556">Redenumește</translation>
 <translation id="1177863135347784049">Personalizează</translation>
 <translation id="1181037720776840403">Elimină</translation>
@@ -283,6 +282,11 @@
 <translation id="2569733278091928697">Vei putea să gestionezi cu ușurință comenzile media, sesiunile incognito, descărcările și altele</translation>
 <translation id="2571711316400087311">Oferă trimiterea paginilor în alte limbi la Google Traducere</translation>
 <translation id="2573452357057307036">Află cum să setezi Chrome ca browser prestabilit</translation>
+<translation id="2580436639406015883">Reducerea spamului și fraudei se bazează pe indicative private de stare pentru a ajuta site-urile să prevină frauda și să deosebească aplicațiile bot de persoane.
+
+Pe baza interacțiunii tale cu un site, de exemplu, conectarea frecventă la un cont, acel site poate să emită un indicativ privat de stare pentru browserul tău. Mai târziu, dacă alte site-uri pe care le accesezi verifică și găsesc un indicativ privat de stare valid, există mai multe șanse să te trateze ca pe o persoană, nu ca pe o aplicație bot.
+
+Indicativele de stare private îmbunătățesc confidențialitatea pe web și nu pot fi folosite pentru a afla cine ești.</translation>
 <translation id="2581165646603367611">Astfel, vor fi șterse cookie-urile, memoria cache și alte date ale site-urilor pe care Chrome nu le consideră importante.</translation>
 <translation id="2587052924345400782">Este disponibilă o versiune mai nouă</translation>
 <translation id="2593272815202181319">Un singur spațiu</translation>
@@ -571,6 +575,11 @@
 <translation id="4137746084635924146">Limba actuală a dispozitivului</translation>
 <translation id="414128724510021958">Versiuni ale site-ului pentru computer solicitate în mod prestabilit</translation>
 <translation id="4141536112466364990">Familiarizează-te cu Chrome</translation>
+<translation id="4147131678541801076">În versiunile de încercare, Reducerea spamului și fraudei se bazează pe indicative private de stare pentru a ajuta site-urile să prevină frauda și să deosebească aplicațiile bot de persoane.
+
+Pe baza interacțiunii tale cu un site, de exemplu, conectarea frecventă la un cont, acel site poate să emită un indicativ privat de stare pentru browserul tău. Mai târziu, dacă alte site-uri pe care le accesezi verifică și găsesc un indicativ privat de stare valid, există mai multe șanse să te trateze ca pe o persoană, nu ca pe o aplicație bot.
+
+Indicativele de stare private îmbunătățesc confidențialitatea pe web și nu pot fi folosite pentru a afla cine ești.</translation>
 <translation id="4162867837470729563">Lista cu opțiuni de permitere a accesului la înălțimea completă.</translation>
 <translation id="4170011742729630528">Serviciul nu este disponibil. Încercați din nou mai târziu.</translation>
 <translation id="4177222230309051052">Accesează toate marcajele</translation>
@@ -679,6 +688,7 @@
 <translation id="4766313118839197559">Parolele sunt salvate în Managerul de parole pe acest dispozitiv</translation>
 <translation id="4766678251456904326">Adaugă un cont pe dispozitiv</translation>
 <translation id="4769095993849849966">Numele fișierului nou</translation>
+<translation id="4778653490315793244">Nimic nou încă</translation>
 <translation id="4787736314074622408">Dorești să ștergi <ph name="ITEM_TITLE" />?</translation>
 <translation id="4791358705705538979">Te ajută în activități precum finalizarea unei achiziții, oriunde pe web</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1305,7 @@
 <translation id="7971136598759319605">Activ acum o zi</translation>
 <translation id="7975379999046275268">Previzualizează pagina <ph name="BEGIN_NEW" />Nou<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Pentru a vedea parolele, mai întâi setează o blocare a ecranului pe dispozitiv</translation>
+<translation id="7995059495660416932">Vei vedea conținut când acesta devine disponibil</translation>
 <translation id="799576009106109668">Vei naviga mai rapid deoarece conținutul se încarcă proactiv în funcție de pagina web accesată în acel moment</translation>
 <translation id="7998918019931843664">Redeschideți fila închisă</translation>
 <translation id="8004582292198964060">Browser</translation>
@@ -1367,7 +1378,6 @@
 <translation id="8352996530981010042">Reacțiile nu s-au descărcat. Încearcă din nou.</translation>
 <translation id="8354977102499939946">Caută rapid cu ajutorul vocii. Pentru a edita comanda rapidă, accesează setările.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> de descărcări au fost restabilite</translation>
-<translation id="8364299278605033898">Vezi site-urile populare</translation>
 <translation id="8368001212524806591">Urmărește prețul</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cum folosim aceste date:<ph name="END_BOLD" /> Chrome îți poate estima interesele. Ulterior, un site pe care-l accesezi poate solicita browserului Chrome să vadă interesele tale pentru a personaliza anunțurile pe care le vezi.</translation>
 <translation id="8387617938027387193">Confirmă-ți identitatea</translation>
@@ -1503,6 +1513,7 @@
 <translation id="8998729206196772491">Te conectezi cu un cont gestionat de <ph name="MANAGED_DOMAIN" /> și acorzi administratorului acestuia controlul asupra datelor Chrome. Datele vor fi asociate definitiv acestui cont. Dacă te deconectezi de la Chrome, datele se vor șterge de pe acest dispozitiv, dar vor rămâne stocate în Contul Google.</translation>
 <translation id="9022774213089566801">Accesate frecvent</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{Un videoclip}few{# videoclipuri}other{# de videoclipuri}}</translation>
+<translation id="9042827002460091668">Verifică-ți conexiunea la internet și încearcă din nou</translation>
 <translation id="9042893549633094279">Confidențialitate și securitate</translation>
 <translation id="9050666287014529139">Expresie de acces</translation>
 <translation id="9063523880881406963">Dezactivează opțiunea Versiune site pentru desktop</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 483fa90..ab7bd5d 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Месяц окончания срока действия</translation>
 <translation id="1150263420752757504">Приложение "<ph name="APP_NAME" />" откроется в Chrome. Продолжая, вы принимаете <ph name="BEGIN_LINK1" />Условия использования Google<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Дополнительные условия использования Chrome и Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Страница недоступна в офлайн-режиме: <ph name="VIOLATED_URL" />.</translation>
-<translation id="1171770572613082465">Чтобы перейти к списку популярных сайтов, нажмите кнопку "Топ сайтов"</translation>
 <translation id="1173894706177603556">Переименовать</translation>
 <translation id="1177863135347784049">Персонализированные</translation>
 <translation id="1181037720776840403">Удалить</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Не удалось скачать отклики. Повторите попытку.</translation>
 <translation id="8354977102499939946">Выполнить голосовой поиск. Чтобы изменить функцию кнопки, перейдите в настройки.</translation>
 <translation id="835847953965672673">Восстановлено объектов: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Показать популярные сайты</translation>
 <translation id="8368001212524806591">Отслеживание цен</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Как мы используем эти данные.<ph name="END_BOLD" /> Chrome может определять ваши интересы. Сайты, которые вы посетите в дальнейшем, могут обращаться к Chrome, чтобы получать сведения о ваших интересах и показывать вам подходящую рекламу.</translation>
 <translation id="8387617938027387193">Подтвердите личность</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
index 1054efec..7a88ad3c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">කල් ඉකුත් වන මාසය</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chrome තුළ විවෘත වනු ඇත. ඉදිරියට යාමෙන්, ඔබ <ph name="BEGIN_LINK1" />Google සේවා නියම<ph name="END_LINK1" /> සහ <ph name="BEGIN_LINK2" />Google Chrome සහ ChromeOS අතිරේක සේවා නියම<ph name="END_LINK2" /> සමග එකඟ වේ.</translation>
 <translation id="1154704303112745282">පිටුව නොබැඳිව ලබා ගත නොහැකිය: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"ඉහළම වෙබ් අඩවි" බොත්තමට තට්ටු කිරීමෙන් ජනප්‍රිය වෙබ් අඩවි බලන්න</translation>
 <translation id="1173894706177603556">ප්‍රතිනම්</translation>
 <translation id="1177863135347784049">සැකසුම්</translation>
 <translation id="1181037720776840403">ඉවත් කරන්න</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ප්‍රතිචාර බාගැනීමට නොහැකිය. නැවත උත්සාහ කරන්න.</translation>
 <translation id="8354977102499939946">ඔබගේ කටහඬ සමගින් ඉක්මනින් සොයන්න. මෙම කෙටිමඟ සංස්කරණය කිරීමට, සැකසීම් වෙත යන්න.</translation>
 <translation id="835847953965672673">බාගැනීම් <ph name="NUMBER_OF_DOWNLOADS" />ක් ප්‍රතිසාධනය කරන ලදි</translation>
-<translation id="8364299278605033898">ජනප්‍රිය වෙබ් අඩවි බලන්න</translation>
 <translation id="8368001212524806591">මිල හඹා යන්න</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />අප මෙම දත්ත භාවිත කරන ආකාරය:<ph name="END_BOLD" /> Chrome හට ඔබගේ ලැදිකම් තක්සේරු කළ හැකිය. පසුව, ඔබ පිවිසෙන අඩවියක් ඔබ දකින වෙළඳ දැන්වීම් පුද්ගලිකකරණය කිරීම සඳහා ඔබගේ ලැදිකම් බැලීමට Chrome වෙතින් ඉල්ලිය හැකිය.</translation>
 <translation id="8387617938027387193">ඒ ඔබ බව සත්‍යාපනය කරන්න</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
index d2d1e23e..112afac 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mesiac vypršania platnosti</translation>
 <translation id="1150263420752757504">Aplikácia <ph name="APP_NAME" /> sa otvorí v Chrome. Pokračovaním vyjadrujete súhlas so <ph name="BEGIN_LINK1" />zmluvnými podmienkami spoločnosti Google<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />dodatočnými zmluvnými podmienkami prehliadača Google Chrome a systému Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stránka nie je k dispozícii offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Klepnutím na tlačidlo Hlavné weby zobrazíte obľúbené webové stránky</translation>
 <translation id="1173894706177603556">Premenovať</translation>
 <translation id="1177863135347784049">Vlastné</translation>
 <translation id="1181037720776840403">Odstrániť</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Reakcie sa nedajú stiahnuť. Skúste to znova.</translation>
 <translation id="8354977102499939946">Skratka na rýchle vyhľadávanie hlasom. Ak ju chcete upraviť, prejdite do Nastavení.</translation>
 <translation id="835847953965672673">Boli obnovené stiahnuté súbory (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8364299278605033898">Prezrite si obľúbené weby</translation>
 <translation id="8368001212524806591">Sledovať cenu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Ako používame tieto údaje:<ph name="END_BOLD" /> Chrome môže odhadovať vaše záujmy. Neskôr môže web, ktorý navštívite, o ne Chrome požiadať, aby mohol prispôsobiť zobrazované reklamy.</translation>
 <translation id="8387617938027387193">Overte, že ste to vy</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
index c795e80..bd91809 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mesec poteka</translation>
 <translation id="1150263420752757504">Aplikacija <ph name="APP_NAME" /> se bo odprla v Chromu. Če nadaljujete, se strinjate z <ph name="BEGIN_LINK1" />Googlovimi pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />dodatnimi pogoji storitve za Google Chrome in Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stran ni na voljo brez povezave: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Oglejte si priljubljena spletna mesta z dotikom gumba »Najb. prilj.«</translation>
 <translation id="1173894706177603556">Preimenuj</translation>
 <translation id="1177863135347784049">Po meri</translation>
 <translation id="1181037720776840403">Odstrani</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Odzivov ni mogoče prenesti. Poskusite znova.</translation>
 <translation id="8354977102499939946">Hitro iščite z glasom. To bližnjico lahko uredite v nastavitvah.</translation>
 <translation id="835847953965672673">Obnovljenih je bilo toliko prenosov: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Ogled priljubljenih spletnih mest</translation>
 <translation id="8368001212524806591">Spremljanje cene</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kako uporabljamo te podatke:<ph name="END_BOLD" /> Chrome lahko oceni vaša zanimanja. Pozneje lahko stran, ki jo obiščete, od Chroma zahteva ogled vaših zanimanj zaradi osebnega prilagajanj oglasov, ki so vam prikazani.</translation>
 <translation id="8387617938027387193">Preverite, da ste res vi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
index b1aac26f..639a46812 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Muaji i skadimit</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> do të hapet në Chrome. Duke vazhduar, ti pranon <ph name="BEGIN_LINK1" />"Kushtet e shërbimit" të Google<ph name="END_LINK1" /> dhe <ph name="BEGIN_LINK2" />"Kushtet shtesë të shërbimit" të Google Chrome dhe të ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Faqja nuk ofrohet jashtë linje: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Shiko sajte uebi të mirënjohura duke trokitur te butoni "Sajtet kryesore"</translation>
 <translation id="1173894706177603556">Riemërto</translation>
 <translation id="1177863135347784049">E personalizuar</translation>
 <translation id="1181037720776840403">Hiq</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Reagimet nuk mund të shkarkohen. Provo përsëri.</translation>
 <translation id="8354977102499939946">Kërko me shpejtësi me zërin tënd. Për ta modifikuar këtë shkurtore, shko te "Cilësimet".</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> shkarkime u restauruan</translation>
-<translation id="8364299278605033898">Shiko sajte uebi të mirënjohura</translation>
 <translation id="8368001212524806591">Monitoro çmimin</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Si i përdorim këto të dhëna:<ph name="END_BOLD" /> Chrome mund të përllogarisë interesat e tua. Më vonë, një sajt që ti viziton mund t'i kërkojë Chrome të shikojë interesat e tua në mënyrë që të personalizojë reklamat që shikon.</translation>
 <translation id="8387617938027387193">Verifiko që je ti</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index e9673c6..b9558eab 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mesec isteka</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> će se otvoriti u Chrome-u. Ako nastavite, prihvatate <ph name="BEGIN_LINK1" />Google uslove korišćenja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dodatne uslove korišćenja usluge za Google Chrome i Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Stranica nije dostupna oflajn: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Dodirnite dugme „Najpopularniji veb-sajtovi“ i vidite te veb-sajtove</translation>
 <translation id="1173894706177603556">Preimenuj</translation>
 <translation id="1177863135347784049">Prilagođeno</translation>
 <translation id="1181037720776840403">Ukloni</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Preuzimanje reakcija nije uspelo. Probajte ponovo.</translation>
 <translation id="8354977102499939946">Brzo pretražujte pomoću glasa. Da biste izmenili ovu prečicu, idite u Podešavanja.</translation>
 <translation id="835847953965672673">Vraćena su preuzimanja (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8364299278605033898">Pogledajte popularne veb-sajtove</translation>
 <translation id="8368001212524806591">Prati cenu</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Kako koristimo ove podatke:<ph name="END_BOLD" /> Chrome može da proceni vaša interesovanja. Sajt koji kasnije posetite može da zatraži od Chrome-a pristup vašim interesovanjima da bi personalizovao oglase koji vam se prikazuju.</translation>
 <translation id="8387617938027387193">Potvrdite svoj identitet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index aa6082a..82275118 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Месец истека</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ће се отворити у Chrome-у. Ако наставите, прихватате <ph name="BEGIN_LINK1" />Google услове коришћења услуге<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />додатне услове коришћења услуге за Google Chrome и Chrome ОС<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Страница није доступна офлајн: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Додирните дугме „Најпопуларнији веб-сајтови“ и видите те веб-сајтове</translation>
 <translation id="1173894706177603556">Преименуј</translation>
 <translation id="1177863135347784049">Прилагођено</translation>
 <translation id="1181037720776840403">Уклони</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Преузимање реакција није успело. Пробајте поново.</translation>
 <translation id="8354977102499939946">Брзо претражујте помоћу гласа. Да бисте изменили ову пречицу, идите у Подешавања.</translation>
 <translation id="835847953965672673">Враћена су преузимања (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8364299278605033898">Погледајте популарне веб-сајтове</translation>
 <translation id="8368001212524806591">Прати цену</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Како користимо ове податке:<ph name="END_BOLD" /> Chrome може да процени ваша интересовања. Сајт који касније посетите може да затражи од Chrome-а приступ вашим интересовањима да би персонализовао огласе који вам се приказују.</translation>
 <translation id="8387617938027387193">Потврдите свој идентитет</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index ed4d2c2..45a089c0 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Utgångsmånad</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> öppnas i Chrome. Genom att fortsätta godkänner du <ph name="BEGIN_LINK1" />Googles användarvillkor<ph name="END_LINK1" /> och <ph name="BEGIN_LINK2" />de ytterligare användarvillkoren för Google Chrome och Chrome OS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Sidan är inte tillgänglig offline: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Visa populära webbplatser genom att trycka på Populärt</translation>
 <translation id="1173894706177603556">Ändra namn</translation>
 <translation id="1177863135347784049">Anpassat</translation>
 <translation id="1181037720776840403">Ta bort</translation>
@@ -1380,7 +1379,6 @@
 <translation id="8352996530981010042">Det gick inte att ladda ned reaktionerna. Försök igen.</translation>
 <translation id="8354977102499939946">Gör en röstsökning snabbt. Öppna inställningarna om du vill ändra genvägen.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> nedladdningar har återställts</translation>
-<translation id="8364299278605033898">Visa populära webbplatser</translation>
 <translation id="8368001212524806591">Bevaka pris</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Så här använder vi denna data:<ph name="END_BOLD" /> Chrome kan göra en uppskattning av dina intressen. Senare kan en webbplats fråga efter dina intressen i Chrome för att anpassa vilka annonser som visas.</translation>
 <translation id="8387617938027387193">Verifiera din identitet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
index a5680040..aa91c439 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Mwezi wa kuisha kwa muda wa matumizi</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> itafunguka kwenye Chrome. Kwa kuendelea, unakubali <ph name="BEGIN_LINK1" />Sheria na Masharti ya Google<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />Sheria na Masharti ya Ziada ya Google Chrome na Mfumo wa Uendeshaji wa Chrome<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Ukurasa haupatikani nje ya mtandao: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Ona tovuti maarufu kwa kugusa kitufe cha "Tovuti maarufu"</translation>
 <translation id="1173894706177603556">Ipe jina jipya</translation>
 <translation id="1177863135347784049">Maalum</translation>
 <translation id="1181037720776840403">Ondoa</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Imeshindwa kupakua maoni. Jaribu tena.</translation>
 <translation id="8354977102499939946">Tafuta kwa haraka ukitumia sauti yako. Ili ubadilishe njia hii ya mkato, nenda kwenye Mipangilio.</translation>
 <translation id="835847953965672673">Umerejesha vipakuliwa <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Ona tovuti maarufu</translation>
 <translation id="8368001212524806591">Fuatilia bei</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Jinsi tunavyotumia data hii:<ph name="END_BOLD" /> Chrome inaweza kukadiria mambo yanayokuvutia. Baadaye, tovuti unaiyotembelea inaweza kuiomba Chrome ili ione mambo yanayokuvutia ili iweze kukuonyesha matangazo kulingana na mapendeleo yako.</translation>
 <translation id="8387617938027387193">Thibitisha kuwa ni wewe</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 27c9028f..e951808d 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">காலாவதியாகும் மாதம்</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chromeமில் திறக்கப்படும். தொடர்வதன் மூலம் <ph name="BEGIN_LINK1" />Google சேவை விதிமுறைகள்<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />Google Chrome &amp; ChromeOS தொடர்பான கூடுதல் சேவை விதிமுறைகள்<ph name="END_LINK2" /> ஆகியவற்றை ஏற்கிறீர்கள்.</translation>
 <translation id="1154704303112745282">பக்கம் ஆஃப்லைனில் கிடைக்கவில்லை: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"பிரபலமானவை" பட்டனைத் தட்டி பிரபல இணையதளங்களைப் பாருங்கள்</translation>
 <translation id="1173894706177603556">மறுபெயரிடு</translation>
 <translation id="1177863135347784049">பிரத்தியேகம்</translation>
 <translation id="1181037720776840403">அகற்று</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ரியாக்ஷன்களைப் பதிவிறக்க முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="8354977102499939946">குரல் மூலம் உடனடியாகத் தேடலாம். இந்த ஷார்ட்கட்டை மாற்ற அமைப்புகளுக்குச் செல்லவும்.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> பதிவிறக்கங்கள் மீட்டெடுக்கப்பட்டன</translation>
-<translation id="8364299278605033898">பிரபல இணையதளங்களைப் பாருங்கள்</translation>
 <translation id="8368001212524806591">விலையைக் கண்காணி</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />இந்தத் தரவை எப்படிப் பயன்படுத்துகிறோம்?<ph name="END_BOLD" /> Chrome உங்கள் ஆர்வங்களை உத்தேசமாகக் கணிக்கலாம். பிரத்தியேக விளம்பரங்களை உங்களுக்கு வழங்குவதற்காக, Chrome கணித்துள்ள உங்கள் ஆர்வங்களை நீங்கள் பார்வையிடும் தளம் அதனிடம் கேட்டறியலாம்.</translation>
 <translation id="8387617938027387193">நீங்கள்தான் என்பதை உறுதிசெய்யுங்கள்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index ebae76b..3c6fb522 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">గడువు ముగింపు నెల</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> Chromeలో తెరవబడుతుంది. కొనసాగడం ద్వారా, మీరు <ph name="BEGIN_LINK1" />Google సర్వీస్ నియమాలు<ph name="END_LINK1" />, అలాగే <ph name="BEGIN_LINK2" />Google Chrome, ChromeOS అదనపు సర్వీస్ నియమాలకు<ph name="END_LINK2" /> అంగీకరిస్తున్నారు.</translation>
 <translation id="1154704303112745282">ఈ పేజీ ఆఫ్‌లైన్‌లో అందుబాటులో లేదు: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"టాప్ సైట్‌లు" బటన్‌పై నొక్కడం ద్వారా ప్రసిద్ధ వెబ్‌సైట్‌లను చూడండి</translation>
 <translation id="1173894706177603556">పేరుమార్చు</translation>
 <translation id="1177863135347784049">అనుకూల</translation>
 <translation id="1181037720776840403">తీసివేయండి</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ప్రతిస్పందనలను డౌన్‌లోడ్ చేయడం సాధ్యం కాదు. మళ్లీ ట్రై చేయండి.</translation>
 <translation id="8354977102499939946">మీ వాయిస్‌తో వేగంగా సెర్చ్ చేయండి. ఈ షార్ట్‌కట్‌ను ఎడిట్ చేయడానికి, సెట్టింగ్‌లకు వెళ్లండి.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> డౌన్‌లోడ్‌లు రీస్టోర్ చేయబడ్డాయి</translation>
-<translation id="8364299278605033898">ప్రసిద్ధ వెబ్‌సైట్‌లను చూడండి</translation>
 <translation id="8368001212524806591">ధరను ట్రాక్ చేయండి</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />మేము ఈ డేటాను ఎలా ఉపయోగిస్తాము:<ph name="END_BOLD" /> Chrome మీ ఆసక్తులను అంచనా వేయగలదు. తర్వాత, మీరు చూసే యాడ్‌లను వ్యక్తిగతీకరించడం కోసం, మీరు సందర్శించే సైట్ మీ ఆసక్తులను చూడమని Chromeను అడగవచ్చు.</translation>
 <translation id="8387617938027387193">ఇది మీరేనని వెరిఫై చేయండి</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 8b2fe287..31a86c3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">เดือนที่หมดอายุ</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> จะเปิดใน Chrome การดำเนินการต่อหมายความว่า คุณยอมรับ<ph name="BEGIN_LINK1" />ข้อกำหนดในการให้บริการของ Google<ph name="END_LINK1" /> และ<ph name="BEGIN_LINK2" />ข้อกำหนดในการให้บริการเพิ่มเติมของ Google Chrome และ Chrome OS<ph name="END_LINK2" /></translation>
 <translation id="1154704303112745282">หน้าเว็บใช้งานไม่ได้ขณะออฟไลน์: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">ดูเว็บไซต์ยอดนิยมโดยการแตะปุ่ม "เว็บไซต์อันดับสูงสุด"</translation>
 <translation id="1173894706177603556">เปลี่ยนชื่อ</translation>
 <translation id="1177863135347784049">ที่กำหนดเอง</translation>
 <translation id="1181037720776840403">นำออก</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ดาวน์โหลดความรู้สึกไม่ได้ ลองใหม่</translation>
 <translation id="8354977102499939946">ค้นหาด้วยเสียงอย่างรวดเร็ว ไปที่การตั้งค่าเพื่อแก้ไขทางลัดนี้</translation>
 <translation id="835847953965672673">คืนค่าการดาวน์โหลด <ph name="NUMBER_OF_DOWNLOADS" /> รายการแล้ว</translation>
-<translation id="8364299278605033898">ดูเว็บไซต์ยอดนิยม</translation>
 <translation id="8368001212524806591">ติดตามราคา</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />วิธีที่เราใช้ข้อมูลนี้:<ph name="END_BOLD" /> Chrome ใช้ข้อมูลเพื่อคาดเดาความสนใจของคุณ จากนั้น เว็บไซต์ที่คุณเข้าชมจะขอให้ Chrome ดูความสนใจของคุณเพื่อปรับเปลี่ยนการแสดงโฆษณาให้เหมาะสมตามความสนใจ</translation>
 <translation id="8387617938027387193">ยืนยันว่าเป็นคุณ</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 b630e570..77366f0 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Son kullanım tarihinin ayı</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />, Chrome'da açılacak. Devam ederek <ph name="BEGIN_LINK1" />Google Hizmet Şartları<ph name="END_LINK1" /> ile <ph name="BEGIN_LINK2" />Google Chrome ve ChromeOS Ek Hizmet Şartları<ph name="END_LINK2" />'nı kabul etmiş olursunuz.</translation>
 <translation id="1154704303112745282">Sayfa çevrimdışı kullanılamaz: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"Popüler siteler" düğmesine dokunarak popüler web sitelerini görün</translation>
 <translation id="1173894706177603556">Yeniden adlandır</translation>
 <translation id="1177863135347784049">Özel</translation>
 <translation id="1181037720776840403">Kaldır</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Tepkiler indirilemiyor. Tekrar deneyin.</translation>
 <translation id="8354977102499939946">Sesinizle hızlı bir şekilde arama yapın. Bu kısayolu düzenlemek için Ayarlar'a gidin.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> indirme geri yüklendi</translation>
-<translation id="8364299278605033898">Popüler web sitelerini görün</translation>
 <translation id="8368001212524806591">Fiyatı takip et</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Bu verileri kullanma şeklimiz:<ph name="END_BOLD" /> Chrome, ilgi alanlarınızı tahmin edebilir. Daha sonrasında ziyaret ettiğiniz bir site, gördüğünüz reklamları kişiselleştirmek için Chrome'dan ilgi alanlarınızı göstermesini isteyebilir.</translation>
 <translation id="8387617938027387193">Siz olduğunuzu doğrulayın</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 487f3aa7..62a57d4 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Місяць закінчення терміну дії</translation>
 <translation id="1150263420752757504">Додаток <ph name="APP_NAME" /> відкриється в Chrome. Продовжуючи, ви приймаєте <ph name="BEGIN_LINK1" />Загальні положення та умови Google<ph name="END_LINK1" /> і <ph name="BEGIN_LINK2" />Додаткові умови використання Google Chrome та ОС Chrome<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Сторінка недоступна в режимі офлайн: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Натисніть кнопку "Популярні сайти", щоб переглянути їх.</translation>
 <translation id="1173894706177603556">Перейменувати</translation>
 <translation id="1177863135347784049">Спеціальне</translation>
 <translation id="1181037720776840403">Видалити</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Не вдається завантажити реакції. Повторіть спробу.</translation>
 <translation id="8354977102499939946">Швидко шукайте за допомогою голосу. Щоб змінити функцію цієї кнопки, перейдіть у налаштування.</translation>
 <translation id="835847953965672673">Відновлено стільки завантажень: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8364299278605033898">Перегляньте популярні сайти</translation>
 <translation id="8368001212524806591">Відстеження цін</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Як ми використовуємо ці дані<ph name="END_BOLD" />. Chrome оцінює ваші інтереси. Коли ви пізніше відвідаєте якийсь сайт, він може запитати в Chrome про ваші інтереси, щоб персоналізувати для вас оголошення.</translation>
 <translation id="8387617938027387193">Підтвердьте свою особу</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
index 7edaaf6..69fd4d9f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">میعاد کے اختتام کا مہینہ</translation>
 <translation id="1150263420752757504">‏<ph name="APP_NAME" /> Chrome میں کھلے گی۔ جاری رکھ کر آپ، <ph name="BEGIN_LINK1" />Google کی سروس کی شرائط<ph name="END_LINK1" /> اور <ph name="BEGIN_LINK2" />Google Chrome اور ChromeOS کی اضافی سروس کی شرائط سے اتفاق کرتے ہیں<ph name="END_LINK2" />۔</translation>
 <translation id="1154704303112745282">صفحہ آف لائن غیر دستیاب ہے: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">"سر فہرست سائٹس" بٹن پر تھپتھپا کر مقبول ویب سائٹس دیکھیں</translation>
 <translation id="1173894706177603556">نام بدلیں</translation>
 <translation id="1177863135347784049">حسب ضرورت</translation>
 <translation id="1181037720776840403">ہٹائیں</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">ردعمل کو ڈاؤن لوڈ نہیں کر سکتے۔ دوبارہ کوشش کریں۔</translation>
 <translation id="8354977102499939946">اپنی آواز کی مدد سے فوری طور پر تلاش کریں۔ اس شارٹ کٹ میں ترمیم کرنے کیلئے ترتیبات پر جائیں۔</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ڈاؤن لوڈز بحال کئے گئے</translation>
-<translation id="8364299278605033898">مقبول ویب سائٹس دیکھیں</translation>
 <translation id="8368001212524806591">قیمت ٹریک کریں</translation>
 <translation id="8383226135083126309">‏<ph name="BEGIN_BOLD" />ہمارا اس ڈیٹا کو استعمال کرنے کا طریقہ:<ph name="END_BOLD" /> Chrome آپ کی دلچسپیوں کا اندازہ لگا سکتا ہے۔ بعد میں، آپ کی ملاحظہ کی جانے والی سائٹ آپ کو دکھائی دینے والے اشتہارات کو ذاتی نوعیت کا بنانے کے لیے Chrome سے آپ کی دلچسپیوں کو دیکھنے کا مطالبہ کر سکتی ہے۔</translation>
 <translation id="8387617938027387193">توثیق کریں کہ یہ آپ ہیں</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
index eeb98b2a..2106fb7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Muddati tugaydigan oy</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> ilovasi Chrome ichida ochiladi. Davom etish bilan siz <ph name="BEGIN_LINK1" />Google xizmat shartlari<ph name="END_LINK1" /> bilan <ph name="BEGIN_LINK2" />Google Chrome va ChromeOS qoʻshimcha xizmat shartlariga<ph name="END_LINK2" /> rozilik bildirgan hisoblanasiz.</translation>
 <translation id="1154704303112745282">Sahifa oflaynda ishlamaydi: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Mashhur saytlarni chiqarish uchun “Top saytlar” tugmasini bosing</translation>
 <translation id="1173894706177603556">Qayta nomlash</translation>
 <translation id="1177863135347784049">Boshqa</translation>
 <translation id="1181037720776840403">Olib tashlash</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Munosabatlar yuklab olinmadi. Qayta urining.</translation>
 <translation id="8354977102499939946">Ovoz bilan tezda qidirish. Bu yorliqni tahrirlash uchun Sozlamalarga kiring.</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ta yuklanma tiklandi</translation>
-<translation id="8364299278605033898">Mahalliy ommabop saytlar</translation>
 <translation id="8368001212524806591">Narxni kuzatish</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Bu axborotdan qanday foydalanamiz:<ph name="END_BOLD" /> Chrome qiziqishlaringizni taxmin qila oladi. Keyinchalik sayt sizga chiqadigan reklamani moslashtirish maqsadida Chromedan qiziqishlaringiz haqida soʻrashi mumkin.</translation>
 <translation id="8387617938027387193">Bu siz ekaningizni isbotlang</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index b900fa2..008a03ca 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Tháng hết hạn</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" /> sẽ mở trong Chrome. Bằng việc tiếp tục, bạn đồng ý với <ph name="BEGIN_LINK1" />Điều khoản dịch vụ của Google<ph name="END_LINK1" /> cũng như <ph name="BEGIN_LINK2" />Điều khoản dịch vụ bổ sung của Google Chrome và ChromeOS<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Trang không hiển thị khi không có mạng: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Xem các trang web phổ biến bằng cách nhấn vào nút "Trang web hàng đầu"</translation>
 <translation id="1173894706177603556">Đổi tên</translation>
 <translation id="1177863135347784049">Tùy chỉnh</translation>
 <translation id="1181037720776840403">Xóa</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Không thể tải các phản ứng xuống. Hãy thử lại.</translation>
 <translation id="8354977102499939946">Tìm kiếm nhanh bằng giọng nói. Để chính sửa lối tắt này, hãy chuyển đến phần Cài đặt.</translation>
 <translation id="835847953965672673">Đã khôi phục <ph name="NUMBER_OF_DOWNLOADS" /> tệp đã tải xuống</translation>
-<translation id="8364299278605033898">Xem các trang web phổ biến</translation>
 <translation id="8368001212524806591">Theo dõi giá</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cách chúng tôi sử dụng dữ liệu này:<ph name="END_BOLD" /> Chrome có thể ước đoán mối quan tâm của bạn. Sau đó, trang web mà bạn truy cập có thể đề nghị Chrome cho biết mối quan tâm của bạn nhằm cá nhân hoá quảng cáo mà bạn thấy.</translation>
 <translation id="8387617938027387193">Xác minh danh tính của bạn</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index 4522bf59..8cf9352 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">过期月份</translation>
 <translation id="1150263420752757504"><ph name="APP_NAME" />将在 Chrome 中打开。继续操作即表示您同意接受 <ph name="BEGIN_LINK1" />Google 服务条款<ph name="END_LINK1" />以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_LINK2" />。</translation>
 <translation id="1154704303112745282">无法在离线状态下访问此网页:<ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">点按“热门网站”按钮可查看热门网站</translation>
 <translation id="1173894706177603556">重命名</translation>
 <translation id="1177863135347784049">自定义</translation>
 <translation id="1181037720776840403">移除</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">无法下载表情符号。请重试。</translation>
 <translation id="8354977102499939946">使用语音快速搜索。若要修改该快捷方式,请前往“设置”部分。</translation>
 <translation id="835847953965672673">已恢复 <ph name="NUMBER_OF_DOWNLOADS" /> 项下载内容</translation>
-<translation id="8364299278605033898">查看热门网站</translation>
 <translation id="8368001212524806591">跟踪价格</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />我们会如何使用这些数据<ph name="END_BOLD" />:Chrome 可以推测出您的兴趣。日后,您访问的网站可向 Chrome 请求查看您的兴趣以向您展示个性化广告。</translation>
 <translation id="8387617938027387193">请验证是您本人在操作</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 885e99f8..0d0e652 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
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">到期月份</translation>
 <translation id="1150263420752757504">「<ph name="APP_NAME" />」將在 Chrome 中開啟。繼續即表示您同意《<ph name="BEGIN_LINK1" />Google 服務條款<ph name="END_LINK1" />》以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome OS 的《附加服務條款》<ph name="END_LINK2" />。</translation>
 <translation id="1154704303112745282">頁面無法離線使用:<ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">輕按「熱門網站」按鈕,即可查看熱門網站</translation>
 <translation id="1173894706177603556">重新命名</translation>
 <translation id="1177863135347784049">自訂</translation>
 <translation id="1181037720776840403">移除</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">無法載入回應,請再試一次。</translation>
 <translation id="8354977102499939946">透過語音快速搜尋。如要編輯此捷徑,請前往「設定」。</translation>
 <translation id="835847953965672673">還原咗 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載嘅內容</translation>
-<translation id="8364299278605033898">查看熱門網站</translation>
 <translation id="8368001212524806591">追蹤價格</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />我們如何使用這項資料:<ph name="END_BOLD" />Chrome 可以推測您的興趣。您日後瀏覽的網站可向 Chrome 要求查看您的興趣,以便向您顯示個人化廣告。</translation>
 <translation id="8387617938027387193">驗證您的身分</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index cd53101..6d9edc25 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">到期月份</translation>
 <translation id="1150263420752757504">「<ph name="APP_NAME" />」將在 Chrome 中開啟。選擇繼續即表示您同意《<ph name="BEGIN_LINK1" />Google 服務條款<ph name="END_LINK1" />》以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome OS 的《附加服務條款》<ph name="END_LINK2" />。</translation>
 <translation id="1154704303112745282">無法離線載入頁面:<ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">輕觸 [熱門網站] 按鈕,即可查看熱門網站</translation>
 <translation id="1173894706177603556">重新命名</translation>
 <translation id="1177863135347784049">自訂</translation>
 <translation id="1181037720776840403">移除</translation>
@@ -1378,7 +1377,6 @@
 <translation id="8352996530981010042">無法載入回應,請再試一次。</translation>
 <translation id="8354977102499939946">快速透過語音進行搜尋。如要編輯這個捷徑,請前往 [設定]。</translation>
 <translation id="835847953965672673">已還原 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載內容</translation>
-<translation id="8364299278605033898">查看熱門網站</translation>
 <translation id="8368001212524806591">追蹤價格</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />我們如何使用這項資料:<ph name="END_BOLD" />Chrome 可以推測你的興趣喜好。稍後,你造訪的網站可以要求 Chrome 查看你的興趣喜好,以便向你放送個人化廣告。</translation>
 <translation id="8387617938027387193">驗證你的身分</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
index e85b55b..e51ab557 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -31,7 +31,6 @@
 <translation id="1149401351239820326">Inyanga yokuphelelwa isikhathi</translation>
 <translation id="1150263420752757504">I-<ph name="APP_NAME" /> izovuleka ku-Chrome. Ngokuqhubeka, uvumelana <ph name="BEGIN_LINK1" />Nemigomo Yesevisi ye-Google<ph name="END_LINK1" />, kanye <ph name="BEGIN_LINK2" />ne-Google Chrome Nemigomo Yesevisi ye-ChromeOS Engeziwe<ph name="END_LINK2" />.</translation>
 <translation id="1154704303112745282">Ikhasi alitholakali uma ungaxhunyiwe ku-inthanethi: <ph name="VIOLATED_URL" /></translation>
-<translation id="1171770572613082465">Bona amawebhusayithi adumile ngokuthepha inkinobho yokuthi "Amasayithi aphezulu"</translation>
 <translation id="1173894706177603556">Qamba kabusha</translation>
 <translation id="1177863135347784049">Ngokwezifiso</translation>
 <translation id="1181037720776840403">Susa</translation>
@@ -1379,7 +1378,6 @@
 <translation id="8352996530981010042">Ayikwazi ukudawuniloda ukusabela. Zama futhi.</translation>
 <translation id="8354977102499939946">Sesha ngokushesha ngezwi lakho. Ukuhlela lesi sinqamuleli, iya kokuthi Amasethingi.</translation>
 <translation id="835847953965672673">Okulandiwe okungu-<ph name="NUMBER_OF_DOWNLOADS" /> okubuyiselwe</translation>
-<translation id="8364299278605033898">Bona amawebhusayithi adumile</translation>
 <translation id="8368001212524806591">Landela intengo</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Indlela esisebenzisa ngayo le datha:<ph name="END_BOLD" /> I-Chrome ingalinganisela izintshisekelo zakho. Kamuva, isayithi olivakashelayo lingacela i-Chrome ukuthi ibone izintshisekelo zakho ukuze yenze izikhangiso ozibonayo ngokwezifiso zakho.</translation>
 <translation id="8387617938027387193">Qinisekisa ukuthi nguwe</translation>
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index ccfa84f..924ab1b 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -69,6 +69,7 @@
 #include "chrome/browser/printing/background_printing_manager.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_destroyer.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -431,7 +432,7 @@
   if (!IncognitoModePrefs::CanOpenBrowser(profile) ||
       (profile->IsGuestSession() && !profile->IsOffTheRecord()) ||
       !profile->AllowsBrowserWindows() ||
-      ProfileManager::IsProfileDirectoryMarkedForDeletion(profile->GetPath())) {
+      IsProfileDirectoryMarkedForDeletion(profile->GetPath())) {
     return CreationStatus::kErrorProfileUnsuitable;
   }
 
diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc
index 59ffd122..d70c635 100644
--- a/chrome/browser/ui/views/page_info/page_info_main_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc
@@ -179,12 +179,8 @@
     }
     cookie_button_->SetProperty(views::kElementIdentifierKey,
                                 kCookieButtonElementId);
-
-    if (base::FeatureList::IsEnabled(
-            privacy_sandbox::kPrivacySandboxSettings3)) {
-      ads_personalization_section_ =
-          site_settings_view_->AddChildView(CreateContainerView());
-    }
+    ads_personalization_section_ =
+        site_settings_view_->AddChildView(CreateContainerView());
   }
 }
 
diff --git a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc
index 3f36b19..4dbe786 100644
--- a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc
@@ -58,14 +58,14 @@
 };
 
 const char kMakeCardDescriptionLongerJsString[] =
-    "(async () => {"
-    "const introApp = document.querySelector('intro-app');"
-    "const signInPromo = introApp.shadowRoot.querySelector('sign-in-promo');"
-    "const cardDescriptions = "
-    "Array.from(signInPromo.shadowRoot.querySelectorAll('.benefit-card-"
-    "description'));"
-    "cardDescriptions[0].innerHTML = cardDescriptions[0].innerHTML.repeat(20);"
-    "return true;"
+    "(() => {"
+    "  const introApp = document.querySelector('intro-app');"
+    "  const signInPromo = introApp.shadowRoot.querySelector('sign-in-promo');"
+    "  const cardDescriptions = signInPromo.shadowRoot.querySelectorAll("
+    "      '.benefit-card-description');"
+    "  cardDescriptions[0].textContent = "
+    "      cardDescriptions[0].textContent.repeat(20);"
+    "  return true;"
     "})();";
 
 }  // namespace
diff --git a/chrome/browser/ui/views/profiles/profile_management_step_controller.cc b/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
index 827e349..ff0e8f2 100644
--- a/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
+++ b/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
@@ -6,6 +6,7 @@
 
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -152,8 +153,9 @@
       finish_flow_callback_->Reset();
 
       // The profile setup did not continue. Schedule it for deletion.
-      g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-          profile_->GetPath());
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .ScheduleEphemeralProfileForDeletion(profile_->GetPath());
     }
   }
 
diff --git a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
index 6b6623c..1af51a56 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
@@ -5,7 +5,9 @@
 #include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
 
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
@@ -70,10 +72,10 @@
       // Schedule the ephemeral profile for deletion if it wasn't deleted yet,
       // since it's not needed any more.
       if (!profile_path_.has_value() &&
-          !ProfileManager::IsProfileDirectoryMarkedForDeletion(
-              profile_->GetPath())) {
+          !IsProfileDirectoryMarkedForDeletion(profile_->GetPath())) {
         g_browser_process->profile_manager()
-            ->ScheduleEphemeralProfileForDeletion(profile_->GetPath());
+            ->GetDeleteProfileHelper()
+            .ScheduleEphemeralProfileForDeletion(profile_->GetPath());
       }
     }
 
diff --git a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
index ab003b3..ce63419 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
@@ -2,11 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
+
 #include "base/functional/callback_helpers.h"
 #include "base/test/mock_callback.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
 #include "chrome/browser/ui/views/profiles/profile_picker_web_contents_host.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "content/public/browser/web_contents.h"
@@ -91,8 +93,7 @@
   }
 
   // On exit, the provider should schedule the profile it created for deletion.
-  EXPECT_TRUE(ProfileManager::IsProfileDirectoryMarkedForDeletion(
-      provider_profile_path));
+  EXPECT_TRUE(IsProfileDirectoryMarkedForDeletion(provider_profile_path));
 }
 
 IN_PROC_BROWSER_TEST_F(ProfilePickerDiceSignInProviderBrowserTest,
@@ -129,6 +130,5 @@
   }
 
   // Since a profile has been passed in, the provider should not delete it.
-  EXPECT_FALSE(ProfileManager::IsProfileDirectoryMarkedForDeletion(
-      provider_profile_path));
+  EXPECT_FALSE(IsProfileDirectoryMarkedForDeletion(provider_profile_path));
 }
diff --git a/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
index f0d1caf3..467a9ce 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
@@ -8,6 +8,7 @@
 
 #include "base/trace_event/trace_event.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/profiles/profile_metrics.h"
@@ -135,8 +136,9 @@
     // Record unfinished signed-in profile creation.
     if (!is_finishing_) {
       // Schedule the profile for deletion, it's not needed any more.
-      g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-          profile()->GetPath());
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .ScheduleEphemeralProfileForDeletion(profile()->GetPath());
 
       // TODO(crbug.com/1300109): Consider moving this recording into
       // ProfilePickerTurnSyncOnDelegate and unify this code with Cancel().
@@ -169,8 +171,9 @@
     is_finishing_ = true;
 
     // Schedule the profile for deletion, it's not needed any more.
-    g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-        profile()->GetPath());
+    g_browser_process->profile_manager()
+        ->GetDeleteProfileHelper()
+        .ScheduleEphemeralProfileForDeletion(profile()->GetPath());
   }
 
   void FinishAndOpenBrowser(PostHostClearedCallback callback) override {
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
index 8ad4a31..0fbb7b52 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
@@ -32,6 +32,7 @@
 #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
 #include "chrome/browser/policy/profile_policy_connector.h"
 #include "chrome/browser/policy/profile_policy_connector_builder.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -1813,7 +1814,7 @@
 #else
   EXPECT_FALSE(contents_profile->IsSystemProfile());
   // The sign-in profile should be marked for deletion.
-  ProfileManager::IsProfileDirectoryMarkedForDeletion(contents_profile_path);
+  IsProfileDirectoryMarkedForDeletion(contents_profile_path);
 #endif
   EXPECT_EQ(initial_profile_count, g_browser_process->profile_manager()
                                        ->GetProfileAttributesStorage()
diff --git a/chrome/browser/ui/views/select_file_dialog_extension.cc b/chrome/browser/ui/views/select_file_dialog_extension.cc
index 4e2d0e7..23602de 100644
--- a/chrome/browser/ui/views/select_file_dialog_extension.cc
+++ b/chrome/browser/ui/views/select_file_dialog_extension.cc
@@ -296,7 +296,7 @@
     const std::string& id) {
   system_files_app_web_contents_ = web_contents;
   SelectFileDialogExtensionUserData::SetDialogDataForWebContents(
-      web_contents, id, owner_.dialog_caller);
+      web_contents, id, type_, owner_.dialog_caller);
 }
 
 void SelectFileDialogExtension::OnSystemDialogWillClose() {
diff --git a/chrome/browser/ui/views/supervised_user/parent_permission_dialog_view_browsertest.cc b/chrome/browser/ui/views/supervised_user/parent_permission_dialog_view_browsertest.cc
index b38511e1..2d018b5c 100644
--- a/chrome/browser/ui/views/supervised_user/parent_permission_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/supervised_user/parent_permission_dialog_view_browsertest.cc
@@ -14,6 +14,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/metrics/user_action_tester.h"
+#include "chrome/browser/ash/login/test/device_state_mixin.h"
 #include "chrome/browser/ash/login/test/fake_gaia_mixin.h"
 #include "chrome/browser/ash/login/test/logged_in_user_mixin.h"
 #include "chrome/browser/extensions/chrome_test_extension_loader.h"
@@ -259,6 +260,13 @@
 
   ParentPermissionDialog::Result result_;
 
+  // Emulate consumer ownership (create public owner key file, install
+  // attributes file, etc) so Chrome doesn't need to do it. The current setup is
+  // not sufficient to go through the ownership flow successfully and it's not
+  // essential to the logic under test.
+  ash::DeviceStateMixin device_state_{
+      &mixin_host_,
+      ash::DeviceStateMixin::State::OOBE_COMPLETED_CONSUMER_OWNED};
   ash::LoggedInUserMixin logged_in_user_mixin_{
       &mixin_host_,
       // Simulate Gellerization / Adding Supervision to load extensions.
diff --git a/chrome/browser/ui/views/user_education/browser_user_education_service.cc b/chrome/browser/ui/views/user_education/browser_user_education_service.cc
index 7342595c..2e63b7f3 100644
--- a/chrome/browser/ui/views/user_education/browser_user_education_service.cc
+++ b/chrome/browser/ui/views/user_education/browser_user_education_service.cc
@@ -486,7 +486,7 @@
         HelpBubbleArrow::kTopLeft, ui::CustomElementEventType(), absl::nullopt,
         /* transition_only_on_event =*/false,
         user_education::TutorialDescription::NameElementsCallback(),
-        /* in_any_context =*/true);
+        TutorialDescription::ContextMode::kAny);
     side_panel_description.steps.emplace_back(add_current_tab_step);
 
     // When shown, name the element
@@ -502,7 +502,7 @@
                   element, base::StringPiece(kReadingListItemElementName));
               return true;
             }),
-        /* in_any_context =*/true);
+        TutorialDescription::ContextMode::kAny);
     side_panel_description.steps.emplace_back(new_reading_list_item_step);
 
     // Mark as read
diff --git a/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc b/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
index 91ebd27..2612204 100644
--- a/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
+++ b/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
@@ -34,6 +34,7 @@
 #include "chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.h"
 #include "chrome/browser/ash/web_applications/os_url_handler_system_web_app_info.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
 #include "chrome/browser/ui/app_list/app_service/app_service_app_item.h"
@@ -653,8 +654,11 @@
   const AppId& app_id1 = GetAppId(profile1);
   const AppId& app_id2 = GetAppId(profile2);
 
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      profile2->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile2->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   {
     auto launch_params = apps::AppLaunchParams(
diff --git a/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc b/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
index 61034f5..45f0e41 100644
--- a/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
@@ -8,7 +8,9 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h"
 #include "chrome/browser/web_applications/test/web_app_test_observers.h"
@@ -29,8 +31,11 @@
   }
 
   void ScheduleCurrentProfileForDeletion() {
-    g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-        profile()->GetPath(), base::DoNothing());
+    g_browser_process->profile_manager()
+        ->GetDeleteProfileHelper()
+        .MaybeScheduleProfileForDeletion(
+            profile()->GetPath(), base::DoNothing(),
+            ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   }
 };
 
diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
index 32d5db4..7574c67 100644
--- a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
+++ b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
@@ -32,6 +32,10 @@
 #include "content/public/test/browser_test_utils.h"
 #include "media/base/media_switches.h"
 
+#if !BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chrome/browser/signin/signin_features.h"
+#endif
+
 namespace {
 
 class NavigationObserver : public content::WebContentsObserver {
@@ -160,6 +164,9 @@
     if (GetParam() == std::string("chrome://welcome"))
       enabled_features.push_back(welcome::kForceEnabled);
 #endif
+#if !BUILDFLAG(IS_CHROMEOS_ASH)
+    enabled_features.push_back(kForYouFre);
+#endif
     enabled_features.push_back(media::kUseMediaHistoryStore);
     feature_list_.InitWithFeatures(enabled_features, {});
   }
@@ -390,6 +397,7 @@
     // "chrome://welcome",
 #endif
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
+    "chrome://intro",
     "chrome://signin-email-confirmation",
 #endif
 #if !BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc
index 7b4f596..41768ae3 100644
--- a/chrome/browser/ui/webui/intro/intro_ui.cc
+++ b/chrome/browser/ui/webui/intro/intro_ui.cc
@@ -54,6 +54,7 @@
   webui::SetupWebUIDataSource(
       source, base::make_span(kIntroResources, kIntroResourcesSize),
       IDR_INTRO_INTRO_HTML);
+  webui::EnableTrustedTypesCSP(source);
 
   AddStrings(source);
 
diff --git a/chrome/browser/ui/webui/profile_helper.cc b/chrome/browser/ui/webui/profile_helper.cc
index 5f3aa784..c0d7e248 100644
--- a/chrome/browser/ui/webui/profile_helper.cc
+++ b/chrome/browser/ui/webui/profile_helper.cc
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_window.h"
@@ -53,8 +54,10 @@
                          ProfileMetrics::ProfileDelete deletion_source) {
   if (!profiles::IsMultipleProfilesEnabled())
     return;
-  g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-      file_path, base::BindOnce(&OpenNewWindowForProfile), deletion_source);
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          file_path, base::BindOnce(&OpenNewWindowForProfile), deletion_source);
 }
 
 }  // namespace webui
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index 7c09a90..fc5c3e9b 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1182,6 +1182,7 @@
      IDS_SETTINGS_PASSWORDS_IMPORT_LONG_PASSWORD},
     {"importPasswordsLongUsername",
      IDS_SETTINGS_PASSWORDS_IMPORT_LONG_USERNAME},
+    {"importPasswordsLongNote", IDS_SETTINGS_PASSWORDS_IMPORT_LONG_NOTE},
     {"importPasswordsConflictDevice",
      IDS_SETTINGS_PASSWORDS_IMPORT_CONFLICT_DEVICE},
     {"importPasswordsConflictAccount",
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
index 248787a7..b447cfcb 100644
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -90,10 +90,6 @@
 #include "printing/buildflags/buildflags.h"
 #include "ui/base/interaction/element_identifier.h"
 
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-#include "chrome/grit/chrome_unscaled_resources.h"
-#endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
-
 #if BUILDFLAG(IS_WIN)
 #include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.h"
 #include "chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h"
@@ -299,29 +295,12 @@
       "enableSendPasswords",
       base::FeatureList::IsEnabled(password_manager::features::kSendPasswords));
 
-  // Indicates whether any automated password change entry point is enabled.
-  // This is currently used as a prerequisite for showing a settings toggle
-  // for Autofill Assistant.
-  html_source->AddBoolean(
-      "isAutomatedPasswordChangeEnabled",
-      password_manager::features::IsAutomatedPasswordChangeEnabled());
-
-  html_source->AddBoolean(
-      "enableAutomaticPasswordChangeInSettings",
-      base::FeatureList::IsEnabled(
-          password_manager::features::kPasswordChangeInSettings));
-
   html_source->AddBoolean(
       "changePriceEmailNotificationsEnabled",
       base::FeatureList::IsEnabled(commerce::kShoppingList));
   commerce::ShoppingServiceFactory::GetForBrowserContext(profile)
       ->FetchPriceEmailPref();
 
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-  html_source->AddResourcePath("images/google_assistant.svg",
-                               IDR_ASSISTANT_LOGO_MONOCHROME);
-#endif
-
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
   html_source->AddBoolean(
       "enableDesktopDetailedLanguageSettings",
diff --git a/chrome/browser/ui/webui/support_tool/DIR_METADATA b/chrome/browser/ui/webui/support_tool/DIR_METADATA
new file mode 100644
index 0000000..5fbed30
--- /dev/null
+++ b/chrome/browser/ui/webui/support_tool/DIR_METADATA
@@ -0,0 +1,7 @@
+buganizer {
+  component_id: 1111615 # ChromeOS > Software > Commercial (Enterprise) > Supportability
+}
+buganizer_public {
+    component_id: 1199457 # ChromeOS > Public Tracker > Services > Supportability
+}
+team_email: "chromeos-commercial-supportability@google.com"
\ No newline at end of file
diff --git a/chrome/browser/vr/test/gl_test_environment_unittest.cc b/chrome/browser/vr/test/gl_test_environment_unittest.cc
index d45f06d..f4afce1 100644
--- a/chrome/browser/vr/test/gl_test_environment_unittest.cc
+++ b/chrome/browser/vr/test/gl_test_environment_unittest.cc
@@ -13,7 +13,13 @@
 
 namespace vr {
 
-TEST(GlTestEnvironmentTest, InitializeAndCleanup) {
+// TODO(crbug.com/1394319): Re-enable this test
+#if BUILDFLAG(IS_LINUX) && defined(MEMORY_SANITIZER)
+#define MAYBE_InitializeAndCleanup DISABLED_InitializeAndCleanup
+#else
+#define MAYBE_InitializeAndCleanup InitializeAndCleanup
+#endif
+TEST(GlTestEnvironmentTest, MAYBE_InitializeAndCleanup) {
 #if BUILDFLAG(IS_WIN)
   // VR is not supported on Windows 7.
   if (base::win::GetVersion() <= base::win::Version::WIN7)
diff --git a/chrome/browser/vr/ui_pixeltest.cc b/chrome/browser/vr/ui_pixeltest.cc
index 2389013..a25c116 100644
--- a/chrome/browser/vr/ui_pixeltest.cc
+++ b/chrome/browser/vr/ui_pixeltest.cc
@@ -16,7 +16,13 @@
 
 namespace vr {
 
-TEST_F(UiPixelTest, DrawVrBrowsingMode) {
+// TODO(crbug.com/1394319): Re-enable this test
+#if BUILDFLAG(IS_LINUX) && defined(MEMORY_SANITIZER)
+#define MAYBE_DrawVrBrowsingMode DISABLED_DrawVrBrowsingMode
+#else
+#define MAYBE_DrawVrBrowsingMode DrawVrBrowsingMode
+#endif
+TEST_F(UiPixelTest, MAYBE_DrawVrBrowsingMode) {
 #if BUILDFLAG(IS_WIN)
   // VR is not supported on Windows 7.
   if (base::win::GetVersion() <= base::win::Version::WIN7)
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_reader_registry_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_reader_registry_unittest.cc
index cc980d8b..6ece4ad 100644
--- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_reader_registry_unittest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_reader_registry_unittest.cc
@@ -115,8 +115,8 @@
     web_package::mojom::BundleIntegrityBlockSignatureStackEntryPtr
         signature_stack_entry =
             web_package::mojom::BundleIntegrityBlockSignatureStackEntry::New();
-    signature_stack_entry->public_key =
-        std::vector(std::begin(kEd25519PublicKey), std::end(kEd25519PublicKey));
+    signature_stack_entry->public_key = web_package::Ed25519PublicKey::Create(
+        base::make_span(kEd25519PublicKey));
     signature_stack_entry->signature =
         std::vector(std::begin(kEd25519Signature), std::end(kEd25519Signature));
 
diff --git a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.cc b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.cc
index df3cd7e..e1cf2f41 100644
--- a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.cc
@@ -197,15 +197,46 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   CHECK_EQ(state_, State::kInitializing);
 
+  base::ThreadPool::PostTaskAndReplyWithResult(
+      FROM_HERE, {base::MayBlock()},
+      base::BindOnce(
+          [](scoped_refptr<web_package::SharedFile> file)
+              -> base::expected<uint64_t, base::File::Error> {
+            int64_t length = (*file)->GetLength();
+            if (length < 0) {
+              return base::unexpected((*file)->GetLastFileError());
+            }
+            return static_cast<uint64_t>(length);
+          },
+          file_),
+      base::BindOnce(&SignedWebBundleReader::OnFileLengthRead,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(integrity_block),
+                     std::move(callback)));
+}
+
+void SignedWebBundleReader::OnFileLengthRead(
+    web_package::SignedWebBundleIntegrityBlock integrity_block,
+    ReadErrorCallback callback,
+    base::expected<uint64_t, base::File::Error> file_length) {
+  if (!file_length.has_value()) {
+    FulfillWithError(
+        std::move(callback),
+        web_package::mojom::BundleIntegrityBlockParseError::New(
+            web_package::mojom::BundleParseErrorType::kParserInternalError,
+            base::File::ErrorToString(file_length.error())));
+    return;
+  }
+
   signature_verifier_->VerifySignatures(
       file_, std::move(integrity_block),
       base::BindOnce(&SignedWebBundleReader::OnSignaturesVerified,
                      weak_ptr_factory_.GetWeakPtr(), base::TimeTicks::Now(),
-                     std::move(callback)));
+                     *file_length, std::move(callback)));
 }
 
 void SignedWebBundleReader::OnSignaturesVerified(
     const base::TimeTicks& verification_start_time,
+    uint64_t file_length,
     ReadErrorCallback callback,
     absl::optional<web_package::SignedWebBundleSignatureVerifier::Error>
         verification_error) {
@@ -215,6 +246,10 @@
   base::UmaHistogramMediumTimes(
       "WebApp.Isolated.SignatureVerificationDuration",
       base::TimeTicks::Now() - verification_start_time);
+  // Measure file length in MiB up to ~10GiB.
+  base::UmaHistogramCounts10000(
+      "WebApp.Isolated.SignatureVerificationFileLength",
+      base::saturated_cast<int>(std::round(file_length / (1024.0 * 1024.0))));
 
   if (verification_error.has_value()) {
     FulfillWithError(std::move(callback), *verification_error);
diff --git a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.h b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.h
index 7b38a11..7c3ea1c 100644
--- a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.h
+++ b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader.h
@@ -251,8 +251,14 @@
       web_package::SignedWebBundleIntegrityBlock integrity_block,
       ReadErrorCallback callback);
 
+  void OnFileLengthRead(
+      web_package::SignedWebBundleIntegrityBlock integrity_block,
+      ReadErrorCallback callback,
+      base::expected<uint64_t, base::File::Error> file_length);
+
   void OnSignaturesVerified(
       const base::TimeTicks& verification_start_time,
+      uint64_t file_length,
       ReadErrorCallback callback,
       absl::optional<web_package::SignedWebBundleSignatureVerifier::Error>
           verification_error);
diff --git a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
index 5a08763..413c815 100644
--- a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/test/test_future.h"
 #include "chrome/browser/web_applications/test/signed_web_bundle_utils.h"
 #include "components/web_package/mojom/web_bundle_parser.mojom.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
 #include "components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.h"
 #include "components/web_package/test_support/mock_web_bundle_parser_factory.h"
 #include "content/public/test/browser_task_environment.h"
@@ -80,8 +81,8 @@
     web_package::mojom::BundleIntegrityBlockSignatureStackEntryPtr
         signature_stack_entry =
             web_package::mojom::BundleIntegrityBlockSignatureStackEntry::New();
-    signature_stack_entry->public_key =
-        std::vector(std::begin(kEd25519PublicKey), std::end(kEd25519PublicKey));
+    signature_stack_entry->public_key = web_package::Ed25519PublicKey::Create(
+        base::make_span(kEd25519PublicKey));
     signature_stack_entry->signature =
         std::vector(std::begin(kEd25519Signature), std::end(kEd25519Signature));
 
@@ -209,6 +210,8 @@
 
   histogram_tester.ExpectTotalCount(
       "WebApp.Isolated.SignatureVerificationDuration", 1);
+  histogram_tester.ExpectTotalCount(
+      "WebApp.Isolated.SignatureVerificationFileLength", 1);
 }
 
 TEST_F(SignedWebBundleReaderTest,
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 96a28de..a365c5f 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1669679409-b308b18298a756e0a48c6ea5354610c28bbc53bb.profdata
+chrome-linux-main-1669723125-84ff74cca92a315c16d92f6f1fe2a41f4886edda.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 2316ba6c..25cbe04 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1669679409-d47bf7823ccd585204c55379f8d49b9e4586c6f8.profdata
+chrome-mac-arm-main-1669701041-baf6d0dcc68321156d1bfa6be37628a534dfd349.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 0931d4e..ae81676 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1669701041-dfad12beefc256d999b831ca94882c87de6a6952.profdata
+chrome-mac-main-1669723125-23e9e649dbbe820f2a2829b20e393dfd4becf3df.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 7438a0b..32b87f0 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1669669071-2603d82702c666039377f46c900815b2140a558b.profdata
+chrome-win32-main-1669711887-1cce20bbf28d4c5c031d4d84063ea9741daaf484.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 550f35d..2859452 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1669669071-0ff82c295a359d7bc0c85c91ed27267f930c3408.profdata
+chrome-win64-main-1669711887-44a6127663a8fdd2b7b8b8aacabc8e135c14c2dd.profdata
diff --git a/chrome/common/extensions/api/file_manager_private.idl b/chrome/common/extensions/api/file_manager_private.idl
index e13fb1ad..1717d05a 100644
--- a/chrome/common/extensions/api/file_manager_private.idl
+++ b/chrome/common/extensions/api/file_manager_private.idl
@@ -1030,6 +1030,10 @@
 
   // True if there is any DLP policy on the file, false otherwise.
   boolean isDlpRestricted;
+
+  // True if the file cannot be accessed by a specific destination,
+  // which is passed when collecting the metadata.
+  boolean isRestrictedForDestination;
 };
 
 dictionary DlpRestrictionDetails {
diff --git a/chrome/common/extensions/api/passwords_private.idl b/chrome/common/extensions/api/passwords_private.idl
index b309f8c..8341f719 100644
--- a/chrome/common/extensions/api/passwords_private.idl
+++ b/chrome/common/extensions/api/passwords_private.idl
@@ -107,7 +107,11 @@
     // Credential is already stored in profile store.
     CONFLICT_PROFILE,
     // Credential is already stored in account store.
-    CONFLICT_ACCOUNT
+    CONFLICT_ACCOUNT,
+    // Note is too long.
+    LONG_NOTE,
+    // Concatenation of imported and local notes is too long.
+    LONG_CONCATENATED_NOTE
   };
 
   dictionary ImportEntry {
@@ -193,10 +197,6 @@
     // Android apps.
     DOMString? changePasswordUrl;
 
-    // Indicates whether a script exists to change this credential
-    // automatically.
-    boolean hasStartableScript;
-
     // Additional information in case a credential is compromised.
     CompromisedInfo? compromisedInfo;
   };
@@ -292,7 +292,6 @@
   callback VoidCallback = void();
   callback OptInCallback = void(boolean optedIn);
   callback PasswordCheckStatusCallback = void(PasswordCheckStatus status);
-  callback StartAutomatedPasswordChangeCallback = void(boolean success);
   callback ImportPasswordsCallback = void(ImportResults results);
   callback IsAccountStoreDefaultCallback = void(boolean isDefault);
   callback GetUrlCollectionCallback = void(UrlCollection urlCollection);
@@ -423,12 +422,6 @@
     // Invokes |callback| on completion.
     [supportsPromises] static void recordChangePasswordFlowStarted(
         PasswordUiEntry credential,
-        boolean isManualFlow,
-        optional VoidCallback callback);
-
-    // Refreshes the cache for automatic password change scripts if it is stale.
-    // Invokes `callback` on completion.
-    [supportsPromises] static void refreshScriptsIfNecessary(
         optional VoidCallback callback);
 
     // Starts a check for insecure passwords. Invokes |callback| on completion.
@@ -443,13 +436,6 @@
     [supportsPromises] static void getPasswordCheckStatus(
         PasswordCheckStatusCallback callback);
 
-    // Starts an automated password change for |credential|. Invokes |callback|
-    // on completion with a boolean parameter that signals whether the
-    // credential was changed successfully.
-    [supportsPromises] static void startAutomatedPasswordChange(
-        PasswordUiEntry credential,
-        optional StartAutomatedPasswordChangeCallback callback);
-
     // Requests whether the account store is a default location for saving
     // passwords. False means the device store is a default one. Must be called
     // when the current user has already opted-in for account storage.
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
index 0b3451a..4d68e5ba 100644
--- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc
+++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
@@ -15,6 +15,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "chrome/renderer/autofill/fake_mojo_password_manager_driver.h"
 #include "chrome/renderer/autofill/fake_password_generation_driver.h"
@@ -709,6 +710,46 @@
       autofill::password_generation::GENERATION_POPUP_SHOWN, 1);
 }
 
+TEST_F(PasswordGenerationAgentTest,
+       MaximumCharsForGenerationOfferIgnoredWithEnabledStrengthIndicator) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndEnableFeature(
+      password_manager::features::kPasswordStrengthIndicator);
+
+  LoadHTMLWithUserGesture(kAccountCreationFormHTML);
+  SetFoundFormEligibleForGeneration(
+      password_generation_, GetMainFrame()->GetDocument(),
+      /*new_password_id=*/"first_password", /*cofirm_password_id=*/nullptr);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+
+  WebDocument document = GetMainFrame()->GetDocument();
+  WebElement element =
+      document.GetElementById(WebString::FromUTF8("first_password"));
+  ASSERT_FALSE(element.IsNull());
+  WebInputElement first_password_element = element.To<WebInputElement>();
+
+  // Dropdown should not be hidden with more characters than maximum for
+  // generation when strength indicator feature is enabled.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationAvailable(_))
+      .Times(AtMost(1));
+  SimulateUserInputChangeForElement(
+      &first_password_element,
+      std::string(PasswordGenerationAgent::kMaximumCharsForGenerationOffer + 1,
+                  'a'));
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
+
+  // Dropdown should be hidden when focus changes.
+  EXPECT_CALL(fake_pw_client_, GenerationElementLostFocus());
+  FocusField("username");
+  fake_pw_client_.Flush();
+
+  // Focusing the password field should bring the generation dropdown again.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationAvailable(_));
+  FocusField("first_password");
+  fake_pw_client_.Flush();
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
+}
+
 TEST_F(PasswordGenerationAgentTest, MinimumLengthForEditedPassword) {
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
   SetFoundFormEligibleForGeneration(
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index ed904cb..a1ea6736 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -2993,7 +2993,6 @@
         "../browser/extensions/api/offscreen/offscreen_document_manager_browsertest.cc",
         "../browser/extensions/api/page_capture/page_capture_apitest.cc",
         "../browser/extensions/api/passwords_private/passwords_private_apitest.cc",
-        "../browser/extensions/api/passwords_private/passwords_private_delegate_impl_browsertest.cc",
         "../browser/extensions/api/permissions/permissions_apitest.cc",
         "../browser/extensions/api/preference/preference_apitest.cc",
         "../browser/extensions/api/printer_provider/printer_provider_apitest.cc",
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.cc b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
index 0661b0bf..609be68b 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
@@ -1209,23 +1209,23 @@
   // strings. For example, webplatform tests use this to check string handling
   std::unique_ptr<base::Value> message_value = base::JSONReader::ReadDeprecated(
       message, base::JSON_REPLACE_INVALID_CHARACTERS);
-  base::DictionaryValue* message_dict;
-  if (!message_value || !message_value->GetAsDictionary(&message_dict))
+  base::Value::Dict* message_dict =
+      message_value ? message_value->GetIfDict() : nullptr;
+  if (!message_dict)
     return false;
   session_id->clear();
-  if (const std::string* str = message_dict->FindStringKey("sessionId"))
+  if (const std::string* str = message_dict->FindString("sessionId"))
     *session_id = *str;
 
-  base::Value* id_value = message_dict->FindKey("id");
+  base::Value* id_value = message_dict->Find("id");
   if (!id_value) {
-    std::string method;
-    if (!message_dict->GetString("method", &method))
+    const std::string* method = message_dict->FindString("method");
+    if (!method)
       return false;
-    base::DictionaryValue* params = nullptr;
     bool is_bidi_message = false;
-    if (message_dict->GetDictionary("params", &params)) {
-      Status status =
-          IsBidiMessage(method, params->GetDict(), &is_bidi_message);
+    base::Value::Dict* params = message_dict->FindDict("params");
+    if (params) {
+      Status status = IsBidiMessage(*method, *params, &is_bidi_message);
       if (status.IsError()) {
         LOG(WARNING) << status.message();
         return false;
@@ -1234,7 +1234,7 @@
 
     if (is_bidi_message) {
       base::Value::Dict payload;
-      Status status = DeserializePayload(params->GetDict(), &payload);
+      Status status = DeserializePayload(*params, &payload);
       if (status.IsError()) {
         LOG(WARNING) << status.message();
         return false;
@@ -1320,21 +1320,19 @@
 
       // Replace the payload string with the deserialized value to avoid
       // double deserialization in the BidiTracker.
-      params->GetDict().Set("payload", std::move(payload));
+      params->Set("payload", std::move(payload));
     }  // BiDi message
 
     *type = kEventMessageType;
-    event->method = method;
+    event->method = *method;
     if (params) {
       event->params = base::DictionaryValue::From(
-          base::Value::ToUniquePtrValue(params->Clone()));
+          base::Value::ToUniquePtrValue(base::Value(params->Clone())));
     } else {
       event->params = std::make_unique<base::DictionaryValue>();
     }
     return true;
   } else if (id_value->is_int()) {
-    base::DictionaryValue* unscoped_error = nullptr;
-    base::DictionaryValue* unscoped_result = nullptr;
     *type = kCommandResponseMessageType;
     command_response->id = id_value->GetInt();
     // As per Chromium issue 392577, DevTools does not necessarily return a
@@ -1342,10 +1340,11 @@
     // Tracing.start and Tracing.end command responses do not contain one.
     // So, if neither "error" nor "result" keys are present, just provide
     // a blank result dictionary.
-    if (message_dict->GetDictionary("result", &unscoped_result)) {
+    if (base::Value::Dict* unscoped_result = message_dict->FindDict("result")) {
       command_response->result = base::DictionaryValue::From(
-          base::Value::ToUniquePtrValue(unscoped_result->Clone()));
-    } else if (message_dict->GetDictionary("error", &unscoped_error)) {
+          base::Value::ToUniquePtrValue(base::Value(unscoped_result->Clone())));
+    } else if (base::Value::Dict* unscoped_error =
+                   message_dict->FindDict("error")) {
       base::JSONWriter::Write(*unscoped_error, &command_response->error);
     } else {
       command_response->result = std::make_unique<base::DictionaryValue>();
@@ -1358,12 +1357,12 @@
 Status ParseInspectorError(const std::string& error_json) {
   std::unique_ptr<base::Value> error =
       base::JSONReader::ReadDeprecated(error_json);
-  base::DictionaryValue* error_dict;
-  if (!error || !error->GetAsDictionary(&error_dict))
+  base::Value::Dict* error_dict = error ? error->GetIfDict() : nullptr;
+  if (!error_dict)
     return Status(kUnknownError, "inspector error with no error message");
 
-  absl::optional<int> maybe_code = error_dict->FindIntKey("code");
-  std::string* maybe_message = error_dict->FindStringKey("message");
+  absl::optional<int> maybe_code = error_dict->FindInt("code");
+  std::string* maybe_message = error_dict->FindString("message");
 
   if (maybe_code.has_value()) {
     if (maybe_code.value() == kCdpMethodNotFoundCode) {
@@ -1393,7 +1392,7 @@
       // we have to rely on the error message content.
       return Status(kNoSuchFrame, error_message);
     }
-    absl::optional<int> error_code = error_dict->FindIntPath("code");
+    absl::optional<int> error_code = error_dict->FindInt("code");
     if (error_code == kInvalidParamsInspectorCode) {
       if (error_message == kNoTargetWithGivenIdError) {
         return Status(kNoSuchWindow, error_message);
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc
index eb6a050..dfec2df 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
+++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
@@ -1335,19 +1335,19 @@
       return status;
     }
 
-    base::DictionaryValue* result_info = nullptr;
-    if (!query_value->GetAsDictionary(&result_info))
+    base::Value::Dict* result_info = query_value->GetIfDict();
+    if (!result_info)
       return Status(kUnknownError, "async result info is not a dictionary");
-    absl::optional<int> status_code = result_info->FindIntKey("status");
+    absl::optional<int> status_code = result_info->FindInt("status");
     if (!status_code)
       return Status(kUnknownError, "async result info has no int 'status'");
     if (*status_code != kOk) {
-      std::string message;
-      result_info->GetString("value", &message);
-      return Status(static_cast<StatusCode>(*status_code), message);
+      const std::string* message = result_info->FindString("value");
+      return Status(static_cast<StatusCode>(*status_code),
+                    message ? *message : "");
     }
 
-    if (base::Value* value = result_info->FindKey("value")) {
+    if (base::Value* value = result_info->Find("value")) {
       *result = base::Value::ToUniquePtrValue(value->Clone());
       return Status(kOk);
     }
@@ -1567,20 +1567,20 @@
 
 Status ParseCallFunctionResult(const base::Value& temp_result,
                                std::unique_ptr<base::Value>* result) {
-  const base::DictionaryValue* dict;
-  if (!temp_result.GetAsDictionary(&dict))
+  const base::Value::Dict* dict = temp_result.GetIfDict();
+  if (!dict)
     return Status(kUnknownError, "call function result must be a dictionary");
-  absl::optional<int> status_code = dict->FindIntKey("status");
+  absl::optional<int> status_code = dict->FindInt("status");
   if (!status_code) {
     return Status(kUnknownError,
                   "call function result missing int 'status'");
   }
   if (*status_code != kOk) {
-    std::string message;
-    dict->GetString("value", &message);
-    return Status(static_cast<StatusCode>(*status_code), message);
+    const std::string* message = dict->FindString("value");
+    return Status(static_cast<StatusCode>(*status_code),
+                  message ? *message : "");
   }
-  const base::Value* unscoped_value = dict->FindKey("value");
+  const base::Value* unscoped_value = dict->Find("value");
   if (unscoped_value == nullptr) {
     // Missing 'value' indicates the JavaScript code didn't return a value.
     return Status(kOk);
diff --git a/chrome/test/chromedriver/chrome_launcher_unittest.cc b/chrome/test/chromedriver/chrome_launcher_unittest.cc
index 68bbae9..e9997d5 100644
--- a/chrome/test/chromedriver/chrome_launcher_unittest.cc
+++ b/chrome/test/chromedriver/chrome_launcher_unittest.cc
@@ -116,10 +116,10 @@
   std::unique_ptr<base::Value> manifest =
       base::JSONReader::ReadDeprecated(manifest_txt);
   ASSERT_TRUE(manifest);
-  base::DictionaryValue* manifest_dict = nullptr;
-  ASSERT_TRUE(manifest->GetAsDictionary(&manifest_dict));
-  std::string key;
-  ASSERT_TRUE(manifest_dict->GetString("key", &key));
+  base::Value::Dict* manifest_dict = manifest->GetIfDict();
+  ASSERT_TRUE(manifest_dict);
+  std::string* key = manifest_dict->FindString("key");
+  ASSERT_TRUE(key);
   ASSERT_EQ(
       "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxbE7gPHcoZQX7Nv1Tpq8Osz3hhC"
       "fUPZpMCcsYALXYsICUMdFNPvsq4AsfzcIJN2Qc6C9GwlDgBEYQgC6zD9ULoSnHu3iJem49b"
@@ -132,7 +132,7 @@
       "dnQtotb3/wuPvRFXqU0o0SAeEwGRoOxr6WqkOLuBuvwNtcKc/cCqxWMlcnId5TWX+tPEpUM"
       "4Imgbf6jIB2FPpSXQMLHQkag+k95aiXqkpirlhUaBA5yrClFLjw+Ld2yqJfh961yncxF+IB"
       "EmivSdNH0cYZBISf8CAwEAAQ==",
-      key);
+      *key);
   ASSERT_EQ(1u, bg_pages.size());
   ASSERT_EQ(
       "chrome-extension://ejapkfeonjhabbbnlpmcgholnoicapdb/"
@@ -183,17 +183,6 @@
   ASSERT_TRUE(base::PathExists(base::FilePath(load.substr(3))));
 }
 
-namespace {
-
-void AssertEQ(const base::DictionaryValue& dict, const std::string& key,
-              const char* expected_value) {
-  std::string value;
-  ASSERT_TRUE(dict.GetString(key, &value));
-  ASSERT_STREQ(value.c_str(), expected_value);
-}
-
-}  // namespace
-
 TEST(PrepareUserDataDir, CustomPrefs) {
   base::ScopedTempDir temp_dir;
   ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -213,23 +202,22 @@
                                   .Append(chrome::kPreferencesFilename);
   std::string prefs_str;
   ASSERT_TRUE(base::ReadFileToString(prefs_file, &prefs_str));
-  std::unique_ptr<base::Value> prefs_value =
-      base::JSONReader::ReadDeprecated(prefs_str);
-  const base::DictionaryValue* prefs_dict = nullptr;
-  ASSERT_TRUE(prefs_value->GetAsDictionary(&prefs_dict));
-  AssertEQ(*prefs_dict, "myPrefsKey", "ok");
-  AssertEQ(*prefs_dict, "pref.sub", "1");
+  absl::optional<base::Value> prefs_value = base::JSONReader::Read(prefs_str);
+  const base::Value::Dict* prefs_dict = prefs_value->GetIfDict();
+  ASSERT_TRUE(prefs_dict);
+  EXPECT_EQ("ok", *prefs_dict->FindString("myPrefsKey"));
+  EXPECT_EQ("1", *prefs_dict->FindStringByDottedPath("pref.sub"));
 
   base::FilePath local_state_file =
       temp_dir.GetPath().Append(chrome::kLocalStateFilename);
   std::string local_state_str;
   ASSERT_TRUE(base::ReadFileToString(local_state_file, &local_state_str));
-  std::unique_ptr<base::Value> local_state_value =
-      base::JSONReader::ReadDeprecated(local_state_str);
-  const base::DictionaryValue* local_state_dict = nullptr;
-  ASSERT_TRUE(local_state_value->GetAsDictionary(&local_state_dict));
-  AssertEQ(*local_state_dict, "myLocalKey", "ok");
-  AssertEQ(*local_state_dict, "local.state.sub", "2");
+  absl::optional<base::Value> local_state_value =
+      base::JSONReader::Read(local_state_str);
+  const base::Value::Dict* local_state_dict = local_state_value->GetIfDict();
+  ASSERT_TRUE(local_state_dict);
+  EXPECT_EQ("ok", *local_state_dict->FindString("myLocalKey"));
+  EXPECT_EQ("2", *local_state_dict->FindStringByDottedPath("local.state.sub"));
 }
 
 TEST(DesktopLauncher, ParseDevToolsActivePortFile_Success) {
diff --git a/chrome/test/chromedriver/commands_unittest.cc b/chrome/test/chromedriver/commands_unittest.cc
index 85b6279..3a0a003d 100644
--- a/chrome/test/chromedriver/commands_unittest.cc
+++ b/chrome/test/chromedriver/commands_unittest.cc
@@ -41,15 +41,15 @@
                  const std::string& session_id,
                  bool w3c_compliant) {
   ASSERT_EQ(kOk, status.code());
-  base::DictionaryValue* dict;
-  ASSERT_TRUE(value->GetAsDictionary(&dict));
-  absl::optional<bool> ready = dict->FindBoolKey("ready");
+  base::Value::Dict* dict = value->GetIfDict();
+  ASSERT_TRUE(dict);
+  absl::optional<bool> ready = dict->FindBool("ready");
   ASSERT_TRUE(ready.has_value() && ready.value());
-  ASSERT_TRUE(dict->FindKey("message"));
-  ASSERT_TRUE(dict->FindPath("os.name"));
-  ASSERT_TRUE(dict->FindPath("os.version"));
-  ASSERT_TRUE(dict->FindPath("os.arch"));
-  ASSERT_TRUE(dict->FindPath("build.version"));
+  ASSERT_TRUE(dict->Find("message"));
+  ASSERT_TRUE(dict->FindByDottedPath("os.name"));
+  ASSERT_TRUE(dict->FindByDottedPath("os.version"));
+  ASSERT_TRUE(dict->FindByDottedPath("os.arch"));
+  ASSERT_TRUE(dict->FindByDottedPath("build.version"));
 }
 
 }  // namespace
diff --git a/chrome/test/chromedriver/element_commands.cc b/chrome/test/chromedriver/element_commands.cc
index 3c69ade..f00e5c2 100644
--- a/chrome/test/chromedriver/element_commands.cc
+++ b/chrome/test/chromedriver/element_commands.cc
@@ -677,16 +677,16 @@
                                     args, &result);
     if (status.IsError())
       return status;
-    const base::DictionaryValue* element_dict;
-    std::string top_element_id;
-    if (!result->GetAsDictionary(&element_dict) ||
-        !element_dict->GetString(GetElementKey(), &top_element_id))
+    const base::Value::Dict* element_dict = result->GetIfDict();
+    const std::string* top_element_id =
+        element_dict ? element_dict->FindString(GetElementKey()) : nullptr;
+    if (!top_element_id)
       return Status(kUnknownError, "no element reference returned by script");
 
     // check if top level contentEditable element is focused
     bool is_top_focused = false;
     status =
-        IsElementFocused(session, web_view, top_element_id, &is_top_focused);
+        IsElementFocused(session, web_view, *top_element_id, &is_top_focused);
     if (status.IsError())
       return status;
     // If is_text we want to send keys to the element
@@ -713,7 +713,7 @@
     }
     // Use top level element id for the purpose of focusing
     if (!is_text) {
-      return SendKeysToElement(session, web_view, top_element_id, is_text,
+      return SendKeysToElement(session, web_view, *top_element_id, is_text,
                                key_list);
     }
   }
@@ -970,27 +970,27 @@
     return status;
 
   // do type conversions
-  base::DictionaryValue* size_dict;
-  if (!size->GetAsDictionary(&size_dict))
-    return Status(kUnknownError, "could not convert to DictionaryValue");
-  base::DictionaryValue* location_dict;
-  if (!location->GetAsDictionary(&location_dict))
-    return Status(kUnknownError, "could not convert to DictionaryValue");
+  base::Value::Dict* size_dict = size->GetIfDict();
+  if (!size_dict)
+    return Status(kUnknownError, "could not convert to Value::Dict");
+  base::Value::Dict* location_dict = location->GetIfDict();
+  if (!location_dict)
+    return Status(kUnknownError, "could not convert to Value::Dict");
 
   // grab values
-  absl::optional<double> maybe_x = location_dict->FindDoubleKey("x");
+  absl::optional<double> maybe_x = location_dict->FindDouble("x");
   if (!maybe_x.has_value())
     return Status(kUnknownError, "x coordinate is missing in element location");
 
-  absl::optional<double> maybe_y = location_dict->FindDoubleKey("y");
+  absl::optional<double> maybe_y = location_dict->FindDouble("y");
   if (!maybe_y.has_value())
     return Status(kUnknownError, "y coordinate is missing in element location");
 
-  absl::optional<double> maybe_height = size_dict->FindDoubleKey("height");
+  absl::optional<double> maybe_height = size_dict->FindDouble("height");
   if (!maybe_height.has_value())
     return Status(kUnknownError, "height is missing in element size");
 
-  absl::optional<double> maybe_width = size_dict->FindDoubleKey("width");
+  absl::optional<double> maybe_width = size_dict->FindDouble("width");
   if (!maybe_width.has_value())
     return Status(kUnknownError, "width is missing in element size");
 
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl.cc b/chrome/test/chromedriver/net/sync_websocket_impl.cc
index a04a10d4..43044a8 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl.cc
@@ -164,12 +164,13 @@
                                                  bool* send_to_chromedriver) {
   absl::optional<base::Value> message_value =
       base::JSONReader::Read(message, base::JSON_REPLACE_INVALID_CHARACTERS);
-  base::DictionaryValue* message_dict;
-  if (!message_value || !message_value->GetAsDictionary(&message_dict)) {
+  base::Value::Dict* message_dict =
+      message_value ? message_value->GetIfDict() : nullptr;
+  if (!message_dict) {
     *send_to_chromedriver = true;
     return;
   }
-  base::Value* id = message_dict->FindKey("id");
+  base::Value* id = message_dict->Find("id");
   *send_to_chromedriver =
       id == nullptr ||
       (id->is_int() && CommandId::IsChromeDriverCommandId(id->GetInt()));
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
index 144a1b82..9a3d26f 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
@@ -92,14 +92,13 @@
             sock.ReceiveNextMessage(&message, long_timeout()));
 
   // Getting message id and method
-  base::DictionaryValue* message_dict;
   absl::optional<base::Value> message_value = base::JSONReader::Read(message);
   ASSERT_TRUE(message_value.has_value());
-  ASSERT_TRUE(message_value->GetAsDictionary(&message_dict));
-  std::string method;
-  ASSERT_TRUE(message_dict->GetString("method", &method));
-  ASSERT_EQ(method, "Page.enable");
-  int id = message_dict->FindIntKey("id").value_or(-1);
+  base::Value::Dict* message_dict = message_value->GetIfDict();
+  ASSERT_TRUE(message_dict);
+  const std::string* method = message_dict->FindString("method");
+  ASSERT_EQ(*method, "Page.enable");
+  int id = message_dict->FindInt("id").value_or(-1);
   ASSERT_EQ(id, 1);
 }
 
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc
index 2766f677..f134041 100644
--- a/chrome/test/chromedriver/server/http_handler.cc
+++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -1133,7 +1133,7 @@
     const net::HttpServerRequestInfo& request,
     const std::string& trimmed_path,
     const HttpResponseSenderFunc& send_response_func) {
-  base::DictionaryValue params;
+  base::Value::Dict params;
   std::string session_id;
   CommandMap::const_iterator iter = command_map_->begin();
   while (true) {
@@ -1159,10 +1159,11 @@
   }
 
   if (request.data.length()) {
-    base::DictionaryValue* body_params;
     std::unique_ptr<base::Value> parsed_body =
         base::JSONReader::ReadDeprecated(request.data);
-    if (!parsed_body || !parsed_body->GetAsDictionary(&body_params)) {
+    base::Value::Dict* body_params =
+        parsed_body ? parsed_body->GetIfDict() : nullptr;
+    if (!body_params) {
       if (w3cMode(session_id, session_thread_map_)) {
         PrepareResponse(trimmed_path, send_response_func,
                         Status(kInvalidArgument, "missing command parameters"),
@@ -1175,7 +1176,7 @@
       }
       return;
     }
-    params.MergeDictionary(body_params);
+    params.Merge(std::move(*body_params));
   } else if (iter->method == kPost &&
              w3cMode(session_id, session_thread_map_)) {
     // Data in JSON format is required for POST requests. See step 5 of
@@ -1186,7 +1187,7 @@
     return;
   }
   // Pass host instead for potential WebSocketUrl if it's a new session
-  iter->command.Run(params.GetDict(),
+  iter->command.Run(params,
                     internal::IsNewSession(*iter)
                         ? request.GetHeaderValue("host")
                         : session_id,
@@ -1641,7 +1642,7 @@
                     const std::string& path,
                     const CommandMapping& command,
                     std::string* session_id,
-                    base::DictionaryValue* out_params) {
+                    base::Value::Dict* out_params) {
   if (!MatchesMethod(command.method, method))
     return false;
 
@@ -1652,7 +1653,7 @@
   if (path_parts.size() != command_path_parts.size())
     return false;
 
-  base::DictionaryValue params;
+  base::Value::Dict params;
   for (size_t i = 0; i < path_parts.size(); ++i) {
     CHECK(command_path_parts[i].length());
     if (command_path_parts[i][0] == ':') {
@@ -1672,12 +1673,12 @@
       if (name == "sessionId")
         *session_id = decoded;
       else
-        params.SetString(name, decoded);
+        params.Set(name, decoded);
     } else if (command_path_parts[i] != path_parts[i]) {
       return false;
     }
   }
-  out_params->MergeDictionary(&params);
+  out_params->Merge(std::move(params));
   return true;
 }
 
diff --git a/chrome/test/chromedriver/server/http_handler.h b/chrome/test/chromedriver/server/http_handler.h
index e72b2301..71731c60 100644
--- a/chrome/test/chromedriver/server/http_handler.h
+++ b/chrome/test/chromedriver/server/http_handler.h
@@ -26,7 +26,6 @@
 #include "net/http/http_status_code.h"
 
 namespace base {
-class DictionaryValue;
 class SingleThreadTaskRunner;
 }
 
@@ -183,7 +182,7 @@
                     const std::string& path,
                     const CommandMapping& command,
                     std::string* session_id,
-                    base::DictionaryValue* out_params);
+                    base::Value::Dict* out_params);
 
 bool IsNewSession(const CommandMapping& command);
 
diff --git a/chrome/test/chromedriver/server/http_handler_unittest.cc b/chrome/test/chromedriver/server/http_handler_unittest.cc
index b2d0eb5e..83afb3a 100644
--- a/chrome/test/chromedriver/server/http_handler_unittest.cc
+++ b/chrome/test/chromedriver/server/http_handler_unittest.cc
@@ -135,18 +135,18 @@
   CommandMapping command(kPost, "path",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_FALSE(internal::MatchesCommand(
       "get", "path", command, &session_id, &params));
   ASSERT_TRUE(session_id.empty());
-  ASSERT_EQ(0u, params.DictSize());
+  ASSERT_EQ(0u, params.size());
 }
 
 TEST(MatchesCommandTest, DiffPathLength) {
   CommandMapping command(kPost, "path/path",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_FALSE(internal::MatchesCommand(
       "post", "path", command, &session_id, &params));
   ASSERT_FALSE(internal::MatchesCommand(
@@ -161,7 +161,7 @@
   CommandMapping command(kPost, "path/apath",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_FALSE(internal::MatchesCommand(
       "post", "path/bpath", command, &session_id, &params));
 }
@@ -170,15 +170,15 @@
   CommandMapping command(kPost, "path/:sessionId/space/:a/:b",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_TRUE(internal::MatchesCommand(
       "post", "path/1/space/2/3", command, &session_id, &params));
   ASSERT_EQ("1", session_id);
-  ASSERT_EQ(2u, params.DictSize());
-  std::string* param = params.GetDict().FindString("a");
+  ASSERT_EQ(2u, params.size());
+  const std::string* param = params.FindString("a");
   ASSERT_TRUE(param);
   ASSERT_EQ("2", *param);
-  param = params.GetDict().FindString("b");
+  param = params.FindString("b");
   ASSERT_TRUE(param);
   ASSERT_EQ("3", *param);
 }
@@ -187,11 +187,11 @@
   CommandMapping command(kPost, "path/:sessionId/attribute/:xyz",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_TRUE(internal::MatchesCommand(
       "post", "path/123/attribute/xyz%2Furl%7Ce%3A%40v",
       command, &session_id, &params));
-  std::string* param = params.GetDict().FindString("xyz");
+  const std::string* param = params.FindString("xyz");
   ASSERT_TRUE(param);
   ASSERT_EQ("xyz/url|e:@v", *param);
 }
@@ -200,10 +200,10 @@
   CommandMapping command(kPost, "path/:xyz",
                          base::BindRepeating(&DummyCommand, Status(kOk)));
   std::string session_id;
-  base::DictionaryValue params;
+  base::Value::Dict params;
   ASSERT_TRUE(internal::MatchesCommand(
       "post", "path/%40a%%b%%c%%%%", command, &session_id, &params));
-  std::string* param = params.GetDict().FindString("xyz");
+  const std::string* param = params.FindString("xyz");
   ASSERT_TRUE(param);
   ASSERT_EQ("@a%b%c%%", *param);
 }
diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc
index e74da60..5fafc97 100644
--- a/chrome/test/chromedriver/window_commands.cc
+++ b/chrome/test/chromedriver/window_commands.cc
@@ -927,8 +927,8 @@
       session->GetCurrentFrameId(), script, args, &result);
   if (status.IsError())
     return status;
-  const base::DictionaryValue* element;
-  if (!result->GetAsDictionary(&element))
+  const base::Value::Dict* element = result->GetIfDict();
+  if (!element)
     return Status(kUnknownError, "fail to locate the sub frame element");
 
   std::string chrome_driver_id = GenerateId();
diff --git a/chrome/test/data/extensions/api_test/file_browser/dlp_metadata/test.js b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata/test.js
index 8a0553c5..b31ff79 100644
--- a/chrome/test/data/extensions/api_test/file_browser/dlp_metadata/test.js
+++ b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata/test.js
@@ -114,7 +114,12 @@
           chrome.fileManagerPrivate.getDlpMetadata(
               [file], chrome.test.callbackPass(dlpMetadata => {
                 chrome.test.assertEq(
-                    [{isDlpRestricted: false, sourceUrl: ''}], dlpMetadata);
+                    [{
+                      isDlpRestricted: false,
+                      isRestrictedForDestination: false,
+                      sourceUrl: ''
+                    }],
+                    dlpMetadata);
               }))
         },
         async function getDlpMetadata_EmptyList() {
@@ -173,13 +178,19 @@
                     [
                       {
                         isDlpRestricted: true,
+                        isRestrictedForDestination: false,
                         sourceUrl: 'https://example1.com'
                       },
                       {
                         isDlpRestricted: false,
+                        isRestrictedForDestination: false,
                         sourceUrl: 'https://example2.com'
                       },
-                      {isDlpRestricted: false, sourceUrl: ''}
+                      {
+                        isDlpRestricted: false,
+                        isRestrictedForDestination: false,
+                        sourceUrl: ''
+                      }
                     ],
                     dlpMetadata);
               }))
diff --git a/chrome/test/data/extensions/api_test/passwords_private/test.js b/chrome/test/data/extensions/api_test/passwords_private/test.js
index 9b72616..7f07c68 100644
--- a/chrome/test/data/extensions/api_test/passwords_private/test.js
+++ b/chrome/test/data/extensions/api_test/passwords_private/test.js
@@ -396,7 +396,6 @@
             signonRealm: 'https://example.com',
           },
           isAndroidCredential: false,
-          hasStartableScript: false,
           username: 'alice',
           compromisedInfo: {
             compromiseTime: COMPROMISE_TIME,
@@ -424,7 +423,6 @@
             signonRealm: 'https://example.com',
           },
           isAndroidCredential: false,
-          hasStartableScript: false,
           username: 'alice',
           compromisedInfo: {
             compromiseTime: COMPROMISE_TIME,
@@ -454,7 +452,6 @@
             signonRealm: 'https://example.com',
           },
           isAndroidCredential: false,
-          hasStartableScript: false,
           username: 'alice',
           compromisedInfo: {
             compromiseTime: COMPROMISE_TIME,
@@ -482,7 +479,6 @@
             signonRealm: 'https://example.com',
           },
           isAndroidCredential: false,
-          hasStartableScript: false,
           username: 'alice',
           compromisedInfo: {
             compromiseTime: COMPROMISE_TIME,
@@ -502,7 +498,7 @@
         });
   },
 
-  function recordChangePasswordFlowStartedManual() {
+  function recordChangePasswordFlowStarted() {
     chrome.passwordsPrivate.recordChangePasswordFlowStarted(
         {
           id: 0,
@@ -512,7 +508,6 @@
             signonRealm: 'https://example.com',
           },
           isAndroidCredential: false,
-          hasStartableScript: false,
           username: 'alice',
           changePasswordUrl: 'https://example.com/.well-known/change-password',
           compromisedInfo: {
@@ -523,36 +518,7 @@
           },
           storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
           note: '',
-        },
-        true, () => {
-          chrome.test.assertNoLastError();
-          chrome.test.succeed();
-        });
-  },
-
-  function recordChangePasswordFlowStartedAutomated() {
-    chrome.passwordsPrivate.recordChangePasswordFlowStarted(
-        {
-          id: 0,
-          urls: {
-            shown: 'example.com',
-            link: 'https://example.com',
-            signonRealm: 'https://example.com',
-          },
-          isAndroidCredential: false,
-          hasStartableScript: false,
-          username: 'alice',
-          changePasswordUrl: 'https://example.com/.well-known/change-password',
-          compromisedInfo: {
-            compromiseTime: COMPROMISE_TIME,
-            elapsedTimeSinceCompromise: '3 days ago',
-            compromiseTypes: ['LEAKED'],
-            isMuted: false,
-          },
-          storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
-          note: '',
-        },
-        false, () => {
+        }, () => {
           chrome.test.assertNoLastError();
           chrome.test.succeed();
         });
@@ -568,7 +534,6 @@
             signonRealm: '',
           },
           isAndroidCredential: true,
-          hasStartableScript: false,
           username: 'alice',
           compromisedInfo: {
             compromiseTime: COMPROMISE_TIME,
@@ -578,20 +543,12 @@
           },
           storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
           note: '',
-        },
-        true, () => {
+        }, () => {
           chrome.test.assertNoLastError();
           chrome.test.succeed();
         });
   },
 
-  function refreshScriptsIfNecessary() {
-    chrome.passwordsPrivate.refreshScriptsIfNecessary(() => {
-      chrome.test.assertNoLastError();
-      chrome.test.succeed();
-    });
-  },
-
   function startPasswordCheck() {
     chrome.passwordsPrivate.startPasswordCheck(() => {
       chrome.test.assertNoLastError();
@@ -623,63 +580,6 @@
     });
   },
 
-  function startAutomatedPasswordChange() {
-    chrome.passwordsPrivate.startAutomatedPasswordChange(
-        {
-          id: 0,
-          urls: {
-            shown: 'example.com',
-            link: 'https://example.com',
-            signonRealm: 'https://example.com',
-          },
-          isAndroidCredential: false,
-          hasStartableScript: true,
-          username: 'alice',
-          changePasswordUrl: 'https://example.com/.well-known/change-password',
-          compromisedInfo: {
-            compromiseTime: COMPROMISE_TIME,
-            elapsedTimeSinceCompromise: '3 days ago',
-            compromiseTypes: ['LEAKED'],
-            isMuted: false,
-          },
-          storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
-          note: '',
-        },
-        (status) => {
-          chrome.test.assertNoLastError();
-          chrome.test.assertEq(true, status);
-          chrome.test.succeed();
-        });
-  },
-
-  function startAutomatedPasswordChangeWithEmptyUrl() {
-    chrome.passwordsPrivate.startAutomatedPasswordChange(
-        {
-          id: 0,
-          urls: {
-            shown: 'example.com',
-            link: 'https://example.com',
-            signonRealm: 'https://example.com',
-          },
-          isAndroidCredential: false,
-          hasStartableScript: true,
-          username: 'alice',
-          compromisedInfo: {
-            compromiseTime: COMPROMISE_TIME,
-            elapsedTimeSinceCompromise: '3 days ago',
-            compromiseTypes: ['LEAKED'],
-            isMuted: false,
-          },
-          storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
-          note: '',
-        },
-        (status) => {
-          chrome.test.assertNoLastError();
-          chrome.test.assertEq(false, status);
-          chrome.test.succeed();
-        });
-  },
-
   function movePasswordsToAccount() {
     chrome.passwordsPrivate.movePasswordsToAccount([42]);
     chrome.test.succeed();
diff --git a/chrome/test/data/webui/cr_elements/BUILD.gn b/chrome/test/data/webui/cr_elements/BUILD.gn
index ae86822e..b9527c76 100644
--- a/chrome/test/data/webui/cr_elements/BUILD.gn
+++ b/chrome/test/data/webui/cr_elements/BUILD.gn
@@ -34,6 +34,7 @@
   "cr_grid_focus_test.ts",
   "cr_icon_button_tests.ts",
   "cr_input_test.ts",
+  "cr_textarea_focus_test.ts",
   "cr_lazy_render_tests.ts",
   "cr_link_row_tests.ts",
   "cr_lottie_tests.ts",
diff --git a/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js b/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js
index acc893e3..2b521e4 100644
--- a/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js
+++ b/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js
@@ -152,3 +152,14 @@
 TEST_F('CrElementsToolbarFocusTest', 'All', function() {
   mocha.run();
 });
+
+var CrElementsTextareaFocusTest = class extends CrElementsFocusTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://webui-test/test_loader.html?module=cr_elements/cr_textarea_focus_test.js';
+  }
+};
+
+TEST_F('CrElementsTextareaFocusTest', 'All', function() {
+  mocha.run();
+});
diff --git a/chrome/test/data/webui/settings/settings_textarea_tests.ts b/chrome/test/data/webui/cr_elements/cr_textarea_focus_test.ts
similarity index 60%
rename from chrome/test/data/webui/settings/settings_textarea_tests.ts
rename to chrome/test/data/webui/cr_elements/cr_textarea_focus_test.ts
index e099e5fe..a988503b 100644
--- a/chrome/test/data/webui/settings/settings_textarea_tests.ts
+++ b/chrome/test/data/webui/cr_elements/cr_textarea_focus_test.ts
@@ -1,47 +1,46 @@
-// Copyright 2016 The Chromium Authors
+// Copyright 2022 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://settings/lazy_load.js';
+import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 
+import {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {SettingsTextareaElement} from 'chrome://settings/lazy_load.js';
 import {assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
 import {eventToPromise} from 'chrome://webui-test/test_util.js';
 
-/** @fileoverview Suite of tests for settings-textarea. */
-suite('SettingsTextarea', function() {
-  let settingsTextarea: SettingsTextareaElement;
+suite('cr-textarea-focus-test', function() {
+  let crTextarea: CrTextareaElement;
   let textarea: HTMLTextAreaElement;
 
   setup(function() {
     document.body.innerHTML = window.trustedTypes!.emptyHTML;
-    settingsTextarea = document.createElement('settings-textarea');
-    document.body.appendChild(settingsTextarea);
-    textarea = settingsTextarea.$.input;
+    crTextarea = document.createElement('cr-textarea');
+    document.body.appendChild(crTextarea);
+    textarea = crTextarea.$.input;
     flush();
   });
 
   test('propertyBindings', function() {
     assertFalse(textarea.autofocus);
-    settingsTextarea.setAttribute('autofocus', 'autofocus');
+    crTextarea.setAttribute('autofocus', 'autofocus');
     assertTrue(textarea.autofocus);
   });
 
   test('valueSetCorrectly', function() {
-    settingsTextarea.value = 'hello';
-    assertEquals(settingsTextarea.value, textarea.value);
+    crTextarea.value = 'hello';
+    assertEquals(crTextarea.value, textarea.value);
 
     // |value| is copied when typing triggers inputEvent.
     textarea.value = 'hello sir';
     textarea.dispatchEvent(new InputEvent('input'));
-    assertEquals(settingsTextarea.value, textarea.value);
+    assertEquals(crTextarea.value, textarea.value);
   });
 
   test('labelHiddenWhenEmpty', function() {
-    const label = settingsTextarea.$.label;
+    const label = crTextarea.$.label;
     assertTrue(label.hidden);
-    settingsTextarea.label = 'foobar';
+    crTextarea.label = 'foobar';
     assertFalse(label.hidden);
     assertEquals('foobar', label.textContent!.trim());
     assertEquals('foobar', textarea.getAttribute('aria-label'));
@@ -50,35 +49,35 @@
   test('disabledSetCorrectly', function() {
     assertFalse(textarea.disabled);
     assertFalse(textarea.hasAttribute('disabled'));
-    assertFalse(settingsTextarea.hasAttribute('disabled'));
-    assertEquals('false', settingsTextarea.getAttribute('aria-disabled'));
-    settingsTextarea.disabled = true;
+    assertFalse(crTextarea.hasAttribute('disabled'));
+    assertEquals('false', crTextarea.getAttribute('aria-disabled'));
+    crTextarea.disabled = true;
     assertTrue(textarea.disabled);
     assertTrue(textarea.hasAttribute('disabled'));
-    assertTrue(settingsTextarea.hasAttribute('disabled'));
-    assertEquals('true', settingsTextarea.getAttribute('aria-disabled'));
+    assertTrue(crTextarea.hasAttribute('disabled'));
+    assertEquals('true', crTextarea.getAttribute('aria-disabled'));
   });
 
   test('rowsSetCorrectly', function() {
-    const kDefaultRows = settingsTextarea.rows;
+    const kDefaultRows = crTextarea.rows;
     const kNewRows = 42;
     assertEquals(kDefaultRows, textarea.rows);
-    settingsTextarea.rows = kNewRows;
+    crTextarea.rows = kNewRows;
     assertEquals(kNewRows, textarea.rows);
   });
 
   test('underlineAndFooterColorsWhenFocused', async function() {
-    const firstFooter = settingsTextarea.$.firstFooter;
-    const underline = settingsTextarea.$.underline;
+    const firstFooter = crTextarea.$.firstFooter;
+    const underline = crTextarea.$.underline;
 
     const whenTransitionEnd = eventToPromise('transitionend', underline);
-    settingsTextarea.firstFooter = 'first footer';
+    crTextarea.firstFooter = 'first footer';
     flush();
 
     assertEquals('0', getComputedStyle(underline).opacity);
     const currentColor = getComputedStyle(firstFooter).color;
 
-    settingsTextarea.$.input.focus();
+    crTextarea.$.input.focus();
     flush();
 
     return whenTransitionEnd.then(() => {
@@ -88,17 +87,17 @@
   });
 
   test('underlineAndFooterColorsWhenInvalid', function() {
-    const firstFooter = settingsTextarea.$.firstFooter;
-    const underline = settingsTextarea.$.underline;
+    const firstFooter = crTextarea.$.firstFooter;
+    const underline = crTextarea.$.underline;
 
     const whenTransitionEnd = eventToPromise('transitionend', underline);
-    settingsTextarea.firstFooter = 'first footer';
+    crTextarea.firstFooter = 'first footer';
     flush();
 
     assertEquals('0', getComputedStyle(underline).opacity);
     const currentColor = getComputedStyle(firstFooter).color;
 
-    settingsTextarea.invalid = true;
+    crTextarea.invalid = true;
     flush();
 
     return whenTransitionEnd.then(() => {
diff --git a/chrome/test/data/webui/password_manager/test_util.ts b/chrome/test/data/webui/password_manager/test_util.ts
index aa7850a..5240752 100644
--- a/chrome/test/data/webui/password_manager/test_util.ts
+++ b/chrome/test/data/webui/password_manager/test_util.ts
@@ -72,7 +72,6 @@
     isAndroidCredential: params.isAndroidCredential || false,
     note: note,
     password: '',
-    hasStartableScript: false,
   };
 }
 
@@ -163,7 +162,6 @@
     id: id || 0,
     storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
     changePasswordUrl: `http://${url}/`,
-    hasStartableScript: false,
     urls: {
       signonRealm: `http://${url}/`,
       shown: url,
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index b3eb9137..f23c9b4f 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -117,7 +117,6 @@
   "settings_performance_menu_test.ts",
   "settings_slider_tests.ts",
   "settings_subpage_test.ts",
-  "settings_textarea_tests.ts",
   "settings_ui_tests.ts",
   "site_details_permission_tests.ts",
   "site_details_tests.ts",
diff --git a/chrome/test/data/webui/settings/autofill_section_test.ts b/chrome/test/data/webui/settings/autofill_section_test.ts
index d213b5f..0597a06 100644
--- a/chrome/test/data/webui/settings/autofill_section_test.ts
+++ b/chrome/test/data/webui/settings/autofill_section_test.ts
@@ -7,7 +7,7 @@
 
 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 {AutofillManagerImpl, CountryDetailManager, CountryDetailManagerImpl, CrInputElement, SettingsAddressEditDialogElement, SettingsAddressRemoveConfirmationDialogElement, SettingsAutofillSectionElement, SettingsTextareaElement} from 'chrome://settings/lazy_load.js';
+import {AutofillManagerImpl, CountryDetailManager, CountryDetailManagerImpl, CrInputElement, CrTextareaElement, SettingsAddressEditDialogElement, SettingsAddressRemoveConfirmationDialogElement, SettingsAutofillSectionElement} from 'chrome://settings/lazy_load.js';
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
 import {eventToPromise, whenAttributeIs} from 'chrome://webui-test/test_util.js';
 import {flushTasks} from 'chrome://webui-test/polymer_test_util.js';
@@ -361,9 +361,8 @@
     const address = createEmptyAddressEntry();
     const dialog = await createAddressDialog(address);
     const honorificElement =
-        dialog.$.dialog
-            .querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                'settings-textarea, cr-input')[0]!;
+        dialog.$.dialog.querySelectorAll<CrTextareaElement|CrInputElement>(
+            'cr-textarea, cr-input')[0]!;
     assertEquals(undefined, honorificElement.value);
     assertFalse(!!address.honorific);
 
@@ -409,9 +408,8 @@
     const dialog = await createAddressDialog(createEmptyAddressEntry());
     const saveButton = dialog.$.saveButton;
     const testElements =
-        dialog.$.dialog
-            .querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                'settings-textarea, cr-input');
+        dialog.$.dialog.querySelectorAll<CrTextareaElement|CrInputElement>(
+            'cr-textarea, cr-input');
 
     // The country can be preselected. Clear it to ensure the form is empty.
     await expectEvent(dialog, 'on-update-can-save', function() {
@@ -543,16 +541,15 @@
       // Honorific
       if (honorific_enabled) {
         row = rows[index]!;
-        const cols =
-            row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                '.address-column');
+        const cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
+            '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.honorific, cols[0]!.value);
         index++;
       }
       // Name
       row = rows[index]!;
-      let cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      let cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.fullNames![0], cols[0]!.value);
@@ -560,7 +557,7 @@
       // Organization
       if (company_enabled) {
         row = rows[index]!;
-        cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+        cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
             '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.companyName, cols[0]!.value);
@@ -568,14 +565,14 @@
       }
       // Street address
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.addressLines, cols[0]!.value);
       index++;
       // City, State, ZIP code
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(3, cols.length);
       assertEquals(address.addressLevel2, cols[0]!.value);
@@ -584,7 +581,7 @@
       index++;
       // Phone, Email
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(2, cols.length);
       assertEquals(address.phoneNumbers![0], cols[0]!.value);
@@ -627,16 +624,15 @@
       // Honorific
       if (honorific_enabled) {
         row = rows[index]!;
-        const cols =
-            row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                '.address-column');
+        const cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
+            '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.honorific, cols[0]!.value);
         index++;
       }
       // Name
       row = rows[index]!;
-      let cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      let cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.fullNames![0], cols[0]!.value);
@@ -644,7 +640,7 @@
       // Organization
       if (company_enabled) {
         row = rows[index]!;
-        cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+        cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
             '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.companyName, cols[0]!.value);
@@ -652,35 +648,35 @@
       }
       // Street address
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.addressLines, cols[0]!.value);
       index++;
       // Post Town
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.addressLevel2, cols[0]!.value);
       index++;
       // Postal code
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.postalCode, cols[0]!.value);
       index++;
       // County
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.addressLevel1, cols[0]!.value);
       index++;
       // Phone, Email
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(2, cols.length);
       assertEquals(address.phoneNumbers![0], cols[0]!.value);
@@ -722,16 +718,15 @@
       // Honorific
       if (honorific_enabled) {
         row = rows[index]!;
-        const cols =
-            row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                '.address-column');
+        const cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
+            '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.honorific, cols[0]!.value);
         index++;
       }
       // Name
       row = rows[index]!;
-      let cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      let cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.fullNames![0], cols[0]!.value);
@@ -739,7 +734,7 @@
       // Organization
       if (company_enabled) {
         row = rows[index]!;
-        cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+        cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
             '.address-column');
         assertEquals(1, cols.length);
         assertEquals(address.companyName, cols[0]!.value);
@@ -747,14 +742,14 @@
       }
       // Street address
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(1, cols.length);
       assertEquals(address.addressLines, cols[0]!.value);
       index++;
       // City, Postal code
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(2, cols.length);
       assertEquals(address.addressLevel2, cols[0]!.value);
@@ -762,7 +757,7 @@
       index++;
       // Phone, Email
       row = rows[index]!;
-      cols = row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+      cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
           '.address-column');
       assertEquals(2, cols.length);
       assertEquals(address.phoneNumbers![0], cols[0]!.value);
@@ -797,8 +792,8 @@
                    // City, State, ZIP code
                    const row = rows[3 + experimental_fields_count]!;
                    const cols =
-                       row.querySelectorAll<SettingsTextareaElement|
-                                            CrInputElement>('.address-column');
+                       row.querySelectorAll<CrTextareaElement|CrInputElement>(
+                           '.address-column');
                    assertEquals(3, cols.length);
                    cols[0]!.value = city;
                    cols[1]!.value = state;
@@ -816,7 +811,7 @@
               // City, Postal code
               const row = rows[3 + experimental_fields_count]!;
               const cols =
-                  row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
+                  row.querySelectorAll<CrTextareaElement|CrInputElement>(
                       '.address-column');
               assertEquals(2, cols.length);
               assertEquals(city, cols[0]!.value);
@@ -833,9 +828,8 @@
 
             // City, State, ZIP code
             const row = rows[3 + experimental_fields_count]!;
-            const cols =
-                row.querySelectorAll<SettingsTextareaElement|CrInputElement>(
-                    '.address-column');
+            const cols = row.querySelectorAll<CrTextareaElement|CrInputElement>(
+                '.address-column');
             assertEquals(3, cols.length);
             assertEquals(city, cols[0]!.value);
             assertEquals(state, cols[1]!.value);
diff --git a/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js b/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js
index 1e5b105..3c3bf00 100644
--- a/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js
+++ b/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js
@@ -103,18 +103,6 @@
   mocha.run();
 });
 
-var CrSettingsTextareaInteractiveTest =
-    class extends CrSettingsInteractiveUITest {
-  /** @override */
-  get browsePreload() {
-    return `chrome://settings/test_loader.html?module=settings/settings_textarea_tests.js`;
-  }
-};
-
-TEST_F('CrSettingsTextareaInteractiveTest', 'All', function() {
-  mocha.run();
-});
-
 var CrSettingsReviewNotificationPermissionsInteractiveUITest =
     class extends CrSettingsInteractiveUITest {
   /** @override */
@@ -136,4 +124,4 @@
     'CrSettingsReviewNotificationPermissionsInteractiveUITest', 'All',
     function() {
       mocha.run();
-    });
\ No newline at end of file
+    });
diff --git a/chrome/test/data/webui/settings/password_check_test.ts b/chrome/test/data/webui/settings/password_check_test.ts
index ec3f45c51..e51ce948 100644
--- a/chrome/test/data/webui/settings/password_check_test.ts
+++ b/chrome/test/data/webui/settings/password_check_test.ts
@@ -569,39 +569,11 @@
     assertEquals(PasswordCheckInteraction.CHANGE_PASSWORD, interaction);
   });
 
-  // Verify that a click on "Change password" starts an Automatic Password
-  // Change flow.
-  test(
-      'changePasswordOpensAutomaticPasswordChangeAndRecordsAction',
-      async function() {
-        const password = makeInsecureCredential(
-            /*url*/ 'one.com', /*username*/ 'test4',
-            /*types*/[CompromiseType.LEAKED]);
-        password.hasStartableScript = true;
-        const passwordCheckListItem =
-            await createInsecurePasswordItem(passwordManager, password);
-        const button =
-            passwordCheckListItem.shadowRoot!.querySelector<HTMLElement>(
-                '#changePasswordButton');
-        assertTrue(!!button);
-        button.click();
-
-        const credentialApc =
-            await passwordManager.whenCalled('startAutomatedPasswordChange');
-        assertEquals(credentialApc, password);
-        const interaction =
-            await passwordManager.whenCalled('recordPasswordCheckInteraction');
-        assertEquals(
-            PasswordCheckInteraction.CHANGE_PASSWORD_AUTOMATICALLY,
-            interaction);
-      });
-
-  // Verify that elements without a startable script have the correct icon.
-  test('iconIsCorrectForPasswordWithoutScript', async function() {
+  // Verify that elements have the correct icon.
+  test('iconIsCorrect', async function() {
     const password = makeInsecureCredential(
         /*url*/ 'one.com', /*username*/ 'test4',
         /*types*/[CompromiseType.LEAKED]);
-    password.hasStartableScript = false;
     const passwordCheckListItem =
         await createInsecurePasswordItem(passwordManager, password);
 
@@ -609,31 +581,6 @@
         passwordCheckListItem.shadowRoot!.querySelector<HTMLElement>(
             '#change-password-link-icon');
     assertTrue(!!manualChangeIcon);
-
-    const automatedChangeIcon =
-        passwordCheckListItem.shadowRoot!.querySelector<HTMLElement>(
-            '#change-password-automatically-icon');
-    assertFalse(!!automatedChangeIcon);
-  });
-
-  // Verify that elements with a startable script have the correct icon.
-  test('iconIsCorrectForPasswordWithScript', async function() {
-    const password = makeInsecureCredential(
-        /*url*/ 'one.com', /*username*/ 'test4',
-        /*types*/[CompromiseType.LEAKED]);
-    password.hasStartableScript = true;
-    const passwordCheckListItem =
-        await createInsecurePasswordItem(passwordManager, password);
-
-    const manualChangeIcon =
-        passwordCheckListItem.shadowRoot!.querySelector<HTMLElement>(
-            '#change-password-link-icon');
-    assertFalse(!!manualChangeIcon);
-
-    const automatedChangeIcon =
-        passwordCheckListItem.shadowRoot!.querySelector<HTMLElement>(
-            '#change-password-automatically-icon');
-    assertTrue(!!automatedChangeIcon);
   });
 
   // Verify that for a leaked password the More Actions menu opens when the
diff --git a/chrome/test/data/webui/settings/password_edit_dialog_test.ts b/chrome/test/data/webui/settings/password_edit_dialog_test.ts
index f43e54a..cd3ff548 100644
--- a/chrome/test/data/webui/settings/password_edit_dialog_test.ts
+++ b/chrome/test/data/webui/settings/password_edit_dialog_test.ts
@@ -9,7 +9,7 @@
 
 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 {PasswordDialogMode, PasswordEditDialogElement, SettingsTextareaElement} from 'chrome://settings/lazy_load.js';
+import {CrTextareaElement, PasswordDialogMode, PasswordEditDialogElement} from 'chrome://settings/lazy_load.js';
 import {PasswordManagerImpl} from 'chrome://settings/settings.js';
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
 import {eventToPromise, isVisible} from 'chrome://webui-test/test_util.js';
@@ -414,7 +414,7 @@
     assertEquals(
         addDialog.i18n('addPasswordFootnote'),
         addDialog.$.footnote.innerText.trim());
-    assertFalse(!!addDialog.shadowRoot!.querySelector('settings-textarea'));
+    assertFalse(!!addDialog.shadowRoot!.querySelector('cr-textarea'));
   });
 
   test('hasCorrectInitialStateWhenAddPasswordWithNotes', function() {
@@ -427,8 +427,7 @@
     assertEquals('', addDialog.$.passwordInput.value);
     assertEquals('password', addDialog.$.passwordInput.type);
     assertTrue(isVisible(addDialog.$.footnote));
-    assertEquals(
-        '', addDialog.shadowRoot!.querySelector('settings-textarea')!.value);
+    assertEquals('', addDialog.shadowRoot!.querySelector('cr-textarea')!.value);
   });
 
   test('showsStorePickerForAccountStoreUserWhenAddPassword', function() {
@@ -687,8 +686,7 @@
     const passwordDialog = elementFactory.createPasswordEditDialog(commonEntry);
     assertEditDialogParts(passwordDialog);
     const noteElement =
-        passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
-            '#note');
+        passwordDialog.shadowRoot!.querySelector<CrTextareaElement>('#note');
     assertTrue(!!noteElement);
     assertTrue(!noteElement.readonly);
   });
@@ -700,7 +698,7 @@
         {url: 'goo.gl', username: 'bart', id: 42, note: 'some note'});
     const editDialog = elementFactory.createPasswordEditDialog(entry);
     const noteElement =
-        editDialog.shadowRoot!.querySelector<SettingsTextareaElement>('#note')!;
+        editDialog.shadowRoot!.querySelector<CrTextareaElement>('#note')!;
 
     const expectedParams: chrome.passwordsPrivate.ChangeSavedPasswordParams = {
       username: 'new_username',
@@ -739,8 +737,7 @@
     const passwordDialog = elementFactory.createPasswordEditDialog(commonEntry);
     assertEditDialogParts(passwordDialog);
     assertFalse(
-        !!passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
-            '#note'));
+        !!passwordDialog.shadowRoot!.querySelector<CrTextareaElement>('#note'));
   });
 
   test('federatedCredentialDoesntHaveNotes', async function() {
@@ -751,8 +748,7 @@
         elementFactory.createPasswordEditDialog(federationEntry);
     assertFederatedDialogParts(passwordDialog);
     assertFalse(
-        !!passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
-            '#note'));
+        !!passwordDialog.shadowRoot!.querySelector<CrTextareaElement>('#note'));
   });
 
   test('showNoteWarningInEditModeWhen900Characters', async function() {
@@ -768,8 +764,7 @@
 
     assertEditDialogParts(passwordDialog);
     const noteElement =
-        passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
-            '#note');
+        passwordDialog.shadowRoot!.querySelector<CrTextareaElement>('#note');
     assertEquals(
         passwordDialog.i18n('passwordNoteCharacterCountWarning', 1000),
         noteElement!.$.firstFooter.textContent!.trim());
@@ -791,8 +786,9 @@
         elementFactory.createPasswordEditDialog(commonEntry, [], false);
 
     assertTrue(passwordDialog.$.actionButton.disabled);
-    assertTrue(passwordDialog.shadowRoot!
-                   .querySelector<SettingsTextareaElement>('#note')!.invalid);
+    assertTrue(
+        passwordDialog.shadowRoot!.querySelector<CrTextareaElement>(
+                                      '#note')!.invalid);
   });
 
   test('changingTheTextInTextareaChangesActionButtonStatus', async function() {
@@ -806,8 +802,7 @@
     const passwordDialog =
         elementFactory.createPasswordEditDialog(commonEntry, [], false);
     const noteElement =
-        passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
-            '#note');
+        passwordDialog.shadowRoot!.querySelector<CrTextareaElement>('#note');
 
     assertFalse(passwordDialog.$.actionButton.disabled);
 
@@ -854,7 +849,7 @@
 
     assertEquals(1, passwordManager.getCallCount('extendAuthValidity'));
 
-    passwordDialog.shadowRoot!.querySelector<SettingsTextareaElement>(
+    passwordDialog.shadowRoot!.querySelector<CrTextareaElement>(
                                   '#note')!.value = 'personal account';
 
     assertEquals(2, passwordManager.getCallCount('extendAuthValidity'));
diff --git a/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.ts b/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.ts
index 269ccd0..5c547a7 100644
--- a/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.ts
+++ b/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.ts
@@ -62,7 +62,6 @@
     isAndroidCredential: params.isAndroidCredential || false,
     note: note,
     password: '',
-    hasStartableScript: false,
   };
 }
 
@@ -189,7 +188,6 @@
     id: id || 0,
     storedIn: chrome.passwordsPrivate.PasswordStoreSet.DEVICE,
     changePasswordUrl: `http://${url}/`,
-    hasStartableScript: false,
     urls: {
       signonRealm: `http://${url}/`,
       shown: url,
diff --git a/chrome/test/data/webui/settings/passwords_section_test.ts b/chrome/test/data/webui/settings/passwords_section_test.ts
index 99a1d10..4ff1f77 100644
--- a/chrome/test/data/webui/settings/passwords_section_test.ts
+++ b/chrome/test/data/webui/settings/passwords_section_test.ts
@@ -265,7 +265,6 @@
     PasswordManagerImpl.setInstance(passwordManager);
     elementFactory = new PasswordSectionElementFactory(document);
     loadTimeData.overrideValues({
-      enableAutomaticPasswordChangeInSettings: false,
       enablePasswordViewPage: false,
       biometricAuthenticationForFilling: false,
     });
@@ -1601,14 +1600,6 @@
     assertEquals(TrustSafetyInteraction.OPENED_PASSWORD_MANAGER, interaction);
   });
 
-  test('passwordScriptsRefreshedOnOpen', async function() {
-    loadTimeData.overrideValues(
-        {enableAutomaticPasswordChangeInSettings: true});
-    await createPasswordsSection(elementFactory, passwordManager, [], []);
-    Router.getInstance().navigateTo(routes.PASSWORDS);
-    await passwordManager.whenCalled('refreshScriptsIfNecessary');
-  });
-
   test(
       'addPasswordButtonShownOnlyWhenPasswordManagerNotDisabledByPolicy',
       async function() {
diff --git a/chrome/test/data/webui/settings/personalization_options_test.ts b/chrome/test/data/webui/settings/personalization_options_test.ts
index 5809c97..4c12ae85 100644
--- a/chrome/test/data/webui/settings/personalization_options_test.ts
+++ b/chrome/test/data/webui/settings/personalization_options_test.ts
@@ -31,7 +31,6 @@
   suiteSetup(function() {
     loadTimeData.overrideValues({
       driveSuggestAvailable: true,
-      isAutomatedPasswordChangeEnabled: true,
       signinAvailable: true,
       changePriceEmailNotificationsEnabled: true,
     });
@@ -283,13 +282,6 @@
     assertFalse(testElement.prefs.autofill_assistant.enabled.value);
   });
 
-  test('autofillAssistantUnavailable', function() {
-    loadTimeData.overrideValues({'isAutomatedPasswordChangeEnabled': false});
-    buildTestElement();  // Rebuild the element after modifying loadTimeData.
-    assertFalse(isVisible(testElement.shadowRoot!.querySelector(
-        '#enableAutofillAssistantToggle')));
-  });
-
   test('priceEmailNotificationsToggleShown', function() {
     assertFalse(!!testElement.shadowRoot!.querySelector(
         '#priceEmailNotificationsToggle'));
diff --git a/chrome/test/data/webui/settings/test_password_manager_proxy.ts b/chrome/test/data/webui/settings/test_password_manager_proxy.ts
index 039fac6..fef59c4e 100644
--- a/chrome/test/data/webui/settings/test_password_manager_proxy.ts
+++ b/chrome/test/data/webui/settings/test_password_manager_proxy.ts
@@ -114,13 +114,11 @@
       'recordChangePasswordFlowStarted',
       'recordPasswordCheckInteraction',
       'recordPasswordCheckReferrer',
-      'refreshScriptsIfNecessary',
       'removeException',
       'removeSavedPassword',
       'requestExportProgressStatus',
       'requestPlaintextPassword',
       'requestCredentialsDetails',
-      'startAutomatedPasswordChange',
       'startBulkPasswordCheck',
       'stopBulkPasswordCheck',
       'switchBiometricAuthBeforeFillingState',
@@ -278,11 +276,6 @@
         actual.listening.accountStorageOptInState);
   }
 
-  refreshScriptsIfNecessary() {
-    this.methodCalled('refreshScriptsIfNecessary');
-    return Promise.resolve();
-  }
-
   startBulkPasswordCheck() {
     this.methodCalled('startBulkPasswordCheck');
     if (this.data.checkStatus.state ===
@@ -308,13 +301,6 @@
     return Promise.resolve(this.data.checkStatus);
   }
 
-  startAutomatedPasswordChange(credential:
-                                   chrome.passwordsPrivate.PasswordUiEntry) {
-    this.methodCalled('startAutomatedPasswordChange', credential);
-    // Return `false` for empty origins for testing purposes.
-    return Promise.resolve(!!credential.changePasswordUrl);
-  }
-
   addInsecureCredentialsListener(listener: CredentialsChangedListener) {
     this.lastCallback.addInsecureCredentialsListener = listener;
   }
@@ -403,11 +389,9 @@
     this.methodCalled('unmuteInsecureCredential', insecureCredential);
   }
 
-  recordChangePasswordFlowStarted(
-      insecureCredential: chrome.passwordsPrivate.PasswordUiEntry,
-      isManualFlow: boolean) {
-    this.methodCalled(
-        'recordChangePasswordFlowStarted', insecureCredential, isManualFlow);
+  recordChangePasswordFlowStarted(insecureCredential:
+                                      chrome.passwordsPrivate.PasswordUiEntry) {
+    this.methodCalled('recordChangePasswordFlowStarted', insecureCredential);
   }
 
   extendAuthValidity() {
diff --git a/chrome/test/data/webui/support_tool/DIR_METADATA b/chrome/test/data/webui/support_tool/DIR_METADATA
new file mode 100644
index 0000000..5fbed30
--- /dev/null
+++ b/chrome/test/data/webui/support_tool/DIR_METADATA
@@ -0,0 +1,7 @@
+buganizer {
+  component_id: 1111615 # ChromeOS > Software > Commercial (Enterprise) > Supportability
+}
+buganizer_public {
+    component_id: 1199457 # ChromeOS > Public Tracker > Services > Supportability
+}
+team_email: "chromeos-commercial-supportability@google.com"
\ No newline at end of file
diff --git a/chromecast/media/audio/cast_audio_mixer.cc b/chromecast/media/audio/cast_audio_mixer.cc
index 3c5de45..32c777f 100644
--- a/chromecast/media/audio/cast_audio_mixer.cc
+++ b/chromecast/media/audio/cast_audio_mixer.cc
@@ -72,7 +72,8 @@
    private:
     // ::media::AudioConverter::InputCallback implementation
     double ProvideInput(::media::AudioBus* audio_bus,
-                        uint32_t frames_delayed) override {
+                        uint32_t frames_delayed,
+                        const ::media::AudioGlitchInfo& glitch_info) override {
       DCHECK_CALLED_ON_VALID_THREAD(backend_thread_checker_);
       resampler_->ConvertWithDelay(frames_delayed, audio_bus);
       // Volume multiplier has already been applied by |resampler_|.
@@ -160,7 +161,8 @@
 
   // ::media::AudioConverter::InputCallback implementation
   double ProvideInput(::media::AudioBus* audio_bus,
-                      uint32_t frames_delayed) override {
+                      uint32_t frames_delayed,
+                      const ::media::AudioGlitchInfo& glitch_info) override {
     // Called on backend thread. Member variables accessed from both backend
     // and audio thread must be thread-safe.
     DCHECK(source_callback_);
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index 123ac23..21e50207 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Probeer foutsporingstappe</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Koppel asseblief aan ’n netwerk en herlaai die bladsy om sluimerskerm te bekyk.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Nog instellings</translation>
 <translation id="2085089206770112532">Verlaag skermhelderheid</translation>
 <translation id="2105810540595158374">Toestel is 'n speletjiebeheerder.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Saampersingalgoritme</translation>
 <translation id="4794140124556169553">As jy 'n CPU-toets doen, kan dit jou stelselwerkverrigting affekteer</translation>
 <translation id="4800589996161293643">Chromebook-gemeenskap</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Gekanselleerde druktaak <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Ligtema</translation>
 <translation id="4813136279048157860">My prente</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4897058166682006107">Toestel het <ph name="BATTERY_PERCENTAGE" />% batterykrag in linkerknoppie.</translation>
 <translation id="4905998861748258752">Skakel die kenmerk aan om sluimerskermopsies te kies</translation>
+<translation id="4910858703033903787">APN-tipes</translation>
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4917889632206600977">Gestop – papier is op</translation>
 <translation id="491791267030419270">Wenke oor hoe om terugvoer te skryf</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Iets is fout. Probeer weer om 'n muurpapier te kies of maak die program weer oop.</translation>
 <translation id="5372659122375744710">Wi-fi-netwerk is nie veilig nie</translation>
 <translation id="5376354385557966694">Outomatiese ligmodus</translation>
+<translation id="5378184552853359930">IP-tipe</translation>
 <translation id="5389159777326897627">Muurpapier en Styl</translation>
 <translation id="5389224261615877010">Reënboog</translation>
 <translation id="5400907029458559844">Toestel koppel tans.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Kies <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Heg aan</translation>
 <translation id="8206859287963243715">Sellulêr</translation>
 <translation id="8208861521865154048">Byvoordele</translation>
 <translation id="8226628635270268143">Kies jou gunstelingfoto's en -albums</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Gebruik as ’n persoonlike toestel</translation>
 <translation id="9028832514430399253">Skakel die wisselaar aan om die sluimerskermopsies te kies</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-resolusie het hoë traagheid</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index 836c9595..545c626f 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679">‏تم اختيار <ph name="TOPIC_SOURCE" /><ph name="TOPIC_SOURCE_DESC" />، يُرجى الضغط على Enter لاختيار ألبومات <ph name="TOPIC_SOURCE" />.</translation>
 <translation id="484790837831576105">‏(نظام التشغيل Android) اختبار التحويل باستخدام نظام أسماء النطاقات (DNS)</translation>
 <translation id="4848429997038228357">قيد التشغيل</translation>
+<translation id="4854586501323951986">شاشة مُدمَجة تعمل باللمس</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> تتبقّى محاولة واحدة ({0}).}zero{<ph name="ERROR_MESSAGE" /> تتبقّى {0} محاولة.}two{<ph name="ERROR_MESSAGE" /> تتبقّى محاولتان ({0}).}few{<ph name="ERROR_MESSAGE" /> تتبقّى {0} محاولات.}many{<ph name="ERROR_MESSAGE" /> تتبقّى {0} محاولة.}other{<ph name="ERROR_MESSAGE" /> تتبقّى {0} محاولة.}}</translation>
 <translation id="4873827928179867585">خوارزمية المصادقة</translation>
 <translation id="4880328057631981605">اسم نقطة الوصول</translation>
@@ -507,6 +508,7 @@
 <translation id="5895138241574237353">إعادة التشغيل</translation>
 <translation id="5901630391730855834">أصفر</translation>
 <translation id="5903200662178656908">يتكوّن الجهاز من لوحة مفاتيح وماوس.</translation>
+<translation id="5904994456462260490">‏إضافة اسم نقطة وصول (APN) جديد</translation>
 <translation id="5907649332524363701">لون المفتاح</translation>
 <translation id="5916084858004523819">محظورة</translation>
 <translation id="5916664084637901428">مفعّل</translation>
@@ -567,6 +569,7 @@
 <translation id="6394634179843537518">إضافة ملف</translation>
 <translation id="6410257289063177456">ملفات الصور</translation>
 <translation id="641081527798843608">مطابقة الموضوع</translation>
+<translation id="6412715219990689313">لوحة مفاتيح مُدمَجة</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">إشارة ضعيفة (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">الانتقال إلى إعدادات الحساب</translation>
@@ -665,6 +668,7 @@
 <translation id="7359657277149375382">نوع الملف</translation>
 <translation id="73631062356239394">مشاركة بيانات التشخيص</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">لوحة لمس مُدمَجة</translation>
 <translation id="7397270852490618635">إيقاف تشغيل المظهر الفاتح</translation>
 <translation id="741244894080940828">التحويل</translation>
 <translation id="7415801143053185905">‏وقت استجابة بروتوكول HTTP طويل جدًا.</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb
index 10cb0ce..d6dadcd 100644
--- a/chromeos/strings/chromeos_strings_as.xtb
+++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">সমস্যা নিবাৰণৰ পদক্ষেপসমূহ কাৰ্যকৰী কৰি চাওক</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">অনুগ্ৰহ কৰি এটা নেটৱৰ্কৰ সৈতে সংযোগ কৰক আৰু স্ক্ৰীন ছেভাৰ চাবলৈ পৃষ্ঠাখন পুনৰ ল’ড কৰক।</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">অধিক ছেটিং</translation>
 <translation id="2085089206770112532">ডিছপ্লে’ৰ উজ্জ্বলতা ডাউন</translation>
 <translation id="2105810540595158374">ডিভাইচটো এটা গে’ম নিয়ন্ত্ৰক।</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">সংকোচনৰ এলগ’ৰিডম</translation>
 <translation id="4794140124556169553">CPUৰ পৰীক্ষা চলালে আপোনাৰ ছিষ্টেমৰ পাৰদৰ্শিতাত প্ৰভাৱ পৰিব পাৰে</translation>
 <translation id="4800589996161293643">Chromebook সম্প্ৰদায়</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">বাতিল কৰা প্ৰিণ্টিঙৰ কাৰ্য <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">পাতল ৰঙৰ থীম</translation>
 <translation id="4813136279048157860">মোৰ প্ৰতিচ্ছবি</translation>
@@ -396,6 +398,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> বাছনি কৰা হৈছে, <ph name="TOPIC_SOURCE" />ৰ এলবামসমূহ বাছনি কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="484790837831576105">(Android) DNS ৰিজ’লিউশ্বন</translation>
 <translation id="4848429997038228357">চলি আছে</translation>
+<translation id="4854586501323951986">বিল্ট-ইন টাচ্চস্ক্ৰীন</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}one{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}other{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}}</translation>
 <translation id="4873827928179867585">বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ এলগ’ৰিডম</translation>
 <translation id="4880328057631981605">এক্সেছ পইণ্টৰ নাম</translation>
@@ -404,6 +407,7 @@
 <translation id="4891842000192098784">চাপ</translation>
 <translation id="4897058166682006107">ডিভাইচটোৰ বাওঁফালৰ বাডটোত <ph name="BATTERY_PERCENTAGE" />% বেটাৰী আছে।</translation>
 <translation id="4905998861748258752">স্ক্ৰীন ছেভাৰৰ বিকল্পসমূহ বাছনি কৰিবলৈ সুবিধাটো অন কৰক</translation>
+<translation id="4910858703033903787">APNৰ ধৰণ</translation>
 <translation id="4917385247580444890">শক্তিশালী</translation>
 <translation id="4917889632206600977">বন্ধ হৈছে - কাগজ শেষ হৈছে</translation>
 <translation id="491791267030419270">মতামত লিখাৰ বিষয়ে পৰামৰ্শ</translation>
@@ -459,6 +463,7 @@
 <translation id="5358174242040570474">কিবা ভুল হ’ল। পুনৰ এখন ৱালপেপাৰ বাছনি কৰি অথবা পুনৰ এপ্‌টো খুলি চেষ্টা কৰি চাওক।</translation>
 <translation id="5372659122375744710">ৱাই-ফাইৰ নেটৱৰ্কটো সুৰক্ষিত নহয়</translation>
 <translation id="5376354385557966694">স্বয়ংক্ৰিয় উজ্জ্বল ম’ড</translation>
+<translation id="5378184552853359930">IPৰ ধৰণ</translation>
 <translation id="5389159777326897627">ৱালপেপাৰ আৰু শৈলী</translation>
 <translation id="5389224261615877010">ৰামধেনু</translation>
 <translation id="5400907029458559844">ডিভাইচটো সংযোগ হৈ আছে।</translation>
@@ -569,6 +574,7 @@
 <translation id="6394634179843537518">ফাইল যোগ দিয়ক</translation>
 <translation id="6410257289063177456">প্ৰতিচ্ছবিৰ ফাইল</translation>
 <translation id="641081527798843608">বিষয়ৰ মিল</translation>
+<translation id="6412715219990689313">বিল্ট-ইন কীব’ৰ্ড</translation>
 <translation id="6423239382391657905">VPN খোলক</translation>
 <translation id="6439505561246192797">দুৰ্বল (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">একাউণ্টৰ ছেটিঙলৈ যাওক</translation>
@@ -667,6 +673,7 @@
 <translation id="7359657277149375382">ফাইলৰ প্রকাৰ</translation>
 <translation id="73631062356239394">ডায়েগন’ষ্টিক্সৰ ডেটা শ্বেয়াৰ কৰক</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">বিল্ট-ইন টাচ্চপেড</translation>
 <translation id="7397270852490618635">পাতল ৰঙৰ থীম অফ কৰক</translation>
 <translation id="741244894080940828">ৰূপান্তৰণ</translation>
 <translation id="7415801143053185905">HTTPৰ অতি উচ্চ বিলম্বতা</translation>
@@ -740,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> বাছনি কৰক <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">সংলগ্ন কৰক</translation>
 <translation id="8206859287963243715">চেলুলাৰ</translation>
 <translation id="8208861521865154048">লাভালাভসমূহ</translation>
 <translation id="8226628635270268143">আপোনাৰ প্ৰিয় ফট’ আৰু এলবামসমূহ বাছনি কৰক</translation>
@@ -828,6 +836,7 @@
 <translation id="9025198690966128418">এটা ব্যক্তিগত ডিভাইচ হিচাপে ব্যৱহাৰ কৰক</translation>
 <translation id="9028832514430399253">স্ক্ৰীন ছেভাৰৰ বিকল্প বাছনি কৰিবলৈ ট’গল অন কৰক</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS ৰিজ’লিউশ্বনটোত অধিক বিলম্বতা আছে</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">ব্লুটুথ</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index d4cf99a..c4b914c 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Выбрана: <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />. Націсніце Enter, каб выбраць альбомы "<ph name="TOPIC_SOURCE" />"</translation>
 <translation id="484790837831576105">(Android) DNS-пераўтварэнне</translation>
 <translation id="4848429997038228357">ВЫКОНВАЕЦЦА</translation>
+<translation id="4854586501323951986">Убудаваны сэнсарны экран</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Засталася {0} спроба}one{<ph name="ERROR_MESSAGE" /> Засталася {0} спроба}few{<ph name="ERROR_MESSAGE" /> Засталося {0} спробы}many{<ph name="ERROR_MESSAGE" /> Засталося {0} спроб}other{<ph name="ERROR_MESSAGE" /> Засталося {0} спробы}}</translation>
 <translation id="4873827928179867585">Алгарытм аўтэнтыфікацыі</translation>
 <translation id="4880328057631981605">Назва пункта доступу</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Дадайце файл</translation>
 <translation id="6410257289063177456">Файлы відарысаў</translation>
 <translation id="641081527798843608">Супадзенне суб'екта</translation>
+<translation id="6412715219990689313">Убудаваная клавіятура</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Слабы (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Перайсці ў налады ўліковага запісу</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Тып файла</translation>
 <translation id="73631062356239394">Абагуліць даныя дыягностыкі</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Убудаваная сэнсарная панэль</translation>
 <translation id="7397270852490618635">Выключыць светлую тэму</translation>
 <translation id="741244894080940828">перавод адзінак вымярэння</translation>
 <translation id="7415801143053185905">Вельмі вялікая затрымка HTTP-запытаў</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index 0112f0f..36fb6ea3 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Pokušajte s koracima za rješavanje problema</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Povežite se s mrežom i ponovo učitajte stranicu da vidite čuvara ekrana.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Više postavki</translation>
 <translation id="2085089206770112532">Smanjivanje osvjetljenja ekrana</translation>
 <translation id="2105810540595158374">Uređaj je kontroler za igre.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algoritam kompresije</translation>
 <translation id="4794140124556169553">Pokretanje testa CPU-a može uticati na performanse sistema</translation>
 <translation id="4800589996161293643">Chromebook zajednica</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Zadatak za štampanje dokumenta <ph name="DOCUMENT_TITLE" /> je otkazan</translation>
 <translation id="4809927044794281115">Svijetla tema</translation>
 <translation id="4813136279048157860">Moje slike</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Opterećenje</translation>
 <translation id="4897058166682006107">Uređaj ima <ph name="BATTERY_PERCENTAGE" />% baterije lijeve slušalice.</translation>
 <translation id="4905998861748258752">Uključite funkciju da odaberete opcije čuvara ekrana</translation>
+<translation id="4910858703033903787">Vrste APN-ova</translation>
 <translation id="4917385247580444890">Jako</translation>
 <translation id="4917889632206600977">Zaustavljeno – nestalo je papira</translation>
 <translation id="491791267030419270">Savjeti o pisanju povratnih informacija</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Nešto nije uredu. Pokušajte ponovo odabrati pozadinsku sliku ili ponovo otvoriti aplikaciju.</translation>
 <translation id="5372659122375744710">WiFi mreža nije sigurna</translation>
 <translation id="5376354385557966694">Automatski svijetli način rada</translation>
+<translation id="5378184552853359930">Vrsta IP-ja</translation>
 <translation id="5389159777326897627">Pozadinska slika i stil</translation>
 <translation id="5389224261615877010">Duga</translation>
 <translation id="5400907029458559844">Uređaj se povezuje.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Odaberite <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Priloži</translation>
 <translation id="8206859287963243715">Mobitel</translation>
 <translation id="8208861521865154048">Privilegije</translation>
 <translation id="8226628635270268143">Odaberite omiljene fotografije i albume</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Koristi kao lični uređaj</translation>
 <translation id="9028832514430399253">Uključite prebacivač da odaberete opcije čuvara ekrana</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS rezolucija ima visoku latentnost</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index bf6a4dd..c2894bea 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> er valgt. Tryk på Enter for at vælge <ph name="TOPIC_SOURCE" />-album</translation>
 <translation id="484790837831576105">(Android) DNS-oversættelse</translation>
 <translation id="4848429997038228357">KØRER</translation>
+<translation id="4854586501323951986">Indbygget touchskærm</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} forsøg tilbage}one{<ph name="ERROR_MESSAGE" /> {0} forsøg tilbage}other{<ph name="ERROR_MESSAGE" /> {0} forsøg tilbage}}</translation>
 <translation id="4873827928179867585">Algoritme til godkendelse</translation>
 <translation id="4880328057631981605">Navn på adgangspunkt</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Tilføj fil</translation>
 <translation id="6410257289063177456">Billedfiler</translation>
 <translation id="641081527798843608">Emnematch</translation>
+<translation id="6412715219990689313">Indbygget tastatur</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Svagt (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Gå til kontoindstillinger</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Filtype</translation>
 <translation id="73631062356239394">Del diagnosticeringsdata</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Indbygget touchplade</translation>
 <translation id="7397270852490618635">Deaktiver Lyst tema</translation>
 <translation id="741244894080940828">konvertering</translation>
 <translation id="7415801143053185905">Meget stor HTTP-forsinkelse</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index c47643b..bf5e460 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -139,6 +139,7 @@
 <translation id="2161394479394250669">Druckauftrag abbrechen</translation>
 <translation id="2163937499206714165">Dunklen Modus einschalten</translation>
 <translation id="2180197493692062006">Es gab ein Problem. Versuche, die App wieder zu öffnen.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Traffic-Zähler zurücksetzen</translation>
 <translation id="2212733584906323460">Namensauflösung</translation>
 <translation id="2217935453350629363">Momentane Geschwindigkeit</translation>
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb
index 9b4689fb..d496bcc 100644
--- a/chromeos/strings/chromeos_strings_el.xtb
+++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Δοκιμή βημάτων αντιμετώπισης προβλημάτων</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Συνδεθείτε σε ένα δίκτυο και επαναλάβετε τη φόρτωση της σελίδας για να δείτε την προφύλαξη οθόνης.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Περισσότερες ρυθμίσεις</translation>
 <translation id="2085089206770112532">Μείωση φωτεινότητας οθόνης</translation>
 <translation id="2105810540595158374">Η συσκευή είναι χειριστήριο παιχνιδιού.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Αλγόριθμος συμπίεσης</translation>
 <translation id="4794140124556169553">Η εκτέλεση μιας δοκιμής CPU μπορεί να επηρεάσει την απόδοση του συστήματος</translation>
 <translation id="4800589996161293643">Κοινότητα Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Ακυρώθηκε η εργασία εκτύπωσης <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Φωτεινό θέμα</translation>
 <translation id="4813136279048157860">Οι εικόνες μου</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Καταπόνηση</translation>
 <translation id="4897058166682006107">Η μπαταρία αριστερού ακουστικού της συσκευής βρίσκεται στο <ph name="BATTERY_PERCENTAGE" />%.</translation>
 <translation id="4905998861748258752">Ενεργοποιήστε τη λειτουργία για να ορίσετε επιλογές για την προφύλαξη οθόνης</translation>
+<translation id="4910858703033903787">Τύποι APN</translation>
 <translation id="4917385247580444890">Ισχυρό</translation>
 <translation id="4917889632206600977">Διακοπή - Τελείωσε το χαρτί</translation>
 <translation id="491791267030419270">Συμβουλές για τη σύνταξη σχολίων</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Κάτι δεν πήγε καλά. Δοκιμάστε να επιλέξετε ξανά μια ταπετσαρία ή να επαναλάβετε το άνοιγμα της εφαρμογής.</translation>
 <translation id="5372659122375744710">Το δίκτυο Wi-Fi δεν είναι ασφαλές.</translation>
 <translation id="5376354385557966694">Αυτόματη φωτεινή λειτουργία</translation>
+<translation id="5378184552853359930">Τύπος IP</translation>
 <translation id="5389159777326897627">Ταπετσαρία και στιλ</translation>
 <translation id="5389224261615877010">Ουράνιο τόξο</translation>
 <translation id="5400907029458559844">Η συσκευή συνδέεται.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Επιλέξτε <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Προσθήκη</translation>
 <translation id="8206859287963243715">Κινητό</translation>
 <translation id="8208861521865154048">Προνόμια</translation>
 <translation id="8226628635270268143">Επιλέξτε τις αγαπημένες σας φωτογραφίες και λευκώματα.</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Χρήση ως προσωπική συσκευή</translation>
 <translation id="9028832514430399253">Ενεργοποιήστε την εναλλαγή για να ορίσετε τις επιλογές προφύλαξης οθόνης</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Η επίλυση DNS έχει υψηλό λανθάνοντα χρόνο</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index f3eca2a..f670053 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Se seleccionó <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />; presiona Intro para seleccionar álbumes de <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) resolución de DNS</translation>
 <translation id="4848429997038228357">EN EJECUCIÓN</translation>
+<translation id="4854586501323951986">Pantalla táctil integrada</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento.}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos.}}</translation>
 <translation id="4873827928179867585">Algoritmo de autenticación</translation>
 <translation id="4880328057631981605">Nombre de punto de acceso</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Agregar archivo</translation>
 <translation id="6410257289063177456">Archivos de imagen</translation>
 <translation id="641081527798843608">Coincidencia de asunto</translation>
+<translation id="6412715219990689313">Teclado integrado</translation>
 <translation id="6423239382391657905">VPN abierto</translation>
 <translation id="6439505561246192797">Débil (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Ir a la configuración de la cuenta</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Tipo de archivo</translation>
 <translation id="73631062356239394">Compartir datos de diagnóstico</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Panel táctil integrado</translation>
 <translation id="7397270852490618635">Desactivar el tema claro</translation>
 <translation id="741244894080940828">conversión</translation>
 <translation id="7415801143053185905">Latencia de HTTP muy alta</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index 25153ad2..c0101d7 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> seleccionado, pulsa Intro para seleccionar los álbumes de <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Resolución de DNS</translation>
 <translation id="4848429997038228357">EN CURSO</translation>
+<translation id="4854586501323951986">Pantalla táctil integrada</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento.}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos.}}</translation>
 <translation id="4873827928179867585">Algoritmo de autenticación</translation>
 <translation id="4880328057631981605">Nombre del punto de acceso</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Añadir archivo</translation>
 <translation id="6410257289063177456">Archivos de imagen</translation>
 <translation id="641081527798843608">Coincidencia de asunto</translation>
+<translation id="6412715219990689313">Teclado integrado</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Débil (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Ir a la configuración de la cuenta</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Tipo de archivo</translation>
 <translation id="73631062356239394">Compartir datos de diagnóstico</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Panel táctil integrado</translation>
 <translation id="7397270852490618635">Desactivar tema claro</translation>
 <translation id="741244894080940828">conversión</translation>
 <translation id="7415801143053185905">Latencia de HTTP muy alta</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index 9f736f8..12012d9 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Valitud on taust „<ph name="TOPIC_SOURCE" /> – <ph name="TOPIC_SOURCE_DESC" />”. Vajutage sisestusklahvi, et valida tausta „<ph name="TOPIC_SOURCE" />” jaoks albumid</translation>
 <translation id="484790837831576105">(Android) DNS-lahendus</translation>
 <translation id="4848429997038228357">POOLELI</translation>
+<translation id="4854586501323951986">Sisseehitatud puuteekraan</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} katse jäänud}other{<ph name="ERROR_MESSAGE" /> {0} katset jäänud}}</translation>
 <translation id="4873827928179867585">Autendimise algoritm</translation>
 <translation id="4880328057631981605">Pääsupunkti nimi</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Lisa fail</translation>
 <translation id="6410257289063177456">Pildifailid</translation>
 <translation id="641081527798843608">Teema vaste</translation>
+<translation id="6412715219990689313">Sisseehitatud klaviatuur</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Nõrk (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Ava konto seaded</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Faili tüüp</translation>
 <translation id="73631062356239394">Diagnostikaandmete jagamine</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Sisseehitatud puuteplaat</translation>
 <translation id="7397270852490618635">Heleda teema väljalülitamine</translation>
 <translation id="741244894080940828">teisendus</translation>
 <translation id="7415801143053185905">Väga pikk HTTP latentsusaeg</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb
index dde9db3..a6e9307 100644
--- a/chromeos/strings/chromeos_strings_eu.xtb
+++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> hautatuta daukazula, sakatu Sartu <ph name="TOPIC_SOURCE" /> zerbitzuko albumak hautatzeko</translation>
 <translation id="484790837831576105">DNS bidezko ebazpena (Android)</translation>
 <translation id="4848429997038228357">ABIAN</translation>
+<translation id="4854586501323951986">Ukipen-pantaila integratua</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} saiaketa gelditzen da}other{<ph name="ERROR_MESSAGE" /> {0} saiakera gelditzen dira}}</translation>
 <translation id="4873827928179867585">Autentifikazio-algoritmoa</translation>
 <translation id="4880328057631981605">Sarbide-puntuaren izena</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Gehitu fitxategi bat</translation>
 <translation id="6410257289063177456">Irudi-fitxategiak</translation>
 <translation id="641081527798843608">Gaiaren bat-etortzea</translation>
+<translation id="6412715219990689313">Teklatu integratua</translation>
 <translation id="6423239382391657905">VPN irekia</translation>
 <translation id="6439505561246192797">Ahula (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Joan kontuaren ezarpenetara</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Fitxategi mota</translation>
 <translation id="73631062356239394">Partekatu diagnostiko-datuak</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Ukipen-panel integratua</translation>
 <translation id="7397270852490618635">Desaktibatu gai argia</translation>
 <translation id="741244894080940828">bihurketa</translation>
 <translation id="7415801143053185905">HTTP eskaeren latentzia oso luzea da</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb
index 3220ea1..b76c653 100644
--- a/chromeos/strings/chromeos_strings_gl.xtb
+++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> seleccionado. Preme Intro para seleccionar álbums de <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) resolución de DNS</translation>
 <translation id="4848429997038228357">EN CURSO</translation>
+<translation id="4854586501323951986">Pantalla táctil integrada</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos}}</translation>
 <translation id="4873827928179867585">Algoritmo de autenticación</translation>
 <translation id="4880328057631981605">Nome do punto de acceso</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Engadir ficheiro</translation>
 <translation id="6410257289063177456">Ficheiros de imaxe</translation>
 <translation id="641081527798843608">Coincidencia do asunto</translation>
+<translation id="6412715219990689313">Teclado integrado</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Feble (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Ir á configuración da conta</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Tipo de ficheiro</translation>
 <translation id="73631062356239394">Compartir datos de diagnóstico</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Panel táctil integrado</translation>
 <translation id="7397270852490618635">Quitar tema claro</translation>
 <translation id="741244894080940828">conversión</translation>
 <translation id="7415801143053185905">Latencia de HTTP moi alta</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index 45653e80..cd0d0af 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Isprobajte upute za rješavanje problema</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Povežite se s mrežom i ponovo učitajte stranicu da biste pregledali čuvar zaslona.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Više postavki</translation>
 <translation id="2085089206770112532">Smanjivanje svjetline zaslona</translation>
 <translation id="2105810540595158374">Uređaj je kontroler za videoigre.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algoritam kompresije</translation>
 <translation id="4794140124556169553">Testiranje procesora može utjecati na rad vašeg sustava</translation>
 <translation id="4800589996161293643">Chromebookova zajednica</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Otkazan zadatak ispisa dokumenta <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Svijetla tema</translation>
 <translation id="4813136279048157860">Moje slike</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4897058166682006107">Uređaj ima <ph name="BATTERY_PERCENTAGE" />% baterije za lijevu slušalicu.</translation>
 <translation id="4905998861748258752">Uključite tu značajku da biste odabrali opcije čuvara zaslona</translation>
+<translation id="4910858703033903787">Vrste APN-ova</translation>
 <translation id="4917385247580444890">Jak</translation>
 <translation id="4917889632206600977">Zaustavljeno – nema papira</translation>
 <translation id="491791267030419270">Savjeti za pisanje povratnih informacija</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Nešto nije u redu. Ponovno odaberite pozadinu ili ponovno otvorite aplikaciju.</translation>
 <translation id="5372659122375744710">Wi-Fi mreža nije sigurna</translation>
 <translation id="5376354385557966694">Automatski svijetli način</translation>
+<translation id="5378184552853359930">Vrsta IP-ja</translation>
 <translation id="5389159777326897627">Pozadine i stilovi</translation>
 <translation id="5389224261615877010">Duga</translation>
 <translation id="5400907029458559844">Uređaj se povezuje.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Odaberite <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Priloži</translation>
 <translation id="8206859287963243715">Mobitel</translation>
 <translation id="8208861521865154048">Pogodnosti</translation>
 <translation id="8226628635270268143">Odaberite svoje omiljene fotografije i albume</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Upotrijebi kao osobni uređaj</translation>
 <translation id="9028832514430399253">Uključite prekidač da biste odabrali opcije čuvara zaslona</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Razrješavanje DNS-a ima visoku latenciju</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_hy.xtb b/chromeos/strings/chromeos_strings_hy.xtb
index 452894bd..1936164 100644
--- a/chromeos/strings/chromeos_strings_hy.xtb
+++ b/chromeos/strings/chromeos_strings_hy.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Փորձել վերացնել անսարքությունները</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Միացեք որևէ ցանցի և վերաբեռնեք էջը՝ էկրանապահը դիտելու համար։</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Այլ կարգավորումներ</translation>
 <translation id="2085089206770112532">Էկրանի պայծառության նվազեցում</translation>
 <translation id="2105810540595158374">Սարքը խաղային վահանակ է։</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Սեղմման ալգորիթմ</translation>
 <translation id="4794140124556169553">CPU-ի թեստի գործարկումը կարող է ազդել ձեր համակարգի աշխատանքի վրա</translation>
 <translation id="4800589996161293643">Chromebook համայնք</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Տպման առաջադրանքը չեղարկվեց՝ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Բաց թեմա</translation>
 <translation id="4813136279048157860">Իմ պատկերները</translation>
@@ -396,6 +398,7 @@
 <translation id="4847902821209177679">Ընտրված է «<ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />» տարբերակը։ Սեղմեք Enter՝ <ph name="TOPIC_SOURCE" />ի ալբոմներ ընտրելու համար։</translation>
 <translation id="484790837831576105">DNS-ի լուծաչափ (Android)</translation>
 <translation id="4848429997038228357">ՓՈՐՁԱՐԿՎՈՒՄ Է</translation>
+<translation id="4854586501323951986">Ներկառուցված հպէկրան</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Մնացած փորձերի քանակը՝ {0}}one{<ph name="ERROR_MESSAGE" /> Մնացած փորձերի քանակը՝ {0}}other{<ph name="ERROR_MESSAGE" /> Մնացած փորձերի քանակը՝ {0}}}</translation>
 <translation id="4873827928179867585">Իսկորոշման ալգորիթմ</translation>
 <translation id="4880328057631981605">Մուտքի կետի անունը</translation>
@@ -404,6 +407,7 @@
 <translation id="4891842000192098784">Ծանրաբեռնվածություն</translation>
 <translation id="4897058166682006107">Ձախ ականջակալի մարտկոցի լիցքի մակարդակը՝ <ph name="BATTERY_PERCENTAGE" />%։</translation>
 <translation id="4905998861748258752">Միացրեք գործառույթը՝ էկրանապահի պարամետրեր ընտրելու համար</translation>
+<translation id="4910858703033903787">APN-ի տեսակները</translation>
 <translation id="4917385247580444890">Ուժեղ</translation>
 <translation id="4917889632206600977">Դադարեցվել է – Թուղթ չկա</translation>
 <translation id="491791267030419270">Կարծիք գրելու խորհուրդներ</translation>
@@ -459,6 +463,7 @@
 <translation id="5358174242040570474">Սխալ առաջացավ։ Նորից ընտրեք պաստառ կամ հավելվածը փակեք ու նորից բացեք։</translation>
 <translation id="5372659122375744710">Wi-Fi ցանցն անվտանգ չէ</translation>
 <translation id="5376354385557966694">Ավտոմատ բաց ռեժիմ</translation>
+<translation id="5378184552853359930">IP-ի տեսակը</translation>
 <translation id="5389159777326897627">Պաստառ և ոճ</translation>
 <translation id="5389224261615877010">Ծիածան</translation>
 <translation id="5400907029458559844">Սարքը միանում է։</translation>
@@ -569,6 +574,7 @@
 <translation id="6394634179843537518">Ավելացնել ֆայլ</translation>
 <translation id="6410257289063177456">Պատկերների ֆայլեր</translation>
 <translation id="641081527798843608">Թեմաների համընկնում</translation>
+<translation id="6412715219990689313">Ներկառուցված ստեղնաշար</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Թույլ (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Անցնել հաշվի կարգավորումներ</translation>
@@ -667,6 +673,7 @@
 <translation id="7359657277149375382">Ֆայլի տեսակ</translation>
 <translation id="73631062356239394">Ուղարկել դիագնոստիկ տվյալներ</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Ներկառուցված հպահարթակ</translation>
 <translation id="7397270852490618635">Անջատել բաց թեման</translation>
 <translation id="741244894080940828">փոխարկում</translation>
 <translation id="7415801143053185905">HTTP-ի շատ բարձր հապաղում</translation>
@@ -740,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Ընտրել «<ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />» տարբերակը</translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Կցել</translation>
 <translation id="8206859287963243715">Բջջային</translation>
 <translation id="8208861521865154048">Բոնուսներ</translation>
 <translation id="8226628635270268143">Ընտրեք ձեր սիրած լուսանկարներն ու ալբոմները</translation>
@@ -828,6 +836,7 @@
 <translation id="9025198690966128418">Օգտագործել որպես անձնական սարք</translation>
 <translation id="9028832514430399253">Էկրանապահի տարբերակներն ընտրելու համար միացրեք փոխանջատիչը</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-ի փոխակերպումն ունի բարձր հապաղում</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 28bd8af1..2e5915de 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> dipilih, tekan Enter untuk memilih album <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Resolusi DNS</translation>
 <translation id="4848429997038228357">BERJALAN</translation>
+<translation id="4854586501323951986">Layar sentuh bawaan</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} kesempatan lagi}other{<ph name="ERROR_MESSAGE" /> {0} kesempatan lagi}}</translation>
 <translation id="4873827928179867585">Algoritme autentikasi</translation>
 <translation id="4880328057631981605">Nama titik akses</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Tambahkan file</translation>
 <translation id="6410257289063177456">File Gambar</translation>
 <translation id="641081527798843608">Kecocokan subjek</translation>
+<translation id="6412715219990689313">Keyboard bawaan</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Lemah (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Buka setelan akun</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Jenis file</translation>
 <translation id="73631062356239394">Bagikan data diagnostik</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Touchpad bawaan</translation>
 <translation id="7397270852490618635">Nonaktifkan tema terang</translation>
 <translation id="741244894080940828">konversi</translation>
 <translation id="7415801143053185905">Latensi HTTP sangat tinggi</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index f228cdc2..52c1594 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Prova i passaggi per la risoluzione dei problemi</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Connettiti a una rete e ricarica la pagina per visualizzare il salvaschermo.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Altre impostazioni</translation>
 <translation id="2085089206770112532">Riduci la luminosità del display</translation>
 <translation id="2105810540595158374">Il dispositivo è un controller.</translation>
@@ -139,6 +140,7 @@
 <translation id="2161394479394250669">Annulla processo di stampa</translation>
 <translation id="2163937499206714165">Attiva la modalità Buio</translation>
 <translation id="2180197493692062006">Si è verificato un errore. Prova a riaprire l'app.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Reimposta contatori di traffico</translation>
 <translation id="2212733584906323460">Risoluzione nome</translation>
 <translation id="2217935453350629363">Velocità attuale</translation>
@@ -384,6 +386,7 @@
 <translation id="4793756956024303490">Algoritmo di compressione</translation>
 <translation id="4794140124556169553">L'esecuzione di un test della CPU potrebbe incidere sulle prestazioni del sistema</translation>
 <translation id="4800589996161293643">Community di Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Processo di stampa <ph name="DOCUMENT_TITLE" /> annullato</translation>
 <translation id="4809927044794281115">Tema chiaro</translation>
 <translation id="4813136279048157860">Le mie immagini</translation>
@@ -404,6 +407,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4897058166682006107">Percentuale di batteria dell'auricolare sinistro del dispositivo a <ph name="BATTERY_PERCENTAGE" />%.</translation>
 <translation id="4905998861748258752">Attiva la funzionalità per selezionare le opzioni per il salvaschermo</translation>
+<translation id="4910858703033903787">Tipi di APN</translation>
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4917889632206600977">Operazione interrotta - Carta esaurita</translation>
 <translation id="491791267030419270">Suggerimenti sulla scrittura di un feedback</translation>
@@ -459,6 +463,7 @@
 <translation id="5358174242040570474">Si è verificato un errore. Prova a scegliere nuovamente uno sfondo o a riaprire l'app.</translation>
 <translation id="5372659122375744710">la rete Wi-Fi non è sicura</translation>
 <translation id="5376354385557966694">Modalità Luce automatica</translation>
+<translation id="5378184552853359930">Tipo di IP</translation>
 <translation id="5389159777326897627">Sfondo e stile</translation>
 <translation id="5389224261615877010">Arcobaleno</translation>
 <translation id="5400907029458559844">Il dispositivo si sta collegando.</translation>
@@ -742,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Seleziona <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Invio</translation>
+<translation id="8183974620058026102">Allega</translation>
 <translation id="8206859287963243715">Cellulare</translation>
 <translation id="8208861521865154048">Vantaggi</translation>
 <translation id="8226628635270268143">Scegli le tue foto e i tuoi album preferiti</translation>
@@ -830,6 +836,7 @@
 <translation id="9025198690966128418">Utilizza come dispositivo personale</translation>
 <translation id="9028832514430399253">Usa l'opzione di attivazione/disattivazione per selezionare le opzioni per il salvaschermo</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">La risoluzione DNS ha una latenza elevata</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index 6cdc4ff..03bbe71 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -398,6 +398,7 @@
 <translation id="4847902821209177679">არჩეულია <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />, <ph name="TOPIC_SOURCE" /> ალბომების ასარჩევად დააჭირეთ კლავიშზე Enter</translation>
 <translation id="484790837831576105">(Android) DNS-ის დარეგულირება</translation>
 <translation id="4848429997038228357">გაშვებულია</translation>
+<translation id="4854586501323951986">ჩაშენებული სენსორული ეკრანი</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> დარჩენილია {0} მცდელობა}other{<ph name="ERROR_MESSAGE" /> დარჩენილია {0} მცდელობა}}</translation>
 <translation id="4873827928179867585">ავტორიზაციის ალგორითმი</translation>
 <translation id="4880328057631981605">წვდომის წერტილის სახელი</translation>
@@ -573,6 +574,7 @@
 <translation id="6394634179843537518">ფაილის დამატება</translation>
 <translation id="6410257289063177456">გამოსახულების ფაილები</translation>
 <translation id="641081527798843608">თემის თანხვედრა</translation>
+<translation id="6412715219990689313">ჩაშენებული კლავიატურა</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">სუსტი (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">ანგარიშის პარამეტრებზე გადასვლა</translation>
@@ -671,6 +673,7 @@
 <translation id="7359657277149375382">ფაილის ტიპი</translation>
 <translation id="73631062356239394">დიაგნოსტიკური მონაცემების გაზიარება</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">ჩაშენებული სენსორული პანელი</translation>
 <translation id="7397270852490618635">ღია თემის გამორთვა</translation>
 <translation id="741244894080940828">გარდაქმნა</translation>
 <translation id="7415801143053185905">HTTP რეაგირების დრო ზედმეტად დიდია</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 087f5115..e589a92 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -139,6 +139,7 @@
 <translation id="2161394479394250669">Басып чыгарууну токтотуу</translation>
 <translation id="2163937499206714165">Караңгы теманы күйгүзүү</translation>
 <translation id="2180197493692062006">Бир жерден ката кетти. Колдонмону кайрадан ачып көрүңүз.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Трафикти эсептегичтерди баштапкы абалга келтирүү</translation>
 <translation id="2212733584906323460">Аталышын чечмелөө</translation>
 <translation id="2217935453350629363">Учурдагы ылдамдык</translation>
@@ -395,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> тандалды, <ph name="TOPIC_SOURCE" /> альбомдорун тандоо үчүн Enter баскычын басыңыз</translation>
 <translation id="484790837831576105">(Android) DNS дааналыгы</translation>
 <translation id="4848429997038228357">АТКАРЫЛУУДА</translation>
+<translation id="4854586501323951986">Кыстарылган сенсордук экран</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} аракет калды}other{<ph name="ERROR_MESSAGE" /> {0} аракет калды}}</translation>
 <translation id="4873827928179867585">Аутентификациянын алгоритми</translation>
 <translation id="4880328057631981605">Жетки чекитинин аты</translation>
@@ -568,6 +570,7 @@
 <translation id="6394634179843537518">Файл кошуу</translation>
 <translation id="6410257289063177456">Сүрөт файлдары</translation>
 <translation id="641081527798843608">Темасы дал келди</translation>
+<translation id="6412715219990689313">Кыстарылган баскычтоп</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Начар (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Аккаунттун параметрлерине өтүү</translation>
@@ -666,6 +669,7 @@
 <translation id="7359657277149375382">Файлдын түрү</translation>
 <translation id="73631062356239394">Мүчүлүштүктөрдү аныктоо маалыматын бөлүшүү</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Кыстарылган сенсордук такта</translation>
 <translation id="7397270852490618635">Жарык теманы өчүрүү</translation>
 <translation id="741244894080940828">которуу</translation>
 <translation id="7415801143053185905">HTTP күтүү убакыты өтө жогору</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 81cd911..6b6c2077 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -139,6 +139,7 @@
 <translation id="2161394479394250669">Atšaukti spausdinimo užduotį</translation>
 <translation id="2163937499206714165">Įjungti tamsų režimą</translation>
 <translation id="2180197493692062006">Kažkas nepavyko. Pabandykite iš naujo atidaryti programą.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Iš naujo nustatyti srauto skaitiklius</translation>
 <translation id="2212733584906323460">Pavadinimo skyra</translation>
 <translation id="2217935453350629363">Dabartinė sparta</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb
index aec2f40..9c3ebfac 100644
--- a/chromeos/strings/chromeos_strings_mk.xtb
+++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Пробајте ги чекорите за решавање проблеми</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Поврзете се на мрежа и повторно вчитајте ја страницата за да се прикаже заштитникот на екранот.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Повеќе поставки</translation>
 <translation id="2085089206770112532">Осветленоста на екранот се намали</translation>
 <translation id="2105810540595158374">Уредот е контролер на игра.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Алгоритам за компримирање</translation>
 <translation id="4794140124556169553">Извршувањето CPU-тест може да влијае врз изведбата на системот</translation>
 <translation id="4800589996161293643">Заедница на Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Откажан налог за печатење: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Светла тема</translation>
 <translation id="4813136279048157860">Мои слики</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Стрес</translation>
 <translation id="4897058166682006107">Нивото на батерија на левата слушалка е <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="4905998861748258752">Вклучете ја функцијата за да ги изберете опциите за заштитникот на екранот</translation>
+<translation id="4910858703033903787">Типови APN</translation>
 <translation id="4917385247580444890">Силен</translation>
 <translation id="4917889632206600977">Запрено - нема хартија</translation>
 <translation id="491791267030419270">Совети за пишување повратни информации</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Нешто тргна наопаку. Обидете се повторно да изберете тапет или повторно отворете ја апликацијата.</translation>
 <translation id="5372659122375744710">WiFi мрежата не е безбедна</translation>
 <translation id="5376354385557966694">Автоматски светол режим</translation>
+<translation id="5378184552853359930">Тип IP</translation>
 <translation id="5389159777326897627">Тапети и стил</translation>
 <translation id="5389224261615877010">Виножито</translation>
 <translation id="5400907029458559844">Уредот се поврзува.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Изберете <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Прикачи</translation>
 <translation id="8206859287963243715">Мобилен</translation>
 <translation id="8208861521865154048">Поволности</translation>
 <translation id="8226628635270268143">Изберете ги омилените фотографии и албуми</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Користете го како личен уред</translation>
 <translation id="9028832514430399253">Вклучете го копчето за да ги изберете опциите за заштитникот на екранот</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Одредување со DNS има висока латенција</translation>
 <translation id="9073281213608662541">ПАП</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 63fa6df..85df787 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> തിരഞ്ഞെടുത്തു, <ph name="TOPIC_SOURCE" /> ആൽബങ്ങൾ തിരഞ്ഞെടുക്കാൻ 'Enter' അമർത്തുക</translation>
 <translation id="484790837831576105">(Android) DNS റെസല്യൂഷൻ</translation>
 <translation id="4848429997038228357">റൺ ചെയ്യുന്നു</translation>
+<translation id="4854586501323951986">ബിൽറ്റ് ഇൻ ടച്ച്‌സ്‌ക്രീൻ</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ശ്രമം ശേഷിക്കുന്നു}other{<ph name="ERROR_MESSAGE" /> {0} ശ്രമങ്ങൾ ശേഷിക്കുന്നു}}</translation>
 <translation id="4873827928179867585">പരിശോധിച്ചുറപ്പിക്കൽ അൽഗോരിതം</translation>
 <translation id="4880328057631981605">ആ‌ക്‌സസ് പോയിന്‍റിന്‍റെ പേര്</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">ഫയൽ ചേർക്കുക</translation>
 <translation id="6410257289063177456">ചിത്ര ഫയലുകള്‍</translation>
 <translation id="641081527798843608">പൊരുത്തപ്പെടുന്ന വിഷയം</translation>
+<translation id="6412715219990689313">ബിൽറ്റ് ഇൻ കീബോർഡ്</translation>
 <translation id="6423239382391657905">VPNതുറക്കുക</translation>
 <translation id="6439505561246192797">ദുർബലം (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">അക്കൗണ്ട് ക്രമീകരണത്തിലേക്ക് പോകുക</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">ഫയല്‍ തരം</translation>
 <translation id="73631062356239394">പ്രശ്നനിർണ്ണയ ഡാറ്റ പങ്കിടുക</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">ബിൽറ്റ് ഇൻ ടച്ച്‌പാഡ്</translation>
 <translation id="7397270852490618635">ലൈറ്റ് തീം ഓഫാക്കുക</translation>
 <translation id="741244894080940828">പരിവർത്തനം</translation>
 <translation id="7415801143053185905">വളരെ ഉയർന്ന HTTP പ്രതികരണ സമയം</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 6250f07..4e2ea47 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Асуудал шийдэх алхмуудыг турших</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Дэлгэц амраагчийг үзэхийн тулд сүлжээнд холбогдож, хуудсыг дахин ачаална уу.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Нэмэлт тохиргоо</translation>
 <translation id="2085089206770112532">Дэлгэцийн гэрэлтүүлгийг багасгах</translation>
 <translation id="2105810540595158374">Төхөөрөмж нь тоглоомын гар байна.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Шахалтын алгоритм</translation>
 <translation id="4794140124556169553">Төв процессорын нэгжийн туршилтыг ажиллуулах нь таны системийн гүйцэтгэлд нөлөөлж болзошгүй</translation>
 <translation id="4800589996161293643">Chromebook-н нийгэмлэг</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> хэвлэх ажлыг цуцалсан</translation>
 <translation id="4809927044794281115">Цайвар загвар</translation>
 <translation id="4813136279048157860">Миний зураг</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Стресс</translation>
 <translation id="4897058166682006107">Төхөөрөмжийн зүүн талын чихэвчийн батарей <ph name="BATTERY_PERCENTAGE" />% байна.</translation>
 <translation id="4905998861748258752">Дэлгэц амраагчийн сонголтыг сонгохын тулд онцлогийг асаана уу</translation>
+<translation id="4910858703033903787">APN-н төрлүүд</translation>
 <translation id="4917385247580444890">Хүчтэй</translation>
 <translation id="4917889632206600977">Зогссон - Цаас дууссан</translation>
 <translation id="491791267030419270">Санал хүсэлт бичих талаарх зөвлөгөө</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Алдаа гарлаа. Дэлгэцийн зураг дахин сонгох эсвэл аппыг дахин нээж үзнэ үү.</translation>
 <translation id="5372659122375744710">Wi-Fi сүлжээ аюулгүй биш байна</translation>
 <translation id="5376354385557966694">Автомат гэрэлтэй горим</translation>
+<translation id="5378184552853359930">IP төрөл</translation>
 <translation id="5389159777326897627">Дэлгэцийн зураг &amp; стиль</translation>
 <translation id="5389224261615877010">Солонго</translation>
 <translation id="5400907029458559844">Төхөөрөмж холбогдож байна.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />-г сонгох</translation>
 <translation id="8179976553408161302">Нэвтрэх</translation>
+<translation id="8183974620058026102">Хавсаргах</translation>
 <translation id="8206859287963243715">Үүрэн холбоо</translation>
 <translation id="8208861521865154048">Нэмэлтүүд</translation>
 <translation id="8226628635270268143">Дуртай зураг, цомгуудаа сонгоно уу</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Хувийн төхөөрөмжөөр ашиглах</translation>
 <translation id="9028832514430399253">Дэлгэц амраагчийн сонголтыг сонгохын тулд асаах/унтраахыг асаана уу</translation>
 <translation id="9039663905644212491">PEAP /Хамгаалагдсан өргөжих боломжтой таниулах протокол/</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-н нягтрал өндөр хоцролттой байна</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 66afe39..48fd6d7 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> dipilih, tekan Enter untuk memilih album <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">Peleraian DNS (Android)</translation>
 <translation id="4848429997038228357">BERJALAN</translation>
+<translation id="4854586501323951986">Skrin sentuh terbina dalam</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} percubaan lagi}other{<ph name="ERROR_MESSAGE" /> {0} percubaan lagi}}</translation>
 <translation id="4873827928179867585">Algoritma pengesahan</translation>
 <translation id="4880328057631981605">Nama titik capaian</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Tambah fail</translation>
 <translation id="6410257289063177456">Fail Imej</translation>
 <translation id="641081527798843608">Padanan subjek</translation>
+<translation id="6412715219990689313">Papan kekunci terbina dalam</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Lemah (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Pergi ke tetapan akaun</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Jenis fail</translation>
 <translation id="73631062356239394">Kongsi data diagnostik</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Pad sentuh terbina dalam</translation>
 <translation id="7397270852490618635">Matikan tema cerah</translation>
 <translation id="741244894080940828">penukaran</translation>
 <translation id="7415801143053185905">Kependaman HTTP sangat tinggi</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index 808cb3b..86a64f3 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Prøv feilsøkingstrinn</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Koble til et nettverk og last inn siden på nytt for å se skjermspareren.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Flere innstillinger</translation>
 <translation id="2085089206770112532">Skjermlysstyrke ned</translation>
 <translation id="2105810540595158374">Enheten er en spillkontroller.</translation>
@@ -384,6 +385,7 @@
 <translation id="4793756956024303490">Algoritme for komprimering</translation>
 <translation id="4794140124556169553">Kjøring av en prosessortest kan påvirke systemets ytelse</translation>
 <translation id="4800589996161293643">Chromebook-fellesskapet</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Avbrøt utskriftsjobben <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Lyst tema</translation>
 <translation id="4813136279048157860">Mine bilder</translation>
@@ -404,6 +406,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4897058166682006107">Enheten har <ph name="BATTERY_PERCENTAGE" /> % batteri i venstre øreplugg.</translation>
 <translation id="4905998861748258752">Slå på funksjonen for å velge alternativer for skjermsparer</translation>
+<translation id="4910858703033903787">APN-typer</translation>
 <translation id="4917385247580444890">Sterkt</translation>
 <translation id="4917889632206600977">Stoppet – tom for papir</translation>
 <translation id="491791267030419270">Tips om å skrive tilbakemeldinger</translation>
@@ -459,6 +462,7 @@
 <translation id="5358174242040570474">Noe gikk galt. Prøv å velge en bakgrunn igjen eller åpne appen på nytt.</translation>
 <translation id="5372659122375744710">Wifi-nettverket er ikke sikkert</translation>
 <translation id="5376354385557966694">Automatisk lys modus</translation>
+<translation id="5378184552853359930">IP-type</translation>
 <translation id="5389159777326897627">Bakgrunn og stil</translation>
 <translation id="5389224261615877010">Regnbue</translation>
 <translation id="5400907029458559844">Enheten kobler seg til.</translation>
@@ -742,6 +746,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Velg <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Tilknytt</translation>
 <translation id="8206859287963243715">Mobil</translation>
 <translation id="8208861521865154048">Fordeler</translation>
 <translation id="8226628635270268143">Velg favorittbildene og -albumene dine</translation>
@@ -830,6 +835,7 @@
 <translation id="9025198690966128418">Bruk som personlig enhet</translation>
 <translation id="9028832514430399253">Slå på av/på-knappen for å velge skjermspareralternativene</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-oppslag har høy tidsforsinkelse</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb
index 4b9db12d..e565291 100644
--- a/chromeos/strings/chromeos_strings_or.xtb
+++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">ଟ୍ରବୁଲସୁଟିଂ ଷ୍ଟେପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">ସ୍କ୍ରିନ ସେଭର ଦେଖିବା ପାଇଁ ଦୟାକରି ଏକ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରି ପୃଷ୍ଠାଟିକୁ ପୁଣି ଲୋଡ କରନ୍ତୁ।</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">ଅଧିକ ସେଟିଂ</translation>
 <translation id="2085089206770112532">ଡିସପ୍ଲେର ଉଜ୍ଜ୍ୱଳତା କମ୍ କରନ୍ତୁ</translation>
 <translation id="2105810540595158374">ଡିଭାଇସଟି ଏକ ଗେମ କଣ୍ଟ୍ରୋଲର ଅଟେ।</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">କମ୍ପ୍ରେସନ ଆଲଗୋରିଦମ</translation>
 <translation id="4794140124556169553">ଏକ CPU ଟେଷ୍ଟ ଚଲାଇବା ଫଳରେ ଏହା ଆପଣଙ୍କ ସିଷ୍ଟମର ପରଫରମାନ୍ସକୁ ପ୍ରଭାବିତ କରିପାରେ</translation>
 <translation id="4800589996161293643">Chromebook କମ୍ୟୁନିଟୀ</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">ପ୍ରିଣ୍ଟ କାର୍ଯ୍ୟ <ph name="DOCUMENT_TITLE" /> ବାତିଲ୍ କରାଯାଇଛି</translation>
 <translation id="4809927044794281115">ହାଲୁକା ଥିମ୍</translation>
 <translation id="4813136279048157860">ମୋ ଛବି</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">ଷ୍ଟ୍ରେସ୍</translation>
 <translation id="4897058166682006107">ଡିଭାଇସର ବାମପଟ ବଡରେ <ph name="BATTERY_PERCENTAGE" />% ବ୍ୟାଟେରୀ ଚାର୍ଜ ଅଛି।</translation>
 <translation id="4905998861748258752">ସ୍କ୍ରିନ ସେଭର ବିକଳ୍ପଗୁଡ଼ିକୁ ଚୟନ କରିବା ପାଇଁ ଫିଚର ଚାଲୁ କରନ୍ତୁ</translation>
+<translation id="4910858703033903787">APN ପ୍ରକାର</translation>
 <translation id="4917385247580444890">ଦୃଢ଼</translation>
 <translation id="4917889632206600977">ବନ୍ଦ ହୋଇଯାଇଛି - କାଗଜ ସରିଯାଇଛି</translation>
 <translation id="491791267030419270">ମତାମତ ଲେଖିବା ବିଷୟରେ ଟିପ୍ସ</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">କିଛି ତ୍ରୁଟି ହୋଇଛି। ପୁଣି ଏକ ୱାଲପେପର ବାଛିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ଆପକୁ ପୁଣି ଖୋଲନ୍ତୁ।</translation>
 <translation id="5372659122375744710">ୱାଇଫାଇ ନେଟୱାର୍କ ସୁରକ୍ଷିତ ନୁହେଁ</translation>
 <translation id="5376354385557966694">ସ୍ଵଚାଳିତ ଲାଇଟ୍ ମୋଡ୍</translation>
+<translation id="5378184552853359930">IP ପ୍ରକାର</translation>
 <translation id="5389159777326897627">ୱାଲପେପର ଏବଂ ଷ୍ଟାଇଲ</translation>
 <translation id="5389224261615877010">ଇନ୍ଦ୍ରଧନୁ</translation>
 <translation id="5400907029458559844">ଡିଭାଇସ ସଂଯୋଗ କରାଯାଉଛି।</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ଚୟନ କରନ୍ତୁ</translation>
 <translation id="8179976553408161302">ପ୍ରବେଶ</translation>
+<translation id="8183974620058026102">ଆଟାଚ କରନ୍ତୁ</translation>
 <translation id="8206859287963243715">ସେଲ୍ୟୁଲାର୍</translation>
 <translation id="8208861521865154048">ପର୍କଗୁଡ଼ିକ</translation>
 <translation id="8226628635270268143">ଆପଣଙ୍କ ପସନ୍ଦର ଫଟୋ ଏବଂ ଆଲବମଗୁଡ଼ିକ ବାଛନ୍ତୁ</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">ଏକ ବ୍ୟକ୍ତିଗତ ଡିଭାଇସ ଭାବେ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="9028832514430399253">ସ୍କ୍ରିନ ସେଭର ବିକଳ୍ପଗୁଡ଼ିକୁ ଚୟନ କରିବା ପାଇଁ ଟୋଗଲ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS ରିଜୋଲ୍ୟୁସନର ଲାଟେନ୍ସି ଅଧିକ ଅଛି</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">ବ୍ଲୁଟୁଥ୍</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb
index 6d390308..37c74f81 100644
--- a/chromeos/strings/chromeos_strings_pa.xtb
+++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ਚੁਣਿਆ ਗਿਆ, <ph name="TOPIC_SOURCE" /> ਐਲਬਮਾਂ ਨੂੰ ਚੁਣਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="484790837831576105">(Android) DNS ਰੈਜ਼ੋਲਿਊਸ਼ਨ</translation>
 <translation id="4848429997038228357">ਚੱਲ ਰਿਹਾ ਹੈ</translation>
+<translation id="4854586501323951986">ਬਿਲਟ-ਇਨ ਟੱਚਸਕ੍ਰੀਨ</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ਕੋਸ਼ਿਸ਼ ਬਾਕੀ}one{<ph name="ERROR_MESSAGE" /> {0} ਕੋਸ਼ਿਸ਼ ਬਾਕੀ}other{<ph name="ERROR_MESSAGE" /> {0} ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ}}</translation>
 <translation id="4873827928179867585">ਪ੍ਰਮਾਣੀਕਰਨ ਐਲਗੋਰਿਦਮ</translation>
 <translation id="4880328057631981605">ਐਕਸੈੱਸ ਪੁਆਇੰਟ ਨਾਮ</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">ਫ਼ਾਈਲ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="6410257289063177456">ਚਿੱਤਰ ਫਾਈਲਾਂ</translation>
 <translation id="641081527798843608">ਵਿਸ਼ਾ ਮਿਲਾਨ</translation>
+<translation id="6412715219990689313">ਬਿਲਟ-ਇਨ ਕੀ-ਬੋਰਡ</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">ਕਮਜ਼ੋਰ (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">ਖਾਤਾ ਸੈਟਿੰਗਾਂ 'ਤੇ ਜਾਓ</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">ਫ਼ਾਈਲ ਦੀ ਕਿਸਮ</translation>
 <translation id="73631062356239394">ਤਸ਼ਖੀਸੀ ਡਾਟਾ ਸਾਂਝਾ ਕਰੋ</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">ਬਿਲਟ-ਇਨ ਟੱਚਪੈਡ</translation>
 <translation id="7397270852490618635">ਹਲਕਾ ਥੀਮ ਬੰਦ ਕਰੋ</translation>
 <translation id="741244894080940828">ਰੂਪਾਂਤਰਨ</translation>
 <translation id="7415801143053185905">ਬਹੁਤ ਜ਼ਿਆਦਾ HTTP ਵਿਲੰਬਤਾ</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb
index 7df1eb91..38e6470 100644
--- a/chromeos/strings/chromeos_strings_pt-PT.xtb
+++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -140,6 +140,7 @@
 <translation id="2161394479394250669">Cancelar tarefa de impressão</translation>
 <translation id="2163937499206714165">Ativar modo escuro</translation>
 <translation id="2180197493692062006">Algo correu mal. Experimente reabrir a app.</translation>
+<translation id="2184005227776731758">APN (nome do ponto de acesso)</translation>
 <translation id="2209788852729124853">Repor contadores de tráfego</translation>
 <translation id="2212733584906323460">Resolução de nomes</translation>
 <translation id="2217935453350629363">Velocidade atual</translation>
@@ -397,6 +398,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> selecionado. Prima Enter para selecionar álbuns do <ph name="TOPIC_SOURCE" />.</translation>
 <translation id="484790837831576105">(Android) Resolução de DNS</translation>
 <translation id="4848429997038228357">EM EXECUÇÃO</translation>
+<translation id="4854586501323951986">Ecrã tátil incorporado</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tentativa restante.}other{<ph name="ERROR_MESSAGE" /> {0} tentativas restantes.}}</translation>
 <translation id="4873827928179867585">Algoritmo de autenticação</translation>
 <translation id="4880328057631981605">Nome do ponto de acesso</translation>
@@ -572,6 +574,7 @@
 <translation id="6394634179843537518">Adicionar ficheiro</translation>
 <translation id="6410257289063177456">Ficheiros de imagem</translation>
 <translation id="641081527798843608">Correspondência de assunto</translation>
+<translation id="6412715219990689313">Teclado incorporado</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Fraca (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Aceda às definições da conta</translation>
@@ -670,6 +673,7 @@
 <translation id="7359657277149375382">Tipo de ficheiro</translation>
 <translation id="73631062356239394">Partilhar dados de diagnóstico</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Touchpad incorporado</translation>
 <translation id="7397270852490618635">Desativar tema claro</translation>
 <translation id="741244894080940828">conversão</translation>
 <translation id="7415801143053185905">Latência muito elevada de HTTP</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index 3705bfc..a3d923f 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -140,6 +140,7 @@
 <translation id="2161394479394250669">Anulează sarcina de printare</translation>
 <translation id="2163937499206714165">Activează modul întunecat</translation>
 <translation id="2180197493692062006">A apărut o eroare. Încearcă să redeschizi aplicația.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Resetează contoarele de trafic</translation>
 <translation id="2212733584906323460">Rezolvarea pentru nume</translation>
 <translation id="2217935453350629363">Viteza actuală</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 0938783..6f86ebeb 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Выбран вариант "<ph name="TOPIC_SOURCE" />" (<ph name="TOPIC_SOURCE_DESC" />). Нажмите Ввод, чтобы выбрать альбомы отсюда: <ph name="TOPIC_SOURCE" />.</translation>
 <translation id="484790837831576105">DNS-преобразование (Android)</translation>
 <translation id="4848429997038228357">ВЫПОЛНЯЕТСЯ</translation>
+<translation id="4854586501323951986">Встроенный сенсорный экран</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Осталась {0} попытка.}one{<ph name="ERROR_MESSAGE" /> Осталась {0} попытка.}few{<ph name="ERROR_MESSAGE" /> Осталось {0} попытки.}many{<ph name="ERROR_MESSAGE" /> Осталось {0} попыток.}other{<ph name="ERROR_MESSAGE" /> Осталось {0} попытки.}}</translation>
 <translation id="4873827928179867585">Алгоритм аутентификации</translation>
 <translation id="4880328057631981605">Название точки доступа</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Добавить файл</translation>
 <translation id="6410257289063177456">Файлы изображений</translation>
 <translation id="641081527798843608">Совпадение тем</translation>
+<translation id="6412715219990689313">Встроенная клавиатура</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Слабый (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Перейти к настройкам аккаунта</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Тип файла</translation>
 <translation id="73631062356239394">Поделиться данными диагностики</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Встроенная сенсорная панель</translation>
 <translation id="7397270852490618635">Выключить светлую тему</translation>
 <translation id="741244894080940828">перевести в другие ед. измерения</translation>
 <translation id="7415801143053185905">очень большое время ожидания HTTP</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index 16f8190..786a5541 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> තෝරන ලදි, <ph name="TOPIC_SOURCE" /> ඇල්බම තේරීමට Enter ඔබන්න</translation>
 <translation id="484790837831576105">(Android) DNS විභේදනය</translation>
 <translation id="4848429997038228357">ධාවන වෙමින්</translation>
+<translation id="4854586501323951986">එක්ව තැනූ ස්පර්ශ තිරය</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> උත්සාහයන් {0}ක් ඉතිරිය}one{<ph name="ERROR_MESSAGE" /> උත්සාහයන් {0}ක් ඉතිරිය}other{<ph name="ERROR_MESSAGE" /> උත්සාහයන් {0}ක් ඉතිරිය}}</translation>
 <translation id="4873827928179867585">සත්‍යාපන ඇල්ගොරිතමය</translation>
 <translation id="4880328057631981605">ප්‍රවේශ ලක්ෂ්‍යයේ නම</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">ගොනුව එක් කරන්න</translation>
 <translation id="6410257289063177456">පින්තූර ගොනු</translation>
 <translation id="641081527798843608">විෂය ගැළපුම</translation>
+<translation id="6412715219990689313">එක්ව තැනූ යතුරු පුවරුව</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">දුර්වලයි (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">ගිණුම් සැකසීම් වෙත යන්න</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">ගොනු වර්ගය</translation>
 <translation id="73631062356239394">දෝෂ නිර්ණ දත්ත බෙදා ගන්න</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">එක්ව තැනූ ස්පර්ශ පුවරුව</translation>
 <translation id="7397270852490618635">ආලෝක තේමාව ක්‍රියාවිරහිත කරන්න</translation>
 <translation id="741244894080940828">පරිවර්තනය</translation>
 <translation id="7415801143053185905">ඉතා ඉහළ HTTP පමාව</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index 5a282b5..b5abbd21 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Vyskúšať kroky na riešenie problémov</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Ak chcete zobraziť šetrič obrazovky, pripojte sa k sieti a znova načítajte stránku.</translation>
+<translation id="2056550196601855911">IPv4 alebo IPv6</translation>
 <translation id="2080070583977670716">Ďalšie nastavenia</translation>
 <translation id="2085089206770112532">Zníženie jasu obrazovky</translation>
 <translation id="2105810540595158374">Zariadenie je herný ovládač.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algoritmus kompresie</translation>
 <translation id="4794140124556169553">Spustenie testu procesora môže ovplyvniť výkon systému</translation>
 <translation id="4800589996161293643">Komunita pre Chromebooky</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Bola zrušená tlačová úloha <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Svetlý motív</translation>
 <translation id="4813136279048157860">Moje obrázky</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Záťaž</translation>
 <translation id="4897058166682006107">Úroveň batérie ľavého slúchadla zariadenia je <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="4905998861748258752">Zapnite danú funkciu a vyberte možnosti šetriča obrazovky</translation>
+<translation id="4910858703033903787">Typy názvu prístupového bodu (APN)</translation>
 <translation id="4917385247580444890">Silné</translation>
 <translation id="4917889632206600977">Zastavené – minul sa papier</translation>
 <translation id="491791267030419270">Tipy, ako napísať spätnú väzbu</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Vyskytol sa problém. Skúste znova vybrať tapetu alebo opäť otvorte aplikáciu.</translation>
 <translation id="5372659122375744710">Sieť Wi‑Fi nie je zabezpečená</translation>
 <translation id="5376354385557966694">Automatický svetlý režim</translation>
+<translation id="5378184552853359930">Typ adresy IP</translation>
 <translation id="5389159777326897627">Tapeta a štýl</translation>
 <translation id="5389224261615877010">Dúha</translation>
 <translation id="5400907029458559844">Zariadenie sa pripája.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Vyberte <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Priložiť</translation>
 <translation id="8206859287963243715">Mobilné</translation>
 <translation id="8208861521865154048">Výhody</translation>
 <translation id="8226628635270268143">Vyberte svoje obľúbené fotky a albumy</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Používať ako osobné zariadenie</translation>
 <translation id="9028832514430399253">Zapnutím prepínača vyberiete možnosti šetriča obrazovky</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Preklad DNS má vysokú latenciu</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index 2284ebe1..a8cc4343 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Poskusite postopke za odpravljanje težav.</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Povežite se z omrežjem in znova naložite stran, če si želite ogledati ohranjevalnik zaslona.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Več nastavitev</translation>
 <translation id="2085089206770112532">Zmanjšanje svetlosti zaslona</translation>
 <translation id="2105810540595158374">Naprava je krmilnik za igre.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algoritem stiskanja</translation>
 <translation id="4794140124556169553">Izvajanje preizkusa CPE-ja lahko vpliva na delovanje sistema.</translation>
 <translation id="4800589996161293643">Skupnost za Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Preklicano tiskalno opravilo za dokument <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Svetla tema</translation>
 <translation id="4813136279048157860">Moje slike</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Obremenitev</translation>
 <translation id="4897058166682006107">Raven napolnjenosti baterije leve slušalke: <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="4905998861748258752">Vklopite funkcijo, če želite izbrati možnosti ohranjevalnika zaslona.</translation>
+<translation id="4910858703033903787">Vrste APN-ja</translation>
 <translation id="4917385247580444890">Močan</translation>
 <translation id="4917889632206600977">Ustavljeno – zmanjkalo je papirja</translation>
 <translation id="491791267030419270">Nasveti za pisanje povratnih informacij</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Prišlo je do napake. Poskusite znova izbrati zaslonsko ozadje ali znova odpreti aplikacijo.</translation>
 <translation id="5372659122375744710">Omrežje Wi-Fi ni varno</translation>
 <translation id="5376354385557966694">Samodejni svetli način</translation>
+<translation id="5378184552853359930">Vrsta IP-ja</translation>
 <translation id="5389159777326897627">Zaslonsko ozadje in slog</translation>
 <translation id="5389224261615877010">Mavrica</translation>
 <translation id="5400907029458559844">Naprava se povezuje.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Izberite: <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Vpetje</translation>
 <translation id="8206859287963243715">Prenosni</translation>
 <translation id="8208861521865154048">Ugodnosti</translation>
 <translation id="8226628635270268143">Izberite priljubljene fotografije in albume</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Uporabi kot osebno napravo</translation>
 <translation id="9028832514430399253">Vklopite preklop, če želite izbrati možnosti ohranjevalnika zaslona.</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Razreševanje DNS ima veliko zakasnitev.</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb
index 3bcf6b7..6b60cfa8 100644
--- a/chromeos/strings/chromeos_strings_sq.xtb
+++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Është zgjedhur "<ph name="TOPIC_SOURCE_DESC" />" nga "<ph name="TOPIC_SOURCE" />". Shtyp "Enter" për të zgjedhur albumet e "<ph name="TOPIC_SOURCE" />"</translation>
 <translation id="484790837831576105">(Android) Zgjidhja e DNS-së</translation>
 <translation id="4848429997038228357">NË EKZEKUTIM</translation>
+<translation id="4854586501323951986">Ekrani me prekje i integruar</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} përpjekje e mbetur}other{<ph name="ERROR_MESSAGE" /> {0} përpjekje të mbetura}}</translation>
 <translation id="4873827928179867585">Algoritmi i vërtetimit</translation>
 <translation id="4880328057631981605">Emri i pikës së qasjes</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Shto një skedar</translation>
 <translation id="6410257289063177456">Skedarët e imazheve</translation>
 <translation id="641081527798843608">Përputhja e subjektit</translation>
+<translation id="6412715219990689313">Tastiera e integruar</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">I dobët (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Shko te cilësimet e llogarisë</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Lloji i skedarit</translation>
 <translation id="73631062356239394">Ndaj të dhënat diagnostikuese</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Blloku me prekje i integruar</translation>
 <translation id="7397270852490618635">Çaktivizo temën e ndriçuar</translation>
 <translation id="741244894080940828">konvertimi</translation>
 <translation id="7415801143053185905">Vonesë shumë e lartë e HTTP-së</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index e92f2a9..5732990 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Isprobajte korake za rešavanje problema</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Povežite se na mrežu i ponovo učitajte stranicu da biste videli čuvar ekrana.</translation>
+<translation id="2056550196601855911">IPv4 ili IPv6</translation>
 <translation id="2080070583977670716">Više podešavanja</translation>
 <translation id="2085089206770112532">Smanjite osvetljenost ekrana</translation>
 <translation id="2105810540595158374">Uređaj je kontroler za igre.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algoritam komprimovanja</translation>
 <translation id="4794140124556169553">Pokretanje testa procesora može da utiče na učinak sistema</translation>
 <translation id="4800589996161293643">Chromebook zajednica</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Otkazan je zadatak štampanja <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Svetla tema</translation>
 <translation id="4813136279048157860">Moje slike</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4897058166682006107">Uređaj ima <ph name="BATTERY_PERCENTAGE" />% baterije leve slušalice.</translation>
 <translation id="4905998861748258752">Uključite funkciju da biste izabrali opcije čuvara ekrana</translation>
+<translation id="4910858703033903787">Tipovi naziva pristupne tačke</translation>
 <translation id="4917385247580444890">Jak</translation>
 <translation id="4917889632206600977">Zaustavljeno – nema više papira</translation>
 <translation id="491791267030419270">Saveti za pisanje povratnih informacija</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Došlo je do greške. Probajte ponovo da odaberete pozadinu ili otvorite ponovo aplikaciju.</translation>
 <translation id="5372659122375744710">WiFi mreža nije bezbedna</translation>
 <translation id="5376354385557966694">Automatski svetli režim</translation>
+<translation id="5378184552853359930">Tip IP adrese</translation>
 <translation id="5389159777326897627">Pozadina i stil</translation>
 <translation id="5389224261615877010">Duga</translation>
 <translation id="5400907029458559844">Uređaj se povezuje.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Izaberite <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Prilog</translation>
 <translation id="8206859287963243715">Mobilni uređaj</translation>
 <translation id="8208861521865154048">Pogodnosti</translation>
 <translation id="8226628635270268143">Odaberite omiljene slike i albume</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Koristi kao lični uređaj</translation>
 <translation id="9028832514430399253">Uključite prekidač da biste izabrali opcije čuvara ekrana</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPV6</translation>
 <translation id="9062831201344759865">DNS razrešavanje ima veliko kašnjenje</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index 1096bdd..15843a6d 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Испробајте кораке за решавање проблема</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Повежите се на мрежу и поново учитајте страницу да бисте видели чувар екрана.</translation>
+<translation id="2056550196601855911">IPv4 или IPv6</translation>
 <translation id="2080070583977670716">Више подешавања</translation>
 <translation id="2085089206770112532">Смањите осветљеност екрана</translation>
 <translation id="2105810540595158374">Уређај је контролер за игре.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Алгоритам компримовања</translation>
 <translation id="4794140124556169553">Покретање теста процесора може да утиче на учинак система</translation>
 <translation id="4800589996161293643">Chromebook заједница</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Отказан је задатак штампања <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Светла тема</translation>
 <translation id="4813136279048157860">Моје слике</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Стрес</translation>
 <translation id="4897058166682006107">Уређај има <ph name="BATTERY_PERCENTAGE" />% батерије леве слушалице.</translation>
 <translation id="4905998861748258752">Укључите функцију да бисте изабрали опције чувара екрана</translation>
+<translation id="4910858703033903787">Типови назива приступне тачке</translation>
 <translation id="4917385247580444890">Јак</translation>
 <translation id="4917889632206600977">Заустављено – нема више папира</translation>
 <translation id="491791267030419270">Савети за писање повратних информација</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Дошло је до грешке. Пробајте поново да одаберете позадину или отворите поново апликацију.</translation>
 <translation id="5372659122375744710">WiFi мрежа није безбедна</translation>
 <translation id="5376354385557966694">Аутоматски светли режим</translation>
+<translation id="5378184552853359930">Тип IP адресе</translation>
 <translation id="5389159777326897627">Позадина и стил</translation>
 <translation id="5389224261615877010">Дуга</translation>
 <translation id="5400907029458559844">Уређај се повезује.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Изаберите <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Прилог</translation>
 <translation id="8206859287963243715">Мобилни уређај</translation>
 <translation id="8208861521865154048">Погодности</translation>
 <translation id="8226628635270268143">Одаберите омиљене слике и албуме</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Користи као лични уређај</translation>
 <translation id="9028832514430399253">Укључите прекидач да бисте изабрали опције чувара екрана</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPV6</translation>
 <translation id="9062831201344759865">DNS разрешавање има велико кашњење</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index d8e9b5e..aaebf13 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Testa felsökningsstegen</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Anslut till ett nätverk och läs in sidan igen för att se skärmsläckaren.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Fler inställningar</translation>
 <translation id="2085089206770112532">Tangenten som minskar skärmens ljusstyrka</translation>
 <translation id="2105810540595158374">Enheten är en spelkontroll.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Komprimeringsalgoritm</translation>
 <translation id="4794140124556169553">Systemet kan bli långsammare när du kör ett CPU-test</translation>
 <translation id="4800589996161293643">Community för Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Utskriftsjobbet <ph name="DOCUMENT_TITLE" /> har avbrutits</translation>
 <translation id="4809927044794281115">Ljust tema</translation>
 <translation id="4813136279048157860">Mina bilder</translation>
@@ -396,6 +398,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> har markerats. Välj album i <ph name="TOPIC_SOURCE" /> genom att trycka på Retur</translation>
 <translation id="484790837831576105">(Android) DNS-upplösning</translation>
 <translation id="4848429997038228357">KÖRS</translation>
+<translation id="4854586501323951986">Inbyggd pekskärm</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} försök kvar}other{<ph name="ERROR_MESSAGE" /> {0} försök kvar}}</translation>
 <translation id="4873827928179867585">Autentiseringsalgoritm</translation>
 <translation id="4880328057631981605">Namn på åtkomstpunkt (APN)</translation>
@@ -404,6 +407,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4897058166682006107">Batterinivån för vänster hörsnäcka på enheten är <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="4905998861748258752">Aktivera funktionen om du vill välja alternativ för skärmsläckaren</translation>
+<translation id="4910858703033903787">APN-typer</translation>
 <translation id="4917385247580444890">Stark</translation>
 <translation id="4917889632206600977">Har stoppats – slut på papper</translation>
 <translation id="491791267030419270">Tips för att skriva feedback</translation>
@@ -459,6 +463,7 @@
 <translation id="5358174242040570474">Något gick fel. Testa att välja en bakgrund igen eller öppna appen på nytt.</translation>
 <translation id="5372659122375744710">wifi-nätverket är inte säkert</translation>
 <translation id="5376354385557966694">Automatiskt ljust läge</translation>
+<translation id="5378184552853359930">IP-typ</translation>
 <translation id="5389159777326897627">Bakgrund och stil</translation>
 <translation id="5389224261615877010">Regnbåge</translation>
 <translation id="5400907029458559844">Enheter ansluter.</translation>
@@ -569,6 +574,7 @@
 <translation id="6394634179843537518">Lägg till en fil</translation>
 <translation id="6410257289063177456">Bildfiler</translation>
 <translation id="641081527798843608">Ämnesmatchning</translation>
+<translation id="6412715219990689313">Inbyggt tangentbord</translation>
 <translation id="6423239382391657905">Öppen VPN</translation>
 <translation id="6439505561246192797">Svag (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Öppna kontoinställningar</translation>
@@ -667,6 +673,7 @@
 <translation id="7359657277149375382">Filtyp</translation>
 <translation id="73631062356239394">Dela diagnostikdata</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Inbyggd styrplatta</translation>
 <translation id="7397270852490618635">Inaktivera ljust tema</translation>
 <translation id="741244894080940828">Räkna om</translation>
 <translation id="7415801143053185905">Mycket hög HTTS-latens</translation>
@@ -740,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Välj <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Bifoga</translation>
 <translation id="8206859287963243715">Mobil</translation>
 <translation id="8208861521865154048">Förmåner</translation>
 <translation id="8226628635270268143">Välj favoritfoton och favoritalbum</translation>
@@ -828,6 +836,7 @@
 <translation id="9025198690966128418">Använd som personlig enhet</translation>
 <translation id="9028832514430399253">Aktivera inställningen om du vill välja alternativ för skärmsläckaren</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-upplösningen har hög fördröjning</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index 75e7017..ea4e442 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> தேர்ந்தெடுக்கப்பட்டுள்ளது, <ph name="TOPIC_SOURCE" /> ஆல்பங்களைத் தேர்ந்தெடுக்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="484790837831576105">(Android) DNS ரெசல்யூஷன்</translation>
 <translation id="4848429997038228357">நடைபெறுவது</translation>
+<translation id="4854586501323951986">உள்ளமைந்த டச்ஸ்கிரீன்</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} முயற்சி மீதமுள்ளது}other{<ph name="ERROR_MESSAGE" /> {0} முயற்சிகள் மீதமுள்ளன}}</translation>
 <translation id="4873827928179867585">அங்கீகரிப்பு அல்காரிதம்</translation>
 <translation id="4880328057631981605">ஆக்சஸ் பாயிண்ட் நேம்</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">ஃபைலைச் சேர்</translation>
 <translation id="6410257289063177456">பட ஃபைல்கள்</translation>
 <translation id="641081527798843608">சப்ஜெக்ட் மேட்ச்</translation>
+<translation id="6412715219990689313">உள்ளமைந்த கீபோர்டு</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">மோசமாக உள்ளது (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">கணக்கு அமைப்புகளுக்குச் செல்லும்</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">ஃபைல் வகை</translation>
 <translation id="73631062356239394">கண்டறிதல் தரவைப் பகிர்தல்</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">உள்ளமைந்த டச்பேட்</translation>
 <translation id="7397270852490618635">லைட் தீமினை முடக்குதல்</translation>
 <translation id="741244894080940828">கன்வெர்ஷன்</translation>
 <translation id="7415801143053185905">HTTP கோரிக்கைகள் மிகவும் அதிக நேரம் எடுத்துக்கொள்கின்றன</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index 719155e..72bcbcc8 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> seçildi, <ph name="TOPIC_SOURCE" /> albümlerini seçmek için Enter tuşuna basın</translation>
 <translation id="484790837831576105">(Android) DNS çözümleme</translation>
 <translation id="4848429997038228357">ÇALIŞIYOR</translation>
+<translation id="4854586501323951986">Yerleşik dokunmatik ekran</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} deneme hakkınız kaldı}other{<ph name="ERROR_MESSAGE" /> {0} deneme hakkınız kaldı}}</translation>
 <translation id="4873827928179867585">Kimlik doğrulama algoritması</translation>
 <translation id="4880328057631981605">Erişim noktası adı</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Dosya ekle</translation>
 <translation id="6410257289063177456">Resim Dosyaları</translation>
 <translation id="641081527798843608">Konu eşleştirmesi</translation>
+<translation id="6412715219990689313">Yerleşik klavye</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Zayıf (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Hesap ayarlarına git</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Dosya türü</translation>
 <translation id="73631062356239394">Teşhis verilerini paylaşın</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Yerleşik dokunmatik alan</translation>
 <translation id="7397270852490618635">Açık temayı kapat</translation>
 <translation id="741244894080940828">dönüştürme</translation>
 <translation id="7415801143053185905">Çok yüksek HTTP gecikmesi</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index efcf874..220e6a41 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">ٹربل شوٹنگ اقدامات کو آزمائیں</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">براہ کرم کسی نیٹ ورک سے منسلک ہوں اور اسکرین سیور دیکھنے کے لیے صفحے کو دوبارہ لوڈ کریں۔</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">مزید ترتیبات</translation>
 <translation id="2085089206770112532">ڈسپلے کی چمک کم کرنے کی کلید</translation>
 <translation id="2105810540595158374">آلہ ایک گیم کنٹرولر ہے۔</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">کمپریشن الگورتھم</translation>
 <translation id="4794140124556169553">‏CPU ٹیسٹ چلانے سے آپ کے سسٹم کی کارکردگی متاثر ہو سکتی ہے</translation>
 <translation id="4800589996161293643">‏Chromebook کمیونٹی</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> پرنٹ جاب منسوخ کر دی گئی</translation>
 <translation id="4809927044794281115">ہلکی تھیم</translation>
 <translation id="4813136279048157860">میری تصاویر</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">اسٹریس</translation>
 <translation id="4897058166682006107">آلے کے بائیں بڈ میں <ph name="BATTERY_PERCENTAGE" />فیصد بیٹری ہے۔</translation>
 <translation id="4905998861748258752">اسکرین سیور کے اختیارات کو منتخب کرنے کے لیے خصوصیت کو آن کریں</translation>
+<translation id="4910858703033903787">‏APN کی اقسام</translation>
 <translation id="4917385247580444890">مضبوط</translation>
 <translation id="4917889632206600977">رک گیا - کاغذ ختم ہو گیا</translation>
 <translation id="491791267030419270">تاثرات لکھنے کے متعلق تجاویز</translation>
@@ -459,6 +462,7 @@
 <translation id="5358174242040570474">کچھ غلط ہوگیا۔ وال پیپر کو دوبارہ منتخب کرنے کی کوشش کریں یا ایپ کو دوبارہ کھولیں۔</translation>
 <translation id="5372659122375744710">‏WiFi نیٹ ورک محفوظ نہیں ہے</translation>
 <translation id="5376354385557966694">خودکار لائٹ موڈ</translation>
+<translation id="5378184552853359930">‏IP کی قسم</translation>
 <translation id="5389159777326897627">وال پیپر اور اسٹائل</translation>
 <translation id="5389224261615877010">قوس قزح</translation>
 <translation id="5400907029458559844">آلہ منسلک ہو رہا ہے۔</translation>
@@ -742,6 +746,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> منتخب کریں</translation>
 <translation id="8179976553408161302">انٹر</translation>
+<translation id="8183974620058026102">منسلک کریں</translation>
 <translation id="8206859287963243715">سیلولر</translation>
 <translation id="8208861521865154048">فوائد</translation>
 <translation id="8226628635270268143">اپنی پسندیدہ تصاویر اور البمز منتخب کریں</translation>
@@ -830,6 +835,7 @@
 <translation id="9025198690966128418">ذاتی آلے کے طور پر استعمال کریں</translation>
 <translation id="9028832514430399253">اسکرین سیور کے اختیارات کو منتخب کرنے کے لیے ٹوگل آن کریں</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">‏DNS ریزولیوشن کی تاخیر بہت زیادہ ہے</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">بلوٹوتھ</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index 081b3b4..592a9e8 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Thử các bước khắc phục vấn đề</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Vui lòng kết nối mạng và tải lại trang để xem trình bảo vệ màn hình.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Chế độ cài đặt khác</translation>
 <translation id="2085089206770112532">Giảm độ sáng màn hình</translation>
 <translation id="2105810540595158374">Thiết bị là tay điều khiển trò chơi.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Thuật toán nén</translation>
 <translation id="4794140124556169553">Việc chạy quá trình kiểm tra CPU có thể ảnh hưởng đến hiệu suất của hệ thống</translation>
 <translation id="4800589996161293643">Cộng đồng Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Đã hủy lệnh in <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Giao diện sáng</translation>
 <translation id="4813136279048157860">Hình ảnh của tôi</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Độ ổn định</translation>
 <translation id="4897058166682006107">Tai nghe trái còn <ph name="BATTERY_PERCENTAGE" />% pin.</translation>
 <translation id="4905998861748258752">Bật tính năng này để chọn trình bảo vệ màn hình</translation>
+<translation id="4910858703033903787">Loại APN</translation>
 <translation id="4917385247580444890">Mạnh</translation>
 <translation id="4917889632206600977">Đã dừng – Hết giấy</translation>
 <translation id="491791267030419270">Mẹo viết phản hồi</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Đã xảy ra lỗi. Hãy thử chọn lại hình nền hoặc mở lại ứng dụng.</translation>
 <translation id="5372659122375744710">Mạng Wi-Fi không bảo mật</translation>
 <translation id="5376354385557966694">Chế độ sáng tự động</translation>
+<translation id="5378184552853359930">Loại IP</translation>
 <translation id="5389159777326897627">Hình nền và phong cách</translation>
 <translation id="5389224261615877010">Cầu vồng</translation>
 <translation id="5400907029458559844">Thiết bị đang kết nối.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Chọn <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Đính kèm</translation>
 <translation id="8206859287963243715">Di động</translation>
 <translation id="8208861521865154048">Đặc quyền</translation>
 <translation id="8226628635270268143">Chọn ảnh và album bạn yêu thích</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Dùng làm thiết bị cá nhân</translation>
 <translation id="9028832514430399253">Bật nút chuyển để chọn trình bảo vệ màn hình</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Quá trình phân giải DNS có độ trễ cao</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/components/autofill/content/renderer/password_generation_agent.cc b/components/autofill/content/renderer/password_generation_agent.cc
index 68e82463..9394884 100644
--- a/components/autofill/content/renderer/password_generation_agent.cc
+++ b/components/autofill/content/renderer/password_generation_agent.cc
@@ -22,6 +22,7 @@
 #include "components/autofill/core/common/password_form_generation_data.h"
 #include "components/autofill/core/common/password_generation_util.h"
 #include "components/autofill/core/common/signatures.h"
+#include "components/password_manager/core/common/password_manager_features.h"
 #include "content/public/renderer/render_frame.h"
 #include "google_apis/gaia/gaia_urls.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
@@ -485,11 +486,16 @@
     return true;
   }
 
-  // Assume that if the password field has less than
-  // |kMaximumCharsForGenerationOffer| characters then the user is not finished
+  // Assume that if the password field has less than or equal to
+  // `kMaximumCharsForGenerationOffer` characters, then the user is not finished
   // typing their password and display the password suggestion.
+  // With `kPasswordStrengthIndicator` enabled the decision to display the
+  // suggestion needs to be calculated in the browser process based on the
+  // strength of the typed password.
   if (!element.IsReadOnly() && element.IsEnabled() &&
-      element.Value().length() <= kMaximumCharsForGenerationOffer) {
+      (element.Value().length() <= kMaximumCharsForGenerationOffer ||
+       base::FeatureList::IsEnabled(
+           password_manager::features::kPasswordStrengthIndicator))) {
     MaybeOfferAutomaticGeneration();
     return true;
   }
@@ -533,7 +539,9 @@
   }
 
   if (!current_generation_item_->password_is_generated_ &&
-      element.Value().length() > kMaximumCharsForGenerationOffer) {
+      element.Value().length() > kMaximumCharsForGenerationOffer &&
+      !base::FeatureList::IsEnabled(
+          password_manager::features::kPasswordStrengthIndicator)) {
     // User has rejected the feature and has started typing a password.
     GenerationRejectedByTyping();
   } else {
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index 7331c7d..91145f4 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -1519,6 +1519,9 @@
 }
 
 VisitID HistoryBackend::UpdateSyncedVisit(
+    const GURL& url,
+    const std::u16string& title,
+    bool hidden,
     const VisitRow& visit,
     const absl::optional<VisitContextAnnotations>& context_annotations,
     const absl::optional<VisitContentAnnotations>& content_annotations) {
@@ -1550,6 +1553,18 @@
     return 0;
   }
 
+  // If we can't find the corresponding URLRow, or its actual URL doesn't match,
+  // something's wrong.
+  URLRow url_row;
+  if (!db_->GetURLRow(original_row.url_id, &url_row) || url_row.url() != url) {
+    return 0;
+  }
+
+  // Update the URLRow - its title may have changed.
+  url_row.set_title(title);
+  url_row.set_hidden(hidden);
+  db_->UpdateURLRow(url_row.id(), url_row);
+
   VisitRow updated_row = visit;
   // The fields `visit_id` and `url_id` aren't set in visits coming from sync,
   // so take those from the existing row.
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h
index 3eb0db4..6d3891fa 100644
--- a/components/history/core/browser/history_backend.h
+++ b/components/history/core/browser/history_backend.h
@@ -605,6 +605,9 @@
   // instead. Returns the local VisitID of the updated visit, or 0 if no
   // matching visit was found.
   VisitID UpdateSyncedVisit(
+      const GURL& url,
+      const std::u16string& title,
+      bool hidden,
       const VisitRow& visit,
       const absl::optional<VisitContextAnnotations>& context_annotations,
       const absl::optional<VisitContentAnnotations>& content_annotations)
diff --git a/components/history/core/browser/sync/history_backend_for_sync.h b/components/history/core/browser/sync/history_backend_for_sync.h
index 761a811..1dca820b 100644
--- a/components/history/core/browser/sync/history_backend_for_sync.h
+++ b/components/history/core/browser/sync/history_backend_for_sync.h
@@ -45,6 +45,9 @@
       const absl::optional<VisitContextAnnotations>& context_annotations,
       const absl::optional<VisitContentAnnotations>& content_annotations) = 0;
   virtual VisitID UpdateSyncedVisit(
+      const GURL& url,
+      const std::u16string& title,
+      bool hidden,
       const VisitRow& visit,
       const absl::optional<VisitContextAnnotations>& context_annotations,
       const absl::optional<VisitContentAnnotations>& content_annotations) = 0;
diff --git a/components/history/core/browser/sync/history_sync_bridge.cc b/components/history/core/browser/sync/history_sync_bridge.cc
index 54d0af1..42ab383 100644
--- a/components/history/core/browser/sync/history_sync_bridge.cc
+++ b/components/history/core/browser/sync/history_sync_bridge.cc
@@ -983,13 +983,14 @@
   // TODO(crbug.com/1341636): Add an integration test to ensure that updates
   // don't break referrer/opener links.
   VisitID updated_visit_id = history_backend_->UpdateSyncedVisit(
-      final_visit_row, context_annotations, content_annotations);
+      GURL(specifics.redirect_entries(index).url()),
+      base::UTF8ToUTF16(specifics.redirect_entries(index).title()),
+      specifics.redirect_entries(index).hidden(), final_visit_row,
+      context_annotations, content_annotations);
   if (updated_visit_id == 0) {
     return false;
   }
 
-  // TODO(crbug.com/1393079): Handle updates to the URL-related fields
-  // (notably the title - other fields probably can't change).
   return true;
 }
 
diff --git a/components/history/core/browser/sync/history_sync_bridge_unittest.cc b/components/history/core/browser/sync/history_sync_bridge_unittest.cc
index 6ee98c5..b61b89a 100644
--- a/components/history/core/browser/sync/history_sync_bridge_unittest.cc
+++ b/components/history/core/browser/sync/history_sync_bridge_unittest.cc
@@ -12,6 +12,7 @@
 #include <vector>
 
 #include "base/test/task_environment.h"
+#include "base/time/time.h"
 #include "components/history/core/browser/sync/history_sync_metadata_database.h"
 #include "components/history/core/browser/sync/test_history_backend_for_sync.h"
 #include "components/sync/base/page_transition_conversion.h"
@@ -1020,6 +1021,34 @@
   EXPECT_FALSE(history2.redirect_chain_end_incomplete());
 }
 
+TEST_F(HistorySyncBridgeTest, DownloadsUpdatedEntity) {
+  // Start syncing (with no data yet).
+  ApplyInitialSyncChanges({});
+
+  // A remote visit comes in.
+  sync_pb::HistorySpecifics remote_specifics =
+      CreateSpecifics(base::Time::Now() - base::Seconds(5), "remote_cache_guid",
+                      GURL("https://remote.com"));
+  ApplySyncChanges({remote_specifics});
+
+  // Make sure it has neither a URL title nor a visit duration.
+  ASSERT_EQ(backend()->GetURLs().size(), 1u);
+  ASSERT_TRUE(backend()->GetURLs()[0].title().empty());
+  ASSERT_EQ(backend()->GetVisits().size(), 1u);
+  ASSERT_EQ(backend()->GetVisits()[0].visit_duration, base::TimeDelta());
+
+  // The remote visit gets updated with a URL title and visit duration.
+  remote_specifics.mutable_redirect_entries(0)->set_title("Title");
+  remote_specifics.set_visit_duration_micros(1234);
+  ApplySyncChanges({remote_specifics});
+
+  // Make sure these changes arrived in the backend.
+  ASSERT_EQ(backend()->GetURLs().size(), 1u);
+  EXPECT_EQ(backend()->GetURLs()[0].title(), u"Title");
+  ASSERT_EQ(backend()->GetVisits().size(), 1u);
+  EXPECT_EQ(backend()->GetVisits()[0].visit_duration, base::Microseconds(1234));
+}
+
 TEST_F(HistorySyncBridgeTest, UntracksEntitiesAfterCommit) {
   // Start syncing (with no data yet).
   ApplyInitialSyncChanges({});
diff --git a/components/history/core/browser/sync/test_history_backend_for_sync.cc b/components/history/core/browser/sync/test_history_backend_for_sync.cc
index 2a14eec..99c1751 100644
--- a/components/history/core/browser/sync/test_history_backend_for_sync.cc
+++ b/components/history/core/browser/sync/test_history_backend_for_sync.cc
@@ -209,9 +209,19 @@
 }
 
 VisitID TestHistoryBackendForSync::UpdateSyncedVisit(
+    const GURL& url,
+    const std::u16string& title,
+    bool hidden,
     const VisitRow& visit,
     const absl::optional<VisitContextAnnotations>& context_annotations,
     const absl::optional<VisitContentAnnotations>& content_annotations) {
+  for (URLRow& existing_url : urls_) {
+    if (existing_url.url() == url) {
+      existing_url.set_title(title);
+      existing_url.set_hidden(hidden);
+    }
+  }
+
   for (VisitRow& existing_visit : visits_) {
     if (existing_visit.originator_cache_guid == visit.originator_cache_guid &&
         existing_visit.originator_visit_id == visit.originator_visit_id) {
diff --git a/components/history/core/browser/sync/test_history_backend_for_sync.h b/components/history/core/browser/sync/test_history_backend_for_sync.h
index 274961f7..a1130d9 100644
--- a/components/history/core/browser/sync/test_history_backend_for_sync.h
+++ b/components/history/core/browser/sync/test_history_backend_for_sync.h
@@ -58,6 +58,9 @@
       const absl::optional<VisitContentAnnotations>& content_annotations)
       override;
   VisitID UpdateSyncedVisit(
+      const GURL& url,
+      const std::u16string& title,
+      bool hidden,
       const VisitRow& visit,
       const absl::optional<VisitContextAnnotations>& context_annotations,
       const absl::optional<VisitContentAnnotations>& content_annotations)
diff --git a/components/net_log/net_export_file_writer.h b/components/net_log/net_export_file_writer.h
index cdd0d1d..8607d774 100644
--- a/components/net_log/net_export_file_writer.h
+++ b/components/net_log/net_export_file_writer.h
@@ -126,7 +126,8 @@
   // log; it's for adding additional info to the log that aren't events.
   void StopNetLog(base::Value::Dict polled_data = base::Value::Dict());
 
-  // Creates a DictionaryValue summary of the state of the NetExportFileWriter
+  // Creates a `base::Value::Dict` summary of the state of the
+  // `NetExportFileWriter`.
   base::Value::Dict GetState() const;
 
   // Gets the log filepath. |path_callback| will be used to notify the caller
diff --git a/components/net_log/net_export_file_writer_unittest.cc b/components/net_log/net_export_file_writer_unittest.cc
index 69aeb4d..17a574b 100644
--- a/components/net_log/net_export_file_writer_unittest.cc
+++ b/components/net_log/net_export_file_writer_unittest.cc
@@ -40,6 +40,7 @@
 #include "services/network/test/fake_test_cert_verifier_params_factory.h"
 #include "services/network/test/test_network_context.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace {
 
@@ -167,7 +168,7 @@
 
 [[nodiscard]] ::testing::AssertionResult ReadCompleteLogFile(
     const base::FilePath& log_path,
-    std::unique_ptr<base::DictionaryValue>* root) {
+    std::unique_ptr<base::Value::Dict>* root) {
   DCHECK(!log_path.empty());
 
   if (!base::PathExists(log_path)) {
@@ -211,23 +212,24 @@
     return ::testing::AssertionFailure()
            << log_path.value() << " could not be read.";
   }
-  *root =
-      base::DictionaryValue::From(base::JSONReader::ReadDeprecated(log_string));
-  if (!*root) {
+  absl::optional<base::Value> log_parsed = base::JSONReader::Read(log_string);
+  if (!log_parsed || !log_parsed->is_dict()) {
     return ::testing::AssertionFailure()
            << "Contents of " << log_path.value()
            << " do not form valid JSON dictionary.";
   }
+
+  *root = std::make_unique<base::Value::Dict>(std::move(log_parsed->GetDict()));
   // Make sure the "constants" section exists
-  base::DictionaryValue* constants;
-  if (!(*root)->GetDictionary("constants", &constants)) {
+  const base::Value::Dict* constants = (*root)->FindDict("constants");
+  if (!constants) {
     root->reset();
     return ::testing::AssertionFailure()
            << log_path.value() << " is missing constants.";
   }
   // Make sure the "events" section exists
-  base::ListValue* events;
-  if (!(*root)->GetList("events", &events)) {
+  base::Value::List* events = (*root)->FindList("events");
+  if (!events) {
     root->reset();
     return ::testing::AssertionFailure()
            << log_path.value() << " is missing events list.";
@@ -444,7 +446,7 @@
     }
 
     // Make sure the generated log file is valid.
-    std::unique_ptr<base::DictionaryValue> root;
+    std::unique_ptr<base::Value::Dict> root;
     result = ReadCompleteLogFile(expected_log_path, &root);
     if (!result) {
       return ::testing::AssertionFailure()
@@ -706,19 +708,21 @@
                                             kCaptureModeDefaultString));
 
   // Read polledData from log file.
-  std::unique_ptr<base::DictionaryValue> root;
+  std::unique_ptr<base::Value::Dict> root;
   ASSERT_TRUE(ReadCompleteLogFile(default_log_path(), &root));
-  base::DictionaryValue* polled_data;
-  ASSERT_TRUE(root->GetDictionary("polledData", &polled_data));
+  const base::Value::Dict* polled_data = root->FindDict("polledData");
+  ASSERT_TRUE(polled_data);
 
   // Check that it contains the field from the polled data that was passed in.
-  std::string dummy_string;
-  ASSERT_TRUE(polled_data->GetString(kDummyPolledDataPath, &dummy_string));
-  EXPECT_EQ(kDummyPolledDataString, dummy_string);
+  const std::string* dummy_string =
+      polled_data->FindString(kDummyPolledDataPath);
+  ASSERT_TRUE(dummy_string);
+  EXPECT_EQ(kDummyPolledDataString, *dummy_string);
 
   // Check that it also contains something from net::GetNetInfo.
-  base::DictionaryValue* http_cache_info;
-  ASSERT_TRUE(polled_data->GetDictionary("httpCacheInfo", &http_cache_info));
+  const base::Value::Dict* http_cache_info =
+      polled_data->FindDict("httpCacheInfo");
+  ASSERT_TRUE(http_cache_info);
 }
 
 // Test with requests in flight. This is done by going through a sequence of a
@@ -789,18 +793,18 @@
   ASSERT_TRUE(StopThenVerifyNewStateAndFile(
       base::FilePath(), base::Value::Dict(), kCaptureModeDefaultString));
   // Read events from log file.
-  std::unique_ptr<base::DictionaryValue> root;
+  std::unique_ptr<base::Value::Dict> root;
   ASSERT_TRUE(ReadCompleteLogFile(default_log_path(), &root));
-  base::ListValue* events;
-  ASSERT_TRUE(root->GetList("events", &events));
+  const base::Value::List* events = root->FindList("events");
+  ASSERT_TRUE(events);
 
   // Check there is at least one event as a result of the ongoing request.
-  ASSERT_GE(events->GetList().size(), 1u);
+  ASSERT_GE(events->size(), 1u);
 
   // Check the URL in the params of the first event.
-  base::Value::Dict* event = events->GetList()[0].GetIfDict();
+  const base::Value::Dict* event = (*events)[0].GetIfDict();
   EXPECT_TRUE(event);
-  base::Value::Dict* event_params = event->FindDict("params");
+  const base::Value::Dict* event_params = event->FindDict("params");
   EXPECT_TRUE(event_params);
   EXPECT_EQ(test_server.GetURL(kRedirectURL),
             *(event_params->FindString("url")));
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
index 9c1bab6..9d14530 100644
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
@@ -361,7 +361,6 @@
       "http_credentials_cleaner.h",
       "password_scripts_fetcher.h",
     ]
-    deps += [ "//components/autofill_assistant/browser/public" ]
   }
 
   if (!is_android && !is_ios) {
@@ -413,7 +412,6 @@
     deps = [
       ":browser",
       "//base",
-      "//components/autofill_assistant/browser/public",
       "//components/password_manager/core/common:features",
       "//components/password_manager/services/csv_password:service",
       "//url",
@@ -757,7 +755,6 @@
     sources += [ "login_database_ios_unittest.cc" ]
   } else {
     sources += [
-      "capabilities_service_impl_unittest.cc",
       "http_credentials_cleaner_unittest.cc",
       "saved_passwords_capabilities_fetcher_unittest.cc",
     ]
@@ -840,8 +837,6 @@
 
   if (!is_ios) {
     deps += [
-      "//components/autofill_assistant/browser/public",
-      "//components/autofill_assistant/browser/public:unit_test_support",
       "//components/password_manager/core/browser/import:importer",
       "//components/password_manager/core/browser/import:importer_unit_tests",
     ]
diff --git a/components/password_manager/core/browser/DEPS b/components/password_manager/core/browser/DEPS
index ed9ff2a..2354192 100644
--- a/components/password_manager/core/browser/DEPS
+++ b/components/password_manager/core/browser/DEPS
@@ -1,6 +1,5 @@
 include_rules = [
   "+components/autofill/core/browser",
-  "+components/autofill_assistant/browser/public",
   "+components/device_reauth",
   "+components/favicon/core",
   "+components/keyed_service/core",
diff --git a/components/password_manager/core/browser/capabilities_service_impl.cc b/components/password_manager/core/browser/capabilities_service_impl.cc
index 9c75fd4..c9cce334 100644
--- a/components/password_manager/core/browser/capabilities_service_impl.cc
+++ b/components/password_manager/core/browser/capabilities_service_impl.cc
@@ -4,95 +4,17 @@
 
 #include "components/password_manager/core/browser/capabilities_service_impl.h"
 
-#include "base/containers/flat_set.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/ranges/algorithm.h"
-#include "base/stl_util.h"
-#include "base/strings/string_split.h"
-#include "components/autofill_assistant/browser/public/autofill_assistant.h"
-#include "components/password_manager/core/common/password_manager_features.h"
-#include "net/http/http_status_code.h"
-#include "url/gurl.h"
+#include <set>
 
-namespace {
+#include "base/callback.h"
+#include "url/origin.h"
 
-// Number of leading bits of the domain url hashes to send to the server.
-constexpr uint32_t kHashPrefixSize = 15;
-
-constexpr char kRequestIntent[] = "PASSWORD_CHANGE";
-// Parameter that specifies the script's experiments.
-const char kExperimentsParameterName[] = "EXPERIMENT_IDS";
-// Server side experiment id that specifies when a script has only been released
-// to a small subset of clients.
-const char kScriptLiveExperiment[] = "3345172";
-
-bool ScriptInLiveExperiment(
-    const base::flat_map<std::string, std::string>& script_parameters) {
-  auto params_iter = script_parameters.find(kExperimentsParameterName);
-  if (params_iter == script_parameters.end()) {
-    return false;
-  }
-
-  const std::vector<std::string> experiments = base::SplitString(
-      params_iter->second, ",", base::WhitespaceHandling::TRIM_WHITESPACE,
-      base::SplitResult::SPLIT_WANT_NONEMPTY);
-
-  return base::ranges::count(experiments, kScriptLiveExperiment) > 0;
-}
-
-}  // namespace
-
-CapabilitiesServiceImpl::CapabilitiesServiceImpl(
-    std::unique_ptr<autofill_assistant::AutofillAssistant> autofill_assistant)
-    : autofill_assistant_(std::move(autofill_assistant)) {}
+CapabilitiesServiceImpl::CapabilitiesServiceImpl() = default;
 
 CapabilitiesServiceImpl::~CapabilitiesServiceImpl() = default;
 
 void CapabilitiesServiceImpl::QueryPasswordChangeScriptAvailability(
     const std::vector<url::Origin>& origins,
     ResponseCallback callback) {
-  if (origins.empty()) {
-    std::move(callback).Run(std::set<url::Origin>());
-    return;
-  }
-
-  std::vector<uint64_t> hash_prefixes;
-  base::ranges::transform(
-      origins, std::back_inserter(hash_prefixes),
-      [](const url::Origin& origin) {
-        return autofill_assistant::AutofillAssistant::GetHashPrefix(
-            kHashPrefixSize, origin);
-      });
-
-  autofill_assistant_->GetCapabilitiesByHashPrefix(
-      kHashPrefixSize, hash_prefixes, kRequestIntent,
-      base::BindOnce(&CapabilitiesServiceImpl::OnGetCapabilitiesResult,
-                     base::Unretained(this), origins, std::move(callback)));
-}
-
-void CapabilitiesServiceImpl::OnGetCapabilitiesResult(
-    const std::vector<url::Origin>& origins,
-    ResponseCallback callback,
-    int http_status,
-    const std::vector<CapabilitiesInfo>& infos) {
-  base::UmaHistogramSparse(
-      "PasswordManager.CapabilitiesService.HttpResponseCode", http_status);
-  if (http_status != net::HTTP_OK) {
-    std::move(callback).Run(std::set<url::Origin>());
-    return;
-  }
-
-  std::set<url::Origin> infos_origin_set;
-  for (const CapabilitiesInfo& info : infos) {
-    // Checks if the script is visible to the client.
-    if (password_manager::features::kPasswordChangeLiveExperimentParam.Get() ||
-        !ScriptInLiveExperiment(info.script_parameters)) {
-      infos_origin_set.insert(url::Origin::Create(GURL(info.url)));
-    }
-  }
-  std::set<url::Origin> origins_set(origins.begin(), origins.end());
-  std::set<url::Origin> response =
-      base::STLSetIntersection<std::set<url::Origin>>(origins_set,
-                                                      infos_origin_set);
-  std::move(callback).Run(response);
+  std::move(callback).Run(std::set<url::Origin>());
 }
diff --git a/components/password_manager/core/browser/capabilities_service_impl.h b/components/password_manager/core/browser/capabilities_service_impl.h
index 9fbfb739..8d829b7 100644
--- a/components/password_manager/core/browser/capabilities_service_impl.h
+++ b/components/password_manager/core/browser/capabilities_service_impl.h
@@ -5,14 +5,14 @@
 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CAPABILITIES_SERVICE_IMPL_H_
 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CAPABILITIES_SERVICE_IMPL_H_
 
-#include "components/autofill_assistant/browser/public/autofill_assistant.h"
 #include "components/password_manager/core/browser/capabilities_service.h"
 
+#include "base/callback.h"
+#include "url/origin.h"
+
 class CapabilitiesServiceImpl : public password_manager::CapabilitiesService {
  public:
-  explicit CapabilitiesServiceImpl(
-      std::unique_ptr<autofill_assistant::AutofillAssistant>
-          autofill_assistant);
+  CapabilitiesServiceImpl();
   CapabilitiesServiceImpl(const CapabilitiesServiceImpl&) = delete;
   CapabilitiesServiceImpl& operator=(const CapabilitiesServiceImpl&) = delete;
 
@@ -22,20 +22,6 @@
   void QueryPasswordChangeScriptAvailability(
       const std::vector<url::Origin>& origins,
       ResponseCallback callback) override;
-
- private:
-  using CapabilitiesInfo =
-      autofill_assistant::AutofillAssistant::CapabilitiesInfo;
-
-  void OnGetCapabilitiesResult(
-      const std::vector<url::Origin>& origins,
-      ResponseCallback callback,
-      int http_status,
-      const std::vector<
-          autofill_assistant::AutofillAssistant::CapabilitiesInfo>& infos);
-
-  // Used for capabilities requests.
-  std::unique_ptr<autofill_assistant::AutofillAssistant> autofill_assistant_;
 };
 
 #endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CAPABILITIES_SERVICE_IMPL_H_
diff --git a/components/password_manager/core/browser/capabilities_service_impl_unittest.cc b/components/password_manager/core/browser/capabilities_service_impl_unittest.cc
deleted file mode 100644
index b0a2564d..0000000
--- a/components/password_manager/core/browser/capabilities_service_impl_unittest.cc
+++ /dev/null
@@ -1,205 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/password_manager/core/browser/capabilities_service_impl.h"
-
-#include <set>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/memory/raw_ptr.h"
-#include "base/test/gmock_callback_support.h"
-#include "base/test/metrics/histogram_tester.h"
-#include "base/test/mock_callback.h"
-#include "base/test/scoped_feature_list.h"
-#include "components/autofill_assistant/browser/public/autofill_assistant.h"
-#include "components/autofill_assistant/browser/public/mock_autofill_assistant.h"
-#include "components/password_manager/core/common/password_manager_features.h"
-#include "net/http/http_status_code.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "url/gurl.h"
-
-namespace password_manager {
-namespace {
-
-using ::base::test::RunOnceCallback;
-using ::testing::_;
-using ::testing::NiceMock;
-using CapabilitiesInfo =
-    autofill_assistant::AutofillAssistant::CapabilitiesInfo;
-
-constexpr uint32_t kHashPrefixSize = 15;
-constexpr uint64_t kExampleDotComHash = 2170UL;
-constexpr uint64_t kTestDotComHash = 17534UL;
-constexpr uint64_t kDummyurlDotComHash = 15654UL;
-
-constexpr char kPasswordChangeIntent[] = "PASSWORD_CHANGE";
-
-class CapabilitiesServiceImplTest : public ::testing::Test {
- public:
-  CapabilitiesServiceImplTest() {
-    auto autofill_assistant =
-        std::make_unique<NiceMock<autofill_assistant::MockAutofillAssistant>>();
-    mock_autofill_assistant_ = autofill_assistant.get();
-
-    service_ = std::make_unique<CapabilitiesServiceImpl>(
-        std::move(autofill_assistant));
-  }
-  ~CapabilitiesServiceImplTest() override = default;
-
- protected:
-  raw_ptr<NiceMock<autofill_assistant::MockAutofillAssistant>>
-      mock_autofill_assistant_;
-  std::unique_ptr<CapabilitiesServiceImpl> service_;
-};
-
-TEST_F(CapabilitiesServiceImplTest, FetchCapabilitiesEmptyResponse) {
-  base::HistogramTester histogram_tester;
-  std::vector<url::Origin> origins = {
-      url::Origin::Create(GURL("https://example.com")),
-      url::Origin::Create(GURL("https://test.com"))};
-
-  EXPECT_CALL(*mock_autofill_assistant_,
-              GetCapabilitiesByHashPrefix(
-                  kHashPrefixSize,
-                  std::vector<uint64_t>{kExampleDotComHash, kTestDotComHash},
-                  kPasswordChangeIntent, _))
-      .WillOnce(
-          RunOnceCallback<3>(net::HTTP_OK, std::vector<CapabilitiesInfo>()));
-
-  base::MockCallback<password_manager::CapabilitiesService::ResponseCallback>
-      mock_response_callback;
-  EXPECT_CALL(mock_response_callback, Run(std::set<url::Origin>()));
-
-  service_->QueryPasswordChangeScriptAvailability(origins,
-                                                  mock_response_callback.Get());
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.CapabilitiesService.HttpResponseCode",
-      net::HttpStatusCode::HTTP_OK, 1u);
-}
-
-TEST_F(CapabilitiesServiceImplTest, FetchCapabilitiesEmptyRequest) {
-  base::HistogramTester histogram_tester;
-  EXPECT_CALL(*mock_autofill_assistant_, GetCapabilitiesByHashPrefix).Times(0);
-  base::MockCallback<password_manager::CapabilitiesService::ResponseCallback>
-      mock_response_callback;
-  EXPECT_CALL(mock_response_callback, Run(std::set<url::Origin>()));
-
-  service_->QueryPasswordChangeScriptAvailability({},
-                                                  mock_response_callback.Get());
-  histogram_tester.ExpectTotalCount(
-      "PasswordManager.CapabilitiesService.HttpResponseCode", 0u);
-}
-
-TEST_F(CapabilitiesServiceImplTest, BackendRequestFailed) {
-  base::HistogramTester histogram_tester;
-  EXPECT_CALL(*mock_autofill_assistant_, GetCapabilitiesByHashPrefix)
-      .WillOnce(RunOnceCallback<3>(net::HTTP_FORBIDDEN,
-                                   std::vector<CapabilitiesInfo>()));
-
-  base::MockCallback<password_manager::CapabilitiesService::ResponseCallback>
-      mock_response_callback;
-  EXPECT_CALL(mock_response_callback, Run(std::set<url::Origin>()));
-
-  std::vector<url::Origin> origins = {
-      url::Origin::Create(GURL("https://example.com")),
-      url::Origin::Create(GURL("https://test.com"))};
-
-  service_->QueryPasswordChangeScriptAvailability(origins,
-                                                  mock_response_callback.Get());
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.CapabilitiesService.HttpResponseCode",
-      net::HTTP_FORBIDDEN, 1u);
-}
-
-TEST_F(CapabilitiesServiceImplTest, FetchCapabilitiesSuccess) {
-  base::HistogramTester histogram_tester;
-  std::vector<CapabilitiesInfo> capabilities_reponse = {
-      CapabilitiesInfo{"https://foo.test.com", {}},
-      CapabilitiesInfo{"https://bar.test.com", {}},
-      CapabilitiesInfo{"https://example.com", {}},
-      CapabilitiesInfo{"https://test.com", {}},
-      CapabilitiesInfo{"https://dummyurl.com",
-                       {{{"EXPERIMENT_IDS", "3345172"}}}},
-  };
-
-  EXPECT_CALL(*mock_autofill_assistant_,
-              GetCapabilitiesByHashPrefix(
-                  kHashPrefixSize,
-                  std::vector<uint64_t>{kExampleDotComHash, kTestDotComHash,
-                                        kDummyurlDotComHash},
-                  kPasswordChangeIntent, _))
-      .WillOnce(RunOnceCallback<3>(net::HTTP_OK, capabilities_reponse));
-
-  base::MockCallback<password_manager::CapabilitiesService::ResponseCallback>
-      mock_response_callback;
-
-  EXPECT_CALL(mock_response_callback,
-              Run(std::set<url::Origin>{
-                  url::Origin::Create(GURL("https://example.com")),
-                  url::Origin::Create(GURL("https://test.com")),
-              }));
-
-  std::vector<url::Origin> origins = {
-      url::Origin::Create(GURL("https://example.com")),
-      url::Origin::Create(GURL("https://test.com")),
-      url::Origin::Create(GURL("https://dummyurl.com")),
-  };
-
-  service_->QueryPasswordChangeScriptAvailability(origins,
-                                                  mock_response_callback.Get());
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.CapabilitiesService.HttpResponseCode",
-      net::HttpStatusCode::HTTP_OK, 1u);
-}
-
-TEST_F(CapabilitiesServiceImplTest, FetchCapabilitiesClientInLiveExperiment) {
-  base::HistogramTester histogram_tester;
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeatureWithParameters(
-      password_manager::features::kPasswordDomainCapabilitiesFetching,
-      {{"live_experiment", "true"}});
-
-  std::vector<CapabilitiesInfo> capabilities_reponse = {
-      CapabilitiesInfo{"https://foo.test.com", {}},
-      CapabilitiesInfo{"https://bar.test.com", {}},
-      CapabilitiesInfo{"https://example.com", {}},
-      CapabilitiesInfo{"https://test.com", {}},
-      CapabilitiesInfo{"https://dummyurl.com",
-                       {{{"EXPERIMENT_IDS", "3345172"}}}},
-  };
-
-  EXPECT_CALL(*mock_autofill_assistant_,
-              GetCapabilitiesByHashPrefix(
-                  kHashPrefixSize,
-                  std::vector<uint64_t>{kExampleDotComHash, kTestDotComHash,
-                                        kDummyurlDotComHash},
-                  kPasswordChangeIntent, _))
-      .WillOnce(RunOnceCallback<3>(net::HTTP_OK, capabilities_reponse));
-
-  base::MockCallback<password_manager::CapabilitiesService::ResponseCallback>
-      mock_response_callback;
-  EXPECT_CALL(mock_response_callback,
-              Run(std::set<url::Origin>{
-                  url::Origin::Create(GURL("https://example.com")),
-                  url::Origin::Create(GURL("https://test.com")),
-                  url::Origin::Create(GURL("https://dummyurl.com")),
-              }));
-
-  std::vector<url::Origin> origins = {
-      url::Origin::Create(GURL("https://example.com")),
-      url::Origin::Create(GURL("https://test.com")),
-      url::Origin::Create(GURL("https://dummyurl.com")),
-  };
-
-  service_->QueryPasswordChangeScriptAvailability(origins,
-                                                  mock_response_callback.Get());
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.CapabilitiesService.HttpResponseCode",
-      net::HttpStatusCode::HTTP_OK, 1u);
-}
-
-}  // namespace
-}  // namespace password_manager
diff --git a/components/password_manager/core/browser/mock_password_reuse_manager.h b/components/password_manager/core/browser/mock_password_reuse_manager.h
index 4f78318..4d0e16f 100644
--- a/components/password_manager/core/browser/mock_password_reuse_manager.h
+++ b/components/password_manager/core/browser/mock_password_reuse_manager.h
@@ -22,7 +22,6 @@
                PasswordStoreInterface* profile_store,
                PasswordStoreInterface* account_store),
               (override));
-  MOCK_METHOD(void, AccountStoreStateChanged, (), (override));
   MOCK_METHOD(void,
               ReportMetrics,
               (const std::string& username, bool is_under_advanced_protection),
diff --git a/components/password_manager/core/browser/password_feature_manager_impl.cc b/components/password_manager/core/browser/password_feature_manager_impl.cc
index 5185608b..dd13799 100644
--- a/components/password_manager/core/browser/password_feature_manager_impl.cc
+++ b/components/password_manager/core/browser/password_feature_manager_impl.cc
@@ -13,10 +13,6 @@
 #include "components/prefs/pref_service.h"
 #include "components/sync/driver/sync_service.h"
 
-#if !BUILDFLAG(IS_IOS)
-#include "components/autofill_assistant/browser/public/prefs.h"
-#endif  // !BUILDFLAG(IS_IOS)
-
 namespace password_manager {
 
 PasswordFeatureManagerImpl::PasswordFeatureManagerImpl(
@@ -40,15 +36,6 @@
 
 bool PasswordFeatureManagerImpl::
     AreRequirementsForAutomatedPasswordChangeFulfilled() const {
-  // Only offer APC if Autofill Assistant is not disabled (by user choice
-  // or by enterprise policy).
-#if !BUILDFLAG(IS_IOS)
-  if (!pref_service_->GetBoolean(
-          autofill_assistant::prefs::kAutofillAssistantEnabled)) {
-    return false;
-  }
-#endif  // !BUILDFLAG(IS_IOS)
-
   switch (password_manager_util::GetPasswordSyncState(sync_service_)) {
     case SyncState::kNotSyncing:
     case SyncState::kAccountPasswordsActiveNormalEncryption:
diff --git a/components/password_manager/core/browser/password_feature_manager_impl_unittest.cc b/components/password_manager/core/browser/password_feature_manager_impl_unittest.cc
index 2ee8a65..3a5bd591 100644
--- a/components/password_manager/core/browser/password_feature_manager_impl_unittest.cc
+++ b/components/password_manager/core/browser/password_feature_manager_impl_unittest.cc
@@ -6,7 +6,6 @@
 
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
-#include "components/autofill_assistant/browser/public/prefs.h"
 #include "components/password_manager/core/browser/password_form.h"
 #include "components/password_manager/core/browser/password_manager_client.h"
 #include "components/password_manager/core/browser/password_manager_util.h"
@@ -31,10 +30,6 @@
     account_.gaia = "account";
     account_.account_id = CoreAccountId::FromGaiaId(account_.gaia);
 
-#if !BUILDFLAG(IS_IOS)
-    pref_service_.registry()->RegisterBooleanPref(
-        autofill_assistant::prefs::kAutofillAssistantEnabled, true);
-#endif  // !BUILDFLAG(IS_IOS)
 #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
     pref_service_.registry()->RegisterBooleanPref(
         password_manager::prefs::kBiometricAuthenticationBeforeFilling, false);
@@ -205,29 +200,6 @@
                    .AreRequirementsForAutomatedPasswordChangeFulfilled());
 }
 
-#if !BUILDFLAG(IS_IOS)
-TEST_F(PasswordFeatureManagerImplTest,
-       RequirementsForAutomatedPasswordChangeRespectAssistantPref) {
-  sync_service_.SetAccountInfo(account_);
-  sync_service_.SetHasSyncConsent(true);
-  sync_service_.SetDisableReasons({});
-  sync_service_.SetTransportState(syncer::SyncService::TransportState::ACTIVE);
-  sync_service_.GetUserSettings()->SetSelectedTypes(
-      /*sync_everything=*/false,
-      /*types=*/syncer::UserSelectableTypeSet(
-          syncer::UserSelectableType::kPasswords));
-
-  EXPECT_TRUE(password_feature_manager_
-                  .AreRequirementsForAutomatedPasswordChangeFulfilled());
-
-  // Switching off Autofill Assistant disables APC on Desktop.
-  pref_service_.SetBoolean(autofill_assistant::prefs::kAutofillAssistantEnabled,
-                           false);
-  EXPECT_FALSE(password_feature_manager_
-                   .AreRequirementsForAutomatedPasswordChangeFulfilled());
-}
-#endif  // !BUILDFLAG(IS_IOS)
-
 #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
 
 struct TestCase {
diff --git a/components/password_manager/core/browser/password_reuse_manager.h b/components/password_manager/core/browser/password_reuse_manager.h
index acb0baf..57681ed 100644
--- a/components/password_manager/core/browser/password_reuse_manager.h
+++ b/components/password_manager/core/browser/password_reuse_manager.h
@@ -37,10 +37,6 @@
                     PasswordStoreInterface* profile_store,
                     PasswordStoreInterface* account_store) = 0;
 
-  // Clears existing cached passwords stored on the account store and schedules
-  // a request to re-fetch.
-  virtual void AccountStoreStateChanged() = 0;
-
   // Log whether a sync password hash saved.
   virtual void ReportMetrics(const std::string& username,
                              bool is_under_advanced_protection) = 0;
diff --git a/components/password_manager/core/browser/password_reuse_manager_impl.cc b/components/password_manager/core/browser/password_reuse_manager_impl.cc
index 80fde96..daa1fc3 100644
--- a/components/password_manager/core/browser/password_reuse_manager_impl.cc
+++ b/components/password_manager/core/browser/password_reuse_manager_impl.cc
@@ -141,14 +141,6 @@
   }
 }
 
-void PasswordReuseManagerImpl::AccountStoreStateChanged() {
-  DCHECK(account_store_);
-  ScheduleTask(
-      base::BindOnce(&PasswordReuseDetector::ClearCachedAccountStorePasswords,
-                     base::Unretained(reuse_detector_)));
-  account_store_->GetAutofillableLogins(weak_ptr_factory_.GetWeakPtr());
-}
-
 void PasswordReuseManagerImpl::ReportMetrics(
     const std::string& username,
     bool is_under_advanced_protection) {
@@ -387,4 +379,12 @@
          background_task_runner_->PostTask(FROM_HERE, std::move(task));
 }
 
+void PasswordReuseManagerImpl::AccountStoreStateChanged() {
+  DCHECK(account_store_);
+  ScheduleTask(
+      base::BindOnce(&PasswordReuseDetector::ClearCachedAccountStorePasswords,
+                     base::Unretained(reuse_detector_)));
+  account_store_->GetAutofillableLogins(weak_ptr_factory_.GetWeakPtr());
+}
+
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/password_reuse_manager_impl.h b/components/password_manager/core/browser/password_reuse_manager_impl.h
index 266b8718..9d59d148 100644
--- a/components/password_manager/core/browser/password_reuse_manager_impl.h
+++ b/components/password_manager/core/browser/password_reuse_manager_impl.h
@@ -30,7 +30,6 @@
   void Init(PrefService* prefs,
             PasswordStoreInterface* profile_store,
             PasswordStoreInterface* account_store) override;
-  void AccountStoreStateChanged() override;
   void ReportMetrics(const std::string& username,
                      bool is_under_advanced_protection) override;
   void PreparePasswordHashData(const std::string& sync_username,
@@ -86,6 +85,10 @@
   // Schedules the given |task| to be run on the 'background_task_runner_'.
   bool ScheduleTask(base::OnceClosure task);
 
+  // Clears existing cached passwords stored on the account store and schedules
+  // a request to re-fetch.
+  void AccountStoreStateChanged();
+
   // TaskRunner for tasks that run on the main sequence (the UI thread).
   scoped_refptr<base::SequencedTaskRunner> main_task_runner_;
 
diff --git a/components/password_manager/core/browser/password_reuse_manager_impl_unittest.cc b/components/password_manager/core/browser/password_reuse_manager_impl_unittest.cc
index d162c39..00cd7dc 100644
--- a/components/password_manager/core/browser/password_reuse_manager_impl_unittest.cc
+++ b/components/password_manager/core/browser/password_reuse_manager_impl_unittest.cc
@@ -431,7 +431,7 @@
   RunUntilIdle();
 
   account_store()->Clear();
-  reuse_manager()->AccountStoreStateChanged();
+  account_store()->CallSyncEnabledOrDisabledCallbacks();
   MockPasswordReuseDetectorConsumer mock_consumer;
   EXPECT_CALL(mock_consumer,
               OnReuseCheckDone(/* is_reuse_found=*/false, _, _, IsEmpty(),
diff --git a/components/password_manager/core/browser/test_password_store.cc b/components/password_manager/core/browser/test_password_store.cc
index e2ccbdf..600700e 100644
--- a/components/password_manager/core/browser/test_password_store.cc
+++ b/components/password_manager/core/browser/test_password_store.cc
@@ -44,6 +44,17 @@
   return fake_backend()->is_account_store();
 }
 
+base::CallbackListSubscription
+TestPasswordStore::AddSyncEnabledOrDisabledCallback(
+    base::RepeatingClosure sync_enabled_or_disabled_cb) {
+  return sync_enabled_or_disabled_cbs_.Add(
+      std::move(sync_enabled_or_disabled_cb));
+}
+
+void TestPasswordStore::CallSyncEnabledOrDisabledCallbacks() {
+  sync_enabled_or_disabled_cbs_.Notify();
+}
+
 TestPasswordStore::~TestPasswordStore() = default;
 
 FakePasswordStoreBackend* TestPasswordStore::fake_backend() {
diff --git a/components/password_manager/core/browser/test_password_store.h b/components/password_manager/core/browser/test_password_store.h
index d4d05c70..09e331db 100644
--- a/components/password_manager/core/browser/test_password_store.h
+++ b/components/password_manager/core/browser/test_password_store.h
@@ -7,6 +7,7 @@
 
 #include <functional>
 
+#include "base/callback_list.h"
 #include "components/password_manager/core/browser/fake_password_store_backend.h"
 #include "components/password_manager/core/browser/password_store.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -51,12 +52,19 @@
   const TestPasswordStore::PasswordMap& stored_passwords() const;
   ::password_manager::IsAccountStore IsAccountStore() const;
 
+  base::CallbackListSubscription AddSyncEnabledOrDisabledCallback(
+      base::RepeatingClosure sync_enabled_or_disabled_cb) override;
+
+  void CallSyncEnabledOrDisabledCallbacks();
+
  protected:
   ~TestPasswordStore() override;
 
  private:
   FakePasswordStoreBackend* fake_backend();
   const FakePasswordStoreBackend* fake_backend() const;
+
+  base::RepeatingClosureList sync_enabled_or_disabled_cbs_;
 };
 
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/ui/import_results.h b/components/password_manager/core/browser/ui/import_results.h
index 107cd57..af808df 100644
--- a/components/password_manager/core/browser/ui/import_results.h
+++ b/components/password_manager/core/browser/ui/import_results.h
@@ -12,6 +12,8 @@
 
 struct ImportEntry {
   // Matches api::passwords_private::ImportEntryStatus.
+  // Needs to be kept in sync with PasswordManagerImportEntryStatus in
+  // tools/metrics/histograms/enums.xml
   enum Status {
     // Should not be used.
     NONE = 0,
@@ -35,7 +37,11 @@
     CONFLICT_PROFILE = 9,
     // Credential is already stored in account store.
     CONFLICT_ACCOUNT = 10,
-    kMaxValue = CONFLICT_ACCOUNT
+    // Note is too long.
+    LONG_NOTE = 11,
+    // Concatenation of imported and local notes is too long.
+    LONG_CONCATENATED_NOTE = 12,
+    kMaxValue = LONG_CONCATENATED_NOTE
   };
 
   // The status of parsing for individual row that represents a credential
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc
index a2fda40a..d01e1e2e 100644
--- a/components/password_manager/core/common/password_manager_features.cc
+++ b/components/password_manager/core/common/password_manager_features.cc
@@ -153,20 +153,12 @@
 // Enables automatic password change flow from leaked password dialog.
 BASE_FEATURE(kPasswordChange,
              "PasswordChange",
-#if BUILDFLAG(IS_ANDROID)
-             base::FEATURE_ENABLED_BY_DEFAULT);
-#else
              base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
 
 // Enables password change flow from bulk leak check in settings.
 BASE_FEATURE(kPasswordChangeInSettings,
              "PasswordChangeInSettings",
-#if BUILDFLAG(IS_ANDROID)
-             base::FEATURE_ENABLED_BY_DEFAULT);
-#else
              base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
 
 // Enables automatic password change for account store credentials.
 BASE_FEATURE(kPasswordChangeAccountStoreUsers,
@@ -182,11 +174,7 @@
 // |PasswordChangeInSettings| and |PasswordChange| features.
 BASE_FEATURE(kPasswordDomainCapabilitiesFetching,
              "PasswordDomainCapabilitiesFetching",
-#if BUILDFLAG(IS_ANDROID)
-             base::FEATURE_ENABLED_BY_DEFAULT);
-#else
              base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
 
 // Controls the ability to import passwords from Chrome's settings page.
 BASE_FEATURE(kPasswordImport,
@@ -365,11 +353,6 @@
   return base::FeatureList::IsEnabled(kPasswordDomainCapabilitiesFetching);
 }
 
-bool IsAutomatedPasswordChangeEnabled() {
-  return base::FeatureList::IsEnabled(kPasswordChangeInSettings) ||
-         base::FeatureList::IsEnabled(kPasswordChange);
-}
-
 #if BUILDFLAG(IS_ANDROID)
 bool UsesUnifiedPasswordManagerUi() {
   if (!base::FeatureList::IsEnabled(kUnifiedPasswordManagerAndroid))
diff --git a/components/password_manager/core/common/password_manager_features.h b/components/password_manager/core/common/password_manager_features.h
index 77258d1..11205fb 100644
--- a/components/password_manager/core/common/password_manager_features.h
+++ b/components/password_manager/core/common/password_manager_features.h
@@ -84,12 +84,6 @@
 
 // All features parameters are in alphabetical order.
 
-// If `true`, then password change in settings will also be offered for
-// insecure credentials that are weak (and not phished or leaked).
-constexpr base::FeatureParam<bool>
-    kPasswordChangeInSettingsWeakCredentialsParam = {&kPasswordChangeInSettings,
-                                                     "weak_credentials", false};
-
 // True if the client is part of the live_experiment group for
 // |kPasswordDomainCapabilitiesFetching|, otherwise, the client is assumed to be
 // in the regular launch group.
@@ -196,10 +190,6 @@
 // Returns true the password script fetching flag is enabled.
 bool IsPasswordScriptsFetchingEnabled();
 
-// Returns true if any of the features that unlock entry points for password
-// change flows are enabled.
-bool IsAutomatedPasswordChangeEnabled();
-
 #if BUILDFLAG(IS_ANDROID)
 // Returns true if the unified password manager feature is active and in a stage
 // that allows to use the new feature end-to-end.
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index a9febad..fcbdae4 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -166,6 +166,17 @@
             * ntlm
             Falls diese Option leer ist, können alle drei Schemas verwendet werden.</translation>
 <translation id="1153306961094113710">Remote-Debugging zulassen</translation>
+<translation id="1156636278540386588">Mit dieser Richtlinie kann festgelegt werden, ob Manifest V2-Erweiterungen im Browser verwendet werden können.
+
+Die Unterstützung für Manifest V2-Erweiterungen wird eingestellt. Alle Erweiterungen müssen dann zu V3 migriert werden. Weitere Informationen und den Zeitplan für die Migration findest du unter https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/.
+
+Wenn die Richtlinie auf „<ph name="DEFAULT" />“ (0) gesetzt oder nicht konfiguriert ist, werden V2-Erweiterungen abhängig vom Browser und gemäß dem obigen Zeitplan geladen.
+Ist die Richtlinie auf „<ph name="DISABLE" />“ (1) gesetzt, wird das Installieren von V2-Erweiterungen blockiert und vorhandene V2-Erweiterungen werden deaktiviert. Nachdem die V2-Unterstützung standardmäßig deaktiviert wurde, wird die Option so behandelt, als wäre die Richtlinie nicht konfiguriert.
+Ist die Richtlinie auf „<ph name="ENABLE" />“ (2) gesetzt, sind V2-Erweiterungen zulässig. Bevor die V2-Unterstützung standardmäßig deaktiviert wird, wird die Option so behandelt, als wäre die Richtlinie nicht konfiguriert.
+Wenn die Richtlinie auf „<ph name="ENABLE_FOR_FORCED_EXTENSIONS" />“ (3) gesetzt ist, sind V2-Erweiterungen mit erzwungener Installation zulässig. Dazu gehören Erweiterungen, die in „<ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />“ oder „<ph name="EXTENSION_SETTINGS_POLICY_NAME" />“ mit „<ph name="INSTALLATION_MODE" />“ auf „force_installed“ oder „normal_installed“ aufgeführt sind. Alle anderen V2-Erweiterungen werden deaktiviert. Bevor die V2-Unterstützung standardmäßig deaktiviert wird, wird die Option so behandelt, als wäre die Richtlinie nicht konfiguriert.
+
+
+Die Verfügbarkeit von Erweiterungen wird weiterhin über andere Richtlinien festgelegt.</translation>
 <translation id="115699958189272121"><ph name="CHROME_REMOTE_DESKTOP_PRODUCT_NAME" />-Ereignisse melden</translation>
 <translation id="1157003104143964656">Mit diesen Einstellungen wird das Anmeldungsabfangen aktiviert oder deaktiviert.
 
@@ -296,6 +307,7 @@
       Unter <ph name="MS_WIN_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, auf denen Windows 10 Pro läuft oder die über <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> verwaltet werden.</translation>
 <translation id="1285819498003746288">Die Event.path API ist nicht verfügbar.</translation>
 <translation id="129206366270737897">Dadurch werden alle asynchronen Methoden von <ph name="FILE_SYSTEM_SYNC_ACCESS_HANDLE" /> deaktiviert.</translation>
+<translation id="129392056654547767">Das von der VM verwendete UEFI-Firmware-Image. Dieses stellt eine vorübergehende Lösung dar, während wir ein ChromeOS-DLC-Paket erstellen.</translation>
 <translation id="1294263471858445589">Aktiviert die passive Authentifizierung für Inkognito- und reguläre Sitzungen.</translation>
 <translation id="1295737447968372331">Hiermit wird die Funktion "Spracheingabe" auf dem Anmeldebildschirm aktiviert</translation>
 <translation id="1297182715641689552">PAC-Proxy-Skript verwenden</translation>
@@ -2155,6 +2167,7 @@
 <translation id="3067462824622454143">Nutzer können entscheiden, ob das Gerät gesperrt werden soll, wenn es in den Ruhemodus versetzt oder zugeklappt wird</translation>
 <translation id="3070119171976169951">Verhindern, dass in Bildern von Drittanbietern eine Authentifizierungsaufforderung angezeigt wird</translation>
 <translation id="3072045631333522102">Bildschirmschoner für die Anmeldeseite im Händlermodus</translation>
+<translation id="3072205795519163619">Die ersten nichtflüchtigen UEFI-Daten, die von der VM-Firmware verwendet werden</translation>
 <translation id="3072788420987305247">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, wird die Mediensteuerung auf dem Sperrbildschirm angezeigt, wenn Nutzer das Gerät sperren, während Medien wiedergegeben werden.
 
       Ist die Richtlinie deaktiviert, wird die Mediensteuerung auf dem Sperrbildschirm ausgeschaltet.</translation>
@@ -2424,6 +2437,7 @@
 Ist diese Einstellung deaktiviert oder nicht konfiguriert, erfasst der Passwortschutzdienst die Salted-Hash-Werte von Passwörtern nur unter https://accounts.google.com.
 
 Unter <ph name="MS_WIN_NAME" /> ist diese Funktion nur in Instanzen verfügbar, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, auf denen Windows 10 Pro läuft oder die durch <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> verwaltet werden. Unter <ph name="MAC_OS_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
+<translation id="3259506006965153552">Bestimmt, ob VMs, für die diese Konfiguration verwendet wird, Zugriff auf ein vTPM haben. Der Standardwert ist „false“.</translation>
 <translation id="3261592499545947104">Zeitpunkt, an dem eine Zertifikatsverlängerung ausgelöst werden soll, angegeben in Sekunden bis zum Zertifikatsablauf</translation>
 <translation id="3262080895269946462">Zulassen, dass WebSQL im Zusammenhang mit Drittanbietern standardmäßig deaktiviert wird.</translation>
 <translation id="3263892501786842604">Zulassen, dass die Schaltfläche „<ph name="GOOGLE_LENS_PRODUCT_NAME" />“ im Suchfeld auf der Seite „Neuer Tab“ angezeigt wird, wenn dies unterstützt wird.</translation>
@@ -3195,13 +3209,6 @@
 
       Hinweis: Unter https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables findest du eine Liste der Variablen, die verwendet werden können.</translation>
 <translation id="4030152268425532846">Umgehung der automatischen Anmeldung deaktivieren</translation>
-<translation id="4041577849977347218">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, werden heruntergeladene Dateien von Safe Browsing analysiert, selbst wenn sie aus einer vertrauenswürdigen Quelle stammen.
-
-      Ist diese Richtlinie deaktiviert, werden heruntergeladene Dateien nicht von Safe Browsing analysiert, wenn sie aus einer vertrauenswürdigen Quelle stammen.
-
-      Diese Einschränkungen gelten für Downloads, die durch Websiteinhalte ausgelöst werden, sowie für die Menüoption „Link herunterladen“. Diese Einschränkungen gelten aber weder für das Herunterladen und Speichern der gerade angezeigten Seite noch für das Speichern als PDF-Datei in den Druckoptionen.
-
-      Unter <ph name="MS_WIN_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, auf denen Windows 10 Pro läuft oder die über <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> verwaltet werden. Unter <ph name="MAC_OS_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
 <translation id="4043796890723386527">Diese Einstellung hindert Nutzer daran, sekundäre Profile zu erstellen oder zu verwenden und den Gastmodus im <ph name="LACROS_NAME" />-Browser zu verwenden</translation>
 <translation id="4051723201852944592">Fenster-Okklusion aktivieren</translation>
 <translation id="4052529125939620019">Komponentenerweiterung „CryptoToken“ beim Start laden</translation>
@@ -3503,6 +3510,7 @@
       Genaue Informationen zu gültigen <ph name="URL_LABEL" />-Mustern findest du unter https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> ist kein akzeptierter Wert für diese Richtlinie.</translation>
 <translation id="4389073105055031853">Nutzern erlauben, alle Zertifikate zu verwalten</translation>
 <translation id="4389091865841123886">Konfiguriert die Remote-Bestätigung mit TPM-Mechanismus</translation>
+<translation id="4394840953265135019">URL des komprimierten Objekts, das heruntergeladen werden soll. Objekte können mit gzip, bzip2, lzma oder zstd komprimiert werden. Dies wird nach dem Herunterladen automatisch erkannt. Sie dürfen nicht unkomprimiert sein, da das nicht automatisch erkannt werden kann.</translation>
 <translation id="439661169333921592">„Objekt mit Tastaturfokus hervorheben“ auf dem Anmeldebildschirm deaktivieren</translation>
 <translation id="4397045637922200204">Kontowiederherstellung deaktivieren</translation>
 <translation id="4397464099112037398">Standardeinstellung für die Berechtigung für die Fensterpositionierung</translation>
@@ -3830,6 +3838,7 @@
 <translation id="4725691087141147920">Einwilligung zur Synchronisierung während der Anmeldung anzeigen</translation>
 <translation id="4725801978265372736">Verlangen, dass der Name des lokalen Nutzers und des Host-Inhabers des Remotezugriffs übereinstimmen</translation>
 <translation id="4726228171190098009">Powerwash-Anfrage durch Gerät nicht zulassen</translation>
+<translation id="4726895359147376813">Zuordnung von persistenten IDs zu VM-Konfigurationen</translation>
 <translation id="4733471537137819387">Strategien im Hinblick auf die integrierte HTTP-Authentifizierung</translation>
 <translation id="4735099388031364207">Ist diese Richtlinie aktiviert, ist die Remote-Attestierung für das Gerät erlaubt. Ein Zertifikat wird automatisch erstellt und auf den Geräteverwaltungsserver hochgeladen.
 
@@ -4134,6 +4143,7 @@
       Wenn diese Richtlinie nicht konfiguriert oder deaktiviert ist, hat „webkitRequestFileSystem“ mit persistentem Typ ein temporäres Kontingent.
       </translation>
 <translation id="5105313908130842249">Verzögerung für die Bildschirmsperre im Akkubetrieb</translation>
+<translation id="5106077438006122286">Bestimmt, wie laufende VMs behandelt werden, die nicht dieser Richtlinieneinstellung entsprechen. Der Standardwert ist <ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" />.</translation>
 <translation id="5108031557082757679">Deaktivierte, an Geräte gebundene Unternehmensdrucker</translation>
 <translation id="5109383437323376357">Die Verfügbarkeit von Variationen bestimmen</translation>
 <translation id="5118635822783657217">Updates für nicht kritische Komponenten deaktivieren</translation>
@@ -4332,6 +4342,7 @@
           Wenn du diese Richtlinie konfigurierst, kann sie vom Nutzer nicht geändert oder überschrieben werden.
 
           Wird sie nicht konfiguriert, ist die Bedienungshilfe "Mauszeiger hervorheben" auf dem Anmeldebildschirm anfangs deaktiviert, kann jedoch vom Nutzer jederzeit aktiviert werden.</translation>
+<translation id="528302483493794684">Eine VM-Konfiguration. Gibt einen VM-Typ an, den der Nutzer installieren kann und der dauerhaft mit der ID dieser Konfiguration verknüpft wird, und Einstellungen, die für diesen VM-Typ gelten.</translation>
 <translation id="5283457834853986457">Plug-in-Suchfunktion deaktivieren (eingestellt)</translation>
 <translation id="5286579716704722323">Nutzern erlauben, SSL-Warnseiten zu schließen</translation>
 <translation id="5288772341821359899">Wenn die Richtlinie konfiguriert ist, wird der von WebRTC verwendete UDP-Port-Bereich auf den festgelegten Portintervall, einschließlich der Endpunkte, beschränkt.
@@ -4447,6 +4458,7 @@
 
       Ist die Richtlinie deaktiviert, können der Browser- und der Downloadverlauf nicht gelöscht werden. Das bedeutet jedoch nicht unbedingt, dass der Verlauf erhalten bleibt. Möglicherweise sind die Nutzer berechtigt, die Verlaufsdatenbankdateien direkt zu bearbeiten oder zu löschen. Außerdem kann der Browser jederzeit selbst einige oder alle Verlaufselemente archivieren oder nach deren Ablaufdatum löschen.</translation>
 <translation id="5420245232720940848">Aktiviert PCIe-Tunneling für Thunderbolt/USB4-Peripheriegeräte und schränkt die Gerätefunktion ein</translation>
+<translation id="5420774177427557782">Bestimmt, ob VMs, für die diese Konfiguration verwendet wird, installiert und ausgeführt (<ph name="INSTALL_ALLOWED" />), ausgeführt, aber nicht installiert (<ph name="RUN_ALLOWED" />), oder nicht ausgeführt (<ph name="BLOCKED" />) werden können. Hinweis: Zum Installieren einer VM muss auch der installer_image_x86_64-Schlüssel festgelegt sein. Wenn eine Konfiguration vollständig entfernt wird, wird die Property implizit auf „<ph name="BLOCKED" />“ gesetzt. Dadurch wird verhindert, dass VMs ohne Richtlinie ausgeführt werden.</translation>
 <translation id="5422643441807528365">Lizenzschlüssel "<ph name="PLUGIN_VM_NAME" />"</translation>
 <translation id="5423197884968724595">Name der Android WebView-Einschränkung:</translation>
 <translation id="5424147596523390018">Alle Farbmodi zulassen</translation>
@@ -4512,6 +4524,7 @@
       </translation>
 <translation id="5448022937220253000">Festlegen, was mit Nutzerdaten geschehen soll, nachdem <ph name="LACROS_NAME" /> deaktiviert wurde</translation>
 <translation id="5449690328792750354">Die Event.path API ist verfügbar.</translation>
+<translation id="5452024130413254050">Bestimmt, ob VMs, für die diese Konfiguration verwendet wird, Zugriff auf ein vTPM haben. Der Standardwert ist „false“ und „<ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" />“, falls nicht konfiguriert.</translation>
 <translation id="5455609857202311243">Genehmigung der KDC-Richtlinie bei der HTTP-Authentifizierung ignorieren</translation>
 <translation id="5455888515928026628">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.
 
@@ -4729,6 +4742,7 @@
           Der Richtlinienwert wird ausschließlich angewendet, wenn die Richtlinie <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> aktiviert ist.</translation>
 <translation id="5697306356229823047">Gerätenutzer aufzeichnen</translation>
 <translation id="569777361305162263">Einblenden von Werbung auf dem gesamten Tab deaktivieren</translation>
+<translation id="569834442020549908">Das Image des UEFI-Bootlaufwerks, das zum Installieren der VM auf x86_64-Geräten verwendet wird</translation>
 <translation id="5698923148503075597">Ist die Richtlinie aktiviert, hat die Cloud-Richtlinie Vorrang, wenn sie mit der Plattformrichtlinie in Konflikt steht.
 
       Ist die Richtlinie deaktiviert oder nicht konfiguriert, hat die Plattformrichtlinie Vorrang, wenn sie mit der Cloud-Richtlinie in Konflikt steht.
@@ -5827,6 +5841,7 @@
 <translation id="6766216162565713893">Websites dürfen den Nutzer um Zugriff auf ein Bluetooth-Gerät in der Nähe bitten</translation>
 <translation id="6770454900105963262">Informationen zu aktiven Kiosksitzungen senden</translation>
 <translation id="6774132787348495175">Nicht zulassen, dass Nutzer virtuelle Maschinen verwenden, die für Linux-Apps benötigt werden</translation>
+<translation id="6780028483481123221">Hexadezimalcodierter SHA-256-Hash des komprimierten Objekts</translation>
 <translation id="6782331708811245959">Melden des Bootmodus auf Geräten aktivieren</translation>
 <translation id="6782977971207381602">Wenn die Richtlinie aktiviert ist, kann das Gerät unter <ph name="PRODUCT_OS_NAME" /> virtuelle Maschinen ausführen. <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> und <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> müssen aktiviert sein, um <ph name="PRODUCT_CROSTINI_NAME" /> zu verwenden. Ist die Richtlinie deaktiviert, kann das Gerät keine virtuellen Maschinen ausführen. Wenn sie deaktiviert wird, wird die Richtlinie beim Starten neuer virtueller Maschinen angewandt. Die bereits ausgeführten sind nicht betroffen.
 
@@ -7067,6 +7082,7 @@
 <translation id="8044720778481009876"><ph name="CLOUD_PRINT_NAME" />- und „In Google Drive speichern“-Ziele (eingestellt)</translation>
 <translation id="80453040817068401"><ph name="LACROS_NAME" /> verfügbar machen</translation>
 <translation id="804619600634661088">Remote-Debugging zulassen</translation>
+<translation id="8047600674992048328">Für den Nutzer sichtbarer Name dieser Konfiguration</translation>
 <translation id="8049769137921877885">Mit dieser Richtlinie wird festgelegt, ob Daten zu Richtlinien und zur Zeit des Richtlinienabrufs gesendet werden.
 
       Wenn die Richtlinie <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> deaktiviert oder nicht konfiguriert ist, wird diese Richtlinie ignoriert.
@@ -7760,6 +7776,9 @@
       Ist diese Richtlinie deaktiviert oder nicht konfiguriert, kann der Host für den Remotezugriff mit jedem lokalen Nutzer verknüpft sein.</translation>
 <translation id="867708016260789630">Auf YouTube mindestens den eingeschränkten Modus „Moderat“ erzwingen</translation>
 <translation id="8677853537025397834">WebHID API auf diesen Websites erlauben</translation>
+<translation id="8684000025871334499">Hiermit lassen sich Installations- und Laufzeitrichtlinien für Bruschetta-VMs unter <ph name="PRODUCT_OS_NAME" /> konfigurieren. Dies ermöglicht Nutzern, Drittanbieter-VMs zu installieren. Diese Funktion ist standardmäßig deaktiviert.
+
+Die Richtlinie ist eine Zuordnung von Konfigurations-IDs zu VM-Konfigurationen. Wenn eine VM aus einer Konfiguration installiert wird, wird sie dauerhaft mit dieser Konfigurations-ID verknüpft und alle Laufzeitrichtlinien in der Konfiguration gelten für diese VM. Es können mehrere VMs aus derselben Konfiguration auf demselben Gerät installiert werden.</translation>
 <translation id="8685018726115727387">Import des Browserverlaufs bei der ersten Ausführung deaktivieren</translation>
 <translation id="8685024486845674965">Die Passwortschutzwarnung wird durch die Wiederverwendung eines Passworts ausgelöst</translation>
 <translation id="8685680544554917389">Wenn die Richtlinie auf "True" gesetzt ist, kann <ph name="PRODUCT_NAME" /> Medien automatisch abspielen. Wenn die Richtlinie auf "False" gesetzt ist, kann <ph name="PRODUCT_NAME" /> Medien nicht mehr automatisch abspielen.
@@ -8044,6 +8063,7 @@
       Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist, wird kein Remote-Powerwash auf dem Gerät durchgeführt, unabhängig vom Status der Registrierungs-ID.
 
       Diese Überprüfung wird durchgeführt, wenn der Anmeldebildschirm geladen wird. Wenn der Anmeldebildschirm geöffnet bleibt, wird sie stündlich wiederholt. Dies verhindert, dass die Migration während einer Nutzersitzung startet und zu Problemen für Endnutzer führt.</translation>
+<translation id="9003823644527627017">Bruschetta-VMs unter <ph name="PRODUCT_OS_NAME" /> konfigurieren</translation>
 <translation id="9007632512838819703">Diese Richtlinie wurde eingestellt. Bitte verwende stattdessen die Richtlinie "<ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />".
 
       Damit wird die Deaktivierung von Sprachen für die Rechtschreibprüfung erzwungen. Sprachen in dieser Liste, die nicht erkannt werden, werden ignoriert.
@@ -8174,6 +8194,7 @@
 <translation id="9117826695152538214">Wenn du die Richtlinie auf "True" setzt, bleibt die Einfingerbedienung aktiviert. Wenn du die Richtlinie auf "False" setzt, bleibt die Einfingerbedienung deaktiviert.
 
       Wenn du diese Richtlinie konfigurierst, kann sie von Nutzern nicht geändert werden. Wird sie nicht konfiguriert, ist die Einfingerbedienung erst einmal deaktiviert, kann aber jederzeit von Nutzern aktiviert werden.</translation>
+<translation id="91206085111961438">Verfügbarkeit von Manifest V2-Erweiterungen festlegen</translation>
 <translation id="9121178963309901985">Mit dieser Richtlinie legst du fest, ob Nutzer Anfragen zur Installation von Erweiterungen für <ph name="PRODUCT_NAME" /> zur Bestätigung an die Google Admin-Konsole senden dürfen.
 
       Wenn die Richtlinie <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> deaktiviert oder nicht konfiguriert ist, wird diese Richtlinie ignoriert. Anfragen zur Installation von Erweiterungen können dann weder erstellt noch hochgeladen werden.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 43c36d5..ddfe29e 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -3223,13 +3223,6 @@
 
       Nota: Consulta la lista de las variables que puedes utilizar (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation>
 <translation id="4030152268425532846">Inhabilitar el rescate de acceso automático</translation>
-<translation id="4041577849977347218">Si habilitas la política o no la estableces, se enviarán los archivos descargados para que la Navegación segura los analice, incluso cuando provengan de una fuente de confianza.
-
-      Si inhabilitas la política, no se enviarán los archivos descargados para que la Navegación segura los analice cuando provengan de una fuente de confianza.
-
-      Estas restricciones se aplican a las descargas que se inician desde el contenido de páginas web o mediante la opción de descarga de vínculo del menú. No se aplican a las acciones de descargar o guardar la página que se muestra actualmente ni a la de guardar como PDF desde las opciones de impresión.
-
-      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo estará disponible en instancias que están vinculadas a un dominio de <ph name="MS_AD_NAME" />, están inscritas en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> o se ejecutan en Windows 10 Pro. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="4043796890723386527">Impedir que los usuarios creen o utilicen perfiles secundarios o usen el modo de invitado en el navegador <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Habilita la oclusión de ventanas</translation>
 <translation id="4052529125939620019">Cargar la extensión del componente CryptoToken al iniciar el navegador</translation>
@@ -4172,6 +4165,15 @@
 
       Nota: También se pueden agregar elementos a esta lista a través de la política <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Lista de usuarios con permiso para iniciar sesión</translation>
+<translation id="5069522005630249098">Esta configuración determina cuántos datos del usuario se conservan después de inhabilitar <ph name="LACROS_NAME" />.
+
+      Si estableces la política como <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> o no la estableces, no se llevará a cabo la migración de datos inversa.
+
+      Si la estableces como <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, se quitarán todos los datos del usuario. Esta es la opción más segura.
+
+      Si la estableces como <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, se quitarán la mayoría de los datos del usuario. Solo se conservan los archivos independientes del navegador (como las descargas).
+
+      Si la estableces como <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, se conservarán todos los datos del usuario. Esta opción tiene un alto riesgo de falla, por lo tanto requiere usar Powerwash para recuperar los datos.</translation>
 <translation id="5071303485174858500">Inhabilitar la sesión de invitado administrada y restringida</translation>
 <translation id="5073609397321802133">Si se establece la política como falsa, los usuarios no podrán personalizar el fondo en la página Nueva pestaña. En caso de que haya un fondo personalizado, este se quitará de forma permanente, incluso si más tarde se establece la política como verdadera.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 726e2ae..59583a7 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -3222,13 +3222,6 @@
 
       Nota: Consulta una lista de las variables que puedes utilizar en esta página: https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation>
 <translation id="4030152268425532846">Inhabilitar la anulación de inicio de sesión automático</translation>
-<translation id="4041577849977347218">Si la política se habilita o no se define, Navegación segura analizará los archivos que se descarguen, aunque provengan de una fuente de confianza.
-
-      Si la política se inhabilita, Navegación segura no analizará los archivos que se descarguen si provienen de una fuente de confianza.
-
-      Estas restricciones se aplican a las descargas activadas desde el contenido de las páginas web o a través de la opción "Descargar enlace" del menú. No se aplican a la opción para guardar o descargar de la página actual ni a la opción para guardar como PDF de las opciones de impresión.
-
-      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="4043796890723386527">Evita que los usuarios creen y utilicen perfiles secundarios, y que usen el modo Invitado en el navegador <ph name="LACROS_NAME" />.</translation>
 <translation id="4051723201852944592">Habilitar la oclusión de ventana</translation>
 <translation id="4052529125939620019">Cargar la extensión del componente CryptoToken al iniciar el navegador</translation>
@@ -4159,6 +4152,15 @@
 
       Nota: También se pueden añadir elementos a la lista a través de la política <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Lista de admisión de usuarios con permiso para iniciar sesión</translation>
+<translation id="5069522005630249098">Esta opción determina cuántos datos de usuario se conservarán después de inhabilitar <ph name="LACROS_NAME" />.
+
+      Si a esta política se le asigna el valor <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> o no se le asigna ninguno, no se realizará la retromigración de datos.
+
+      Si se le asigna el valor <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, se eliminarán todos los datos de usuario. Esta es la opción más segura.
+
+      Si se le asigna el valor <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, se eliminarán la mayoría de los datos de usuario. Solo se conservarán los archivos que sean independientes del navegador (como las descargas).
+
+      Si se le asigna el valor <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, se conservarán todos los datos de usuario. Esta opción tiene un alto riesgo de fallo. Si se produce un error, será necesario hacer un Powerwash para recuperar el dispositivo.</translation>
 <translation id="5071303485174858500">Inhabilitar sesión de invitado administrada y restringida.</translation>
 <translation id="5073609397321802133">Si se asigna el valor "false" a esta política, la página Nueva pestaña no permitirá a los usuarios personalizar la imagen de fondo. Aunque se cambie el valor a "true" posteriormente, las imágenes de fondo personalizadas se eliminarán de forma permanente.
 
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 5b8a1af4..791d50d 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -3210,13 +3210,6 @@
 
       Remarque : Pour savoir quelles variables vous pouvez utiliser, consultez la page https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation>
 <translation id="4030152268425532846">Désactiver l'annulation de la connexion automatique</translation>
-<translation id="4041577849977347218">Si cette règle est activée ou si elle n'est pas configurée, la fonctionnalité de navigation sécurisée analyse les fichiers téléchargés, même s'ils proviennent d'une source fiable.
-
-      Si cette règle est désactivée, la fonctionnalité de navigation sécurisée n'analyse pas les fichiers téléchargés qui proviennent d'une source fiable.
-
-      Ces restrictions s'appliquent aux téléchargements déclenchés à partir du contenu d'une page Web et de l'option de menu contextuel "Télécharger le lien". Elles ne s'appliquent pas au téléchargement de la page actuellement affichée ni à l'enregistrement au format PDF depuis les options d'impression.
-
-      Sous <ph name="MS_WIN_NAME" />, cette règle n'est disponible que sur les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sous Windows 10 Pro ou qui bénéficient de la <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Sous <ph name="MAC_OS_NAME" />, elle n'est disponible que sur les instances gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="4043796890723386527">Empêcher les utilisateurs de créer et d'utiliser des profils secondaires, et d'utiliser le mode Invité dans le navigateur <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Détecter les fenêtres recouvertes</translation>
 <translation id="4052529125939620019">Charger l'extension du composant CryptoToken au démarrage</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 7410d54..446c8d1 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -3230,13 +3230,6 @@
 
       Catatan: Lihat daftar variabel yang dapat Anda gunakan ( https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables ).</translation>
 <translation id="4030152268425532846">Nonaktifkan pembatalan login otomatis</translation>
-<translation id="4041577849977347218">Jika kebijakan ini disetel ke Aktif atau tidak disetel, file yang didownload akan dikirim untuk dianalisis oleh Safe Browsing, meskipun jika file berasal dari sumber tepercaya.
-
-      Jika kebijakan disetel ke Nonaktif, file yang didownload tidak akan dikirim untuk dianalisis oleh Safe Browsing jika file berasal dari sumber tepercaya.
-
-      Catatan: Batasan ini berlaku untuk download yang dipicu dari konten halaman web, serta dari opsi menu link Download. Batasan ini tidak berlaku untuk penyimpanan atau download halaman yang sedang ditampilkan, atau untuk penyimpanan sebagai PDF dari opsi pencetakan.
-
-      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di instance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="4043796890723386527">Cegah pengguna membuat dan menggunakan profil sekunder serta menggunakan mode tamu di browser <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Mengaktifkan Penghalangan Jendela</translation>
 <translation id="4052529125939620019">Memuat ekstensi komponen CryptoToken saat browser dimulai</translation>
@@ -4187,6 +4180,15 @@
 
       Catatan: Elemen juga dapat ditambahkan ke daftar ini melalui kebijakan <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Daftar putih pengguna masuk</translation>
+<translation id="5069522005630249098">Setelan ini menentukan jumlah data pengguna yang disimpan setelah <ph name="LACROS_NAME" /> dinonaktifkan.
+
+      Jika kebijakan ini disetel ke <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> atau tidak disetel, migrasi data mundur tidak akan dilakukan.
+
+      Jika kebijakan ini disetel ke <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, semua data pengguna akan dihapus. Ini adalah opsi paling aman.
+
+      Jika kebijakan ini disetel ke <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, sebagian besar data pengguna akan dihapus. Hanya file yang tidak bergantung pada browser yang akan disimpan (seperti Download).
+
+      Jika kebijakan ini disetel ke <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, semua data pengguna akan disimpan. Opsi ini memiliki risiko kegagalan yang tinggi, yang mengharuskan powerwash untuk pemulihan.</translation>
 <translation id="5071303485174858500">Nonaktifkan sesi tamu terkelola yang dibatasi.</translation>
 <translation id="5073609397321802133">Jika kebijakan ditetapkan ke false, halaman Tab Baru tidak akan mengizinkan pengguna menyesuaikan latar belakang. Latar belakang kustom yang ada akan dihapus secara permanen meskipun nanti kebijakan ditetapkan ke true.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 1886d15..c18719d5 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -167,6 +167,17 @@
             * ntlm
             Se questa opzione non viene impostata, potranno essere usati tutti i tre schemi.</translation>
 <translation id="1153306961094113710">Consenti debug remoto</translation>
+<translation id="1156636278540386588">Consente di stabilire se le estensioni Manifest v2 possono essere utilizzate dal browser.
+
+Il supporto delle estensioni Manifest v2 verrà ritirato e in futuro sarà necessario eseguire la migrazione di tutte le estensioni alla versione 3. Ulteriori informazioni e tempistiche della migrazione sono disponibili all'indirizzo https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/.
+
+Se il criterio viene impostato su <ph name="DEFAULT" /> (0) o se non viene configurato, il caricamento delle estensioni v2 viene determinato dal browser, in base alle tempistiche indicate nella pagina precedente.
+Se il criterio viene impostato su <ph name="DISABLE" /> (1), l'installazione delle estensioni v2 viene bloccata, mentre le estensioni esistenti vengono disattivate. L'opzione verrà trattata come se il criterio non fosse impostato dopo la disattivazione del supporto della versione 2 per impostazione predefinita.
+Se il criterio viene impostato su <ph name="ENABLE" /> (2), le estensioni v2 sono consentite. L'opzione verrà trattata come se il criterio non fosse impostato prima della disattivazione del supporto della versione 2 per impostazione predefinita.
+Se il criterio viene impostato su <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), le estensioni v2 con installazione forzata sono consentite. Sono incluse le estensioni elencate da <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> o <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> con <ph name="INSTALLATION_MODE" /> "force_installed" o "normal_installed". Tutte le altre estensioni v2 vengono disattivate. L'opzione verrà trattata come se il criterio non fosse impostato prima della disattivazione del supporto della versione 2 per impostazione predefinita.
+
+
+La disponibilità delle estensioni è comunque controllata da altri criteri.</translation>
 <translation id="115699958189272121">Segnala eventi <ph name="CHROME_REMOTE_DESKTOP_PRODUCT_NAME" /></translation>
 <translation id="1157003104143964656">Questa impostazione consente di attivare o disattivare l'intercettazione dell'accesso.
 
@@ -297,6 +308,7 @@
       Su <ph name="MS_WIN_NAME" />, questa funzionalità è disponibile soltanto per le istanze che fanno parte di un dominio <ph name="MS_AD_NAME" />, sono in esecuzione su Windows 10 Pro o sono registrate in <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation>
 <translation id="1285819498003746288">L'API Event.path non sarà disponibile.</translation>
 <translation id="129206366270737897">Consente di disattivare tutti i metodi asincroni di <ph name="FILE_SYSTEM_SYNC_ACCESS_HANDLE" />.</translation>
+<translation id="129392056654547767">L'immagine del firmware UEFI utilizzata dalla VM. Questa è una misura temporanea adottata durante la pacchettizzazione come DLC di ChromeOS.</translation>
 <translation id="1294263471858445589">Attiva l'autenticazione ambientale nelle sessioni standard e in modalità in incognito.</translation>
 <translation id="1295737447968372331">Attiva la dettatura sulla schermata di accesso</translation>
 <translation id="1297182715641689552">Utilizza uno script proxy .pac</translation>
@@ -1941,6 +1953,7 @@
           |created_time_millis| è il timestamp UTC per la creazione dell'override che viene inviato sotto forma di stringa perché non si adatta a un numero intero. Viene usato per stabilire se applicare ancora l'override o meno. Se la funzione del limite di tempo attivo corrente (limite di tempo di utilizzo o limite della finestra temporale) è iniziata dopo la creazione dell'override, non dovrebbe essere applicata. Inoltre, se l'override è stato creato prima dell'ultima modifica dei valori time_window_limit o time_usage_window attivi, non dovrebbe essere applicato.
 
           È possibile inviare più override; viene applicata la voce valida più recente.</translation>
+<translation id="290041922664761002">Specifica un valore di salt da usare nel criterio <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" /> durante la valutazione delle informazioni sull'identità</translation>
 <translation id="2901725272378498025">Attiva gli avvisi sulla sicurezza per i flag della riga di comando</translation>
 <translation id="2905984450136807296">Durata dei dati di autenticazione nella cache</translation>
 <translation id="2906874737073861391">Elenco di estensioni AppPack</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3067462824622454143">Consenti agli utenti di decidere se il dispositivo deve bloccarsi quando viene sospeso o il coperchio viene chiuso</translation>
 <translation id="3070119171976169951">Impedisci la visualizzazione di immagini di terze parti in un prompt di autenticazione</translation>
 <translation id="3072045631333522102">Salvaschermo da utilizzare nella schermata di accesso in modalità retail</translation>
+<translation id="3072205795519163619">I dati UEFI iniziali non volatili utilizzati dal firmware della VM</translation>
 <translation id="3072788420987305247">Se il criterio viene impostato su Attivato o se non viene configurato, i controlli multimediali vengono visualizzati nella schermata di blocco se gli utenti bloccano il dispositivo durante la riproduzione dei contenuti.
 
       Se viene impostato su Disattivato, i controlli multimediali nella schermata di blocco vengono disattivati.</translation>
@@ -2399,6 +2413,7 @@
       Se l'impostazione viene disattivata o se non viene configurata, il servizio di protezione tramite password acquisisce solo gli hash con salt della password all'indirizzo https://accounts.google.com.
 
       Su <ph name="MS_WIN_NAME" />, questa funzionalità è disponibile soltanto sulle istanze che fanno parte di un dominio <ph name="MS_AD_NAME" />, sono in esecuzione su Windows 10 Pro o sono registrate in <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Su <ph name="MAC_OS_NAME" />, questa funzionalità è disponibile soltanto nelle istanze gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
+<translation id="3259506006965153552">Consente di stabilire se le VM che utilizzano questa configurazione hanno accesso a un vTPM; il valore predefinito è false</translation>
 <translation id="3261592499545947104">Il numero di secondi prima della scadenza di un certificato in cui attivare il rinnovo.</translation>
 <translation id="3262080895269946462">Consenti la disattivazione per impostazione predefinita di WebSQL nei contesti di terze parti.</translation>
 <translation id="3263892501786842604">Consenti la visualizzazione del pulsante <ph name="GOOGLE_LENS_PRODUCT_NAME" /> nella casella di ricerca della pagina Nuova scheda, se supportato.</translation>
@@ -3075,6 +3090,7 @@
 <translation id="3943930334592166130">Questo criterio controlla se all'utente viene richiesto di selezionare un certificato client quando più certificati corrispondono a <ph name="AUTO_SELECT_CERTIFICATE_FOR_URLS_POLICY_NAME" />.
       Se il criterio viene impostato su Attivato, all'utente viene richiesto di selezionare un certificato client quando il criterio di selezione automatica corrisponde a più certificati.
       Se viene impostato su Disattivato o se non viene configurato, all'utente può essere richiesta la selezione solo quando nessun certificato corrisponde alla selezione automatica.</translation>
+<translation id="3947897854999940598">Specifica il modello URI del resolver DNS over HTTPS desiderato con informazioni sull'identità</translation>
 <translation id="3950110092991281616">Attiva l'autenticazione ambientale solo nelle sessioni standard.</translation>
 <translation id="3950239119790560549">Limitazioni relative alla data/ora di aggiornamento</translation>
 <translation id="3953860513079094502">Segnala informazioni su eventi di rilevamento e risposta estesi (XDR)</translation>
@@ -3167,13 +3183,6 @@
 
       Nota. Vedi l'elenco di variabili che puoi utilizzare: https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation>
 <translation id="4030152268425532846">Disattiva l'esclusione dell'accesso automatico</translation>
-<translation id="4041577849977347218">Se il criterio viene impostato su Attivato o se non viene configurato, i file scaricati vengono inviati per essere analizzati da Navigazione sicura, anche se provengono da una fonte attendibile.
-
-      Se il criterio viene impostato su Disattivato, i file scaricati non vengono inviati per essere analizzati da Navigazione sicura se provengono da una fonte attendibile.
-
-      Tali limitazioni vengono applicate ai download attivati dai contenuti delle pagine web, nonché all'opzione del menu Link di download. Tali limitazioni non vengono applicate al salvataggio o al download della pagina attualmente visualizzata né alle opzioni di stampa relative al salvataggio come file PDF.
-
-      Su <ph name="MS_WIN_NAME" />, questa funzionalità è disponibile soltanto sulle istanze che fanno parte di un dominio <ph name="MS_AD_NAME" />, sono in esecuzione su Windows 10 Pro o sono registrate in <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Su <ph name="MAC_OS_NAME" />, questa funzionalità è disponibile soltanto nelle istanze gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
 <translation id="4043796890723386527">Impedisci agli utenti di creare e usare profili secondari e di utilizzare la modalità ospite nel browser <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Attiva Copertura finestra</translation>
 <translation id="4052529125939620019">Carica l'estensione del componente CryptoToken all'avvio</translation>
@@ -3484,6 +3493,7 @@
       Per informazioni dettagliate sui pattern <ph name="URL_LABEL" /> validi, visita la pagina https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> non è un valore accettato per questo criterio.</translation>
 <translation id="4389073105055031853">Consenti agli utenti di gestire tutti i certificati</translation>
 <translation id="4389091865841123886">Configura l'attestazione da remoto con meccanismo TPM.</translation>
+<translation id="4394840953265135019">URL dell'oggetto compresso da scaricare. Gli oggetti possono essere compressi utilizzando gzip, bzip2, lzma o zstd, che vengono rilevati automaticamente dopo il download. Se l'algoritmo non può essere rilevato automaticamente, gli oggetti potrebbero non essere decompressi.</translation>
 <translation id="439661169333921592">Disattiva l'evidenziazione dell'elemento attivo tramite tastiera nella schermata di accesso</translation>
 <translation id="4397045637922200204">Disattiva recupero dell'account</translation>
 <translation id="4397464099112037398">Impostazione predefinita dell'autorizzazione per il posizionamento delle finestre</translation>
@@ -3819,6 +3829,7 @@
 <translation id="4725691087141147920">Mostra il consenso alla sincronizzazione durante l'accesso</translation>
 <translation id="4725801978265372736">Richiedi la corrispondenza tra il nome dell'utente locale e il proprietario dell'host di accesso remoto</translation>
 <translation id="4726228171190098009">Non consentire al dispositivo di richiedere il Powerwash</translation>
+<translation id="4726895359147376813">Mappatura di ID permanenti a configurazioni delle VM</translation>
 <translation id="4733471537137819387">Norme relative all'autenticazione HTTP integrata.</translation>
 <translation id="4735099388031364207">Se il criterio viene impostato su Attivato, l'attestazione da remoto è consentita per il dispositivo. Un certificato viene generato e caricato automaticamente sul Server di gestione del dispositivo.
 
@@ -4128,6 +4139,7 @@
       Se questo criterio non viene configurato o se viene impostato su Disattivato, webkitRequestFileSystem con tipo permanente funzionerà con la quota temporanea.
       </translation>
 <translation id="5105313908130842249">Ritardo blocco schermo in caso di utilizzo della batteria</translation>
+<translation id="5106077438006122286">Consente di stabilire come trattare le VM in esecuzione che non corrispondono all'impostazione di questo criterio; il valore predefinito è <ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" /></translation>
 <translation id="5108031557082757679">Stampanti aziendali associate ai dispositivi disattivate</translation>
 <translation id="5109383437323376357">Determina la disponibilità delle varianti</translation>
 <translation id="5118635822783657217">Disattiva gli aggiornamenti per i componenti non critici</translation>
@@ -4326,6 +4338,7 @@
           Se imposti questo criterio, gli utenti non potranno modificarlo o ignorarlo.
 
           Se questo criterio non viene impostato, inizialmente l'evidenziazione del cursore è disattivata nella schermata di accesso, ma l'utente può attivarla in qualsiasi momento.</translation>
+<translation id="528302483493794684">La configurazione di una VM. Indica un tipo di VM che l'utente può installare e che verrà associato in modo permanente all'ID di questa configurazione, nonché i controlli che si applicano a questo tipo di VM.</translation>
 <translation id="5283457834853986457">Disattiva la ricerca dei plug-in (ritirata)</translation>
 <translation id="5286579716704722323">Consenti il clickthrough degli utenti su pagine di avviso SSL</translation>
 <translation id="5288772341821359899">Se la norma viene impostata, l'intervallo di porte UDP utilizzato da WebRTC viene limitato all'intervallo di porte specificato (endpoint inclusi).
@@ -4441,6 +4454,7 @@
 
       Se il criterio viene impostato su Disattivato, la cronologia di navigazione e quella dei download non possono essere eliminate. Non è garantita la memorizzazione della cronologia di navigazione e di quella dei download, anche se questo criterio viene disattivato. Gli utenti potrebbero essere in grado di modificare o eliminare direttamente i file dei database delle cronologie e il browser stesso potrebbe far scadere o archiviare una o tutte le voci delle cronologie in qualsiasi momento.</translation>
 <translation id="5420245232720940848">Viene disattivato il tunneling PCIe per i dispositivi periferici Thunderbolt/USB4, limitando così le capacità dei dispositivi</translation>
+<translation id="5420774177427557782">Consente di stabilire se le VM che utilizzano questa configurazione possono essere installate ed eseguite (<ph name="INSTALL_ALLOWED" />), eseguite ma non installate (<ph name="RUN_ALLOWED" />) o se non possono essere eseguite (<ph name="BLOCKED" />). Tieni presente che per installare una VM è necessario impostare anche la chiave installer_image_x86_64. Se una configurazione viene rimossa completamente, viene impostato in modo implicito il valore <ph name="BLOCKED" />, che impedisce l'esecuzione delle VM senza un criterio.</translation>
 <translation id="5422643441807528365">Codice licenza <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423197884968724595">Nome della limitazione di Android WebView:</translation>
 <translation id="5424147596523390018">Consenti tutte le modalità a colori</translation>
@@ -4506,6 +4520,7 @@
       </translation>
 <translation id="5448022937220253000">Scegli cosa fare con i dati utente dopo la disattivazione di <ph name="LACROS_NAME" /></translation>
 <translation id="5449690328792750354">L'API Event.path sarà disponibile.</translation>
+<translation id="5452024130413254050">Consente di stabilire se le VM che utilizzano questa configurazione hanno accesso a un vTPM; il valore predefinito è false e, se il criterio non viene configurato, viene usato il valore <ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" />.</translation>
 <translation id="5455609857202311243">Ignora l'approvazione del criterio KDC durante l'autenticazione HTTP</translation>
 <translation id="5455888515928026628">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).
 
@@ -4723,6 +4738,7 @@
           Il valore del criterio viene applicato solo se il criterio <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> viene attivato e non è applicabile in caso contrario.</translation>
 <translation id="5697306356229823047">Segnala utenti dispositivo</translation>
 <translation id="569777361305162263">Disattiva la visualizzazione di contenuti promozionali a scheda intera</translation>
+<translation id="569834442020549908">L'immagine del disco di avvio UEFI utilizzata per installare la VM sui dispositivi x86_64</translation>
 <translation id="5698923148503075597">Se il criterio viene impostato su Enabled, in caso di conflitto il criterio relativo al cloud prevale sul criterio relativo alla piattaforma.
 
       Se il criterio viene impostato su Disabled o se non viene configurato, in caso di conflitto il criterio relativo alla piattaforma prevale sul criterio relativo al cloud.
@@ -5826,6 +5842,7 @@
 <translation id="6766216162565713893">Consenti ai siti di chiedere all'utente di concedere l'accesso a un dispositivo Bluetooth nelle vicinanze.</translation>
 <translation id="6770454900105963262">Segnala informazioni sulle sessioni kiosk attive</translation>
 <translation id="6774132787348495175">Non consentire agli utenti di usare le macchine virtuali necessarie per supportare le app Linux</translation>
+<translation id="6780028483481123221">Hash SHA-256 esadecimale codificato dell'oggetto compresso</translation>
 <translation id="6782331708811245959">Attiva report sulla modalità di avvio dispositivo</translation>
 <translation id="6782977971207381602">Se il criterio viene impostato su Attivato, al dispositivo viene consentito di eseguire macchine virtuali su <ph name="PRODUCT_OS_NAME" />. I criteri <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> e <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> devono essere impostati su Attivato per utilizzare <ph name="PRODUCT_CROSTINI_NAME" />. Se il criterio viene impostato su Disattivato, significa che il dispositivo non può eseguire macchine virtuali. Impostando il criterio su Disattivato, questo viene applicato all'avvio di nuove macchine virtuali, non a quelle già in esecuzione.
 
@@ -7070,6 +7087,7 @@
 <translation id="8044720778481009876">Destinazioni <ph name="CLOUD_PRINT_NAME" /> e "Salva su Google Drive" (deprecate)</translation>
 <translation id="80453040817068401">Rendi disponibile il browser <ph name="LACROS_NAME" /></translation>
 <translation id="804619600634661088">Consenti l'uso del debug remoto</translation>
+<translation id="8047600674992048328">Nome di questa configurazione visibile all'utente</translation>
 <translation id="8049769137921877885">Questo criterio consente di stabilire se segnalare o meno i dati del criterio e data e ora del relativo recupero.
 
       Se il criterio <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> non viene configurato o viene disattivato, viene ignorato.
@@ -7388,6 +7406,17 @@
 <translation id="8316940611391250886">Non consentire i certificati privi di un'estensione subjectAlternativeName</translation>
 <translation id="8319678975002906774">Imposta valori Managed Configuration per siti web corrispondenti a origini specifiche</translation>
 <translation id="8320149248919453401">Modalità di carica della batteria</translation>
+<translation id="8327201984026238850">Il modello URI del resolver DNS over HTTPS desiderato. Per specificare diversi resolver DNS over HTTPS, separa i modelli URI corrispondenti con gli spazi. Questo criterio è molto simile a <ph name="DOH_TEMPLATES_POLICY_NAME" /> e lo sostituirà se verrà specificato. Al contrario di quel criterio, supporta la specifica di informazioni sull'identità.
+
+  Se il criterio <ph name="DOH_MODE_POLICY_NAME" /> viene impostato su <ph name="SECURE_DNS_MODE_SECURE" />, è necessario configurare questo criterio o il criterio <ph name="DOH_TEMPLATES_POLICY_NAME" />.
+
+  Se il criterio <ph name="DOH_MODE_POLICY_NAME" /> viene impostato su <ph name="SECURE_DNS_MODE_AUTOMATIC" /> e questo criterio viene configurato, verranno usati i modelli URI specificati; se questo criterio non viene configurato, verranno usate le mappature impostate come hardcoded per cercare di eseguire l'upgrade del resolver DNS attuale dell'utente a un resolver DoH gestito dallo stesso fornitore.
+
+  Se il modello URI contiene una variabile <ph name="HTTP_VARIABLE_DNS" />, per le richieste al resolver verrà usato il metodo <ph name="HTTP_METHOD_GET" />; in caso contrario verrà usato il metodo <ph name="HTTP_METHOD_POST" /> per le richieste.
+
+  Se il criterio viene configurato, è necessario configurare anche il criterio <ph name="DOH_SALT_POLICY_NAME" />.
+
+  I modelli con formato errato verranno ignorati.</translation>
 <translation id="8327651196906278510">Consenti acquisizione schede in base a queste origini</translation>
 <translation id="8329434144708110">Vengono attivati i flussi di autenticazione per la sincronizzazione delle password con fornitori di servizi SSO</translation>
 <translation id="8329984337216493753">Questa norma è attiva soltanto in modalità retail.
@@ -7743,6 +7772,9 @@
       Se il criterio viene impostato su Disattivato o se non viene configurato, l'host di accesso remoto può essere associato a qualsiasi utente locale.</translation>
 <translation id="867708016260789630">Viene forzato l'uso almeno del livello medio della Modalità con restrizioni di YouTube</translation>
 <translation id="8677853537025397834">Consenti l'API WebHID su questi siti</translation>
+<translation id="8684000025871334499">Configura i criteri di installazione e runtime per le VM Bruschetta su <ph name="PRODUCT_OS_NAME" />. In questo modo gli utenti possono installare VM di terze parti. Questa funzionalità è disattivata per impostazione predefinita.
+
+Questo criterio è una mappatura degli ID di configurazione alle configurazioni delle VM. Quando una VM viene installata da una configurazione, viene associata in modo permanente all'ID della configurazione e gli eventuali criteri di runtime nella configurazione si applicano alla VM. È possibile installare più VM dalla stessa configurazione su uno stesso dispositivo.</translation>
 <translation id="8685018726115727387">Disabilita l'importazione della cronologia di navigazione alla prima esecuzione</translation>
 <translation id="8685024486845674965">L'avviso di protezione tramite password viene attivato se vengono riutilizzate password</translation>
 <translation id="8685680544554917389">Se il criterio viene configurato su true, <ph name="PRODUCT_NAME" /> può utilizzare la riproduzione automatica per i contenuti multimediali. Se il criterio viene configurato su false, <ph name="PRODUCT_NAME" /> non può più utilizzare la riproduzione automatica per i contenuti multimediali.
@@ -7852,6 +7884,8 @@
 
           e non ha alcun effetto se non viene configurato. In questo caso, le connessioni di accesso remoto non hanno alcuna durata massima su questa macchina.</translation>
 <translation id="8800453707696044281">Imposta il valore percentuale personalizzato raggiunto il quale viene interrotta la ricarica della batteria</translation>
+<translation id="880110452941793016">Questo salt viene utilizzato come valore di salt quando viene eseguito l'hashing delle informazioni sull'identità incluse nella stringa <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />.
+   Se viene utilizzato il criterio <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />, è necessario configurare questo criterio e impostare una stringa con una lunghezza compresa tra 8 e 32 caratteri.</translation>
 <translation id="8801680448782904838">Invia a un utente una notifica che comunica che è consigliato o necessario eseguire un riavvio del browser o del dispositivo
 </translation>
 <translation id="8804685015028424497">Viene disattivata la modalità di navigazione in incognito</translation>
@@ -8025,6 +8059,7 @@
       Se questo criterio viene disattivato o se non viene configurato, il Powerwash da remoto del dispositivo non verrà attivato, a prescindere dallo stato di caricamento dell'ID di registrazione.
 
       Il Powerwash viene attivato ogni volta che viene caricata la schermata di accesso e viene ripetuto ogni ora se sul dispositivo rimane visualizzata la schermata di accesso. Ciò consente di evitare che la migrazione inizi nel corso di una sessione utente causando potenziali problemi agli utenti finali.</translation>
+<translation id="9003823644527627017">Configura VM Bruschetta su <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="9007632512838819703">Questo criterio è deprecato. Usa il criterio <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />.
 
       Consente di forzare la disattivazione delle lingue per il controllo ortografico. Le lingue dell'elenco non riconosciute verranno ignorate.
@@ -8115,6 +8150,15 @@
       Se questo criterio non è impostato, la selezione automatica non avviene per nessun sito.
 
       Per informazioni dettagliate sui pattern URL validi, visita la pagina https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
+<translation id="9066311316566875681">Il modello URI del resolver DNS over HTTPS desiderato. Per specificare diversi resolver DNS over HTTPS, separa i modelli URI corrispondenti con gli spazi.
+
+      Se il criterio DnsOverHttpsMode viene impostato su <ph name="SECURE_DNS_MODE_SECURE" />, questo criterio deve essere impostato e non può essere vuoto. Soltanto su <ph name="PRODUCT_OS_NAME" /> è necessario impostare questo criterio o il criterio <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />, altrimenti la risoluzione DNS non andrà a buon fine.
+
+      Se il criterio DnsOverHttpsMode viene impostato su <ph name="SECURE_DNS_MODE_AUTOMATIC" /> e questo criterio viene configurato, verranno usati i modelli URI specificati; se questo criterio non viene configurato, verranno usate le mappature impostate come hardcoded per cercare di eseguire l'upgrade del resolver DNS attuale dell'utente a un resolver DoH gestito dallo stesso fornitore.
+
+      Se il modello URI contiene una variabile <ph name="HTTP_VARIABLE_DNS" />, per le richieste al resolver verrà usato il metodo <ph name="HTTP_METHOD_GET" />; in caso contrario verrà usato il metodo <ph name="HTTP_METHOD_POST" /> per le richieste.
+
+      I modelli con formato errato verranno ignorati.</translation>
 <translation id="9068629430243705879">porta 6566 (può essere sbloccata fino al 15/10/2021)</translation>
 <translation id="9069588907259547232">Se il criterio viene impostato su Attivato o se non viene configurato, i dispositivi registrati segnalano il relativo volume dell'audio.
 
@@ -8155,6 +8199,7 @@
 <translation id="9117826695152538214">Se il criterio è impostato su True, i tasti permanenti rimangono attivati. Se il criterio è impostato su False, i tasti permanenti rimangono disattivati.
 
       Se imposti il criterio, gli utenti non possono modificarlo. Se il criterio non è impostato, i tasti permanenti risultano disattivati all'inizio, ma gli utenti possono attivarli in qualsiasi momento.</translation>
+<translation id="91206085111961438">Stabilisci la disponibilità delle estensioni Manifest v2</translation>
 <translation id="9121178963309901985">Questo criterio controlla le richieste di installazione delle estensioni di <ph name="PRODUCT_NAME" /> consentendo agli utenti di inviare alla Console di amministrazione Google le richieste per l'approvazione.
 
       Se il criterio <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> non viene configurato o viene disattivato, questo criterio viene ignorato e le richieste di installazione delle estensioni non vengono create né caricate.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index d632bec..2f2f2217 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -3056,13 +3056,6 @@
 
       注: 使用できる変数の一覧については、https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables をご覧ください。</translation>
 <translation id="4030152268425532846">自動ログインの回避を無効にする</translation>
-<translation id="4041577849977347218">このポリシーを有効に設定するか未設定のままにした場合、ダウンロードしたファイルは、信頼できるソースからのものであってもセーフ ブラウジングの分析に送られます。
-
-      このポリシーを無効に設定した場合、ダウンロードしたファイルは、信頼できるソースからのものであればセーフ ブラウジングの分析には送られません。
-
-      これらの制限は、ウェブページのコンテンツや [リンクをダウンロード] メニューからダウンロードした場合に適用されます。表示中のページを保存またはダウンロードした場合、あるいは印刷オプションから PDF として保存した場合は適用されません。
-
-      <ph name="MS_WIN_NAME" /> では、この機能は <ph name="MS_AD_NAME" /> ドメインに追加されたインスタンス、Windows 10 Pro で実行されているインスタンス、<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> に登録されているインスタンスでのみ使用できます。<ph name="MAC_OS_NAME" /> では、MDM を介して管理されるインスタンスまたは MCX を介してドメインに追加されたインスタンスでのみこの機能を使用できます。</translation>
 <translation id="4043796890723386527">ユーザーに <ph name="LACROS_NAME" /> ブラウザでの予備のプロフィールの作成と使用、およびゲストモードの使用を許可しない</translation>
 <translation id="4051723201852944592">ウィンドウ オクルージョンを有効にします</translation>
 <translation id="4052529125939620019">起動時に CryptoToken コンポーネント拡張機能を読み込む</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 14cd2b3..8ccc42fb 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -1865,6 +1865,15 @@
       정책을 사용 중지하면 전원 피크 시프트가 사용 중지된 상태로 유지됩니다.
 
       설정하지 않으면 처음부터 전원 피크 시프트가 사용 중지됩니다. 사용자는 이 설정을 변경할 수 없습니다.</translation>
+<translation id="2773036462435523078">컴퓨터가 유휴 상태일 때 작업을 실행합니다.
+
+      정책이 설정되어 있으면 사용자 입력이 없는 시간(분)을 지정하여 해당 시간이 지나면 <ph name="PRODUCT_NAME" />에서 <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" /> 정책에 따라 구성된 작업을 실행합니다.
+
+      정책이 설정되어 있지 않으면 아무 작업도 실행되지 않습니다.
+
+      유휴 시간의 최소 기준은 5분입니다.
+
+      '사용자 입력'은 운영체제 API에 의해 정의되며, 마우스 이동 또는 키보드 입력 등의 항목이 포함됩니다.</translation>
 <translation id="2773288106548584039">이전 브라우저 지원</translation>
 <translation id="2780840673734667062">추가 Google 계정으로 로그인 사용 안함</translation>
 <translation id="2784880732336446591">종료 시 인터넷 사용 기록 삭제</translation>
@@ -2294,6 +2303,7 @@
 <translation id="3171369832001535378">기기 네트워크 호스트 이름 템플릿</translation>
 <translation id="3173844121395372156">이 정책은 지원 중단되었으며 지원되지 않습니다. 대신 '<ph name="NATIVE_MESSAGING_ALLOWLIST_POLICY_NAME" />' 정책을 사용하세요.</translation>
 <translation id="3177802893484440532">로컬 트러스트 앵커에 온라인 OCSP/CRL 확인을 요구합니다.</translation>
+<translation id="3179533009079100620">프로필 선택 도구 표시</translation>
 <translation id="3180671894201217988">정책을 사용으로 설정하거나 설정하지 않으면 타사 소프트웨어에서 <ph name="PRODUCT_NAME" />의 프로세스에 실행 가능한 코드를 삽입할 수 없습니다.
 
       사용 안함으로 설정하면 타사 소프트웨어에서 <ph name="PRODUCT_NAME" />의 프로세스에 이러한 코드를 삽입하는 것이 가능합니다.</translation>
@@ -2716,6 +2726,7 @@
 <translation id="3540846231645422635">기기 네트워크 인터페이스 보고 사용 중지</translation>
 <translation id="3540935459049973317">앱별 시간 제한</translation>
 <translation id="3547954654003013442">프록시 설정</translation>
+<translation id="3548064438634502368">브라우저 닫기</translation>
 <translation id="3548642468619496972">악성 다운로드, 비정상적이거나 원치 않는 다운로드, 위험한 파일 형식을 차단합니다.</translation>
 <translation id="3550122827225052130">이 정책은 지원이 중단되었으며 <ph name="PRODUCT_OS_NAME" /> 버전 85에서 삭제될 예정입니다. 대신 <ph name="SCREEN_LOCK_DELAYS_POLICY_NAME" /> 정책을 사용하세요.
 
@@ -2773,6 +2784,19 @@
 <translation id="3591584750136265240">로그인 인증 동작 설정</translation>
 <translation id="3593905652755912452">disabled 양식 컨트롤에서 기존 이벤트 전달 동작이 사용됩니다.</translation>
 <translation id="3596112486106491038">가상 머신 명령줄 액세스 권한 사용 설정</translation>
+<translation id="3596335476793146071"><ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책에 설정된 시간 초과 시 실행할 작업 목록입니다.
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책이 설정되어 있지 않으면 이 정책이 적용되지 않습니다.
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책에 설정된 시간 초과 시 <ph name="PRODUCT_NAME" />에서 이 정책에 구성된 작업을 실행합니다.
+
+      정책이 비어 있거나 설정되어 있지 않으면 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책이 적용되지 않습니다.
+
+      지원되는 작업:
+
+      '<ph name="CLOSE_BROWSERS_ACTION" />': 프로필의 모든 브라우저 창과 PWA를 닫습니다.
+
+      '<ph name="SHOW_PROFILE_PICKER_ACTION" />': 프로필 선택 도구 창을 표시합니다.</translation>
 <translation id="3603469950773500315">새로운 <ph name="CORS" /> 구현에서 <ph name="CORS" /> 확인 완화를 사용 설정하여 확장 프로그램이 호환되는 동작을 유지하도록 허용하고 <ph name="PRODUCT_NAME" />에서 <ph name="CORS" /> 확인 없이 지정된 헤더를 전송하도록 허용합니다.
 
       목록이 빈 상태로 설정되어 있으면 <ph name="PRODUCT_NAME" />은 호환되는 방식으로 확장 프로그램을 실행하도록 시도하고 <ph name="WEB_REQUEST_API_MANUAL" />에 설명된 것처럼 <ph name="PRODUCT_NAME" /> 79의 <ph name="API" /> 변경사항을 적용하지 않습니다.
@@ -3213,13 +3237,6 @@
 
       참고: 다음 페이지에서 사용 가능한 변수를 확인하세요. https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables</translation>
 <translation id="4030152268425532846">자동 로그인 취소 사용 중지</translation>
-<translation id="4041577849977347218">정책을 사용으로 설정하거나 설정하지 않으면 신뢰할 수 있는 출처에서 다운로드된 파일인 경우에도 세이프 브라우징 분석을 위해 전송됩니다.
-
-      정책을 사용 안함으로 설정하면 신뢰할 수 있는 출처에서 다운로드된 파일은 세이프 브라우징 분석을 위해 전송되지 않습니다.
-
-      이러한 제한은 웹페이지 콘텐츠에서 실행된 다운로드 항목뿐 아니라 '링크 다운로드' 메뉴 옵션을 통한 항목에도 적용됩니다. 하지만 현재 표시된 페이지의 저장/다운로드 또는 인쇄 옵션 중 'PDF로 저장'에는 적용되지 않습니다.
-
-      <ph name="MS_WIN_NAME" />의 경우 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스 또는 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다. <ph name="MAC_OS_NAME" />의 경우에는 MDM을 통해 관리되는 인스턴스 또는 MCX를 통해 도메인에 연결된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="4043796890723386527">사용자가 <ph name="LACROS_NAME" /> 브라우저에서 보조 프로필을 만들어 사용하거나 게스트 모드를 사용하지 못하도록 차단</translation>
 <translation id="4051723201852944592">창 오클루전 사용 설정</translation>
 <translation id="4052529125939620019">시작 시 CryptoToken 구성요소 확장 프로그램 로드</translation>
@@ -3919,6 +3936,7 @@
 
       정책을 설정하지 않으면 기본적으로 기업 관리 사용자에게는 허용되지 않고 관리되지 않는 사용자에게는 허용됩니다.</translation>
 <translation id="4783415902268741066">브라우저 측면 패널에 가장 최근의 기본 검색엔진 결과 페이지가 표시되도록 허용합니다.</translation>
+<translation id="4786784434769279324">컴퓨터가 유휴 상태일 때 실행할 작업</translation>
 <translation id="4787763197941188108">기본 인쇄 페이지 크기를 재정의합니다.
 
       필수 페이지 크기가 목록에 없을 경우 <ph name="PAGE_SIZE_NAME" />에는 나열된 형식 중 하나 또는 '맞춤 설정'이 포함되어야 합니다. '맞춤 설정' 값이 제공될 경우 <ph name="PAGE_SIZE_CUSTOM_SIZE" /> 속성이 지정되어야 합니다. 원하는 높이와 너비를 마이크로미터 단위로 설명합니다. 그 외의 경우에는 <ph name="PAGE_SIZE_CUSTOM_SIZE" /> 속성을 지정해서는 안 됩니다. 이 규칙을 위반하는 정책은 무시됩니다.
@@ -5284,6 +5302,7 @@
       정책이 false로 설정되거나 설정되지 않으면 비정상 종료 보고서 정보가
       보고되지 않습니다. true로 설정되면 비정상 종료 보고서 정보가
       보고됩니다.</translation>
+<translation id="624219423122512710">유휴 브라우저 작업</translation>
 <translation id="6244061205361004687">사용자가 VPN을 수동으로 연결 해제하거나 수정하도록 허용</translation>
 <translation id="6244210204546589761">시작 시 열리는 URL</translation>
 <translation id="624595269193747921">일치하는 프린터 검색을 특정 프린터 집합으로 제한할지를 나타냅니다.</translation>
@@ -5636,6 +5655,7 @@
 
       참고: 현재 자동 재부팅은 로그인 화면이 표시되어 있거나 키오스크 앱 세션이 진행 중일 때만 사용 설정됩니다.</translation>
 <translation id="6556586932263358975">화면 잠금 허용</translation>
+<translation id="6558013557780651644">유휴 작업 실행 전 지연</translation>
 <translation id="6559057113164934677">카메라 및 마이크에 대한 모든 사이트의 액세스 허용 안함</translation>
 <translation id="65591220958874949">Windows, macOS, Android, ChromeOS에서 내장 DNS 클라이언트 사용</translation>
 <translation id="6559221564468029245">정책을 사용 설정하거나 설정하지 않으면 오디오 재생 중에는 사용자를 유휴 상태로 간주하지 않습니다. 따라서 유휴 제한 시간에 도달하지 않고 유휴 작업이 실행되지 않습니다. 하지만 설정된 시간 제한 후에는 오디오 활동과 관계없이 화면 어둡게 하기, 화면 꺼짐, 화면 잠금이 실행됩니다.
@@ -7641,6 +7661,8 @@
       경고: 버전 제한을 설정하면 사용자가 소프트웨어 업데이트 및 주요 보안 수정사항을 받지 못하게 될 수 있으므로 설정하지 않는 것이 좋습니다. 특정 버전의 접두어로 업데이트를 제한하면 사용자가 위험에 노출될 수도 있습니다.</translation>
 <translation id="8508489378025029342">기기 활동 시간 보고 사용 설정</translation>
 <translation id="8511192250554640451">백그라운드 자바스크립트 타이머 조절을 Chrome 로직으로 제어하고 사용자가 구성할 수 있도록 허용</translation>
+<translation id="8511708772548158302">현재 OS 버전이 대상 버전보다 높은 경우 기기를 대상 버전으로 롤백합니다. 기기가 초기화되지만 인증서가 없는 기기 전체 네트워크 구성은 유지되고 기기가 자동으로 재등록됩니다.
+<ph name="PRODUCT_OS_NAME" /> 106 또는 이전 버전으로 롤백하는 기능은 지원되지 않습니다.</translation>
 <translation id="8519264904050090490">관리 사용자 직접 예외 URL</translation>
 <translation id="8519516251436131647">접근성 기능 단축키를 사용 설정합니다.
 
@@ -8081,6 +8103,7 @@
       정책이 False로 설정되거나 설정되어 있지 않으면 M81, M82, M83에서 실행될 때 새로워진 양식 컨트롤 요소가 사용 설정됩니다.
 
       이 정책은 Chrome 84 이후 삭제됩니다.</translation>
+<translation id="8940173892071872775">브라우저가 유휴 상태일 때 실행하는 작업을 제어합니다.</translation>
 <translation id="8942616385591203339">이 정책은 최초 로그인 시 사용자에게 동기화 동의 표시 여부를 제어합니다. 동기화 동의가 사용자에게 필요하지 않은 경우 False로 설정해야 합니다.
       False로 설정하면 동기화 동의가 표시되지 않습니다.
       True로 설정하거나 설정하지 않으면 동기화 동의를 표시할 수 있습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index e57020a7..16511b7 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -1840,6 +1840,15 @@
       Als je het beleid niet toepast, blijft stroom voor piekuren uit.
 
 Als je het beleid niet instelt, staat de stroom voor piekuren aanvankelijk uit. Gebruikers kunnen deze instelling niet wijzigen.</translation>
+<translation id="2773036462435523078">Hiermee wordt een actie gestart als de computer inactief is.
+
+      Als dit beleid is ingesteld, specificeert het de tijdsduur zonder gebruikersinvoer (in minuten) voordat <ph name="PRODUCT_NAME" /> acties uitvoert die zijn ingesteld via het beleid <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />.
+
+      Als dit beleid niet is ingesteld, wordt er geen actie uitgevoerd.
+
+      De minimumdrempel is 5 minuten.
+
+      'Gebruikersinvoer' wordt gedefinieerd door API's voor het besturingssysteem en omvat bijvoorbeeld de muis bewegen of typen op het toetsenbord.</translation>
 <translation id="2773288106548584039">Ondersteuning voor oudere browsers</translation>
 <translation id="2780840673734667062">Inloggen met extra Google-accounts uitzetten</translation>
 <translation id="2784880732336446591">Browsegegevens wissen bij afsluiten</translation>
@@ -2269,6 +2278,7 @@
 <translation id="3171369832001535378">Template voor hostnaam van apparaat in netwerk</translation>
 <translation id="3173844121395372156">Dit beleid is beëindigd en wordt niet ondersteund. Gebruik in plaats daarvan het beleid <ph name="NATIVE_MESSAGING_ALLOWLIST_POLICY_NAME" />.</translation>
 <translation id="3177802893484440532">Online OCSP/CRL-controles voor lokale vertrouwensinstanties vereisen</translation>
+<translation id="3179533009079100620">Profielkiezer tonen</translation>
 <translation id="3180671894201217988">Als je dit beleid toepast of niet instelt, wordt voorkomen dat software van derden uitvoerbare code in de processen van <ph name="PRODUCT_NAME" /> injecteert.
 
       Als je het beleid niet toepast, kan deze software dergelijke code in de processen van <ph name="PRODUCT_NAME" /> injecteren.</translation>
@@ -2685,6 +2695,7 @@
 <translation id="3540846231645422635">Rapportage voor netwerkinterface van apparaat uitzetten</translation>
 <translation id="3540935459049973317">Tijdslimieten per app</translation>
 <translation id="3547954654003013442">Proxyinstellingen</translation>
+<translation id="3548064438634502368">Browsers sluiten</translation>
 <translation id="3548642468619496972">Schadelijke downloads, ongebruikelijke of ongewenste downloads en gevaarlijke bestandstypen blokkeren.</translation>
 <translation id="3550122827225052130">Dit beleid is beëindigd en wordt verwijderd in <ph name="PRODUCT_OS_NAME" />-versie 85. Gebruik in plaats daarvan <ph name="SCREEN_LOCK_DELAYS_POLICY_NAME" />.
 
@@ -2741,6 +2752,19 @@
 <translation id="3591584750136265240">Het verificatiegedrag voor inloggen configureren</translation>
 <translation id="3593905652755912452">Het oude gedrag voor de verzending van gebeurtenissen voor uitgezette bedieningselementen op formulieren wordt gebruikt.</translation>
 <translation id="3596112486106491038">Opdrachtregeltoegang tot virtuele machines aanzetten</translation>
+<translation id="3596335476793146071">Lijst met acties die moeten worden uitgevoerd als de time-out van het beleid <ph name="IDLE_TIMEOUT_POLICY_NAME" /> is bereikt.
+
+      Als het beleid <ph name="IDLE_TIMEOUT_POLICY_NAME" /> niet is ingesteld, heeft dit beleid geen effect.
+
+      Als de time-out van het beleid <ph name="IDLE_TIMEOUT_POLICY_NAME" /> is bereikt, voert <ph name="PRODUCT_NAME" /> de acties uit die in dit beleid zijn geconfigureerd.
+
+      Als je dit beleid leeg laat of niet instelt, heeft het beleid <ph name="IDLE_TIMEOUT_POLICY_NAME" /> geen effect.
+
+      Deze acties worden ondersteund:
+
+<ph name="CLOSE_BROWSERS_ACTION" />: alle browservensters en PWA's voor dit profiel sluiten.
+
+      <ph name="SHOW_PROFILE_PICKER_ACTION" />: het profielkiezervenster tonen.</translation>
 <translation id="3603469950773500315">Zet <ph name="CORS" />-controlebeperkingen voor de nieuwe <ph name="CORS" />-implementatie aan, waardoor extensies geschikt gedrag kunnen behouden en <ph name="PRODUCT_NAME" /> toestemming heeft om opgegeven headers te sturen zonder <ph name="CORS" />-controle.
 
       Als deze lijst leeg is, probeert <ph name="PRODUCT_NAME" /> extensies op geschikte manieren uit te voeren en worden er geen <ph name="API" />-wijzingen geïntroduceerd voor <ph name="PRODUCT_NAME" /> 79, zoals uitgelegd in <ph name="WEB_REQUEST_API_MANUAL" />.
@@ -3180,13 +3204,6 @@
 
       Opmerking: Bekijk een lijst met variabelen die je kunt gebruiken (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation>
 <translation id="4030152268425532846">Automatisch inloggen voortijdig afbreken niet toestaan</translation>
-<translation id="4041577849977347218">Als je het beleid toepast of niet instelt, worden gedownloade bestanden voor analyse gestuurd naar Safe Browsing, zelfs als deze van een vertrouwde bron afkomstig zijn.
-
-      Als je het beleid niet toepast, worden gedownloade bestanden niet voor analyse naar Safe Browsing gestuurd als deze van een vertrouwde bron afkomstig zijn.
-
-      Deze beperkingen gelden zowel voor downloads die via de webpaginacontent als voor downloads die via de menuoptie 'Link downloaden' geactiveerd zijn. Deze beperkingen gelden niet voor het opslaan of downloaden van de huidige pagina die wordt getoond of voor de afdrukoptie Opslaan als pdf.
-
-      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. In <ph name="MAC_OS_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die via MDM worden beheerd of via MCX aan een domein zijn gekoppeld.</translation>
 <translation id="4043796890723386527">Voorkomen dat gebruikers secundaire profielen maken en gebruiken of dat ze de gastmodus gebruiken in de <ph name="LACROS_NAME" />-browser</translation>
 <translation id="4051723201852944592">Occlusie van vensters aanzetten</translation>
 <translation id="4052529125939620019">De componentextensie CryptoToken laden bij opstarten</translation>
@@ -3855,6 +3872,7 @@
 
       Als je dit beleid niet instelt, geldt de standaardwaarde 'niet toegestaan' voor beheerde zakelijke gebruikers en 'toegestaan' voor niet-beheerde gebruikers.</translation>
 <translation id="4783415902268741066">Weergave van de meest recente resultatenpagina van de standaard zoekmachine in een zijvenster van de browser toestaan</translation>
+<translation id="4786784434769279324">Acties die moeten worden uitgevoerd als de computer inactief is</translation>
 <translation id="4787763197941188108">Hiermee overschrijf je het standaardformaat voor de afdrukpagina.
 
       <ph name="PAGE_SIZE_NAME" /> moet een van de vermelde indelingen bevatten of 'custom' als het vereiste papierformaat niet in de lijst staat. Als de waarde 'custom' is opgegeven, moet de eigenschap <ph name="PAGE_SIZE_CUSTOM_SIZE" /> worden gespecificeerd. Dit beschrijft de gewenste hoogte en breedte in micrometers. Anders moet de eigenschap <ph name="PAGE_SIZE_CUSTOM_SIZE" /> niet worden gespecificeerd. Beleid dat deze regels schendt, wordt genegeerd.
@@ -5202,6 +5220,7 @@
 <translation id="6242147107333796512">Informatie met betrekking tot crashrapporten rapporteren, zoals externe ID, tijdstempel van registratie en oorzaak.
 
       Als het beleid is ingesteld op False of niet is ingesteld, wordt informatie over crashrapporten niet gerapporteerd. Als het beleid is ingesteld op True, wordt informatie over crashrapporten gerapporteerd.</translation>
+<translation id="624219423122512710">Acties bij inactieve browser</translation>
 <translation id="6244061205361004687">De gebruiker toestaan een VPN handmatig te ontkoppelen of aan te passen</translation>
 <translation id="6244210204546589761">URL's die worden geopend bij starten</translation>
 <translation id="624595269193747921">Of het zoeken naar de overeenkomende printer moet worden beperkt tot een specifieke reeks printers.</translation>
@@ -5552,6 +5571,7 @@
 
       Opmerking: Automatisch opnieuw opstarten staat alleen aan terwijl het inlogscherm wordt getoond of er een kiosk-app-sessie wordt uitgevoerd.</translation>
 <translation id="6556586932263358975">Schermvergrendeling toestaan</translation>
+<translation id="6558013557780651644">Vertraging voordat acties bij inactiviteit worden uitgevoerd</translation>
 <translation id="6559057113164934677">Niet toestaan dat sites toegang krijgen tot de camera en microfoon</translation>
 <translation id="65591220958874949">De ingebouwde DNS-client gebruiken op Windows, macOS, Android en ChromeOS</translation>
 <translation id="6559221564468029245">Als je dit beleid toepast of niet instelt, worden gebruikers niet als inactief gezien als er audio wordt afgespeeld. Hierdoor wordt voorkomen dat de time-out voor inactiviteit wordt bereikt en dat de actie bij inactiviteit wordt ondernomen. Het dimmen, uitzetten of vergrendelen van het scherm wordt nog wel uitgevoerd na de ingestelde periode, ongeacht of er audio wordt afgespeeld.
@@ -7537,6 +7557,8 @@
       Waarschuwing: Het wordt niet aanbevolen versiebeperkingen te configureren, omdat gebruikers hierdoor mogelijk geen software-updates en essentiële beveiligingsoplossingen ontvangen. Als je updates beperkt tot een specifiek versievoorvoegsel, kunnen gebruikers gevaar lopen.</translation>
 <translation id="8508489378025029342">Rapportage voor tijd van apparaatactiviteit aanzetten</translation>
 <translation id="8511192250554640451">Toestaan dat throttling van JavaScript-timers op de achtergrond wordt bepaald door Chrome-logica en wordt ingesteld door gebruikers</translation>
+<translation id="8511708772548158302">Herstel het apparaat naar de doelversie als de huidige OS-versie nieuwer is dan de doelversie. Er wordt een Powerwash op het apparaat uitgevoerd, maar apparaatbrede netwerkconfiguraties zonder certificaten blijven bewaard en het apparaat wordt automatisch opnieuw ingeschreven.
+Rollback naar <ph name="PRODUCT_OS_NAME" /> versie 106 of lager wordt niet ondersteund.</translation>
 <translation id="8519264904050090490">URL's van handmatige uitzonderingen voor beheerde gebruikers</translation>
 <translation id="8519516251436131647">Zet snelkoppelingen voor toegankelijkheidsfuncties aan.
 
@@ -7976,6 +7998,7 @@
       Als dit beleid is ingesteld op False of niet is ingesteld, worden de formulierbesturingselementen gebruikt zoals ze worden gelanceerd in M81, M82 en M83.
 
       Dit beleid wordt na Chrome 84 verwijderd.</translation>
+<translation id="8940173892071872775">Beheert acties die worden uitgevoerd als de browser inactief is.</translation>
 <translation id="8942616385591203339">Dit beleid bepaalt of er informatie over toestemming voor synchronisatie mag worden getoond aan de gebruiker wanneer deze voor het eerst inlogt. De waarde moet op 'False' worden ingesteld als er nooit toestemming voor synchronisatie is vereist voor de gebruiker.
       Als dit is ingesteld op 'False', wordt er geen informatie over toestemming voor synchronisatie getoond.
       Als dit is ingesteld op 'True' of als dit niet is ingesteld, kan er informatie over toestemming voor synchronisatie worden getoond.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 5e3a66cd..70b28b6 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1871,6 +1871,15 @@
       Se a política for definida como "Desativada", a economia de energia no período de pico permanecerá inativa.
 
       Se a política não for definida, a economia de energia no período de pico será desativada inicialmente. Não é possível mudar essa configuração.</translation>
+<translation id="2773036462435523078">Aciona uma ação quando o computador está inativo.
+
+      Se esta política for definida, ela vai especificar após quantos minutos sem entradas do usuário o <ph name="PRODUCT_NAME" /> vai executar ações configuradas pela <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />.
+
+      Se a política for deixada sem definição, nenhuma ação será executada.
+
+      O limite mínimo é de cinco minutos.
+
+      A "entrada do usuário" é definida pelas APIs do sistema operacional e inclui ações como mover o mouse ou digitar no teclado.</translation>
 <translation id="2773288106548584039">Suporte a navegadores legados</translation>
 <translation id="2780840673734667062">Desativar o login com mais Contas do Google</translation>
 <translation id="2784880732336446591">Remover dados de navegação ao sair</translation>
@@ -2307,6 +2316,7 @@
 <translation id="3171369832001535378">Modelo de nome do host da rede do dispositivo</translation>
 <translation id="3173844121395372156">Essa política foi descontinuada e parou de ter suporte. Use a <ph name="NATIVE_MESSAGING_ALLOWLIST_POLICY_NAME" />.</translation>
 <translation id="3177802893484440532">Exigir verificações on-line de OCSP/CRL para âncoras de confiança locais</translation>
+<translation id="3179533009079100620">Mostrar seletor de perfil</translation>
 <translation id="3180671894201217988">Se a política for ativada ou deixada sem definição, softwares de terceiros não poderão injetar código executável em processos do <ph name="PRODUCT_NAME" />.
 
       Se a política for desativada, esses softwares poderão injetar os códigos executáveis nos processos do <ph name="PRODUCT_NAME" />.</translation>
@@ -2724,6 +2734,7 @@
 <translation id="3540846231645422635">Desativar relatórios sobre a interface de rede do dispositivo</translation>
 <translation id="3540935459049973317">Limites de tempo por app</translation>
 <translation id="3547954654003013442">Configurações de proxy</translation>
+<translation id="3548064438634502368">Fechar navegadores</translation>
 <translation id="3548642468619496972">Bloquear downloads maliciosos, incomuns ou indesejados e tipos de arquivo perigosos.</translation>
 <translation id="3550122827225052130">Esta política está obsoleta e será removida na versão 85 do <ph name="PRODUCT_OS_NAME" />. Por isso, passe a usar <ph name="SCREEN_LOCK_DELAYS_POLICY_NAME" />.
 
@@ -2781,6 +2792,19 @@
 <translation id="3591584750136265240">Configura o comportamento de autenticação de login</translation>
 <translation id="3593905652755912452">O comportamento antigo para envio de eventos em controles de formulário desativados vai ser usado.</translation>
 <translation id="3596112486106491038">Ativar o acesso à linha de comando de máquinas virtuais</translation>
+<translation id="3596335476793146071">Lista de ações a serem executadas quando o tempo limite da política <ph name="IDLE_TIMEOUT_POLICY_NAME" /> for atingido.
+
+      Se a <ph name="IDLE_TIMEOUT_POLICY_NAME" /> não for definida, esta política não terá efeito.
+
+      Quando o tempo limite da <ph name="IDLE_TIMEOUT_POLICY_NAME" /> é atingido, o <ph name="PRODUCT_NAME" /> executa as ações configuradas nesta política.
+
+      Se esta política for deixada em branco ou sem definição, a <ph name="IDLE_TIMEOUT_POLICY_NAME" /> não vai ter efeito.
+
+      As ações com suporte são:
+
+      "<ph name="CLOSE_BROWSERS_ACTION" />": fechar todas as janelas e PWAs do navegador deste perfil.
+
+      "<ph name="SHOW_PROFILE_PICKER_ACTION" />": mostrar a janela do seletor de perfil.</translation>
 <translation id="3603469950773500315">Ative as mitigações de verificação de <ph name="CORS" /> na nova implementação de <ph name="CORS" />, permitindo que as extensões mantenham um comportamento compatível e permitindo que o <ph name="PRODUCT_NAME" /> envie cabeçalhos especificados sem verificações de <ph name="CORS" />.
 
       Se esta lista for definida como vazia, o <ph name="PRODUCT_NAME" /> tentará executar extensões de maneiras compatíveis e não introduzirá mudanças de <ph name="API" /> para o <ph name="PRODUCT_NAME" /> 79, conforme explicado em <ph name="WEB_REQUEST_API_MANUAL" />.
@@ -3221,13 +3245,6 @@
 
       Observação: veja uma lista com as variáveis que podem ser usadas: https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables (link em inglês).</translation>
 <translation id="4030152268425532846">Desativar o descarte do login automático</translation>
-<translation id="4041577849977347218">Se a política for definida como "Ativada" ou não for definida, os arquivos transferidos por download serão enviados para análise pelo "Navegação segura", mesmo que sejam de uma fonte confiável.
-
-      Se a política for definida como "Desativada", os arquivos transferidos por download não serão enviados para análise pelo "Navegação segura" quando forem de uma fonte confiável.
-
-      Essas restrições são aplicadas a downloads acionados em conteúdos de páginas da Web e na opção do menu "Fazer download do link". Essas restrições não se aplicam às opções de salvar ou fazer o download da página atualmente em exibição nem de salvar como PDF nas opções de impressão.
-
-      No <ph name="MS_WIN_NAME" />, essa funcionalidade está disponível apenas em instâncias associadas a um domínio do <ph name="MS_AD_NAME" />, executadas no Windows 10 Pro ou registradas no <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. No <ph name="MAC_OS_NAME" />, essa funcionalidade está disponível apenas em instâncias gerenciadas por MDM ou associadas a um domínio via MCX.</translation>
 <translation id="4043796890723386527">Impedir que os usuários criem e usem perfis secundários e usem o modo visitante no navegador <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Ativar oclusão de janelas</translation>
 <translation id="4052529125939620019">Carregar a extensão do componente do CryptoToken na inicialização</translation>
@@ -3937,6 +3954,7 @@
 
       Se esta política for deixada sem definição, o comportamento padrão será não permitir para usuários gerenciados por empresas e permitir para usuários não gerenciados.</translation>
 <translation id="4783415902268741066">Permitir mostrar a página de resultados mais recente do mecanismo de pesquisa padrão em um painel lateral do navegador</translation>
+<translation id="4786784434769279324">Ações a serem executadas quando o computador estiver inativo</translation>
 <translation id="4787763197941188108">Modifica o tamanho da página para impressão padrão.
 
       <ph name="PAGE_SIZE_NAME" /> precisa conter um dos formatos listados ou "personalizado" se o tamanho do papel exigido não estiver na lista. Se um valor "personalizado" for fornecido, a propriedade <ph name="PAGE_SIZE_CUSTOM_SIZE" /> precisará ser especificada. Ela descreve a altura e a largura desejadas em micrômetros. Caso contrário, a propriedade <ph name="PAGE_SIZE_CUSTOM_SIZE" /> não precisa ser especificada. A política que violar essas regras será ignorada.
@@ -5295,6 +5313,7 @@
 <translation id="6242147107333796512">Enviar informações de relatórios de erros, como ID remoto, carimbo de data/hora da captura e causa.
 
       Se a política for definida como falsa ou não for definida, as informações de relatórios de erros não serão enviadas. Se ela for definida como verdadeira, as informações de relatórios de erros serão enviadas.</translation>
+<translation id="624219423122512710">Ações do navegador inativo</translation>
 <translation id="6244061205361004687">Permitir que o usuário desconecte ou modifique uma VPN de forma manual</translation>
 <translation id="6244210204546589761">URLs que devem ser abertos na inicialização</translation>
 <translation id="624595269193747921">Se a pesquisa de impressora correspondente é limitada ou não a um conjunto específico de impressoras.</translation>
@@ -5659,6 +5678,7 @@
 
       Observação: no momento, as reinicializações automáticas são ativadas apenas enquanto a tela de login está sendo mostrada ou uma sessão de aplicativo de quiosque está em andamento.</translation>
 <translation id="6556586932263358975">Permitir o bloqueio da tela</translation>
+<translation id="6558013557780651644">Atraso antes de executar ações de inatividade</translation>
 <translation id="6559057113164934677">Não permitir que nenhum site acesse minha câmera e meu microfone</translation>
 <translation id="65591220958874949">Usar o cliente DNS integrado no Windows, macOS, Android e ChromeOS</translation>
 <translation id="6559221564468029245">Se a política for definida como "Ativada" ou não for definida, o usuário não será considerado inativo quando o dispositivo estiver tocando áudio. Isso impede que o tempo limite de inatividade seja atingido e que as ações correspondentes sejam realizadas. No entanto, o escurecimento, o desligamento e o bloqueio de tela ainda serão realizados após os limites de tempo configurados, independentemente da atividade de áudio.
@@ -7658,6 +7678,8 @@
       Aviso: não é recomendável configurar restrições de versão, porque elas podem impedir que os usuários recebam atualizações de software e correções de segurança críticas. Restringir as atualizações para um prefixo de versão específico pode colocar os usuários em risco.</translation>
 <translation id="8508489378025029342">Ativar relatórios sobre o horário das atividades do dispositivo</translation>
 <translation id="8511192250554640451">Permitir que a limitação de timers do JavaScript em segundo plano seja controlada pela lógica do Chrome e configurada pelos usuários</translation>
+<translation id="8511708772548158302">Reverter o dispositivo para a versão de destino se a atual do SO for mais recente. O dispositivo vai passar por um Powerwash, mas as configurações de rede sem certificado no dispositivo serão preservadas e registradas novamente.
+Não há suporte à reversão para o <ph name="PRODUCT_OS_NAME" /> 106 ou versão anterior.</translation>
 <translation id="8519264904050090490">URLs de exceção manual do usuário gerenciado</translation>
 <translation id="8519516251436131647">Ative os atalhos de recursos de acessibilidade.
 
@@ -8101,6 +8123,7 @@
       Se ela for definida como falsa ou não for definida, os elementos de controle de formulário serão ativados conforme foram lançados nas versões M81, M82 e M83.
 
       Esta política será removida após o Chrome 84.</translation>
+<translation id="8940173892071872775">Controla as ações executadas quando o navegador está inativo.</translation>
 <translation id="8942616385591203339">Esta política controla se o consentimento de sincronização pode ser exibido para o usuário durante o primeiro login. É necessário defini-la como falsa se o consentimento de sincronização nunca for necessário para o usuário.
       Se definida como falsa, o consentimento de sincronização não será exibido.
       Se definida como verdadeira ou não definida, o consentimento de sincronização poderá ser exibido.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 7781b42b..f713a56 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -3212,13 +3212,6 @@
 
       Вы также можете ознакомиться со списком переменных (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation>
 <translation id="4030152268425532846">Запретить отмену автоматического входа</translation>
-<translation id="4041577849977347218">Если правило включено или не настроено, то все скачиваемые файлы, в том числе из надежных источников, будут проверяться с помощью Безопасного просмотра.
-
-      Если правило отключено, то файлы, скачиваемые из надежных источников, проверяться не будут.
-
-      Эти ограничения распространяются как на скачивания, запускаемые на веб-странице, так и на скачивания, запускаемые по команде "Сохранить данные по ссылке" в контекстном меню. Эти ограничения не распространяются на скачивание открытой в данный момент страницы, а также на сохранение в формате PDF из окна печати.
-
-      В <ph name="MS_WIN_NAME" /> это правило можно настроить только на устройствах, которые входят в домен <ph name="MS_AD_NAME" />, на которых установлена ОС Windows 10 Pro или которые зарегистрированы в программе "<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />". В <ph name="MAC_OS_NAME" /> правило поддерживается только на устройствах, которые контролируются с помощью ПО для управления мобильными устройствами или добавлены в домен через MCX.</translation>
 <translation id="4043796890723386527">Запретить пользователям создавать дополнительные профили и использовать гостевой режим в браузере <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Включить перекрытие окон</translation>
 <translation id="4052529125939620019">Загружать расширение CryptoToken при запуске</translation>
@@ -4146,6 +4139,15 @@
 
       Для добавления элементов в список можно также использовать правило <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Список разрешенных пользователей</translation>
+<translation id="5069522005630249098">Этот параметр определяет, какой объем пользовательских данных сохраняется после отключения <ph name="LACROS_NAME" />.
+
+      Если правило не настроено или для него установлено значение <ph name="LACROS_BACKWARD_MIGRATION_NONE" />, выполняется перенос данных из Lacros в Ash.
+
+      Если установлено значение <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, все пользовательские данные удаляются. Это наиболее безопасный вариант.
+
+      Если установлено значение <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, большинство пользовательских данных удаляется. Сохраняются только независимые от браузера файлы (например, те, что были скачаны на устройство).
+
+      Если установлено значение <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, все пользовательские данные сохраняются. При выборе этого варианта высок риск возникновения ошибки. Может потребоваться восстановление заводских настроек.</translation>
 <translation id="5071303485174858500">Отключить управляемый гостевой сеанс с ограниченным доступом</translation>
 <translation id="5073609397321802133">Если для правила установлено значение False, пользователи не смогут изменять фон страницы быстрого доступа. Уже используемые изображения удаляются без возможности восстановления даже в том случае, если позже будет выбрано значение True.
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index b0ccbf2..79a133a9 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -3205,13 +3205,6 @@
 
       หมายเหตุ: ดูรายการตัวแปรที่คุณใช้ได้ (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables)</translation>
 <translation id="4030152268425532846">ปิดใช้การช่วยเหลือสำหรับการเข้าสู่ระบบโดยอัตโนมัติ</translation>
-<translation id="4041577849977347218">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าหมายความว่าระบบจะส่งไฟล์ที่ดาวน์โหลดไปให้ Google Safe Browsing วิเคราะห์ แม้ว่าไฟล์นั้นจะมาจากแหล่งที่มาที่เชื่อถือได้ก็ตาม
-
-      การตั้งค่านโยบายเป็น "ปิดใช้" หมายความว่าระบบจะไม่ส่งไฟล์ที่ดาวน์โหลดไปให้ Google Safe Browsing วิเคราะห์ เมื่อมาจากแหล่งที่มาที่เชื่อถือได้
-
-      ข้อจำกัดเหล่านี้มีผลกับการดาวน์โหลดที่เกิดขึ้นจากเนื้อหาของหน้าเว็บ รวมถึงตัวเลือกเมนู "ดาวน์โหลดลิงก์" ด้วย แต่ไม่มีผลกับการบันทึกหรือการดาวน์โหลดของหน้าที่แสดงอยู่ หรือการบันทึกเป็น PDF จากตัวเลือกการพิมพ์
-
-      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนใน<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation>
 <translation id="4043796890723386527">ป้องกันไม่ให้ผู้ใช้สร้างและใช้โปรไฟล์รอง ตลอดจนป้องกันไม่ให้ใช้โหมดผู้มาเยือนในเบราว์เซอร์ <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">เปิดใช้การตรวจหาการบังหน้าต่าง</translation>
 <translation id="4052529125939620019">โหลดส่วนขยายคอมโพเนนต์ CryptoToken เมื่อเริ่มต้นระบบ</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index f31fdbd..9c8748a9 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -3207,13 +3207,6 @@
 
       Not: Kullanabileceğiniz değişkenlerin listesine bakın (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation>
 <translation id="4030152268425532846">Otomatik giriş kurtarmayı devre dışı bırak</translation>
-<translation id="4041577849977347218">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa, indirilen dosyalar güvenilir bir kaynaktan olsa bile Güvenli Tarama tarafından analiz edilmeye gönderilir.
-
-      Politika, Devre dışı değerine ayarlanırsa, indirilen dosyalar güvenilir bir kaynaktan olduğunda Güvenli Tarama tarafından analiz edilmeye gönderilmez.
-
-      Bu kısıtlamalar hem web sayfası içeriğinden hem de Bağlantıyı indir menü seçeneğinden tetiklenen indirmeler için geçerlidir. Bu kısıtlamalar, görüntülenmekte olan sayfanın kaydedilmesi veya indirilmesinde ya da yazdırma seçeneklerinden PDF olarak kaydedilmesinde geçerli değildir.
-
-      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> öğesine kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation>
 <translation id="4043796890723386527">Kullanıcıların, <ph name="LACROS_NAME" /> tarayıcıda ikinci profiller oluşturup kullanmalarını ve misafir modunu kullanmalarını engelle.</translation>
 <translation id="4051723201852944592">Pencere Kapamayı Etkinleştir</translation>
 <translation id="4052529125939620019">CryptoToken bileşen uzantısını başlangıçta yükle</translation>
@@ -4137,6 +4130,15 @@
 
       Not: Bu listeye <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> politikası aracılığıyla öğeler eklenebileceğini de unutmayın.</translation>
 <translation id="5067143124345820993">Kullanıcı beyaz listesine giriş yap</translation>
+<translation id="5069522005630249098">Bu ayar, <ph name="LACROS_NAME" /> devre dışı bırakıldıktan sonra kullanıcı verilerinin ne kadarının saklanacağını belirler.
+
+      Politika <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> değerine ayarlanır veya ayarlanmadan bırakılırsa geriye dönük veri taşıma işlemi yapılmaz.
+
+      Politika <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" /> değerine ayarlanırsa tüm kullanıcı verileri kaldırılır. Bu en güvenli seçenektir.
+
+      Politika <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" /> değerine ayarlanırsa kullanıcı verilerinin çoğu kaldırılır. Yalnızca tarayıcıdan bağımsız dosyalar (örneğin, indirilenler) saklanır.
+
+      Politika <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" /> değerine ayarlanırsa tüm kullanıcı verileri saklanır. Bu seçenek, yüksek hata riskine sahiptir ve kurtarma işlemi için powerwash yapılması gerekir.</translation>
 <translation id="5071303485174858500">Kısıtlanmış yönetilen misafir oturumunu devre dışı bırak.</translation>
 <translation id="5073609397321802133">Politika false (yanlış) değerine ayarlanırsa Yeni Sekme sayfası kullanıcıların arka planı özelleştirmesine izin vermez. Mevcut herhangi bir özel arka plan, politika daha sonra true (doğru) değerine ayarlansa bile, kalıcı olarak kaldırılacaktır.
 
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 8b55143..f1eba659d 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -3216,13 +3216,6 @@
 
       Примітка: список можливих змінних доступний на сторінці https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation>
 <translation id="4030152268425532846">Вимкнути аварійну комбінацію клавіш для автоматичного входу</translation>
-<translation id="4041577849977347218">Якщо це правило активовано або не налаштовано, завантажені файли надсилатимуться на перевірку Безпечним переглядом (навіть якщо вони з надійного джерела).
-
-      Якщо це правило деактивовано, файли з надійного джерела не надсилатимуться на перевірку.
-
-      Ці обмеження застосовуються до завантажень, які активовано контентом веб-сторінки або опцією меню "Завантажити дані за посиланням". Вони не діють під час зберігання або завантаження відкритої сторінки, а також зберігання контенту у форматі PDF через параметри друку.
-
-      У <ph name="MS_WIN_NAME" /> ця функція доступна лише для Windows 10 Pro або версій, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в сервісі <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. У <ph name="MAC_OS_NAME" /> ця функція доступна лише для машин, які контролюються через Керування мобільними пристроями або зареєстровані в домені через MCX.</translation>
 <translation id="4043796890723386527">Не дозволяти користувачам створювати й використовувати додаткові профілі та вмикати режим гостя у веб-переглядачі <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Увімкнути перекривання вікон</translation>
 <translation id="4052529125939620019">Завантажувати розширення компонента CryptoToken під час запуску</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index a17e3a8..cb3f023 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -1985,6 +1985,7 @@
           |created_time_millis| là dấu thời gian UTC để tạo nội dung ghi đè, dấu thời gian này được gửi dưới dạng Chuỗi vì số nguyên sẽ không phù hợp. Dấu thời gian này dùng để xác định có tiếp tục áp dụng nội dung ghi đè này hay không. Nếu tính năng giới hạn thời gian hiện đang hoạt động (giới hạn mức sử dụng thời gian hoặc giới hạn khoảng thời gian) khởi động sau khi tạo nội dung ghi đè, thì nội dung ghi đè sẽ không có hiệu lực. Ngoài ra, nếu nội dung ghi đè được tạo trước lần thay đổi gần đây nhất của time_window_limit hoặc time_usage_window đang hoạt động, thì nội dung ghi đè này cũng sẽ không được áp dụng.
 
           Nhiều ghi đè có thể được gửi, mục nhập hợp lệ mới nhất là mục sẽ được áp dụng.</translation>
+<translation id="290041922664761002">Chỉ định một giá trị dữ liệu ngẫu nhiên sẽ sử dụng trong <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" /> khi đánh giá thông tin nhận dạng</translation>
 <translation id="2901725272378498025">Bật cảnh báo bảo mật cho cờ dòng lệnh</translation>
 <translation id="2905984450136807296">Thời gian tồn tại của bộ nhớ đệm lưu trữ dữ liệu xác thực</translation>
 <translation id="2906874737073861391">Danh sách tiện ích trong AppPack</translation>
@@ -3126,6 +3127,7 @@
 <translation id="3943930334592166130">Chính sách này kiểm soát việc người dùng có được nhắc chọn chứng chỉ máy khách hay không khi nhiều chứng chỉ khớp <ph name="AUTO_SELECT_CERTIFICATE_FOR_URLS_POLICY_NAME" />.
       Nếu bạn bật chính sách này, thì người dùng sẽ được nhắc chọn chứng chỉ máy khách mỗi khi chính sách tự động chọn khớp với nhiều chứng chỉ.
       Nếu bạn tắt hoặc không đặt chính sách này, thì người dùng chỉ có thể được nhắc khi không có chứng chỉ nào khớp với chính sách tự động chọn.</translation>
+<translation id="3947897854999940598">Chỉ định mẫu URI của trình phân giải DNS-over-HTTPS mà bạn muốn kèm theo thông tin danh tính</translation>
 <translation id="3950110092991281616">Chỉ bật tùy chọn xác thực môi trường xung quanh đối với các phiên thông thường.</translation>
 <translation id="3950239119790560549">Giới hạn thời gian cập nhật</translation>
 <translation id="3953860513079094502">Báo cáo thông tin về các sự kiện phát hiện và phản hồi mở rộng (XDR)</translation>
@@ -3218,13 +3220,6 @@
 
       Lưu ý: Xem danh sách các biến mà bạn có thể sử dụng (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation>
 <translation id="4030152268425532846">Tắt phím tắt bailout tự động đăng nhập</translation>
-<translation id="4041577849977347218">Nếu bạn đặt thành Bật hoặc không đặt chính sách này, các tệp đã tải xuống sẽ được gửi đi để tính năng Duyệt web an toàn phân tích, ngay cả khi tệp được tải xuống từ một nguồn đáng tin cậy.
-
-      Nếu bạn đặt chính sách này thành Tắt, các tệp đã tải xuống sẽ không được gửi đi để tính năng Duyệt web an toàn phân tích khi tệp được tải xuống từ một nguồn đáng tin cậy.
-
-      Những hạn chế này áp dụng cho các tệp đã tải xuống được kích hoạt từ nội dung trang web, cũng như tùy chọn trình đơn Đường liên kết tải xuống. Những hạn chế này không áp dụng cho việc lưu/tải trang đang hiển thị xuống, cũng như không áp dụng cho việc lưu ở dạng tệp PDF từ các tùy chọn in.
-
-      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro hoặc đã đăng ký <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM hoặc liên kết với một miền qua MCX.</translation>
 <translation id="4043796890723386527">Ngăn người dùng tạo và sử dụng các hồ sơ phụ cũng như dùng chế độ khách trong trình duyệt <ph name="LACROS_NAME" /></translation>
 <translation id="4051723201852944592">Bật tính năng Che kín cửa sổ</translation>
 <translation id="4052529125939620019">Tải tiện ích thành phần CryptoToken khi khởi động</translation>
@@ -7472,6 +7467,17 @@
 <translation id="8316940611391250886">Không cho phép các chứng chỉ thiếu tiện ích subjectAlternativeName</translation>
 <translation id="8319678975002906774">Đặt giá trị của cấu hình được quản lý cho các trang web tương ứng với các nguồn gốc cụ thể</translation>
 <translation id="8320149248919453401">Chế độ sạc pin</translation>
+<translation id="8327201984026238850">Mẫu URI của trình phân giải DNS-over-HTTPS mà bạn muốn. Để chỉ định nhiều trình phân giải DNS-over-HTTPS, hãy phân tách các mẫu URI tương ứng bằng dấu cách. Chính sách này rất giống với <ph name="DOH_TEMPLATES_POLICY_NAME" /> (sẽ bị chính sách này ghi đè nếu được chỉ định). Ngược lại, chính sách này hỗ trợ việc chỉ định thông tin nhận dạng.
+
+  Nếu đặt <ph name="DOH_MODE_POLICY_NAME" /> thành <ph name="SECURE_DNS_MODE_SECURE" /> thì bạn phải đặt chính sách này hoặc chính sách <ph name="DOH_TEMPLATES_POLICY_NAME" /> và không được để trống.
+
+  Nếu bạn đặt <ph name="DOH_MODE_POLICY_NAME" /> thành <ph name="SECURE_DNS_MODE_AUTOMATIC" /> và đặt chính sách này, thì các mẫu URI đã chỉ định sẽ được sử dụng; nếu bạn không đặt chính sách này, thì các mục liên kết đã mã hoá cứng sẽ được dùng nhằm nâng cấp trình phân giải hệ thống tên miền (DNS) hiện tại của người dùng lên trình phân giải DoH do cùng một nhà cung cấp điều hành.
+
+  Nếu mẫu URI chứa biến <ph name="HTTP_VARIABLE_DNS" />, thì các yêu cầu tới trình phân giải sẽ dùng <ph name="HTTP_METHOD_GET" />; nếu không, các yêu cầu sẽ dùng <ph name="HTTP_METHOD_POST" />.
+
+  Nếu đặt chính sách này, thì bạn cũng phải đặt chính sách <ph name="DOH_SALT_POLICY_NAME" />.
+
+  Các mẫu không đúng định dạng sẽ bị bỏ qua.</translation>
 <translation id="8327651196906278510">Cho phép chụp Thẻ theo các nguồn gốc này</translation>
 <translation id="8329434144708110">Kích hoạt quy trình xác thực để đồng bộ hóa mật khẩu với các nhà cung cấp dịch vụ Đăng nhập một lần (SSO)</translation>
 <translation id="8329984337216493753">Chính sách này chỉ hoạt động trong chế độ bán lẻ.
@@ -7947,6 +7953,8 @@
 
           Chính sách này chỉ có hiệu lực nếu được đặt. Trong trường hợp này, các kết nối truy cập từ xa sẽ không có thời lượng tối đa trên máy này.</translation>
 <translation id="8800453707696044281">Đặt mức phần trăm ngừng sạc pin tùy chỉnh</translation>
+<translation id="880110452941793016">Dữ liệu ngẫu nhiên này được dùng làm giá trị dữ liệu ngẫu nhiên khi băm thông tin nhận dạng có trong chuỗi <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />.
+   Nếu dùng <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />, thì bạn phải đặt giá trị này và giá trị này phải là một chuỗi từ 8 đến 32 ký tự.</translation>
 <translation id="8801680448782904838">Thông báo cho người dùng biết họ cần hoặc bắt buộc phải chạy lại trình duyệt hoặc khởi động lại thiết bị</translation>
 <translation id="8804685015028424497">Tắt chế độ Ẩn danh</translation>
 <translation id="8806478127647484805">Không cho phép người dùng kết thúc quá trình bằng trình quản lý tác vụ Chrome</translation>
@@ -8213,6 +8221,15 @@
       Nếu bạn không đặt chính sách này, thì sẽ không có trang web nào được thực hiện thao tác tự động chọn.
 
       Để biết thông tin chi tiết về mẫu URL hợp lệ, vui lòng truy cập vào https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
+<translation id="9066311316566875681">Mẫu URI của trình phân giải DNS-over-HTTPS mà bạn muốn. Để chỉ định nhiều trình phân giải DNS-over-HTTPS, hãy phân tách các mẫu URI tương ứng bằng dấu cách.
+
+      Nếu đặt DnsOverHttpsMode thành <ph name="SECURE_DNS_MODE_SECURE" />, thì bạn phải đặt chính sách này và không được để trống. Riêng trên <ph name="PRODUCT_OS_NAME" />, bạn phải đặt chính sách này hoặc <ph name="DOH_TEMPLATES_WITH_IDENTIFIERS_POLICY_NAME" />. Nếu không, quá trình phân giải DNS sẽ không thành công.
+
+      Nếu bạn đặt DnsOverHttpsMode thành <ph name="SECURE_DNS_MODE_AUTOMATIC" /> và đặt chính sách này, thì các mẫu URI đã chỉ định sẽ được sử dụng; nếu bạn không đặt chính sách này, thì các mục liên kết đã mã hoá cứng sẽ được dùng nhằm nâng cấp trình phân giải hệ thống tên miền (DNS) hiện tại của người dùng lên trình phân giải DoH do cùng một nhà cung cấp điều hành.
+
+      Nếu mẫu URI chứa biến <ph name="HTTP_VARIABLE_DNS" />, thì các yêu cầu tới trình phân giải sẽ dùng <ph name="HTTP_METHOD_GET" />; nếu không, các yêu cầu sẽ dùng <ph name="HTTP_METHOD_POST" />.
+
+      Các mẫu không đúng định dạng sẽ bị bỏ qua.</translation>
 <translation id="9068629430243705879">cổng 6566 (có thể được bỏ chặn cho đến ngày 15/10/2021)</translation>
 <translation id="9069588907259547232">Nếu bạn bật hoặc không đặt chính sách này, thì các thiết bị đã đăng ký sẽ báo cáo âm lượng của thiết bị.
 
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 28391ac..681a3c04 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -3173,13 +3173,6 @@
 
       注意:查看您可以使用哪些变量 ( https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables )。</translation>
 <translation id="4030152268425532846">禁止取消自动登录</translation>
-<translation id="4041577849977347218">如果此政策已启用或未设置,系统将会发送下载的文件以供“安全浏览”功能进行分析,即使来源可信也是如此。
-
-      如果此政策已停用,当来源可信时,系统不会发送下载的文件以供“安全浏览”功能进行分析。
-
-      这些限制适用于从网页内容以及“下载链接”菜单选项触发的下载,但不适用于保存或下载当前显示的页面,也不适用于通过打印选项另存为 PDF 文件。
-
-      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation>
 <translation id="4043796890723386527">禁止用户在 <ph name="LACROS_NAME" /> 浏览器中创建和使用次级个人资料以及使用访客模式</translation>
 <translation id="4051723201852944592">启用窗口遮挡</translation>
 <translation id="4052529125939620019">在浏览器启动时加载 CryptoToken 组件扩展程序</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index e62a30b1..b508ac5 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -3155,13 +3155,6 @@
 
       注意:如要查看可使用的變數清單,請前往 https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables。</translation>
 <translation id="4030152268425532846">停用自動登入規避</translation>
-<translation id="4041577849977347218">如果將這項政策設為啟用或不設定,即使下載的檔案來自可信任的來源,安全瀏覽功能仍會將其送交分析。
-
-      如果將這項政策設為停用,只要下載的檔案來自可信任的來源,安全瀏覽功能就不會將其送交分析。
-
-      這些限制適用於網頁內容和 [下載連結] 選單選項所觸發的下載作業,但不適用於目前顯示網頁的儲存或下載作業,或透過列印選項另存為 PDF 檔的作業。
-
-      在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />服務的執行個體。在 <ph name="MAC_OS_NAME" /> 上,這項功能僅適用於透過行動裝置管理 (MDM) 軟體進行管理或透過 MCX 加入網域的執行個體。</translation>
 <translation id="4043796890723386527">禁止使用者在 <ph name="LACROS_NAME" /> 瀏覽器中建立及使用次要設定檔,以及使用訪客模式</translation>
 <translation id="4051723201852944592">啟用視窗遮蔽功能</translation>
 <translation id="4052529125939620019">啟動時載入 CryptoToken 元件擴充功能</translation>
diff --git a/components/reading_list/core/BUILD.gn b/components/reading_list/core/BUILD.gn
index 2709b9e..507703e 100644
--- a/components/reading_list/core/BUILD.gn
+++ b/components/reading_list/core/BUILD.gn
@@ -10,7 +10,6 @@
     "offline_url_utils.h",
     "reading_list_entry.cc",
     "reading_list_entry.h",
-    "reading_list_model.cc",
     "reading_list_model.h",
     "reading_list_model_impl.cc",
     "reading_list_model_impl.h",
@@ -34,6 +33,20 @@
   public_deps = [ "//components/reading_list/core/proto" ]
 }
 
+static_library("test_support") {
+  testonly = true
+
+  sources = [
+    "fake_reading_list_model.cc",
+    "fake_reading_list_model.h",
+  ]
+
+  public_deps = [
+    ":core",
+    "//base",
+  ]
+}
+
 source_set("unit_tests") {
   testonly = true
   sources = [
diff --git a/ios/chrome/browser/reading_list/fake_reading_list_model.mm b/components/reading_list/core/fake_reading_list_model.cc
similarity index 81%
rename from ios/chrome/browser/reading_list/fake_reading_list_model.mm
rename to components/reading_list/core/fake_reading_list_model.cc
index fb2a8179..29c3ff9 100644
--- a/ios/chrome/browser/reading_list/fake_reading_list_model.mm
+++ b/components/reading_list/core/fake_reading_list_model.cc
@@ -2,11 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/reading_list/fake_reading_list_model.h"
+#include "components/reading_list/core/fake_reading_list_model.h"
 
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
+#include "base/notreached.h"
+#include "components/reading_list/core/reading_list_model_observer.h"
 
 FakeReadingListModel::FakeReadingListModel() = default;
 
@@ -16,11 +15,21 @@
   return loaded_;
 }
 
+bool FakeReadingListModel::IsPerformingBatchUpdates() const {
+  return false;
+}
+
 syncer::ModelTypeSyncBridge* FakeReadingListModel::GetModelTypeSyncBridge() {
   NOTREACHED();
   return nullptr;
 }
 
+std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
+FakeReadingListModel::BeginBatchUpdates() {
+  NOTREACHED();
+  return nullptr;
+}
+
 const std::vector<GURL> FakeReadingListModel::Keys() const {
   NOTREACHED();
   return std::vector<GURL>();
@@ -140,6 +149,17 @@
   NOTREACHED();
 }
 
+void FakeReadingListModel::AddObserver(ReadingListModelObserver* observer) {
+  observers_.AddObserver(observer);
+  if (loaded()) {
+    observer->ReadingListModelLoaded(this);
+  }
+}
+
+void FakeReadingListModel::RemoveObserver(ReadingListModelObserver* observer) {
+  observers_.RemoveObserver(observer);
+}
+
 void FakeReadingListModel::SetEntry(ReadingListEntry entry) {
   entry_ = std::move(entry);
 }
diff --git a/ios/chrome/browser/reading_list/fake_reading_list_model.h b/components/reading_list/core/fake_reading_list_model.h
similarity index 81%
rename from ios/chrome/browser/reading_list/fake_reading_list_model.h
rename to components/reading_list/core/fake_reading_list_model.h
index 09698c576..0c39c51 100644
--- a/ios/chrome/browser/reading_list/fake_reading_list_model.h
+++ b/components/reading_list/core/fake_reading_list_model.h
@@ -2,9 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_READING_LIST_FAKE_READING_LIST_MODEL_H_
-#define IOS_CHROME_BROWSER_READING_LIST_FAKE_READING_LIST_MODEL_H_
+#ifndef COMPONENTS_READING_LIST_CORE_FAKE_READING_LIST_MODEL_H_
+#define COMPONENTS_READING_LIST_CORE_FAKE_READING_LIST_MODEL_H_
 
+#include "base/observer_list.h"
 #include "components/reading_list/core/reading_list_model.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -14,10 +15,15 @@
  public:
   FakeReadingListModel();
   ~FakeReadingListModel() override;
+
   bool loaded() const override;
 
+  bool IsPerformingBatchUpdates() const override;
+
   syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() override;
 
+  std::unique_ptr<ScopedReadingListBatchUpdate> BeginBatchUpdates() override;
+
   const std::vector<GURL> Keys() const override;
 
   size_t size() const override;
@@ -73,14 +79,18 @@
       const GURL& url,
       const reading_list::ContentSuggestionsExtra& extra) override;
 
+  void AddObserver(ReadingListModelObserver* observer) override;
+  void RemoveObserver(ReadingListModelObserver* observer) override;
+
   void SetEntry(ReadingListEntry entry);
   void SetLoaded();
 
   const ReadingListEntry* entry();
 
  private:
+  base::ObserverList<ReadingListModelObserver>::Unchecked observers_;
   absl::optional<ReadingListEntry> entry_;
   bool loaded_ = false;
 };
 
-#endif  // IOS_CHROME_BROWSER_READING_LIST_FAKE_READING_LIST_MODEL_H_
+#endif  // COMPONENTS_READING_LIST_CORE_FAKE_READING_LIST_MODEL_H_
diff --git a/components/reading_list/core/reading_list_model.cc b/components/reading_list/core/reading_list_model.cc
deleted file mode 100644
index cf986bb..0000000
--- a/components/reading_list/core/reading_list_model.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/reading_list/core/reading_list_model.h"
-
-#include "base/check_op.h"
-#include "base/observer_list.h"
-
-ReadingListModel::ReadingListModel() : current_batch_updates_count_(0) {}
-
-ReadingListModel::~ReadingListModel() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (auto& observer : observers_) {
-    observer.ReadingListModelBeingDeleted(this);
-  }
-}
-
-// Observer methods.
-void ReadingListModel::AddObserver(ReadingListModelObserver* observer) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(observer);
-  observers_.AddObserver(observer);
-  if (loaded()) {
-    observer->ReadingListModelLoaded(this);
-  }
-}
-
-void ReadingListModel::RemoveObserver(ReadingListModelObserver* observer) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  observers_.RemoveObserver(observer);
-}
-
-// Batch update methods.
-bool ReadingListModel::IsPerformingBatchUpdates() const {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return current_batch_updates_count_ > 0;
-}
-
-std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
-ReadingListModel::CreateBatchToken() {
-  return std::make_unique<ReadingListModel::ScopedReadingListBatchUpdate>(this);
-}
-
-std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
-ReadingListModel::BeginBatchUpdates() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  auto token = CreateBatchToken();
-
-  ++current_batch_updates_count_;
-  if (current_batch_updates_count_ == 1) {
-    EnteringBatchUpdates();
-  }
-  return token;
-}
-
-void ReadingListModel::EnteringBatchUpdates() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (auto& observer : observers_)
-    observer.ReadingListModelBeganBatchUpdates(this);
-}
-
-void ReadingListModel::EndBatchUpdates() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(IsPerformingBatchUpdates());
-  DCHECK(current_batch_updates_count_ > 0);
-  --current_batch_updates_count_;
-  if (current_batch_updates_count_ == 0) {
-    LeavingBatchUpdates();
-  }
-}
-
-void ReadingListModel::LeavingBatchUpdates() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (auto& observer : observers_)
-    observer.ReadingListModelCompletedBatchUpdates(this);
-}
-
-ReadingListModel::ScopedReadingListBatchUpdate::ScopedReadingListBatchUpdate(
-    ReadingListModel* model)
-    : model_(model) {
-  model->AddObserver(this);
-}
-
-ReadingListModel::ScopedReadingListBatchUpdate::
-    ~ScopedReadingListBatchUpdate() {
-  if (model_) {
-    model_->EndBatchUpdates();
-    model_->RemoveObserver(this);
-  }
-}
-
-void ReadingListModel::ScopedReadingListBatchUpdate::ReadingListModelLoaded(
-    const ReadingListModel* model) {}
-
-void ReadingListModel::ScopedReadingListBatchUpdate::
-    ReadingListModelBeingShutdown(const ReadingListModel* model) {
-  model_->EndBatchUpdates();
-  model_->RemoveObserver(this);
-  model_ = nullptr;
-}
diff --git a/components/reading_list/core/reading_list_model.h b/components/reading_list/core/reading_list_model.h
index 15a361a..95db0e1 100644
--- a/components/reading_list/core/reading_list_model.h
+++ b/components/reading_list/core/reading_list_model.h
@@ -10,16 +10,11 @@
 #include <vector>
 
 #include "base/callback.h"
-#include "base/memory/raw_ptr.h"
-#include "base/observer_list.h"
-#include "base/sequence_checker.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/reading_list/core/reading_list_entry.h"
-#include "components/reading_list/core/reading_list_model_observer.h"
 
 class GURL;
-class ReadingListModel;
-class ScopedReadingListBatchUpdate;
+class ReadingListModelObserver;
 
 namespace syncer {
 class ModelTypeSyncBridge;
@@ -33,6 +28,9 @@
  public:
   class ScopedReadingListBatchUpdate;
 
+  ReadingListModel() = default;
+  ~ReadingListModel() override = default;
+
   ReadingListModel(const ReadingListModel&) = delete;
   ReadingListModel& operator=(const ReadingListModel&) = delete;
 
@@ -41,7 +39,7 @@
   virtual bool loaded() const = 0;
 
   // Returns true if the model is performing batch updates right now.
-  bool IsPerformingBatchUpdates() const;
+  virtual bool IsPerformingBatchUpdates() const = 0;
 
   // Returns the ModelTypeSyncBridge responsible for handling sync message.
   virtual syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() = 0;
@@ -52,10 +50,7 @@
   // Returns a scoped batch update object that should be retained while the
   // batch update is performed. Deallocating this object will inform model that
   // the batch update has completed.
-  std::unique_ptr<ScopedReadingListBatchUpdate> BeginBatchUpdates();
-
-  // Creates a batch token that will freeze the model while in scope.
-  virtual std::unique_ptr<ScopedReadingListBatchUpdate> CreateBatchToken();
+  virtual std::unique_ptr<ScopedReadingListBatchUpdate> BeginBatchUpdates() = 0;
 
   // Returns a vector of URLs in the model. The order of the URL is not
   // specified and can vary on successive calls.
@@ -149,50 +144,23 @@
   virtual void SetContentSuggestionsExtra(
       const GURL& url,
       const reading_list::ContentSuggestionsExtra& extra) = 0;
+
   // Observer registration methods. The model will remove all observers upon
   // destruction automatically.
-  void AddObserver(ReadingListModelObserver* observer);
-  void RemoveObserver(ReadingListModelObserver* observer);
+  virtual void AddObserver(ReadingListModelObserver* observer) = 0;
+  virtual void RemoveObserver(ReadingListModelObserver* observer) = 0;
 
   // Helper class that is used to scope batch updates.
-  class ScopedReadingListBatchUpdate : public ReadingListModelObserver {
+  class ScopedReadingListBatchUpdate {
    public:
-    explicit ScopedReadingListBatchUpdate(ReadingListModel* model);
+    ScopedReadingListBatchUpdate() = default;
 
     ScopedReadingListBatchUpdate(const ScopedReadingListBatchUpdate&) = delete;
     ScopedReadingListBatchUpdate& operator=(
         const ScopedReadingListBatchUpdate&) = delete;
 
-    ~ScopedReadingListBatchUpdate() override;
-
-    void ReadingListModelLoaded(const ReadingListModel* model) override;
-    void ReadingListModelBeingShutdown(const ReadingListModel* model) override;
-
-   private:
-    raw_ptr<ReadingListModel> model_;
+    virtual ~ScopedReadingListBatchUpdate() = default;
   };
-
- protected:
-  ReadingListModel();
-  ~ReadingListModel() override;
-
-  // The observers.
-  base::ObserverList<ReadingListModelObserver>::Unchecked observers_;
-
-  // Tells model that batch updates have completed. Called from
-  // ReadingListBatchUpdateToken dtor.
-  virtual void EndBatchUpdates();
-
-  // Called when model is entering batch update mode.
-  virtual void EnteringBatchUpdates();
-
-  // Called when model is leaving batch update mode.
-  virtual void LeavingBatchUpdates();
-
-  SEQUENCE_CHECKER(sequence_checker_);
-
- private:
-  unsigned int current_batch_updates_count_;
 };
 
 #endif  // COMPONENTS_READING_LIST_CORE_READING_LIST_MODEL_H_
diff --git a/components/reading_list/core/reading_list_model_impl.cc b/components/reading_list/core/reading_list_model_impl.cc
index 7f0d9c0d..92f2cff 100644
--- a/components/reading_list/core/reading_list_model_impl.cc
+++ b/components/reading_list/core/reading_list_model_impl.cc
@@ -15,21 +15,44 @@
 #include "components/reading_list/core/reading_list_pref_names.h"
 #include "url/gurl.h"
 
+ReadingListModelImpl::ScopedReadingListBatchUpdateImpl::
+    ScopedReadingListBatchUpdateImpl(ReadingListModelImpl* model)
+    : model_(model) {
+  model->AddObserver(this);
+  if (model->StorageLayer()) {
+    storage_token_ = model->StorageLayer()->EnsureBatchCreated();
+  }
+}
+
+ReadingListModelImpl::ScopedReadingListBatchUpdateImpl::
+    ~ScopedReadingListBatchUpdateImpl() {
+  storage_token_.reset();
+  if (model_) {
+    model_->RemoveObserver(this);
+    model_->EndBatchUpdates();
+  }
+}
+
+void ReadingListModelImpl::ScopedReadingListBatchUpdateImpl::
+    ReadingListModelLoaded(const ReadingListModel* model) {}
+
+void ReadingListModelImpl::ScopedReadingListBatchUpdateImpl::
+    ReadingListModelBeingShutdown(const ReadingListModel* model) {
+  storage_token_.reset();
+  model_->EndBatchUpdates();
+  model_->RemoveObserver(this);
+  model_ = nullptr;
+}
+
 ReadingListModelImpl::ReadingListModelImpl(
     std::unique_ptr<ReadingListModelStorage> storage,
     PrefService* pref_service,
     base::Clock* clock)
-    : unread_entry_count_(0),
-      read_entry_count_(0),
-      unseen_entry_count_(0),
-      clock_(clock),
+    : storage_layer_(std::move(storage)),
       pref_service_(pref_service),
-      has_unseen_(false),
-      loaded_(false) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+      clock_(clock) {
   DCHECK(clock_);
-  if (storage) {
-    storage_layer_ = std::move(storage);
+  if (storage_layer_) {
     storage_layer_->SetReadingListModel(this, this, clock_);
   } else {
     loaded_ = true;
@@ -37,7 +60,11 @@
   has_unseen_ = GetPersistentHasUnseen();
 }
 
-ReadingListModelImpl::~ReadingListModelImpl() {}
+ReadingListModelImpl::~ReadingListModelImpl() {
+  for (auto& observer : observers_) {
+    observer.ReadingListModelBeingDeleted(this);
+  }
+}
 
 void ReadingListModelImpl::StoreLoaded(ReadingListEntries entries) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -69,6 +96,24 @@
   return loaded_;
 }
 
+bool ReadingListModelImpl::IsPerformingBatchUpdates() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  return current_batch_updates_count_ > 0;
+}
+
+std::unique_ptr<ReadingListModelImpl::ScopedReadingListBatchUpdate>
+ReadingListModelImpl::BeginBatchUpdates() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  auto token = std::make_unique<ScopedReadingListBatchUpdateImpl>(this);
+  ++current_batch_updates_count_;
+  if (current_batch_updates_count_ == 1) {
+    for (auto& observer : observers_) {
+      observer.ReadingListModelBeganBatchUpdates(this);
+    }
+  }
+  return token;
+}
+
 size_t ReadingListModelImpl::size() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(read_entry_count_ + unread_entry_count_ == entries_.size());
@@ -127,7 +172,7 @@
   if (unseen_entry_count_ == 0) {
     return;
   }
-  std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
+  std::unique_ptr<ReadingListModelImpl::ScopedReadingListBatchUpdate>
       model_batch_updates = BeginBatchUpdates();
   for (auto& iterator : entries_) {
     ReadingListEntry& entry = iterator.second;
@@ -335,7 +380,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(loaded());
   DCHECK(IsUrlSupported(url));
-  std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
+  std::unique_ptr<ReadingListModelImpl::ScopedReadingListBatchUpdate>
       scoped_model_batch_updates;
   if (GetEntryByURL(url)) {
     scoped_model_batch_updates = BeginBatchUpdates();
@@ -531,44 +576,33 @@
   }
 }
 
-std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
-ReadingListModelImpl::CreateBatchToken() {
-  return std::make_unique<ReadingListModelImpl::ScopedReadingListBatchUpdate>(
-      this);
-}
-
-ReadingListModelImpl::ScopedReadingListBatchUpdate::
-    ScopedReadingListBatchUpdate(ReadingListModelImpl* model)
-    : ReadingListModel::ScopedReadingListBatchUpdate::
-          ScopedReadingListBatchUpdate(model) {
-  if (model->StorageLayer()) {
-    storage_token_ = model->StorageLayer()->EnsureBatchCreated();
+void ReadingListModelImpl::AddObserver(ReadingListModelObserver* observer) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(observer);
+  observers_.AddObserver(observer);
+  if (loaded()) {
+    observer->ReadingListModelLoaded(this);
   }
 }
 
-ReadingListModelImpl::ScopedReadingListBatchUpdate::
-    ~ScopedReadingListBatchUpdate() {
-  storage_token_.reset();
-}
-
-void ReadingListModelImpl::ScopedReadingListBatchUpdate::
-    ReadingListModelBeingShutdown(const ReadingListModel* model) {
-  storage_token_.reset();
-  ReadingListModel::ScopedReadingListBatchUpdate::ReadingListModelBeingShutdown(
-      model);
-}
-
-void ReadingListModelImpl::LeavingBatchUpdates() {
+void ReadingListModelImpl::RemoveObserver(ReadingListModelObserver* observer) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (storage_layer_) {
-    SetPersistentHasUnseen(has_unseen_);
+  observers_.RemoveObserver(observer);
+}
+
+void ReadingListModelImpl::EndBatchUpdates() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(IsPerformingBatchUpdates());
+  DCHECK(current_batch_updates_count_ > 0);
+  --current_batch_updates_count_;
+  if (current_batch_updates_count_ == 0) {
+    if (storage_layer_) {
+      SetPersistentHasUnseen(has_unseen_);
+    }
+    for (auto& observer : observers_) {
+      observer.ReadingListModelCompletedBatchUpdates(this);
+    }
   }
-  ReadingListModel::LeavingBatchUpdates();
-}
-
-void ReadingListModelImpl::EnteringBatchUpdates() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  ReadingListModel::EnteringBatchUpdates();
 }
 
 void ReadingListModelImpl::SetPersistentHasUnseen(bool has_unseen) {
diff --git a/components/reading_list/core/reading_list_model_impl.h b/components/reading_list/core/reading_list_model_impl.h
index df7b595..5a41253f 100644
--- a/components/reading_list/core/reading_list_model_impl.h
+++ b/components/reading_list/core/reading_list_model_impl.h
@@ -9,8 +9,11 @@
 #include <memory>
 
 #include "base/memory/raw_ptr.h"
+#include "base/observer_list.h"
+#include "base/sequence_checker.h"
 #include "components/reading_list/core/reading_list_entry.h"
 #include "components/reading_list/core/reading_list_model.h"
+#include "components/reading_list/core/reading_list_model_observer.h"
 #include "components/reading_list/core/reading_list_model_storage.h"
 #include "components/reading_list/core/reading_list_sync_bridge_delegate.h"
 
@@ -34,12 +37,6 @@
   ReadingListModelImpl(std::unique_ptr<ReadingListModelStorage> storage_layer,
                        PrefService* pref_service,
                        base::Clock* clock_);
-
-  syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() override;
-
-  ReadingListModelImpl(const ReadingListModelImpl&) = delete;
-  ReadingListModelImpl& operator=(const ReadingListModelImpl&) = delete;
-
   ~ReadingListModelImpl() override;
 
   void StoreLoaded(ReadingListEntries entries) override;
@@ -49,24 +46,20 @@
 
   // ReadingListModel implementation.
   bool loaded() const override;
-
+  bool IsPerformingBatchUpdates() const override;
+  syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() override;
+  std::unique_ptr<ScopedReadingListBatchUpdate> BeginBatchUpdates() override;
+  const std::vector<GURL> Keys() const override;
   size_t size() const override;
   size_t unread_size() const override;
   size_t unseen_size() const override;
-
   void MarkAllSeen() override;
+  bool DeleteAllEntries() override;
   bool GetLocalUnseenFlag() const override;
   void ResetLocalUnseenFlag() override;
-
-  const std::vector<GURL> Keys() const override;
-
   const ReadingListEntry* GetEntryByURL(const GURL& gurl) const override;
   const ReadingListEntry* GetFirstUnreadEntry(bool distilled) const override;
-
-  void RemoveEntryByURL(const GURL& url) override;
-
   bool IsUrlSupported(const GURL& url) override;
-
   const ReadingListEntry& AddEntry(
       const GURL& url,
       const std::string& title,
@@ -75,9 +68,8 @@
   const ReadingListEntry& AddEntry(const GURL& url,
                                    const std::string& title,
                                    reading_list::EntrySource source) override;
-
+  void RemoveEntryByURL(const GURL& url) override;
   void SetReadStatus(const GURL& url, bool read) override;
-
   void SetEntryTitle(const GURL& url, const std::string& title) override;
   void SetEstimatedReadTime(const GURL& url,
                             base::TimeDelta estimated_read_time) override;
@@ -87,44 +79,39 @@
   void SetEntryDistilledInfo(const GURL& url,
                              const base::FilePath& distilled_path,
                              const GURL& distilled_url,
-                             int64_t distillation_size,
-                             const base::Time& distillation_date) override;
+                             int64_t distilation_size,
+                             const base::Time& distilation_time) override;
   void SetContentSuggestionsExtra(
       const GURL& url,
       const reading_list::ContentSuggestionsExtra& extra) override;
+  void AddObserver(ReadingListModelObserver* observer) override;
+  void RemoveObserver(ReadingListModelObserver* observer) override;
 
+  // ReadingListSyncBridgeDelegate implementation.
   void SyncAddEntry(std::unique_ptr<ReadingListEntry> entry) override;
   ReadingListEntry* SyncMergeEntry(
       std::unique_ptr<ReadingListEntry> entry) override;
   void SyncRemoveEntry(const GURL& url) override;
-  bool DeleteAllEntries() override;
 
-  std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
-  CreateBatchToken() override;
-
-  // Helper class that is used to scope batch updates.
-  class ScopedReadingListBatchUpdate
-      : public ReadingListModel::ScopedReadingListBatchUpdate {
+  class ScopedReadingListBatchUpdateImpl : public ScopedReadingListBatchUpdate,
+                                           public ReadingListModelObserver {
    public:
-    explicit ScopedReadingListBatchUpdate(ReadingListModelImpl* model);
+    explicit ScopedReadingListBatchUpdateImpl(ReadingListModelImpl* model);
+    ~ScopedReadingListBatchUpdateImpl() override;
 
-    ScopedReadingListBatchUpdate(const ScopedReadingListBatchUpdate&) = delete;
-    ScopedReadingListBatchUpdate& operator=(
-        const ScopedReadingListBatchUpdate&) = delete;
-
-    ~ScopedReadingListBatchUpdate() override;
-
+    void ReadingListModelLoaded(const ReadingListModel* model) override;
     void ReadingListModelBeingShutdown(const ReadingListModel* model) override;
 
    private:
+    raw_ptr<ReadingListModelImpl> model_;
     std::unique_ptr<ReadingListModelStorage::ScopedBatchUpdate> storage_token_;
   };
 
- protected:
-  void EnteringBatchUpdates() override;
-  void LeavingBatchUpdates() override;
-
  private:
+  // Tells model that batch updates have completed. Called from
+  // ScopedReadingListBatchUpdateImpl's destructor.
+  void EndBatchUpdates();
+
   // Sets/Loads the pref flag that indicate if some entries have never been seen
   // since being added to the store.
   void SetPersistentHasUnseen(bool has_unseen);
@@ -142,11 +129,6 @@
 
   void RebuildIndex() const;
 
-  ReadingListEntries entries_;
-  size_t unread_entry_count_;
-  size_t read_entry_count_;
-  size_t unseen_entry_count_;
-
   // Update the 3 counts above considering addition/removal of |entry|.
   void UpdateEntryStateCountersOnEntryRemoval(const ReadingListEntry& entry);
   void UpdateEntryStateCountersOnEntryInsertion(const ReadingListEntry& entry);
@@ -154,11 +136,23 @@
   // Set the unseen flag to true.
   void SetUnseenFlag();
 
-  raw_ptr<base::Clock> clock_;
-  std::unique_ptr<ReadingListModelStorage> storage_layer_;
-  raw_ptr<PrefService> pref_service_;
-  bool has_unseen_;
-  bool loaded_;
+  const std::unique_ptr<ReadingListModelStorage> storage_layer_;
+  const raw_ptr<PrefService> pref_service_;
+  const raw_ptr<base::Clock> clock_;
+
+  base::ObserverList<ReadingListModelObserver>::Unchecked observers_;
+
+  bool has_unseen_ = false;
+  bool loaded_ = false;
+
+  ReadingListEntries entries_;
+  size_t unread_entry_count_ = 0;
+  size_t read_entry_count_ = 0;
+  size_t unseen_entry_count_ = 0;
+
+  unsigned int current_batch_updates_count_ = 0;
+
+  SEQUENCE_CHECKER(sequence_checker_);
 
   base::WeakPtrFactory<ReadingListModelImpl> weak_ptr_factory_{this};
 };
diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
index c174f3a..4b20d72d 100644
--- a/components/renderer_context_menu/render_view_context_menu_base.cc
+++ b/components/renderer_context_menu/render_view_context_menu_base.cc
@@ -321,6 +321,10 @@
     toolkit_delegate_->RebuildMenu();
 }
 
+// TODO(crbug.com/1393234): This method returns the RenderViewHost associated
+// with the primary main frame. Using this in the presence of out of process
+// iframes is generally incorrect, and the use of RenderViewHost itself is
+// deprecated. Callers should use GetRenderFrameHost() instead.
 RenderViewHost* RenderViewContextMenuBase::GetRenderViewHost() const {
   return source_web_contents_->GetPrimaryMainFrame()->GetRenderViewHost();
 }
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index be3408c..e292202 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nooit gestoor nie</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Werkskermboekmerke</translation>
+<translation id="1067561478268651872">Die <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />-beleid word nie gebruik nie, tensy die <ph name="SECURE_DNS_SALT" />-beleid gestel is.</translation>
 <translation id="1068672505746868501">Moet nooit bladsye in <ph name="SOURCE_LANGUAGE" /> vertaal nie</translation>
 <translation id="1070853536588271387">Hibried- en alternatiewe voertuie</translation>
 <translation id="1070901266639972381">Nag</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Hierdie werf is misleidend</translation>
 <translation id="6337133576188860026">Maak minder as <ph name="SIZE" /> beskikbaar. Sommige werwe sal dalk op jou volgende besoek stadiger laai.</translation>
 <translation id="6337534724793800597">Filtreer beleide volgens naam</translation>
+<translation id="633770708279464947">Die <ph name="SECURE_DNS_SALT" />-waarde is ongeldig en sal nie gebruik word nie.</translation>
 <translation id="6340739886198108203">Administrateursbeleid beveel nie aan dat skermskote geneem of opnames gemaak word wanneer vertroulike inhoud sigbaar is nie:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Administrateursbeleid beveel aan dat jy nie hierdie lêer na <ph name="DESTINATION_NAME" /> toe oplaai nie}other{Administrateursbeleid beveel aan dat jy nie hierdie lêers na <ph name="DESTINATION_NAME" /> toe oplaai nie}}</translation>
 <translation id="6348220984832452017">Aktiewe variasies</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55x91 mm</translation>
 <translation id="8663226718884576429">Bestellingopsomming, <ph name="TOTAL_LABEL" />, meer besonderhede</translation>
 <translation id="8666678546361132282">Engels</translation>
+<translation id="8671519637524426245">Die <ph name="SECURE_DNS_SALT" />-waarde voldoen nie aan die groottevereistes nie.</translation>
 <translation id="867224526087042813">Handtekening</translation>
 <translation id="8672264262457010862">Besigheid en nywerheid</translation>
 <translation id="8676424191133491403">Geen wagperiode nie</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Bestuur Betaalmetodes-knoppie; druk Enter om jou betalings- en kredietkaartinligting in Chrome-instellings te bestuur</translation>
 <translation id="8922013791253848639">Laat advertensies altyd op hierdie werf toe</translation>
 <translation id="892588693504540538">Pons regs bo</translation>
+<translation id="8930098617363288380">Die <ph name="SECURE_DNS_SALT" />-waarde is nie relevant nie, en sal nie gebruik word nie, tensy die <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />-beleid gestel is.</translation>
 <translation id="8930330541574156305">Eiendom</translation>
 <translation id="8931333241327730545">Wil jy hierdie kaart in jou Google-rekening stoor?</translation>
 <translation id="8932102934695377596">Jou horlosie is agter</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 79e72bb..6c799287 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -701,6 +701,7 @@
 <translation id="2715612312510870559">‏<ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />، اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لإدارة الدفعات ومعلومات بطاقة الائتمان في إعدادات Chrome.</translation>
 <translation id="2715808615350965923">Super A</translation>
 <translation id="271663710482723385">اضغط على |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| للخروج من وضع ملء الشاشة.</translation>
+<translation id="2718207025093645426">لم يتم تحميل أي سياسة للجهاز أو المستخدم المُدار.</translation>
 <translation id="2721148159707890343">تم إرسال الطلب بنجاح</translation>
 <translation id="2723669454293168317">‏تفعيل ميزة "التحقّق من الأمان" في إعدادات Chrome</translation>
 <translation id="2726001110728089263">الدُرج الجانبي</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 45ba3748..698ba89 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">কেতিয়াও ছেভ কৰা নহয়</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">ডেস্কটপ বুকমার্ক</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_SALT" /> নীতিটো ছেট নকৰা পৰ্যন্ত <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> নীতিটো ব্যৱহাৰ কৰা নহয়।</translation>
 <translation id="1068672505746868501">পৃষ্ঠা <ph name="SOURCE_LANGUAGE" />লৈ কেতিয়াও অনুবাদ নকৰিব</translation>
 <translation id="1070853536588271387">হাইব্ৰিড আৰু বিকল্প বাহন</translation>
 <translation id="1070901266639972381">নিশা</translation>
@@ -2094,6 +2095,7 @@
 <translation id="6328786501058569169">এই ছাইটটো বিভ্ৰান্তিকৰ</translation>
 <translation id="6337133576188860026"><ph name="SIZE" />তকৈ কম খালী ঠাই উলিয়াওক। আপুনি পৰৱর্তী সময়ত কিছুমান ছাইট চাওতে লেহেমীয়াকৈ ল’ড হ’ব পাৰে।</translation>
 <translation id="6337534724793800597">নাম অনুসৰি নীতিসমূহ ফিল্টাৰ কৰক</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" /> মানটো অমান্য আৰু সেইটো ব্যৱহাৰ কৰা নহ’ব।</translation>
 <translation id="6340739886198108203">প্ৰশাসকৰ নীতিয়ে গোপনীয় সমল দেখা পোৱা হৈ থকাৰ সময়ত স্ক্ৰীনশ্বট লোৱা অথবা ৰেকৰ্ডিং কৰাটো চুপাৰিছ নকৰে:</translation>
 <translation id="6341434961864773665">{0,plural, =1{প্ৰশাসকৰ নীতিয়ে এই ফাইলটো <ph name="DESTINATION_NAME" />ত আপল’ড কৰাটো চুপাৰিছ নকৰে}one{প্ৰশাসকৰ নীতিয়ে এই ফাইলসমূহ <ph name="DESTINATION_NAME" />ত আপল’ড কৰাটো চুপাৰিছ নকৰে}other{প্ৰশাসকৰ নীতিয়ে এই ফাইলসমূহ <ph name="DESTINATION_NAME" />ত আপল’ড কৰাটো চুপাৰিছ নকৰে}}</translation>
 <translation id="6348220984832452017">ভিন্নতা সক্ৰিয় কৰক</translation>
@@ -2989,6 +2991,7 @@
 <translation id="8654126188050905496">৫৫ x ৯১ মি.মি.</translation>
 <translation id="8663226718884576429">অৰ্ডাৰৰ সাৰাংশ, <ph name="TOTAL_LABEL" />, অধিক বিৱৰণ</translation>
 <translation id="8666678546361132282">ইংৰাজী</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" /> মানটো আকাৰৰ আৱশ্যকতাসমূহৰ সৈতে নিমিলে।</translation>
 <translation id="867224526087042813">চহী</translation>
 <translation id="8672264262457010862">ব্যৱসায় আৰু ঔদ্যোগিক</translation>
 <translation id="8676424191133491403">কোনো বিলম্ব নাই</translation>
@@ -3088,6 +3091,7 @@
 <translation id="8913778647360618320">পৰিশোধৰ পদ্ধতিসমূহ পৰিচালনা কৰক বুটাম, Chromeৰ ছেটিংসমূহত আপোনাৰ পৰিশোধসমূহ আৰু ক্ৰেডিট কাৰ্ডৰ তথ্য পৰিচালনা কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="8922013791253848639">এই ছাইটটোত সদায় বিজ্ঞাপনৰ অনুমতি দিয়ক</translation>
 <translation id="892588693504540538">সোঁফালে ওপৰৰ অংশত পাঞ্চ কৰক</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" /> মানটো প্ৰাসংগিক নহয় আৰু <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> নীতিটো ছেট নকৰা পৰ্যন্ত সেইটো ব্যৱহাৰ কৰা নহ’ব।</translation>
 <translation id="8930330541574156305">ৰিয়েল ইষ্টেট</translation>
 <translation id="8931333241327730545">আপুনি এই কার্ড নিজৰ Google একাউণ্টত ছেভ কৰিব খোজেনে?</translation>
 <translation id="8932102934695377596">আপোনাৰ ঘড়ীৰ সময় পিছপৰি আছে</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index bc1377b0..fadbc30a 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nikada nije sačuvano</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Oznake radne površine</translation>
+<translation id="1067561478268651872">Pravilo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> ne upotrebljava se ako se ne postavi pravilo <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Nemoj nikada prevoditi stranice na <ph name="SOURCE_LANGUAGE" /> jezik</translation>
 <translation id="1070853536588271387">Hibridna i alternativna vozila</translation>
 <translation id="1070901266639972381">Noć</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Ova web lokacija vas obmanjuje</translation>
 <translation id="6337133576188860026">Oslobodit će se manje od <ph name="SIZE" />. Neke web lokacije će se prilikom sljedeće posjete možda sporije učitavati.</translation>
 <translation id="6337534724793800597">Filtriraj pravila po nazivu</translation>
+<translation id="633770708279464947">Vrijednost <ph name="SECURE_DNS_SALT" /> nije važeća i neće se upotrebljavati.</translation>
 <translation id="6340739886198108203">Pravila administratora ne preporučuju pravljenje snimaka ekrana niti snimanje kada je vidljiv povjerljiv sadržaj:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Pravila administratora ne preporučuju otpremanje ovog fajla na <ph name="DESTINATION_NAME" />}one{Pravila administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}few{Pravila administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}other{Pravila administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Aktivne varijacije</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Sažetak narudžbe, <ph name="TOTAL_LABEL" />, više detalja</translation>
 <translation id="8666678546361132282">Engleski</translation>
+<translation id="8671519637524426245">Vrijednost <ph name="SECURE_DNS_SALT" /> ne zadovoljava zahtjeve za veličinu.</translation>
 <translation id="867224526087042813">Potpis</translation>
 <translation id="8672264262457010862">Poslovanje i industrija</translation>
 <translation id="8676424191133491403">Bez odgode</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Dugme Upravljaj načinima plaćanja, pritisnite Enter da upravljate plaćanjima i informacijama o kreditnim karticama u postavkama Chromea</translation>
 <translation id="8922013791253848639">Uvijek omogući oglase na ovoj web lokaciji</translation>
 <translation id="892588693504540538">Bušenje u gornjem desnom uglu</translation>
+<translation id="8930098617363288380">Vrijednost <ph name="SECURE_DNS_SALT" /> nije relevantna i neće se upotrebljavati osim ako se postavi pravilo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
 <translation id="8931333241327730545">Želite li sačuvati ovu karticu na svoj Google račun?</translation>
 <translation id="8932102934695377596">Vaš sat kasni</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 14c2c6e..96305a83 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1229,6 +1229,7 @@
 <translation id="4132448310531350254">Doppelte Handler für die Dateierweiterung „<ph name="FILE_EXTENSION" />“, referenziert durch die Apps „<ph name="POLICY_IDS_LIST" />“.</translation>
 <translation id="4134123981501319574">Dokument erstellen</translation>
 <translation id="413544239732274901">Weitere Informationen</translation>
+<translation id="4140905530744469899">Profil-ID:</translation>
 <translation id="4142935452406587478">Fach 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Umschlag Chinesisch Nr. 4</translation>
@@ -1352,6 +1353,7 @@
 <translation id="4407755609041463909">Feuer</translation>
 <translation id="4408413947728134509">Cookies <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">Unterhaltungselektronik</translation>
+<translation id="4412074349188076601">Diese Konfiguration ist als installierbar gekennzeichnet, aber für diese Architektur ist kein Image verfügbar, weshalb sie nicht installiert werden kann.</translation>
 <translation id="4414515549596849729">Cookies und Websitedaten</translation>
 <translation id="4415426530740016218">Abholadresse</translation>
 <translation id="4424024547088906515">Dieser Server konnte nicht beweisen, dass er <ph name="DOMAIN" /> ist. Sein Sicherheitszertifikat wird von Chrome als nicht vertrauenswürdig eingestuft. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der deine Verbindung abfängt.</translation>
@@ -3203,6 +3205,7 @@
 <translation id="9179907736442194268">Du wirst bei einem Preisnachlass auf einer Website per E-Mail benachrichtigt</translation>
 <translation id="9183302530794969518">Google Docs</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> verwendet ein nicht unterstütztes Protokoll.</translation>
+<translation id="918454845714257218">Prüfe den Code auf der <ph name="SIDE_OF_CARD" /> und versuch es noch einmal</translation>
 <translation id="9187461866967718678">Extremsportarten</translation>
 <translation id="9191834167571392248">Lochung unten links</translation>
 <translation id="9199905725844810519">Drucken ist blockiert</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 76ba0676..5ab0ff7f 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Δεν έχει αποθηκευθεί ποτέ</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Σελιδοδείκτες επιτραπέζιου υπολογιστή</translation>
+<translation id="1067561478268651872">Η πολιτική <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> δεν χρησιμοποιείται, εκτός εάν οριστεί η πολιτική <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Να μην γίνεται μετάφραση σελίδων στα <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Υβριδικά οχήματα και οχήματα με εναλλακτικά καύσιμα</translation>
 <translation id="1070901266639972381">Νύχτα</translation>
@@ -2103,6 +2104,7 @@
 <translation id="6328786501058569169">Αυτός ο ιστότοπος είναι παραπλανητικός</translation>
 <translation id="6337133576188860026">Απελευθερώνει λιγότερο από <ph name="SIZE" />. Ορισμένοι ιστότοποι μπορεί να φορτωθούν πιο αργά κατά την επόμενη επίσκεψή σας.</translation>
 <translation id="6337534724793800597">Φιλτράρισμα πολιτικών με βάση το όνομα</translation>
+<translation id="633770708279464947">Η τιμή <ph name="SECURE_DNS_SALT" /> δεν είναι έγκυρη και δεν θα χρησιμοποιηθεί.</translation>
 <translation id="6340739886198108203">Η πολιτική διαχειριστή δεν συνιστά τη λήψη στιγμιότυπων οθόνης ή εγγραφών όταν εμπιστευτικό περιεχόμενο είναι ορατό:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Η πολιτική διαχειριστή δεν συνιστά τη μεταφόρτωση αυτού του αρχείου σε <ph name="DESTINATION_NAME" />.}other{Η πολιτική διαχειριστή δεν συνιστά τη μεταφόρτωση αυτών των αρχείων σε <ph name="DESTINATION_NAME" />.}}</translation>
 <translation id="6348220984832452017">Ενεργές παραλλαγές</translation>
@@ -3001,6 +3003,7 @@
 <translation id="8663226718884576429">Σύνοψη παραγγελίας, <ph name="TOTAL_LABEL" />, Περισσότερες λεπτομέρειες</translation>
 <translation id="8666678546361132282">Αγγλικά
 </translation>
+<translation id="8671519637524426245">Η τιμή <ph name="SECURE_DNS_SALT" /> δεν πληροί τις απαιτήσεις μεγέθους.</translation>
 <translation id="867224526087042813">Υπογραφή</translation>
 <translation id="8672264262457010862">Επιχειρήσεις και βιομηχανία</translation>
 <translation id="8676424191133491403">Χωρίς καθυστέρηση</translation>
@@ -3100,6 +3103,7 @@
 <translation id="8913778647360618320">Κουμπί διαχείρισης τρόπων πληρωμής, πατήστε Enter για να διαχειριστείτε τα στοιχεία πληρωμών και πιστωτικών καρτών στις ρυθμίσεις του Chrome.</translation>
 <translation id="8922013791253848639">Να επιτρέπονται πάντα οι διαφημίσεις σε αυτόν τον ιστότοπο</translation>
 <translation id="892588693504540538">Τρύπημα επάνω δεξιά</translation>
+<translation id="8930098617363288380">Η τιμή <ph name="SECURE_DNS_SALT" /> δεν είναι σχετική και δεν θα χρησιμοποιηθεί, εκτός αν οριστεί η πολιτική <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Ακίνητα</translation>
 <translation id="8931333241327730545">Θέλετε να αποθηκεύσετε αυτήν την κάρτα στο Λογαριασμό σας Google;</translation>
 <translation id="8932102934695377596">Το ρολόι σας πάει πίσω</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 84586d3..0e155e1 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -734,7 +734,7 @@
 <translation id="2835170189407361413">Eliminar formulario</translation>
 <translation id="2839032553903800133">Notificaciones bloqueadas</translation>
 <translation id="2839501879576190149">El sitio al que quieres acceder es falso</translation>
-<translation id="2851291081585704741">Estás sin conexión</translation>
+<translation id="2851291081585704741">No tienes conexión</translation>
 <translation id="2854764410992194509">Proveedores de servicios de Internet (ISPs)</translation>
 <translation id="2856444702002559011">Es posible que algunos atacantes intenten robar tu información de <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (p. ej., contraseñas, mensajes o tarjetas de crédito). <ph name="BEGIN_LEARN_MORE_LINK" />Más información<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2858134430383535011">200 × 300 mm</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index e996367..4225c3e 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Zaporke se nikad ne spremaju</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Oznake radne površine</translation>
+<translation id="1067561478268651872">Pravilo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> ne upotrebljava se ako se ne postavi pravilo <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Nikad ne prevodi <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Hibridna i alternativna vozila</translation>
 <translation id="1070901266639972381">Noć</translation>
@@ -2098,6 +2099,7 @@
 <translation id="6328786501058569169">Ova je web-lokacija obmanjujuća</translation>
 <translation id="6337133576188860026">Oslobodit će se <ph name="SIZE" />. Neke bi se web-lokacije pri sljedećem otvaranju mogle sporije učitavati.</translation>
 <translation id="6337534724793800597">Filtriranje pravila prema nazivu</translation>
+<translation id="633770708279464947">Vrijednost <ph name="SECURE_DNS_SALT" /> nije važeća i neće se upotrebljavati.</translation>
 <translation id="6340739886198108203">Prema pravilima administratora ne preporučuje se izrada snimki zaslona ili snimki kad je vidljiv povjerljiv sadržaj:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Prema pravilima administratora ne preporučuje se prijenos te datoteke na <ph name="DESTINATION_NAME" />}one{Prema pravilima administratora ne preporučuje se prijenos tih datoteka na <ph name="DESTINATION_NAME" />}few{Prema pravilima administratora ne preporučuje se prijenos tih datoteka na <ph name="DESTINATION_NAME" />}other{Prema pravilima administratora ne preporučuje se prijenos tih datoteka na <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Aktivne varijacije</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Sažetak narudžbe, <ph name="TOTAL_LABEL" />, više pojedinosti</translation>
 <translation id="8666678546361132282">Engleski</translation>
+<translation id="8671519637524426245">Vrijednost <ph name="SECURE_DNS_SALT" /> ne zadovoljava zahtjeve za veličinu.</translation>
 <translation id="867224526087042813">Potpis</translation>
 <translation id="8672264262457010862">Poslovanje i industrija</translation>
 <translation id="8676424191133491403">Bez odgode</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Gumb Upravljajte načinima plaćanja, pritisnite Enter da biste upravljali podacima o plaćanju i kreditnoj kartici u postavkama Chromea</translation>
 <translation id="8922013791253848639">Uvijek dopusti oglase na ovoj web-lokaciji</translation>
 <translation id="892588693504540538">Bušenje pri vrhu desno</translation>
+<translation id="8930098617363288380">Vrijednost <ph name="SECURE_DNS_SALT" /> nije relevantna i neće se upotrebljavati osim ako se postavi pravilo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
 <translation id="8931333241327730545">Želite li spremiti tu karticu na Google račun?</translation>
 <translation id="8932102934695377596">Sat kasni</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index cda345f..8ce0e46 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Կայքեր, որոնց համար գաղտնաբառերը երբեք չեն պահվում</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Աշխատասեղանի էջանիշներ</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> կանոնը չի օգտագործվի, եթե <ph name="SECURE_DNS_SALT" /> կանոնը կարգավորված չէ։</translation>
 <translation id="1068672505746868501">Երբեք չթարգմանել <ph name="SOURCE_LANGUAGE" /> էջերը</translation>
 <translation id="1070853536588271387">Հիբրիդային և այլընտրանքային մեքենաներ</translation>
 <translation id="1070901266639972381">Գիշեր</translation>
@@ -2100,6 +2101,7 @@
 <translation id="6328786501058569169">Սա կեղծ կայք է</translation>
 <translation id="6337133576188860026">Կազատվի մինչև <ph name="SIZE" /> տարածք։ Դրանից հետո որոշ կայքեր հնարավոր է՝ ավելի դանդաղ բեռնվեն։</translation>
 <translation id="6337534724793800597">Զտել կանոններն ըստ անվան</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" /> կանոնի արժեքը անվավեր է և չի կարող օգտագործվել։</translation>
 <translation id="6340739886198108203">Ադմինիստրատորը խորհուրդ չի տալիս սքրինշոթներ կամ տեսագրություններ անել, երբ էկրանին կոնֆիդենցիալ բովանդակություն է երևում։</translation>
 <translation id="6341434961864773665">{0,plural, =1{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլը վերբեռնել <ph name="DESTINATION_NAME" />}one{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլը վերբեռնել <ph name="DESTINATION_NAME" />}other{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլերը վերբեռնել <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Ընթացիկ տարբերակներ</translation>
@@ -2995,6 +2997,7 @@
 <translation id="8654126188050905496">55 x 91 մմ</translation>
 <translation id="8663226718884576429">Տեղեկություն պատվերի մասին, <ph name="TOTAL_LABEL" />, մանրամասներ</translation>
 <translation id="8666678546361132282">Անգլիական</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" /> կանոնի արժեքը չի համապատասխանում չափսի պահանջներին։</translation>
 <translation id="867224526087042813">Ստորագրություն</translation>
 <translation id="8672264262457010862">Բիզնես և արդյունաբերություն</translation>
 <translation id="8676424191133491403">Առանց հետաձգման</translation>
@@ -3094,6 +3097,7 @@
 <translation id="8913778647360618320">«Կառավարել վճարման եղանակները» կոճակ։ Ձեր վճարումները և վարկային քարտերի տվյալները Chrome-ի կարգավորումներում կառավարելու համար սեղմեք Enter։</translation>
 <translation id="8922013791253848639">Միշտ թույլատրել գովազդն այս կայքում</translation>
 <translation id="892588693504540538">Անցք վերևի աջ կողմում</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" /> կանոնի արժեքը անհամապատասխան է և չի կարող օգտագործվել, եթե <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> կանոնը կարգավորված չէ։</translation>
 <translation id="8930330541574156305">Անշարժ գույք</translation>
 <translation id="8931333241327730545">Ուզո՞ւմ եք պահել այս քարտը ձեր Google հաշվում:</translation>
 <translation id="8932102934695377596">Ձեր ժամացույցը հետ է ընկել</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 429e6848..14d9785 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Mai salvate</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Preferiti desktop</translation>
+<translation id="1067561478268651872">Il criterio <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> non viene utilizzato, a meno che non venga configurato il criterio <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Non tradurre mai le pagine in <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Veicoli ibridi e alternativi</translation>
 <translation id="1070901266639972381">Notte</translation>
@@ -1228,6 +1229,7 @@
 <translation id="4132448310531350254">Gestori duplicati per file_extension "<ph name="FILE_EXTENSION" />" indicati dalle app "<ph name="POLICY_IDS_LIST" />".</translation>
 <translation id="4134123981501319574">Crea documento</translation>
 <translation id="413544239732274901">Scopri di più</translation>
+<translation id="4140905530744469899">ID profilo:</translation>
 <translation id="4142935452406587478">Vassoio 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Busta Chinese #4</translation>
@@ -1351,6 +1353,7 @@
 <translation id="4407755609041463909">Fuoco</translation>
 <translation id="4408413947728134509">Cookie: <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">Elettronica di consumo</translation>
+<translation id="4412074349188076601">Questa configurazione è contrassegnata come installabile, ma non è stata fornita alcuna immagine per questa architettura, quindi non può essere installata.</translation>
 <translation id="4414515549596849729">cookie e dati dei siti</translation>
 <translation id="4415426530740016218">Indirizzo di ritiro</translation>
 <translation id="4424024547088906515">Questo server non è riuscito a dimostrare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza non è considerato attendibile da Chrome. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che intercetta la connessione.</translation>
@@ -2093,6 +2096,7 @@
 <translation id="6328786501058569169">Questo sito è ingannevole</translation>
 <translation id="6337133576188860026">Consente di liberare meno di <ph name="SIZE" />. Alcuni siti potrebbero caricarsi più lentamente alla prossima visita.</translation>
 <translation id="6337534724793800597">Filtra i criteri per nome</translation>
+<translation id="633770708279464947">Il valore <ph name="SECURE_DNS_SALT" /> non è valido e non verrà utilizzato.</translation>
 <translation id="6340739886198108203">Il criterio dell'amministratore sconsiglia l'acquisizione di screenshot o registrazioni quando sono visibili contenuti riservati:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Il criterio dell'amministratore sconsiglia di caricare questo file su <ph name="DESTINATION_NAME" />}other{Il criterio dell'amministratore sconsiglia di caricare questi file su <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Varianti attive</translation>
@@ -2989,6 +2993,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Riepilogo ordine, <ph name="TOTAL_LABEL" />, altri dettagli</translation>
 <translation id="8666678546361132282">Inglese</translation>
+<translation id="8671519637524426245">Il valore <ph name="SECURE_DNS_SALT" /> non soddisfa i requisiti di dimensione.</translation>
 <translation id="867224526087042813">Firma</translation>
 <translation id="8672264262457010862">Commercio e industria</translation>
 <translation id="8676424191133491403">Nessun ritardo</translation>
@@ -3088,6 +3093,7 @@
 <translation id="8913778647360618320">Pulsante Gestisci metodi di pagamento, premi Invio per gestire i tuoi pagamenti e i dati delle carte di credito nelle impostazioni di Chrome</translation>
 <translation id="8922013791253848639">Consenti sempre gli annunci su questo sito</translation>
 <translation id="892588693504540538">Perforatura in alto a destra</translation>
+<translation id="8930098617363288380">Il valore <ph name="SECURE_DNS_SALT" /> non è pertinente e non verrà utilizzato, a meno che non venga configurato il criterio <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Settore immobiliare</translation>
 <translation id="8931333241327730545">Vuoi salvare la scheda nel tuo Account Google?</translation>
 <translation id="8932102934695377596">L'orologio è indietro</translation>
@@ -3200,6 +3206,7 @@
 <translation id="9179907736442194268">Ricevi avvisi se il prezzo cala su qualsiasi sito</translation>
 <translation id="9183302530794969518">Documenti Google</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> utilizza un protocollo non supportato.</translation>
+<translation id="918454845714257218">Controlla il codice sulla <ph name="SIDE_OF_CARD" /> e riprova</translation>
 <translation id="9187461866967718678">Sport estremi</translation>
 <translation id="9191834167571392248">Perforatura in basso a sinistra</translation>
 <translation id="9199905725844810519">La stampa è bloccata</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 72c6276..e1159cd 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1230,6 +1230,7 @@
 <translation id="4132448310531350254">Колдонмонун "<ph name="POLICY_IDS_LIST" />" саясатында айтылган file_extension "<ph name="FILE_EXTENSION" />" кеңейтүүсүндө кайталанма колдонуучунун аты бар.</translation>
 <translation id="4134123981501319574">Документ түзүү</translation>
 <translation id="413544239732274901">Кеңири маалымат</translation>
+<translation id="4140905530744469899">Профилдин идентификатору:</translation>
 <translation id="4142935452406587478">10-түпкүч</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Конверт Кытайча #4</translation>
@@ -1353,6 +1354,7 @@
 <translation id="4407755609041463909">Өрт</translation>
 <translation id="4408413947728134509"><ph name="NUM_COOKIES" /> куки</translation>
 <translation id="4411435778612100394">Тиричилик электротехникасы</translation>
+<translation id="4412074349188076601">Бул конфигурацияны орнотууга болот деп белгиленгени менен, анын сүрөтү көрсөтүлгөн эмес. Андыктан аны орнотууга болбойт.</translation>
 <translation id="4414515549596849729">cookie файлдары жана сайттын маалыматы</translation>
 <translation id="4415426530740016218">Алып кете турган жердин дарегин тандоо</translation>
 <translation id="4424024547088906515">Бул сервер <ph name="DOMAIN" /> экендигин далилдей алган жок; себеби Chrome анын коопсуздук тастыктамасына ишенбейт. Мындай көйгөй туура эмес конфигурация менен шартталышы мүмкүн же туташууңузга чабуулчу кийлигишип жатат.</translation>
@@ -3202,6 +3204,7 @@
 <translation id="9179907736442194268">Кандайдыр бир сайтта баасы төмөндөсө, электрондук почта билдирүүсүн аласыз</translation>
 <translation id="9183302530794969518">Google Docs</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> колдоого алынбаган протоколду колдонуп жатат.</translation>
+<translation id="918454845714257218"><ph name="SIDE_OF_CARD" /> кодду текшерип, кайра аракет кылыңыз</translation>
 <translation id="9187461866967718678">Экстремалдык спорт</translation>
 <translation id="9191834167571392248">Төмөнкү сол жагын тешүү</translation>
 <translation id="9199905725844810519">Басып чыгаруу бөгөттөлгөн</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 87538a028..8120685 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1232,6 +1232,7 @@
 <translation id="4132448310531350254">Pasikartojančios failo plėtinio „<ph name="FILE_EXTENSION" />“ doroklės, kurias nurodo programos „<ph name="POLICY_IDS_LIST" />“.</translation>
 <translation id="4134123981501319574">Sukurti dokumentą</translation>
 <translation id="413544239732274901">Sužinokite daugiau</translation>
+<translation id="4140905530744469899">Profilio ID:</translation>
 <translation id="4142935452406587478">10 dėklas</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Nr. 4 kinietiškas vokas</translation>
@@ -1355,6 +1356,7 @@
 <translation id="4407755609041463909">Ugnis</translation>
 <translation id="4408413947728134509">Slapukai <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">Vartotojų elektronika</translation>
+<translation id="4412074349188076601">Ši konfigūracija pažymėta kaip įdiegiama, bet nepateiktas joks šios konstrukcijos vaizdas, todėl jos negalima įdiegti.</translation>
 <translation id="4414515549596849729">slapukai ir svetainės duomenys</translation>
 <translation id="4415426530740016218">Paėmimo adresas</translation>
 <translation id="4424024547088906515">Šiam serveriui nepavyko patvirtinti, kad tai yra <ph name="DOMAIN" />; jo saugos sertifikatas nėra patikimas „Chrome“. Taip gali nutikti dėl netinkamos konfigūracijos ar dėl ryšį pertraukusio užgrobėjo.</translation>
@@ -3205,6 +3207,7 @@
 <translation id="9179907736442194268">Gaukite įspėjimus el. paštu, jei kurioje nors svetainėje sumažės kaina.</translation>
 <translation id="9183302530794969518">„Google“ dokumentai</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> naudojamas nepalaikomas protokolas.</translation>
+<translation id="918454845714257218">Patikrinkite kodą, pateiktą <ph name="SIDE_OF_CARD" />, ir bandykite dar kartą</translation>
 <translation id="9187461866967718678">Ekstremalusis sportas</translation>
 <translation id="9191834167571392248">Skylė apačioje kairėje</translation>
 <translation id="9199905725844810519">Spausdinimas užblokuotas</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index bc491c9..496a9a1 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Никогаш не е зачувано</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Обележувачи на десктоп</translation>
+<translation id="1067561478268651872">Правилото <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> не се користи освен ако не се постави правилото <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Никогаш не преведувај страници на <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Хибридни и алтернативни возила</translation>
 <translation id="1070901266639972381">Вечер</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Сајтов е лажен</translation>
 <translation id="6337133576188860026">Ќе ослободи помалку од <ph name="SIZE" />. Некои сајтови може да се вчитуваат побавно при вашата следна посета.</translation>
 <translation id="6337534724793800597">Филтрирај правила по име</translation>
+<translation id="633770708279464947">Вредноста <ph name="SECURE_DNS_SALT" /> е неважечка и нема да се користи.</translation>
 <translation id="6340739886198108203">Правилото на администраторот не препорачува да се прават слики од екранот или да се снима кога има видливи доверливи содржини:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Администраторското правило не препорачува да се прикачи датотекава во <ph name="DESTINATION_NAME" />}one{Администраторското правило не препорачува да се прикачат датотекиве во <ph name="DESTINATION_NAME" />}other{Администраторското правило не препорачува да се прикачат датотекиве во <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Активни варијации</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Краток преглед на нарачка, <ph name="TOTAL_LABEL" />, повеќе детали</translation>
 <translation id="8666678546361132282">англиски</translation>
+<translation id="8671519637524426245">Вредноста <ph name="SECURE_DNS_SALT" /> не ги исполнува барањата за големина.</translation>
 <translation id="867224526087042813">Потпис</translation>
 <translation id="8672264262457010862">Бизнис и индустрија</translation>
 <translation id="8676424191133491403">Без одложување</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Копче „Управувајте со начините на плаќање“, притиснете Enter за да управувате со податоците за плаќањата и кредитната картичка во поставките за Chrome</translation>
 <translation id="8922013791253848639">Секогаш дозволувај реклами на сајтов</translation>
 <translation id="892588693504540538">Дупка горе десно</translation>
+<translation id="8930098617363288380">Вредноста <ph name="SECURE_DNS_SALT" /> не е релевантна и нема да се користи освен ако не се постави правилото <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Недвижности</translation>
 <translation id="8931333241327730545">Дали сакате да ја зачувате картичкава на сметката на Google?</translation>
 <translation id="8932102934695377596">Вашиот часовник доцни</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index d6cc979..8d89203 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Огт хадгалагдаагүй байна</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Дэлгэцийн хавчуурга</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_SALT" />-н бодлогыг тогтоосон тохиолдолд <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />-н бодлогыг ашиглана.</translation>
 <translation id="1068672505746868501"><ph name="SOURCE_LANGUAGE" /> хэл дээрх хуудсыг хэзээ ч орчуулахгүй</translation>
 <translation id="1070853536588271387">Гибрид, хоёрдогч түлш хэрэглэгч тээврийн хэрэгсэл</translation>
 <translation id="1070901266639972381">Шөнө</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Энэ сайт хуурамч байна</translation>
 <translation id="6337133576188860026"><ph name="SIZE" />-с бага зай гаргана. Зарим сайтад зочлох үед удаан ачаалж болзошгүй.</translation>
 <translation id="6337534724793800597">Журмуудыг нэрээр нь шүү</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" />-н утга буруу тул ашиглахгүй.</translation>
 <translation id="6340739886198108203">Администраторын бодлого нь нууцлалтай контент харагдаж байх үед дэлгэцийн агшин авах эсвэл бичлэг хийхийг санал болгодоггүй:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Администраторын бодлого нь энэ файлыг <ph name="DESTINATION_NAME" />-д байршуулахыг санал болгодоггүй}other{Администраторын бодлого нь эдгээр файлыг <ph name="DESTINATION_NAME" />-д байршуулахыг санал болгодоггүй}}</translation>
 <translation id="6348220984832452017">Идэвхтэй хувилбарууд</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 мм</translation>
 <translation id="8663226718884576429">Захиалгын дүн, <ph name="TOTAL_LABEL" />, Дэлгэрэнгүй</translation>
 <translation id="8666678546361132282">Англи хэл</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" />-н утга нь шаардлагатай хэмжээнд нийцэхгүй байна.</translation>
 <translation id="867224526087042813">Гарын үсэг</translation>
 <translation id="8672264262457010862">Бизнес, аж үйлдвэр</translation>
 <translation id="8676424191133491403">Хүлээхгүй</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Төлбөрийн хэрэгслүүдийг удирдах товч, Chrome-н тохиргоон дээр төлбөр болон кредит картынхаа мэдээллийг удирдахын тулд Enter дарна уу</translation>
 <translation id="8922013791253848639">Энэ сайтад зарыг үргэлж зөвшөөрөх</translation>
 <translation id="892588693504540538">Баруун дээд буланд нэг нүх цоолох</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" />-н утга нь хамааралгүй байгаа бөгөөд<ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />-н бодлогыг тогтоосон тохиолдолд үүнийг ашиглана.</translation>
 <translation id="8930330541574156305">Үл хөдлөх хөрөнгө</translation>
 <translation id="8931333241327730545">Та картаа өөрийн Google Бүртгэлд хадгалах уу?</translation>
 <translation id="8932102934695377596">Таны цаг хоцорч байна</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 0839708..b7b5eb64 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Aldri lagret</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Bokmerker på datamaskinen</translation>
+<translation id="1067561478268651872">Regelen <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> brukes ikke med mindre regelen <ph name="SECURE_DNS_SALT" /> er angitt.</translation>
 <translation id="1068672505746868501">Oversett aldri sider på <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Hybridbiler og kjøretøy med alternativt drivstoff</translation>
 <translation id="1070901266639972381">Natt</translation>
@@ -2097,6 +2098,7 @@
 <translation id="6328786501058569169">Dette nettstedet er villedende</translation>
 <translation id="6337133576188860026">Frigjør mindre enn <ph name="SIZE" />. Det kan hende enkelte nettsteder lastes inn tregere neste gang du besøker dem.</translation>
 <translation id="6337534724793800597">Filtrér retningslinjer etter navn</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" />-verdien er ugyldig og blir ikke brukt.</translation>
 <translation id="6340739886198108203">Administratorreglene anbefaler ikke at du tar skjermdumper eller gjør opptak når konfidensielt innhold er synlig:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Administratorreglene anbefaler ikke at du laster opp denne filen til <ph name="DESTINATION_NAME" />}other{Administratorreglene anbefaler ikke at du laster opp disse filene til <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Aktive variasjoner</translation>
@@ -2991,6 +2993,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Bestillingssammendrag, <ph name="TOTAL_LABEL" />, mer informasjon</translation>
 <translation id="8666678546361132282">Engelsk</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" />-verdien oppfyller ikke størrelseskravene.</translation>
 <translation id="867224526087042813">Signatur</translation>
 <translation id="8672264262457010862">Forretning og industri</translation>
 <translation id="8676424191133491403">Uten forsinkelse</translation>
@@ -3090,6 +3093,7 @@
 <translation id="8913778647360618320">Knappen «Administrer betalingsmåter» – trykk på Enter for å administrere betalingene og kredittkortopplysningene dine i Chrome-innstillingene</translation>
 <translation id="8922013791253848639">Tillat alltid annonser på dette nettstedet</translation>
 <translation id="892588693504540538">Hull oppe til høyre</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" />-verdien er ikke relevant og blir ikke brukt med mindre regelen <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> er angitt.</translation>
 <translation id="8930330541574156305">Eiendom</translation>
 <translation id="8931333241327730545">Vil du lagre dette kortet i Google-kontoen din?</translation>
 <translation id="8932102934695377596">Klokken går for sent</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 431e500..b15dac8 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">ଆଦୌ ସେଭ୍‍ କରାଯାଇନାହିଁ</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">ଡେସ୍କଟପ୍ ବୁକ୍‍ମାର୍କଗୁଡିକ</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_SALT" /> ନୀତି ସେଟ କରାନଯିବା ପର୍ଯ୍ୟନ୍ତ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> ନୀତିକୁ ବ୍ୟବହାର କରାଯାଏ ନାହିଁ।</translation>
 <translation id="1068672505746868501"><ph name="SOURCE_LANGUAGE" />ରେ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଅନୁବାଦ କରନ୍ତୁ ନାହିଁ</translation>
 <translation id="1070853536588271387">ହାଇବ୍ରିଡ ଏବଂ ବୈକଳ୍ପିକ ଗାଡ଼ିଗୁଡ଼ିକ</translation>
 <translation id="1070901266639972381">ରାତି</translation>
@@ -2096,6 +2097,7 @@
 <translation id="6328786501058569169">ଏହି ସାଇଟ୍‌ଟି ପ୍ରତାରଣାମୂଳକ ଅଟେ</translation>
 <translation id="6337133576188860026"><ph name="SIZE" />ଠାରୁ କମ୍ ଖାଲି କରନ୍ତି। କିଛି ଆପଣଙ୍କର ପରବର୍ତ୍ତୀ ଭ୍ରମଣ ସମୟରେ ଆହୁରି ଧୀରେ ଲୋଡ୍ ହୋଇପାରନ୍ତି।</translation>
 <translation id="6337534724793800597">ନାମ ଅନୁଯାୟୀ ନୀତିଗୁଡ଼ିକ ଫିଲ୍ଟର୍‍ କରନ୍ତୁ</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" /> ମୂଲ୍ୟ ଅବୈଧ ଅଟେ ଏବଂ ଏହାକୁ ବ୍ୟବହାର କରାଯିବ ନାହିଁ।</translation>
 <translation id="6340739886198108203">ଗୋପନୀୟ ବିଷୟବସ୍ତୁ ଦେଖାଯାଉଥିବା ବେଳେ ସ୍କ୍ରିନସଟ ନେବା କିମ୍ବା ରେକର୍ଡ କରିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ:</translation>
 <translation id="6341434961864773665">{0,plural, =1{<ph name="DESTINATION_NAME" />କୁ ଏହି ଫାଇଲ ଅପଲୋଡ କରିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}other{<ph name="DESTINATION_NAME" />କୁ ଏହି ଫାଇଲଗୁଡ଼ିକ ଅପଲୋଡ କରିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}}</translation>
 <translation id="6348220984832452017">ସକ୍ରିୟ ଭେରିଏସନଗୁଡ଼ିକ</translation>
@@ -2991,6 +2993,7 @@
 <translation id="8654126188050905496">55 x 91 ମିମି</translation>
 <translation id="8663226718884576429">ଅର୍ଡର ସାରାଂଶ, <ph name="TOTAL_LABEL" />, ଅଧିକ ବିବରଣୀ</translation>
 <translation id="8666678546361132282">ଇଂରାଜୀ</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" /> ମୂଲ୍ୟ ଆକାର ଆବଶ୍ୟକତାକୁ ପୂରଣ କରେ ନାହିଁ।</translation>
 <translation id="867224526087042813">ଦସ୍ତଖତ</translation>
 <translation id="8672264262457010862">ବ୍ୟବସାୟ ଏବଂ ଶିଳ୍ପ</translation>
 <translation id="8676424191133491403">କୌଣସି ବିଳମ୍ବ ନାହିଁ</translation>
@@ -3090,6 +3093,7 @@
 <translation id="8913778647360618320">"ପେମେଣ୍ଟ ପଦ୍ଧତି ପରିଚାଳନା କରନ୍ତୁ" ବଟନ୍, Chrome ସେଟିଂସରେ ଆପଣଙ୍କ ପେମେଣ୍ଟ ଏବଂ କ୍ରେଡିଟ୍ କାର୍ଡ ସୂଚନା ପରିଚାଳନା କରିବାକୁ Enter ଦବାନ୍ତୁ</translation>
 <translation id="8922013791253848639">ଏହି ସାଇଟ୍‌ରେ ସର୍ବଦା ବିଜ୍ଞାପନକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="892588693504540538">ଉପର ଡାହାଣ ପଟରେ ପଞ୍ଚ୍</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" /> ମୂଲ୍ୟ ପ୍ରାସଙ୍ଗିକ ନୁହେଁ ଏବଂ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> ନୀତି ସେଟ କରାନଯିବା ପର୍ଯ୍ୟନ୍ତ ଏହାକୁ ବ୍ୟବହାର କରାଯିବ ନାହିଁ।</translation>
 <translation id="8930330541574156305">ରିଅଲ ଇଷ୍ଟେଟ</translation>
 <translation id="8931333241327730545">ଆପଣ ନିଜର Google ଆକାଉଣ୍ଟରେ ଏହି କାର୍ଡକୁ ସେଭ୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?</translation>
 <translation id="8932102934695377596">ଆପଣଙ୍କର ଘଣ୍ଟାର ସମୟ ପଛରେ ଅଛି</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index fb57bd85..5d7428e 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1232,6 +1232,7 @@
 <translation id="4132448310531350254">Controladores duplicados para a file_extension "<ph name="FILE_EXTENSION" />" referenciada pelas apps "<ph name="POLICY_IDS_LIST" />".</translation>
 <translation id="4134123981501319574">Criar documento</translation>
 <translation id="413544239732274901">Saiba mais</translation>
+<translation id="4140905530744469899">ID do perfil</translation>
 <translation id="4142935452406587478">Tabuleiro 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Envelope Chinese n.º 4</translation>
@@ -1355,6 +1356,7 @@
 <translation id="4407755609041463909">Fogo</translation>
 <translation id="4408413947728134509">Cookies <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">Eletrónica para o consumidor</translation>
+<translation id="4412074349188076601">Esta configuração está marcada como instalável, mas não é fornecida nenhuma imagem para esta arquitetura e, por isso, não pode ser instalada.</translation>
 <translation id="4414515549596849729">cookies e dados de sites</translation>
 <translation id="4415426530740016218">Endereço de recolha</translation>
 <translation id="4424024547088906515">Este servidor não conseguiu provar que é o domínio <ph name="DOMAIN" />; o Chrome não confia no respetivo certificado de segurança. Isto pode ser o resultado de uma configuração incorreta ou de um invasor a intercetar a sua ligação.</translation>
@@ -3207,6 +3209,7 @@
 <translation id="9179907736442194268">Obtenha alertas de email se o preço descer em qualquer site</translation>
 <translation id="9183302530794969518">Google Docs</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> utiliza um protocolo não suportado.</translation>
+<translation id="918454845714257218">Verifique o código no <ph name="SIDE_OF_CARD" /> e tente novamente</translation>
 <translation id="9187461866967718678">Desportos radicais</translation>
 <translation id="9191834167571392248">Perfurar na parte inferior esquerda</translation>
 <translation id="9199905725844810519">A impressão está bloqueada.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 3a8e0c428..5add7d1 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1232,6 +1232,7 @@
 <translation id="4132448310531350254">Handlere dublură pentru extensia de fișier <ph name="FILE_EXTENSION" /> la care fac referire aplicațiile <ph name="POLICY_IDS_LIST" />.</translation>
 <translation id="4134123981501319574">Creează un document</translation>
 <translation id="413544239732274901">Află mai multe</translation>
+<translation id="4140905530744469899">Codul profilului:</translation>
 <translation id="4142935452406587478">Tava 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Plic chinezesc 4</translation>
@@ -1355,6 +1356,7 @@
 <translation id="4407755609041463909">Foc</translation>
 <translation id="4408413947728134509"><ph name="NUM_COOKIES" /> cookie-uri</translation>
 <translation id="4411435778612100394">Produse electronice de larg consum</translation>
+<translation id="4412074349188076601">Configurația este marcată drept configurație care se poate instala, însă nu este oferită nicio imagine pentru această arhitectură, deci nu poate fi instalată.</translation>
 <translation id="4414515549596849729">Cookie-uri și date privind site-urile</translation>
 <translation id="4415426530740016218">Adresă de preluare</translation>
 <translation id="4424024547088906515">Acest server nu a putut dovedi că este <ph name="DOMAIN" />; Chrome nu consideră că certificatul său de securitate este de încredere. Cauza poate fi o configurare greșită sau interceptarea conexiunii de către un atacator.</translation>
@@ -3208,6 +3210,7 @@
 <translation id="9179907736442194268">Primește alerte prin e-mail dacă prețul scade pe orice site</translation>
 <translation id="9183302530794969518">Documente Google</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> folosește un protocol neacceptat.</translation>
+<translation id="918454845714257218">Caută codul de pe <ph name="SIDE_OF_CARD" /> și încearcă din nou</translation>
 <translation id="9187461866967718678">Sporturi extreme</translation>
 <translation id="9191834167571392248">Perforare în stânga jos</translation>
 <translation id="9199905725844810519">Printarea este blocată</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 614ff79c..f9dbe11 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nikdy neukladať</translation>
 <translation id="1064054731605354900">A3×5</translation>
 <translation id="106701514854093668">Záložky v počítači</translation>
+<translation id="1067561478268651872">Pravidlo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> sa nepoužije, pokiaľ nie je nastavené pravidlo <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Nikdy neprekladať stránky v jazyku <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Automobily s hybridným a alternatívnym pohonom</translation>
 <translation id="1070901266639972381">Noc</translation>
@@ -2094,6 +2095,7 @@
 <translation id="6328786501058569169">Tento web je klamlivý</translation>
 <translation id="6337133576188860026">Uvoľní menej ako <ph name="SIZE" />. Niektoré weby sa môžu pri ďalšej návšteve načítať pomalšie.</translation>
 <translation id="6337534724793800597">Filtrovať pravidlá podľa mena</translation>
+<translation id="633770708279464947">Hodnota <ph name="SECURE_DNS_SALT" /> je neplatná a nepoužije sa.</translation>
 <translation id="6340739886198108203">Pravidlá správcu neodporúčajú vytváranie snímok obrazovky alebo nahrávok, keď je viditeľný dôverný obsah:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Pravidlá správcu nahratie tohto súboru do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}few{Pravidlá správcu nahratie týchto súborov do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}many{Administrator policy doesn’t recommend uploading these files to <ph name="DESTINATION_NAME" />}other{Pravidlá správcu nahratie týchto súborov do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}}</translation>
 <translation id="6348220984832452017">Aktívne variácie</translation>
@@ -2990,6 +2992,7 @@
 <translation id="8654126188050905496">55 × 91 mm</translation>
 <translation id="8663226718884576429">Súhrn objednávky, <ph name="TOTAL_LABEL" />, ďalšie podrobnosti</translation>
 <translation id="8666678546361132282">Angličtina</translation>
+<translation id="8671519637524426245">Hodnota <ph name="SECURE_DNS_SALT" /> nespĺňa požiadavky na veľkosť.</translation>
 <translation id="867224526087042813">Podpis</translation>
 <translation id="8672264262457010862">Obchod a priemysel</translation>
 <translation id="8676424191133491403">Bez oneskorenia</translation>
@@ -3089,6 +3092,7 @@
 <translation id="8913778647360618320">Tlačidlo Spravovať spôsob platby. Stlačením klávesa Enter môžete v nastaveniach Chromu spravovať spôsoby platby a informácie o kreditnej karte.</translation>
 <translation id="8922013791253848639">Vždy povoliť reklamy na tomto webe</translation>
 <translation id="892588693504540538">Prederaviť vpravo hore</translation>
+<translation id="8930098617363288380">Hodnota <ph name="SECURE_DNS_SALT" /> nie je relevantná a použije sa, iba ak nastavíte pravidlo <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Nehnuteľnosti</translation>
 <translation id="8931333241327730545">Chcete túto kartu uložiť do svojho účtu Google?</translation>
 <translation id="8932102934695377596">Vaše hodiny idú pozadu</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 7bfb3aa..9d66b876 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nikoli shranjeno</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Zaznamki namizja</translation>
+<translation id="1067561478268651872">Pravilnik <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> se uporablja samo, če je nastavljen pravilnik <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Nikoli ne prevedi strani v jeziku <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Hibridna in alternativna vozila</translation>
 <translation id="1070901266639972381">Noč</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">To spletno mesto je zavajajoče</translation>
 <translation id="6337133576188860026">Sprosti manj kot <ph name="SIZE" />. Nekatera spletna mesta se bodo ob naslednjem obisku morda počasneje naložila.</translation>
 <translation id="6337534724793800597">Filtriraj pravilnike po imenu</translation>
+<translation id="633770708279464947">Vrednost <ph name="SECURE_DNS_SALT" /> ni veljavna in ne bo uporabljena.</translation>
 <translation id="6340739886198108203">Pravilnik skrbnika ne priporoča ustvarjanja posnetkov zaslona ali videoposnetkov, ko je vidna zaupna vsebina:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Pravilnik skrbnika ne priporoča nalaganja te datoteke sem: <ph name="DESTINATION_NAME" />.}one{Pravilnik skrbnika ne priporoča nalaganja teh datotek sem: <ph name="DESTINATION_NAME" />.}two{Pravilnik skrbnika ne priporoča nalaganja teh datotek sem: <ph name="DESTINATION_NAME" />.}few{Pravilnik skrbnika ne priporoča nalaganja teh datotek sem: <ph name="DESTINATION_NAME" />.}other{Pravilnik skrbnika ne priporoča nalaganja teh datotek sem: <ph name="DESTINATION_NAME" />.}}</translation>
 <translation id="6348220984832452017">Aktivne različice</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Povzetek naročila, <ph name="TOTAL_LABEL" />, več podrobnosti</translation>
 <translation id="8666678546361132282">angleščina</translation>
+<translation id="8671519637524426245">Vrednost <ph name="SECURE_DNS_SALT" /> ne izpolnjuje zahtev glede velikosti.</translation>
 <translation id="867224526087042813">Podpis</translation>
 <translation id="8672264262457010862">Posel in industrija</translation>
 <translation id="8676424191133491403">Brez zakasnitve</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Gumb za upravljanje plačilnih sredstev, pritisnite Enter, če želite upravljati plačila in podatke o kreditnih karticah v Chromovih nastavitvah</translation>
 <translation id="8922013791253848639">Vedno dovoli oglase na tem spletnem mestu</translation>
 <translation id="892588693504540538">Luknjanje zgoraj desno</translation>
+<translation id="8930098617363288380">Vrednost <ph name="SECURE_DNS_SALT" /> ni ustrezna in ne bo uporabljena, razen če je nastavljen pravilnik <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Nepremičnine</translation>
 <translation id="8931333241327730545">Ali želite to kartico shraniti v Google Račun?</translation>
 <translation id="8932102934695377596">Ura zaostaja</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index 0678777..d0fec16 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nikada se ne čuva</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Obeleživači na računaru</translation>
+<translation id="1067561478268651872">Smernice <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> se ne koriste ako smernice <ph name="SECURE_DNS_SALT" /> nisu podešene.</translation>
 <translation id="1068672505746868501">Nikad ne prevodi stranice na jeziku <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Hibridna i alternativna vozila</translation>
 <translation id="1070901266639972381">Noć</translation>
@@ -2098,6 +2099,7 @@
 <translation id="6328786501058569169">Ovaj sajt je obmanjujuć</translation>
 <translation id="6337133576188860026">Oslobađa manje od <ph name="SIZE" />. Neki sajtovi će se možda sporije učitavati kad ih sledeći put posetite.</translation>
 <translation id="6337534724793800597">Filtriraj smernice prema nazivu</translation>
+<translation id="633770708279464947">Vrednost <ph name="SECURE_DNS_SALT" /> je nevažeća i neće se koristiti.</translation>
 <translation id="6340739886198108203">Smernice administratora ne preporučuju pravljenje snimaka ekrana ili snimaka kada je poverljiv sadržaj vidljiv:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Smernice administratora ne preporučuju otpremanje ovog fajla na <ph name="DESTINATION_NAME" />}one{Smernice administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}few{Smernice administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}other{Smernice administratora ne preporučuju otpremanje ovih fajlova na <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Aktivne varijacije</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55×91 mm</translation>
 <translation id="8663226718884576429">Rezime porudžbine, <ph name="TOTAL_LABEL" />, još detalja</translation>
 <translation id="8666678546361132282">engleski</translation>
+<translation id="8671519637524426245">Vrednost <ph name="SECURE_DNS_SALT" /> ne ispunjava uslove za veličinu.</translation>
 <translation id="867224526087042813">Potpis</translation>
 <translation id="8672264262457010862">Poslovanje i industrija</translation>
 <translation id="8676424191133491403">Bez odlaganja</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Dugme Upravljaj načinima plaćanja, pritisnite Enter da biste upravljali plaćanjima i informacijama o kreditnim karticama u podešavanjima Chrome-a</translation>
 <translation id="8922013791253848639">Uvek dozvoljavaj oglase na ovom sajtu</translation>
 <translation id="892588693504540538">Bušenje u gornjem desnom uglu</translation>
+<translation id="8930098617363288380">Vrednost <ph name="SECURE_DNS_SALT" /> nije relevantna i neće se koristiti ako smernice <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> nisu podešene.</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
 <translation id="8931333241327730545">Da li želite da sačuvate ovu karticu na Google nalog?</translation>
 <translation id="8932102934695377596">Sat vam kasni</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index d98c5643..e4da21bc 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Никада се не чува</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Обележивачи на рачунару</translation>
+<translation id="1067561478268651872">Смернице <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> се не користе ако смернице <ph name="SECURE_DNS_SALT" /> нису подешене.</translation>
 <translation id="1068672505746868501">Никад не преводи странице на језику <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Хибридна и алтернативна возила</translation>
 <translation id="1070901266639972381">Ноћ</translation>
@@ -2098,6 +2099,7 @@
 <translation id="6328786501058569169">Овај сајт је обмањујућ</translation>
 <translation id="6337133576188860026">Ослобађа мање од <ph name="SIZE" />. Неки сајтови ће се можда спорије учитавати кад их следећи пут посетите.</translation>
 <translation id="6337534724793800597">Филтрирај смернице према називу</translation>
+<translation id="633770708279464947">Вредност <ph name="SECURE_DNS_SALT" /> је неважећа и неће се користити.</translation>
 <translation id="6340739886198108203">Смернице администратора не препоручују прављење снимака екрана или снимака када је поверљив садржај видљив:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Смернице администратора не препоручују отпремање овог фајла на <ph name="DESTINATION_NAME" />}one{Смернице администратора не препоручују отпремање ових фајлова на <ph name="DESTINATION_NAME" />}few{Смернице администратора не препоручују отпремање ових фајлова на <ph name="DESTINATION_NAME" />}other{Смернице администратора не препоручују отпремање ових фајлова на <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Активне варијације</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55×91 mm</translation>
 <translation id="8663226718884576429">Резиме поруџбине, <ph name="TOTAL_LABEL" />, још детаља</translation>
 <translation id="8666678546361132282">енглески</translation>
+<translation id="8671519637524426245">Вредност <ph name="SECURE_DNS_SALT" /> не испуњава услове за величину.</translation>
 <translation id="867224526087042813">Потпис</translation>
 <translation id="8672264262457010862">Пословање и индустрија</translation>
 <translation id="8676424191133491403">Без одлагања</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Дугме Управљај начинима плаћања, притисните Enter да бисте управљали плаћањима и информацијама о кредитним картицама у подешавањима Chrome-а</translation>
 <translation id="8922013791253848639">Увек дозвољавај огласе на овом сајту</translation>
 <translation id="892588693504540538">Бушење у горњем десном углу</translation>
+<translation id="8930098617363288380">Вредност <ph name="SECURE_DNS_SALT" /> није релевантна и неће се користити ако смернице <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> нису подешене.</translation>
 <translation id="8930330541574156305">Некретнине</translation>
 <translation id="8931333241327730545">Да ли желите да сачувате ову картицу на Google налог?</translation>
 <translation id="8932102934695377596">Сат вам касни</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index c1d4581..729cbe9e 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Aldrig sparad</translation>
 <translation id="1064054731605354900">A3 x 5</translation>
 <translation id="106701514854093668">Bokmärken på skrivbordet</translation>
+<translation id="1067561478268651872">Principen <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> används endast om principen <ph name="SECURE_DNS_SALT" /> är inställd.</translation>
 <translation id="1068672505746868501">Översätt aldrig sidor på <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Hybrider och alternativa fordon</translation>
 <translation id="1070901266639972381">nattetid</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Den här webbplatsen är bedräglig</translation>
 <translation id="6337133576188860026">Frigör mindre än <ph name="SIZE" />. Vissa webbplatser kan läsas in långsammare nästa gång du besöker dem.</translation>
 <translation id="6337534724793800597">Filtrera princip efter namn</translation>
+<translation id="633770708279464947">Värdet <ph name="SECURE_DNS_SALT" /> är ogiltigt och används inte.</translation>
 <translation id="6340739886198108203">Enligt administratörspolicyn är det inte rekommenderat att ta skärmbilder eller göra inspelningar när konfidentiellt innehåll är synligt:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Enligt administratörspolicyn är det inte rekommenderat att ladda upp den här filen till <ph name="DESTINATION_NAME" />}other{Enligt administratörspolicyn är det inte rekommenderat att ladda upp dessa filer till <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Aktiva variationer</translation>
@@ -2995,6 +2997,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Beställningsöversikt, <ph name="TOTAL_LABEL" />, mer information</translation>
 <translation id="8666678546361132282">engelska</translation>
+<translation id="8671519637524426245">Värdet <ph name="SECURE_DNS_SALT" /> uppfyller inte storlekskraven.</translation>
 <translation id="867224526087042813">Signatur</translation>
 <translation id="8672264262457010862">Företag och industri</translation>
 <translation id="8676424191133491403">Ingen fördröjning</translation>
@@ -3094,6 +3097,7 @@
 <translation id="8913778647360618320">Knappen Hantera betalningsmetoder, tryck på Retur om du vill hantera betalningar och kreditkortsuppgifter i inställningarna för Chrome</translation>
 <translation id="8922013791253848639">Tillåt alltid annonser på den här webbplatsen</translation>
 <translation id="892588693504540538">Hål uppe till höger</translation>
+<translation id="8930098617363288380">Värdet <ph name="SECURE_DNS_SALT" /> är inte relevant och används endast om principen <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> är inställd.</translation>
 <translation id="8930330541574156305">Fastigheter</translation>
 <translation id="8931333241327730545">Vill du spara det här kortet i ditt Google-konto?</translation>
 <translation id="8932102934695377596">Klockan går efter</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 7092f73..6be614d 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -39,6 +39,7 @@
 <translation id="10614374240317010">کبھی بھی محفوظ نہیں کیا ہوا</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">ڈیسک ٹاپ بُک مارکس</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> پالیسی استعمال نہیں کی جاتی ہے الا یہ کہ <ph name="SECURE_DNS_SALT" /> پالیسی سیٹ ہو۔</translation>
 <translation id="1068672505746868501"><ph name="SOURCE_LANGUAGE" /> کے صفحات کا کبھی ترجمہ نہ کریں</translation>
 <translation id="1070853536588271387">ہائبرڈ اور متبادل گاڑیاں</translation>
 <translation id="1070901266639972381">رات</translation>
@@ -2102,6 +2103,7 @@
 <translation id="6328786501058569169">یہ سائٹ پُر فریب ہے</translation>
 <translation id="6337133576188860026"><ph name="SIZE" /> سے کم بچت ہوتی ہے۔ آپ کے اگلے ملاحظہ پر کچھ سائٹس مزید آہستہ سے لوڈ ہو سکتی ہیں۔</translation>
 <translation id="6337534724793800597">نام کے لحاظ سے پالیسیاں فلٹر کریں</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" /> قدر غلط ہے اور استعمال نہیں کی جائے گی۔</translation>
 <translation id="6340739886198108203">منتظم کی پالیسی رازدارانہ مواد کے مرئی ہونے پر اسکرین شاٹس یا ریکارڈنگز لینے کی تجویز نہیں کرتی ہے:</translation>
 <translation id="6341434961864773665">{0,plural, =1{منتظم کی پالیسی اس فائل کو <ph name="DESTINATION_NAME" /> میں اپ لوڈ کرنے کی تجویز نہیں کرتی ہے}other{منتظم کی پالیسی ان فائلز کو <ph name="DESTINATION_NAME" /> میں اپ لوڈ کرنے کی تجویز نہیں کرتی ہے}}</translation>
 <translation id="6348220984832452017">فعال تغیرات</translation>
@@ -2997,6 +2999,7 @@
 <translation id="8654126188050905496">‏‎55 x 91 ملی میٹر</translation>
 <translation id="8663226718884576429">آرڈر کا خلاصہ، <ph name="TOTAL_LABEL" />، مزید تفصیلات</translation>
 <translation id="8666678546361132282">انگريزی</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" /> کی قدر سائز کے تقاضوں کو پورا نہیں کرتی ہے۔</translation>
 <translation id="867224526087042813">دستخط</translation>
 <translation id="8672264262457010862">کاروباری اور صنعتی</translation>
 <translation id="8676424191133491403">کوئی تاخیر نہیں</translation>
@@ -3096,6 +3099,7 @@
 <translation id="8913778647360618320">‏'ادائیگی کے طریقوں کا نظم کریں' بٹن، Chrome کی ترتیبات میں اپنی ادائیگیوں اور کریڈٹ کارڈ کی معلومات کا نظم کرنے کے لیے اینٹر دبائیں</translation>
 <translation id="8922013791253848639">ہمیشہ اس سائٹ پر اشتہارات کی اجازت دیں</translation>
 <translation id="892588693504540538">اوپر دائیں طرف سوراخ</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" /> کی قدر متعلقہ نہیں ہے اور استعمال نہیں کی جائے گی الا یہ کہ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> پالیسی سیٹ ہو۔</translation>
 <translation id="8930330541574156305">ریئل اسٹیٹ</translation>
 <translation id="8931333241327730545">‏کیا آپ اس کارڈ کو اپنے Google اکاؤنٹ میں محفوظ کرنا چاہتے ہیں؟</translation>
 <translation id="8932102934695377596">آپ کی گھڑی پیچھے ہے</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 7574868f..f01d9dd 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Không bao giờ lưu</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Dấu trang máy tính</translation>
+<translation id="1067561478268651872">Chính sách <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> sẽ không được sử dụng trừ phi bạn đặt chính sách <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Không bao giờ dịch các trang viết bằng <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Xe sử dụng nhiên liệu thay thế &amp; xe có động cơ lai</translation>
 <translation id="1070901266639972381">Đêm</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Đây là trang web lừa đảo</translation>
 <translation id="6337133576188860026">Bộ nhớ đệm còn chưa đầy <ph name="SIZE" />. Một số trang web có thể tải chậm hơn vào lần tới bạn truy cập.</translation>
 <translation id="6337534724793800597">Lọc chính sách theo tên</translation>
+<translation id="633770708279464947">Giá trị <ph name="SECURE_DNS_SALT" /> không hợp lệ và sẽ không được sử dụng.</translation>
 <translation id="6340739886198108203">Chính sách của quản trị viên không khuyến khích chụp ảnh màn hình hoặc ghi âm khi đang có nội dung bảo mật trên màn hình:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Theo chính sách của quản trị viên, bạn không nên tải tệp này lên <ph name="DESTINATION_NAME" />}other{Theo chính sách của quản trị viên, bạn không nên tải các tệp này lên <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Biến thể đang hoạt động</translation>
@@ -2995,6 +2997,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Tóm tắt đơn hàng, <ph name="TOTAL_LABEL" />, chi tiết khác</translation>
 <translation id="8666678546361132282">Tiếng Anh</translation>
+<translation id="8671519637524426245">Giá trị <ph name="SECURE_DNS_SALT" /> không đáp ứng các yêu cầu về kích thước.</translation>
 <translation id="867224526087042813">Chữ ký</translation>
 <translation id="8672264262457010862">Kinh doanh và công nghiệp</translation>
 <translation id="8676424191133491403">Không trì hoãn</translation>
@@ -3094,6 +3097,7 @@
 <translation id="8913778647360618320">Nút Quản lý phương thức thanh toán, nhấn phím Enter để quản lý thông tin thanh toán và thẻ tín dụng trong phần cài đặt của Chrome</translation>
 <translation id="8922013791253848639">Luôn cho phép quảng cáo trên trang web này</translation>
 <translation id="892588693504540538">Đục lỗ trên cùng bên phải</translation>
+<translation id="8930098617363288380">Giá trị <ph name="SECURE_DNS_SALT" /> không phù hợp và sẽ không được dùng trừ phi bạn đặt chính sách <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Bất động sản</translation>
 <translation id="8931333241327730545">Bạn có muốn lưu thẻ này vào Tài khoản Google của mình không?</translation>
 <translation id="8932102934695377596">Đồng hồ của bạn chạy chậm</translation>
diff --git a/components/sync_bookmarks/bookmark_model_type_processor.cc b/components/sync_bookmarks/bookmark_model_type_processor.cc
index 29b0d45..5acc24b5 100644
--- a/components/sync_bookmarks/bookmark_model_type_processor.cc
+++ b/components/sync_bookmarks/bookmark_model_type_processor.cc
@@ -16,6 +16,7 @@
 #include "base/task/sequenced_task_runner.h"
 #include "base/trace_event/memory_usage_estimator.h"
 #include "base/trace_event/trace_event.h"
+#include "build/build_config.h"
 #include "components/bookmarks/browser/bookmark_model.h"
 #include "components/bookmarks/browser/bookmark_node.h"
 #include "components/bookmarks/browser/bookmark_utils.h"
@@ -48,6 +49,23 @@
 
 namespace {
 
+#if BUILDFLAG(IS_IOS) or BUILDFLAG(IS_ANDROID)
+// Set a lower limit for mobile platforms.
+// 1. There are not many users of bookmarks on mobiles.
+// 2. Prevents creation of an overly huge sync metadata file to be stored on
+// the disk.
+// 3. Reduced memory consumption and processing, noticeable especially during
+// an initial merge.
+// 4. A lower limit for mobile platforms reflects the lower
+// capacity/processing power of mobile devices.
+//
+// Since the bookmark model thread is the UI thread, a smoother user
+// experience outweighs the resulting downsides.
+constexpr size_t kDefaultMaxBookmarksTillSyncEnabled = 20000;
+#else
+constexpr size_t kDefaultMaxBookmarksTillSyncEnabled = 100000;
+#endif
+
 class ScopedRemoteUpdateBookmarks {
  public:
   // |bookmark_model|, |bookmark_undo_service| and |observer| must not be null
@@ -123,7 +141,8 @@
 
 BookmarkModelTypeProcessor::BookmarkModelTypeProcessor(
     BookmarkUndoService* bookmark_undo_service)
-    : bookmark_undo_service_(bookmark_undo_service) {}
+    : bookmark_undo_service_(bookmark_undo_service),
+      max_bookmarks_till_sync_enabled_(kDefaultMaxBookmarksTillSyncEnabled) {}
 
 BookmarkModelTypeProcessor::~BookmarkModelTypeProcessor() {
   if (bookmark_model_ && bookmark_model_observer_) {
diff --git a/components/sync_bookmarks/bookmark_model_type_processor.h b/components/sync_bookmarks/bookmark_model_type_processor.h
index c73b913..b3d1e90 100644
--- a/components/sync_bookmarks/bookmark_model_type_processor.h
+++ b/components/sync_bookmarks/bookmark_model_type_processor.h
@@ -104,8 +104,6 @@
   base::WeakPtr<syncer::ModelTypeControllerDelegate> GetWeakPtr();
 
  private:
-  static constexpr size_t kDefaultMaxBookmarksTillSyncEnabled = 100000;
-
   SEQUENCE_CHECKER(sequence_checker_);
 
   // If preconditions are met, inform sync that we are ready to connect.
@@ -200,7 +198,7 @@
   std::unique_ptr<BookmarkModelObserverImpl> bookmark_model_observer_;
 
   // This member variable exists only to allow tests to override the limit.
-  size_t max_bookmarks_till_sync_enabled_ = kDefaultMaxBookmarksTillSyncEnabled;
+  size_t max_bookmarks_till_sync_enabled_;
 
   // WeakPtrFactory for this processor for ModelTypeController.
   base::WeakPtrFactory<BookmarkModelTypeProcessor>
diff --git a/components/user_education/common/tutorial.cc b/components/user_education/common/tutorial.cc
index f4f9651..ffcc8ad 100644
--- a/components/user_education/common/tutorial.cc
+++ b/components/user_education/common/tutorial.cc
@@ -132,8 +132,7 @@
       interaction_sequence_step_builder =
           std::make_unique<ui::InteractionSequence::StepBuilder>();
 
-  interaction_sequence_step_builder->SetFindElementInAnyContext(
-      step_.in_any_context);
+  interaction_sequence_step_builder->SetContext(step_.context_mode);
 
   if (step_.element_id)
     interaction_sequence_step_builder->SetElementID(step_.element_id);
diff --git a/components/user_education/common/tutorial_description.cc b/components/user_education/common/tutorial_description.cc
index 409a5f2..efb1d05ef 100644
--- a/components/user_education/common/tutorial_description.cc
+++ b/components/user_education/common/tutorial_description.cc
@@ -32,7 +32,7 @@
     absl::optional<bool> must_remain_visible_,
     bool transition_only_on_event_,
     TutorialDescription::NameElementsCallback name_elements_callback_,
-    bool in_any_context_)
+    ContextMode context_mode_)
     : title_text_id(title_text_id_),
       body_text_id(body_text_id_),
       step_type(step_type_),
@@ -43,7 +43,7 @@
       must_remain_visible(must_remain_visible_),
       transition_only_on_event(transition_only_on_event_),
       name_elements_callback(name_elements_callback_),
-      in_any_context(in_any_context_) {
+      context_mode(context_mode_) {
   DCHECK(!title_text_id || body_text_id)
       << "Tutorial bubble should not have a title without body text.";
 }
diff --git a/components/user_education/common/tutorial_description.h b/components/user_education/common/tutorial_description.h
index bd88bf6f..f48ae2f 100644
--- a/components/user_education/common/tutorial_description.h
+++ b/components/user_education/common/tutorial_description.h
@@ -131,6 +131,8 @@
   TutorialDescription(TutorialDescription&& other);
   TutorialDescription& operator=(TutorialDescription&& other);
 
+  using ContextMode = ui::InteractionSequence::ContextMode;
+
   struct Step {
     Step();
     Step(int title_text_id_,
@@ -143,7 +145,7 @@
          absl::optional<bool> must_remain_visible_ = absl::nullopt,
          bool transition_only_on_event_ = false,
          NameElementsCallback name_elements_callback_ = NameElementsCallback(),
-         bool in_any_context = false);
+         ContextMode step_context = ContextMode::kInitial);
     Step(const Step& other);
     Step& operator=(const Step& other);
     ~Step();
@@ -192,8 +194,9 @@
     // the tutorial will abort
     NameElementsCallback name_elements_callback;
 
-    // Search for element in any context
-    bool in_any_context = false;
+    // Where to search for the step's target element. Default is the context the
+    // tutorial started in.
+    ContextMode context_mode = ContextMode::kInitial;
 
     // returns true iff all of the required parameters exist to display a
     // bubble.
diff --git a/components/viz/test/test_image_factory.cc b/components/viz/test/test_image_factory.cc
index e43b5fc..1743cec 100644
--- a/components/viz/test/test_image_factory.cc
+++ b/components/viz/test/test_image_factory.cc
@@ -18,10 +18,10 @@
 
 namespace {
 
-class GLImageSharedMemory : public gl::GLImageMemory {
+class GLImageSharedMemory : public gl::GLImageMemoryForTesting {
  public:
   explicit GLImageSharedMemory(const gfx::Size& size)
-      : gl::GLImageMemory(size) {}
+      : gl::GLImageMemoryForTesting(size) {}
 
   GLImageSharedMemory(const GLImageSharedMemory&) = delete;
   GLImageSharedMemory& operator=(const GLImageSharedMemory&) = delete;
diff --git a/components/web_package/BUILD.gn b/components/web_package/BUILD.gn
index 0883dcfc..41324b8 100644
--- a/components/web_package/BUILD.gn
+++ b/components/web_package/BUILD.gn
@@ -10,8 +10,6 @@
     "input_reader.h",
     "shared_file.cc",
     "shared_file.h",
-    "signed_web_bundles/ed25519_public_key.cc",
-    "signed_web_bundles/ed25519_public_key.h",
     "signed_web_bundles/ed25519_signature.cc",
     "signed_web_bundles/ed25519_signature.h",
     "signed_web_bundles/integrity_block_parser.cc",
@@ -45,12 +43,27 @@
     "//services/network/public/mojom",
   ]
 
-  public_deps = [ "//components/web_package/mojom" ]
+  public_deps = [
+    "//components/web_package:mojom_mapped_types",
+    "//components/web_package/mojom",
+  ]
+}
+
+source_set("mojom_mapped_types") {
+  visibility = [ "./*" ]
+
+  sources = [
+    "signed_web_bundles/ed25519_public_key.cc",
+    "signed_web_bundles/ed25519_public_key.h",
+  ]
+
+  deps = [ "//base" ]
 }
 
 source_set("unit_tests") {
   testonly = true
   sources = [
+    "mojom/web_bundle_parser_mojom_traits_unittest.cc",
     "signed_web_bundles/ed25519_public_key_unittest.cc",
     "signed_web_bundles/ed25519_signature_unittest.cc",
     "signed_web_bundles/signed_web_bundle_id_unittest.cc",
@@ -68,6 +81,8 @@
     "//base/test:test_support",
     "//components/cbor",
     "//components/web_package/test_support",
+    "//mojo/public/cpp/bindings",
+    "//mojo/public/cpp/test_support:test_utils",
     "//testing/gtest",
   ]
 }
diff --git a/components/web_package/mojom/BUILD.gn b/components/web_package/mojom/BUILD.gn
index bc494e02..2f291e4 100644
--- a/components/web_package/mojom/BUILD.gn
+++ b/components/web_package/mojom/BUILD.gn
@@ -12,6 +12,26 @@
     "//url/mojom:url_mojom_gurl",
   ]
 
+  cpp_typemaps = [
+    {
+      types = [
+        {
+          mojom = "web_package.mojom.Ed25519PublicKey"
+          cpp = "::web_package::Ed25519PublicKey"
+        },
+      ]
+      traits_headers =
+          [ "//components/web_package/mojom/web_bundle_parser_mojom_traits.h" ]
+      traits_sources =
+          [ "//components/web_package/mojom/web_bundle_parser_mojom_traits.cc" ]
+      traits_deps = [
+        "//base",
+        "//components/web_package:mojom_mapped_types",
+        "//mojo/public/mojom/base",
+      ]
+    },
+  ]
+
   if (!is_ios) {
     export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
     export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
diff --git a/components/web_package/mojom/OWNERS b/components/web_package/mojom/OWNERS
index 08850f4..f486cf5 100644
--- a/components/web_package/mojom/OWNERS
+++ b/components/web_package/mojom/OWNERS
@@ -1,2 +1,5 @@
 per-file *.mojom=set noparent
 per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+per-file *_mojom_traits*.*=set noparent
+per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/components/web_package/mojom/web_bundle_parser.mojom b/components/web_package/mojom/web_bundle_parser.mojom
index 00cdf4a..82463c3 100644
--- a/components/web_package/mojom/web_bundle_parser.mojom
+++ b/components/web_package/mojom/web_bundle_parser.mojom
@@ -81,6 +81,11 @@
   array<BundleIntegrityBlockSignatureStackEntry> signature_stack;
 };
 
+// Mapped to `web_package::Ed25519PublicKey`
+struct Ed25519PublicKey {
+  array<uint8, 32> bytes;
+};
+
 struct BundleIntegrityBlockSignatureStackEntry {
   // The CBOR of this signature stack entry.
   // This is needed for verification of more than one signature later, because
@@ -90,7 +95,7 @@
   // The CBOR of the attributes of this signature stack entry.
   array<uint8> attributes_cbor;
   // The public key of this signature stack entry.
-  array<uint8> public_key;
+  Ed25519PublicKey public_key;
   // The signature of this signature stack entry.
   array<uint8> signature;
 };
diff --git a/components/web_package/mojom/web_bundle_parser_mojom_traits.cc b/components/web_package/mojom/web_bundle_parser_mojom_traits.cc
new file mode 100644
index 0000000..3ebeace
--- /dev/null
+++ b/components/web_package/mojom/web_bundle_parser_mojom_traits.cc
@@ -0,0 +1,28 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/web_package/mojom/web_bundle_parser_mojom_traits.h"
+
+#include "base/containers/span.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
+
+namespace mojo {
+
+// static
+bool StructTraits<web_package::mojom::Ed25519PublicKeyDataView,
+                  web_package::Ed25519PublicKey>::
+    Read(web_package::mojom::Ed25519PublicKeyDataView data,
+         web_package::Ed25519PublicKey* public_key) {
+  std::array<uint8_t, web_package::Ed25519PublicKey::kLength> bytes;
+  if (!data.ReadBytes(&bytes)) {
+    return false;
+  }
+
+  *public_key = web_package::Ed25519PublicKey::Create(
+      base::as_bytes(base::make_span(bytes)));
+
+  return true;
+}
+
+}  // namespace mojo
diff --git a/components/web_package/mojom/web_bundle_parser_mojom_traits.h b/components/web_package/mojom/web_bundle_parser_mojom_traits.h
new file mode 100644
index 0000000..9c4d83c
--- /dev/null
+++ b/components/web_package/mojom/web_bundle_parser_mojom_traits.h
@@ -0,0 +1,29 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_WEB_PACKAGE_MOJOM_WEB_BUNDLE_PARSER_MOJOM_TRAITS_H_
+#define COMPONENTS_WEB_PACKAGE_MOJOM_WEB_BUNDLE_PARSER_MOJOM_TRAITS_H_
+
+#include "base/containers/span.h"
+#include "components/web_package/mojom/web_bundle_parser.mojom-shared.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
+
+namespace mojo {
+
+template <>
+class StructTraits<web_package::mojom::Ed25519PublicKeyDataView,
+                   web_package::Ed25519PublicKey> {
+ public:
+  static base::span<const uint8_t, web_package::Ed25519PublicKey::kLength>
+  bytes(const web_package::Ed25519PublicKey& public_key) {
+    return public_key.bytes();
+  }
+
+  static bool Read(web_package::mojom::Ed25519PublicKeyDataView data,
+                   web_package::Ed25519PublicKey* public_key);
+};
+
+}  // namespace mojo
+
+#endif  // COMPONENTS_WEB_PACKAGE_MOJOM_WEB_BUNDLE_PARSER_MOJOM_TRAITS_H_
diff --git a/components/web_package/mojom/web_bundle_parser_mojom_traits_unittest.cc b/components/web_package/mojom/web_bundle_parser_mojom_traits_unittest.cc
new file mode 100644
index 0000000..f5c272e
--- /dev/null
+++ b/components/web_package/mojom/web_bundle_parser_mojom_traits_unittest.cc
@@ -0,0 +1,42 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <utility>
+
+#include "base/containers/span.h"
+#include "components/web_package/mojom/web_bundle_parser.mojom.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
+#include "mojo/public/cpp/test_support/test_utils.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace web_package {
+
+namespace {
+
+using ::testing::ElementsAreArray;
+using ::testing::Eq;
+using ::testing::IsTrue;
+
+constexpr uint8_t kTestPublicKey[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
+                                      2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2,
+                                      3, 4, 5, 6, 7, 8, 9, 0, 1, 2};
+
+}  // namespace
+
+TEST(StructTraitsTest, Ed25519PublicKey) {
+  auto input = Ed25519PublicKey::Create(base::make_span(kTestPublicKey));
+  EXPECT_THAT(input.bytes(), ElementsAreArray(kTestPublicKey));
+
+  Ed25519PublicKey output;
+  ASSERT_THAT(
+      mojo::test::SerializeAndDeserialize<web_package::mojom::Ed25519PublicKey>(
+          input, output),
+      IsTrue());
+
+  ASSERT_THAT(output.bytes_.has_value(), IsTrue());
+  EXPECT_THAT(input, Eq(output));
+}
+
+}  // namespace web_package
diff --git a/components/web_package/signed_web_bundles/ed25519_public_key.cc b/components/web_package/signed_web_bundles/ed25519_public_key.cc
index 53134dcc..c2537ea 100644
--- a/components/web_package/signed_web_bundles/ed25519_public_key.cc
+++ b/components/web_package/signed_web_bundles/ed25519_public_key.cc
@@ -24,7 +24,7 @@
 Ed25519PublicKey::~Ed25519PublicKey() = default;
 
 bool Ed25519PublicKey::operator==(const Ed25519PublicKey& other) const {
-  return bytes_ == other.bytes_;
+  return *bytes_ == *other.bytes_;
 }
 
 bool Ed25519PublicKey::operator!=(const Ed25519PublicKey& other) const {
diff --git a/components/web_package/signed_web_bundles/ed25519_public_key.h b/components/web_package/signed_web_bundles/ed25519_public_key.h
index 5229b1f..f265f33 100644
--- a/components/web_package/signed_web_bundles/ed25519_public_key.h
+++ b/components/web_package/signed_web_bundles/ed25519_public_key.h
@@ -11,7 +11,13 @@
 #include <vector>
 
 #include "base/containers/span.h"
+#include "base/gtest_prod_util.h"
 #include "base/types/expected.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace mojo {
+struct DefaultConstructTraits;
+}  // namespace mojo
 
 namespace web_package {
 
@@ -45,12 +51,25 @@
   bool operator==(const Ed25519PublicKey&) const;
   bool operator!=(const Ed25519PublicKey&) const;
 
-  const std::array<uint8_t, kLength>& bytes() const { return bytes_; }
+  const std::array<uint8_t, kLength>& bytes() const { return *bytes_; }
 
  private:
+  friend mojo::DefaultConstructTraits;
+  FRIEND_TEST_ALL_PREFIXES(StructTraitsTest, Ed25519PublicKey);
+
   explicit Ed25519PublicKey(std::array<uint8_t, kLength> bytes);
 
-  std::array<uint8_t, kLength> bytes_;
+  // The default constructor is only present so that this class can be used as
+  // part of mojom `StructTraits`, which require a class to be
+  // default-constructible. `mojo::DefaultConstructTraits` allows us to at least
+  // make the default constructor private.
+  Ed25519PublicKey() = default;
+
+  // This field is `absl::nullopt` only when the default constructor is used,
+  // which only happens as part of mojom `StructTraits`. All methods of this
+  // class can safely assume that this field is never `absl::nullopt` and should
+  // `CHECK` if it is.
+  absl::optional<std::array<uint8_t, kLength>> bytes_;
 };
 
 }  // namespace web_package
diff --git a/components/web_package/signed_web_bundles/integrity_block_parser.cc b/components/web_package/signed_web_bundles/integrity_block_parser.cc
index 322783a2..5c301a6 100644
--- a/components/web_package/signed_web_bundles/integrity_block_parser.cc
+++ b/components/web_package/signed_web_bundles/integrity_block_parser.cc
@@ -6,6 +6,7 @@
 
 #include "base/ranges/algorithm.h"
 #include "base/strings/stringprintf.h"
+#include "base/types/expected.h"
 #include "components/web_package/input_reader.h"
 #include "components/web_package/mojom/web_bundle_parser.mojom-forward.h"
 #include "components/web_package/signed_web_bundles/ed25519_public_key.h"
@@ -275,32 +276,31 @@
     uint64_t offset_in_stream,
     const uint64_t signature_stack_entries_left,
     mojom::BundleIntegrityBlockSignatureStackEntryPtr signature_stack_entry,
-    const absl::optional<std::vector<uint8_t>>& public_key) {
-  if (!public_key) {
+    const absl::optional<std::vector<uint8_t>>& public_key_bytes) {
+  if (!public_key_bytes) {
     RunErrorCallbackAndDestroy(
         "Error reading signature stack entry's public key.");
     return;
   }
-  if (public_key->size() != Ed25519PublicKey::kLength) {
-    RunErrorCallbackAndDestroy(
-        base::StringPrintf("The public key does not have the correct length, "
-                           "expected %zu bytes.",
-                           Ed25519PublicKey::kLength));
+  base::expected<Ed25519PublicKey, std::string> public_key =
+      Ed25519PublicKey::Create(*public_key_bytes);
+  if (!public_key.has_value()) {
+    RunErrorCallbackAndDestroy(public_key.error());
     return;
   }
 
   // Keep track of the raw CBOR bytes of both the complete signature stack entry
   // and its attributes.
   signature_stack_entry->complete_entry_cbor.insert(
-      signature_stack_entry->complete_entry_cbor.end(), public_key->begin(),
-      public_key->end());
+      signature_stack_entry->complete_entry_cbor.end(),
+      public_key_bytes->begin(), public_key_bytes->end());
   signature_stack_entry->attributes_cbor.insert(
-      signature_stack_entry->attributes_cbor.end(), public_key->begin(),
-      public_key->end());
+      signature_stack_entry->attributes_cbor.end(), public_key_bytes->begin(),
+      public_key_bytes->end());
 
   signature_stack_entry->public_key = *public_key;
 
-  offset_in_stream += public_key->size();
+  offset_in_stream += public_key_bytes->size();
   data_source_->Read(
       offset_in_stream, kMaxCBORItemHeaderSize,
       base::BindOnce(
diff --git a/components/web_package/signed_web_bundles/signed_web_bundle_integrity_block_unittest.cc b/components/web_package/signed_web_bundles/signed_web_bundle_integrity_block_unittest.cc
index 6ca85f9..0c4619ce 100644
--- a/components/web_package/signed_web_bundles/signed_web_bundle_integrity_block_unittest.cc
+++ b/components/web_package/signed_web_bundles/signed_web_bundle_integrity_block_unittest.cc
@@ -9,6 +9,7 @@
 #include "base/containers/span.h"
 #include "base/ranges/algorithm.h"
 #include "components/web_package/mojom/web_bundle_parser.mojom.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace web_package {
@@ -40,14 +41,13 @@
 constexpr uint8_t kAttributesCbor2[] = {'a', 2, 2, 2};
 
 mojom::BundleIntegrityBlockSignatureStackEntryPtr MakeSignatureStackEntry(
-    base::span<const uint8_t> public_key,
+    base::span<const uint8_t, 32> public_key,
     base::span<const uint8_t> signature,
     base::span<const uint8_t> complete_entry_cbor,
     base::span<const uint8_t> attributes_cbor) {
   auto raw_signature_stack_entry =
       mojom::BundleIntegrityBlockSignatureStackEntry::New();
-  raw_signature_stack_entry->public_key =
-      std::vector(std::begin(public_key), std::end(public_key));
+  raw_signature_stack_entry->public_key = Ed25519PublicKey::Create(public_key);
   raw_signature_stack_entry->signature =
       std::vector(std::begin(signature), std::end(signature));
   raw_signature_stack_entry->complete_entry_cbor = std::vector(
@@ -80,25 +80,6 @@
             "Cannot create an integrity block without any signatures.");
 }
 
-TEST(SignedWebBundleIntegrityBlockTest, SignatureStackEntryInvalidPublicKey) {
-  std::vector<mojom::BundleIntegrityBlockSignatureStackEntryPtr>
-      raw_signature_stack;
-  raw_signature_stack.push_back(MakeSignatureStackEntry(
-      {}, kEd25519Signature1, kCompleteEntryCbor1, kAttributesCbor1));
-
-  auto raw_integrity_block = mojom::BundleIntegrityBlock::New();
-  raw_integrity_block->size = 42;
-  raw_integrity_block->signature_stack = std::move(raw_signature_stack);
-
-  auto integrity_block =
-      SignedWebBundleIntegrityBlock::Create(std::move(raw_integrity_block));
-  ASSERT_FALSE(integrity_block.has_value());
-  EXPECT_EQ(integrity_block.error(),
-            "Error while parsing signature stack entry: Invalid public key: "
-            "The Ed25519 public key does not have the correct length. Expected "
-            "32 bytes, but received 0 bytes.");
-}
-
 TEST(SignedWebBundleIntegrityBlockTest, SignatureStackEntryInvalidSignature) {
   std::vector<mojom::BundleIntegrityBlockSignatureStackEntryPtr>
       raw_signature_stack;
diff --git a/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry.cc b/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry.cc
index 6d5cb1a6..33071a8 100644
--- a/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry.cc
+++ b/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry.cc
@@ -13,11 +13,6 @@
 base::expected<SignedWebBundleSignatureStackEntry, std::string>
 SignedWebBundleSignatureStackEntry::Create(
     const mojom::BundleIntegrityBlockSignatureStackEntryPtr entry) {
-  auto public_key = Ed25519PublicKey::Create(entry->public_key);
-  if (!public_key.has_value()) {
-    return base::unexpected(base::StringPrintf("Invalid public key: %s",
-                                               public_key.error().c_str()));
-  }
   auto signature = Ed25519Signature::Create(entry->signature);
   if (!signature.has_value()) {
     return base::unexpected(
@@ -25,8 +20,8 @@
   }
 
   return SignedWebBundleSignatureStackEntry(entry->complete_entry_cbor,
-                                            entry->attributes_cbor, *public_key,
-                                            *signature);
+                                            entry->attributes_cbor,
+                                            entry->public_key, *signature);
 }
 
 SignedWebBundleSignatureStackEntry::SignedWebBundleSignatureStackEntry(
diff --git a/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry_unittest.cc b/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry_unittest.cc
index 2a20bbc..6d0bca2 100644
--- a/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry_unittest.cc
+++ b/components/web_package/signed_web_bundles/signed_web_bundle_signature_stack_entry_unittest.cc
@@ -6,7 +6,9 @@
 
 #include <utility>
 
+#include "base/containers/span.h"
 #include "components/web_package/mojom/web_bundle_parser.mojom.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace web_package {
@@ -23,12 +25,11 @@
     0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
 mojom::BundleIntegrityBlockSignatureStackEntryPtr MakeSignatureStackEntry(
-    base::span<const uint8_t> public_key,
+    base::span<const uint8_t, 32> public_key,
     base::span<const uint8_t> signature) {
   auto raw_signature_stack_entry =
       mojom::BundleIntegrityBlockSignatureStackEntry::New();
-  raw_signature_stack_entry->public_key =
-      std::vector(std::begin(public_key), std::end(public_key));
+  raw_signature_stack_entry->public_key = Ed25519PublicKey::Create(public_key);
   raw_signature_stack_entry->signature =
       std::vector(std::begin(signature), std::end(signature));
   return raw_signature_stack_entry;
@@ -48,16 +49,6 @@
                                   kEd25519Signature));
 }
 
-TEST(SignedWebBundleSignatureStackEntryTest, TestInvalidPublicKey) {
-  auto signature_stack_entry = SignedWebBundleSignatureStackEntry::Create(
-      MakeSignatureStackEntry({}, kEd25519Signature));
-
-  ASSERT_FALSE(signature_stack_entry.has_value());
-  EXPECT_EQ(signature_stack_entry.error(),
-            "Invalid public key: The Ed25519 public key does not have the "
-            "correct length. Expected 32 bytes, but received 0 bytes.");
-}
-
 TEST(SignedWebBundleSignatureStackEntryTest, TestInvalidSignature) {
   auto signature_stack_entry = SignedWebBundleSignatureStackEntry::Create(
       MakeSignatureStackEntry(kEd25519PublicKey, {}));
diff --git a/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier_unittest.cc b/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier_unittest.cc
index 5722b16..e8e7304 100644
--- a/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier_unittest.cc
+++ b/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier_unittest.cc
@@ -23,6 +23,7 @@
 #include "components/cbor/values.h"
 #include "components/web_package/mojom/web_bundle_parser.mojom.h"
 #include "components/web_package/shared_file.h"
+#include "components/web_package/signed_web_bundles/ed25519_public_key.h"
 #include "components/web_package/signed_web_bundles/signed_web_bundle_integrity_block.h"
 #include "components/web_package/test_support/signed_web_bundles/web_bundle_signer.h"
 #include "components/web_package/web_bundle_builder.h"
@@ -94,7 +95,7 @@
   auto raw_signature_stack_entry =
       mojom::BundleIntegrityBlockSignatureStackEntry::New();
   raw_signature_stack_entry->public_key =
-      std::vector(std::begin(public_key), std::end(public_key));
+      *web_package::Ed25519PublicKey::Create(public_key);
   raw_signature_stack_entry->signature =
       std::vector(std::begin(signature), std::end(signature));
   raw_signature_stack_entry->complete_entry_cbor = std::vector(
diff --git a/components/web_package/web_bundle_builder.cc b/components/web_package/web_bundle_builder.cc
index a49884b..686f0300 100644
--- a/components/web_package/web_bundle_builder.cc
+++ b/components/web_package/web_bundle_builder.cc
@@ -58,6 +58,12 @@
   return cbor::Value(url);
 }
 
+void WebBundleBuilder::AddExchange(const GURL& url,
+                                   const Headers& response_headers,
+                                   base::StringPiece payload) {
+  AddExchange(url.spec(), response_headers, payload);
+}
+
 void WebBundleBuilder::AddExchange(base::StringPiece url,
                                    const Headers& response_headers,
                                    base::StringPiece payload) {
@@ -79,6 +85,12 @@
 }
 
 void WebBundleBuilder::AddIndexEntry(
+    const GURL& url,
+    const ResponseLocation& response_location) {
+  AddIndexEntry(url.spec(), response_location);
+}
+
+void WebBundleBuilder::AddIndexEntry(
     base::StringPiece url,
     const ResponseLocation& response_location) {
   delayed_index_.insert({std::string{url}, response_location});
@@ -98,6 +110,10 @@
   vouched_subsets_.emplace_back(std::move(vouched_subset));
 }
 
+void WebBundleBuilder::AddPrimaryURL(const GURL& url) {
+  AddPrimaryURL(url.spec());
+}
+
 void WebBundleBuilder::AddPrimaryURL(base::StringPiece url) {
   AddSection("primary", GetCborValueOfURL(url));
 }
diff --git a/components/web_package/web_bundle_builder.h b/components/web_package/web_bundle_builder.h
index a3d6cd9..709ae0a 100644
--- a/components/web_package/web_bundle_builder.h
+++ b/components/web_package/web_bundle_builder.h
@@ -12,6 +12,7 @@
 
 #include "base/strings/string_piece.h"
 #include "components/cbor/writer.h"
+#include "url/gurl.h"
 
 namespace web_package {
 
@@ -35,6 +36,13 @@
 
   ~WebBundleBuilder();
 
+  // Add an exchange to the Web Bundle for a given `GURL`.
+  void AddExchange(const GURL& url,
+                   const Headers& response_headers,
+                   base::StringPiece payload);
+  // Add an exchange to the Web Bundle for a given `url` represented as a
+  // string. In contrast to providing the URL as `GURL`, this allows adding
+  // relative URLs to the Web Bundle.
   void AddExchange(base::StringPiece url,
                    const Headers& response_headers,
                    base::StringPiece payload);
@@ -42,11 +50,25 @@
   ResponseLocation AddResponse(const Headers& headers,
                                base::StringPiece payload);
 
+  // Adds an entry to the "index" section of the Web Bundle for the given
+  // `GURL`.
+  void AddIndexEntry(const GURL& url,
+                     const ResponseLocation& response_location);
+  // Adds an entry to the "index" section of the Web Bundle  for the given `url`
+  // represented as a string. In contrast to providing the URL as `GURL`, this
+  // allows adding relative URLs to the Web Bundle.
   void AddIndexEntry(base::StringPiece url,
                      const ResponseLocation& response_location);
+
   void AddSection(base::StringPiece name, cbor::Value section);
   void AddAuthority(cbor::Value::MapValue authority);
   void AddVouchedSubset(cbor::Value::MapValue vouched_subset);
+
+  // Adds a "primary" section to the Web Bundle containing a given `GURL`.
+  void AddPrimaryURL(const GURL& url);
+  // Adds a "primary" section to the Web Bundle for a given `url` represented as
+  // a string. In contrast to providing the URL as `GURL`, this allows setting
+  // relative URLs as the primary URL of a Web Bundle.
   void AddPrimaryURL(base::StringPiece url);
 
   std::vector<uint8_t> CreateBundle();
diff --git a/components/web_package/web_bundle_parser_unittest.cc b/components/web_package/web_bundle_parser_unittest.cc
index ee94bf8..3d4f7ebe 100644
--- a/components/web_package/web_bundle_parser_unittest.cc
+++ b/components/web_package/web_bundle_parser_unittest.cc
@@ -18,7 +18,6 @@
 #include "components/web_package/test_support/signed_web_bundles/web_bundle_signer.h"
 #include "components/web_package/web_bundle_builder.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
-#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -26,8 +25,6 @@
 
 namespace {
 
-using testing::ElementsAreArray;
-
 constexpr char kPrimaryUrl[] = "https://test.example.com/";
 constexpr char kValidityUrl[] =
     "https://test.example.org/resource.validity.msg";
@@ -225,7 +222,7 @@
 void CheckIfSignatureStackEntryIsValid(
     mojom::BundleIntegrityBlockSignatureStackEntryPtr& entry,
     const Ed25519PublicKey& public_key) {
-  EXPECT_THAT(entry->public_key, ElementsAreArray(public_key.bytes()));
+  EXPECT_EQ(entry->public_key, public_key);
 
   EXPECT_EQ(entry->signature.size(), 64ul);
   // The signature should also be present at the very end of
@@ -1105,8 +1102,8 @@
   ASSERT_TRUE(error);
   EXPECT_EQ(error->type, mojom::BundleParseErrorType::kFormatError);
   EXPECT_EQ(error->message,
-            "The public key does not have the correct length, expected 32 "
-            "bytes.");
+            "The Ed25519 public key does not have the correct length. Expected "
+            "32 bytes, but received 33 bytes.");
 }
 
 TEST_F(WebBundleParserTest, DisconnectWhileParsingMetadata) {
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 45dda189..ba70044 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -220,7 +220,6 @@
     "//services/video_capture:lib",
     "//services/video_capture/public/cpp",
     "//services/video_capture/public/mojom:constants",
-    "//services/video_capture/public/uma",
     "//services/viz/privileged/mojom",
     "//services/viz/public/cpp/gpu",
     "//services/viz/public/mojom",
diff --git a/content/browser/cross_origin_opener_policy_browsertest.cc b/content/browser/cross_origin_opener_policy_browsertest.cc
index 0e5d79f..609c512 100644
--- a/content/browser/cross_origin_opener_policy_browsertest.cc
+++ b/content/browser/cross_origin_opener_policy_browsertest.cc
@@ -3518,8 +3518,14 @@
 }
 
 // This test is a reproducer for https://crbug.com/1305394.
+// This test is flaky on Mac: https://crbug.com/1319301
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_CrossOriginIframeCoopBypass DISABLED_CrossOriginIframeCoopBypass
+#else
+#define MAYBE_CrossOriginIframeCoopBypass CrossOriginIframeCoopBypass
+#endif
 IN_PROC_BROWSER_TEST_P(CrossOriginOpenerPolicyBrowserTest,
-                       CrossOriginIframeCoopBypass) {
+                       MAYBE_CrossOriginIframeCoopBypass) {
   // This test requires that a cross-origin iframe be placed in its own
   // process. It is irrelevant without strict site isolation.
   if (!SiteIsolationPolicy::UseDedicatedProcessesForAllSites())
@@ -3549,19 +3555,15 @@
   EXPECT_EQ(initial_main_si, popup_si);
   RenderProcessHost* process_A = initial_main_si->GetProcess();
 
-  // The popup then navigates the opener to a COOP page. This should trigger a
-  // BrowsingInstance swap. The main frame gets a new unrelated SiteInstance,
-  // and clears the opener.
-  RenderFrameDeletedObserver swapped_out_main_rfh(initial_main_rfh);
+  // The popup then navigates the opener to a COOP page.
   EXPECT_TRUE(ExecJs(popup_rfh, JsReplace("opener.location = $1", coop_page)));
   EXPECT_TRUE(WaitForLoadStop(web_contents()));
 
+  // This should trigger a BrowsingInstance swap. The main frame gets a new
+  // unrelated BrowsingInstance, and clears the opener.
   // Note: We need to wait for the `blink::WebView` deletion to be propagated in
-  // the renderer for window.opener to be cleared. This should be done once the
-  // main RenderFrameHost gets deleted.
-  swapped_out_main_rfh.WaitUntilDeleted();
-  EXPECT_EQ(true, EvalJs(popup_rfh, "opener == null"));
-
+  // the renderer for window.opener to be cleared. To avoid flakes, we check the
+  // opener at the end of this test.
   RenderFrameHostImpl* main_rfh = current_frame_host();
   SiteInstanceImpl* main_si = main_rfh->GetSiteInstance();
   RenderProcessHost* process_B = main_si->GetProcess();
@@ -3613,7 +3615,9 @@
                     ->GetAllProxyHostsForTesting()
                     .size());
 
-  // The opener should not be reachable from the popup iframe.
+  // The opener should not be reachable either from the popup main frame nor the
+  // popup iframe.
+  EXPECT_EQ(true, EvalJs(popup_rfh, "opener == null"));
   EXPECT_EQ(true, EvalJs(iframe_rfh, "parent.opener == null"));
 }
 
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index c08dd18..3238c15 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -72,7 +72,6 @@
 #include "media/capture/video/fake_video_capture_device_factory.h"
 #include "media/capture/video/video_capture_system_impl.h"
 #include "media/mojo/mojom/display_media_information.mojom.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/mediastream/media_devices.h"
 #include "third_party/blink/public/common/mediastream/media_stream_request.h"
@@ -1218,8 +1217,6 @@
               std::move(device_task_runner),
               base::BindRepeating(&SendVideoCaptureLogMessage)));
     } else {
-      video_capture::uma::LogVideoCaptureServiceEvent(
-          video_capture::uma::BROWSER_USING_LEGACY_CAPTURE);
       video_capture_provider = InProcessVideoCaptureProvider::CreateInstance(
           std::make_unique<media::VideoCaptureSystemImpl>(
               media::CreateVideoCaptureDeviceFactory(
diff --git a/content/browser/renderer_host/media/service_video_capture_provider.cc b/content/browser/renderer_host/media/service_video_capture_provider.cc
index 317bc6ad..8ca9af09 100644
--- a/content/browser/renderer_host/media/service_video_capture_provider.cc
+++ b/content/browser/renderer_host/media/service_video_capture_provider.cc
@@ -24,7 +24,6 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
 #include "services/video_capture/public/mojom/video_capture_service.mojom.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "content/public/browser/chromeos/delegate_to_browser_gpu_service_accelerator_factory.h"
@@ -185,8 +184,6 @@
         TRACE_DISABLED_BY_DEFAULT("video_and_image_capture"),
         "Video capture service has shut down. Retrying GetDeviceInfos.",
         TRACE_EVENT_SCOPE_PROCESS);
-    video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-        video_capture::uma::PROVIDER_SERVICE_STOPPED_ISSUING_RETRY);
     GetDeviceInfosAsyncForRetry(std::move(stashed_result_callback_for_retry_),
                                 stashed_retry_count_ + 1);
   }
@@ -214,18 +211,6 @@
     return base::WrapRefCounted(weak_service_connection_.get());
   }
 
-  video_capture::uma::LogVideoCaptureServiceEvent(
-      video_capture::uma::BROWSER_CONNECTING_TO_SERVICE);
-  if (time_of_last_uninitialize_ != base::TimeTicks()) {
-    if (launcher_has_connected_to_source_provider_) {
-      video_capture::uma::LogDurationUntilReconnectAfterCapture(
-          base::TimeTicks::Now() - time_of_last_uninitialize_);
-    } else {
-      video_capture::uma::LogDurationUntilReconnectAfterEnumerationOnly(
-          base::TimeTicks::Now() - time_of_last_uninitialize_);
-    }
-  }
-
   launcher_has_connected_to_source_provider_ = false;
   time_of_last_connect_ = base::TimeTicks::Now();
 
@@ -296,22 +281,8 @@
           features::kRetryGetVideoCaptureDeviceInfos) &&
       base::StartsWith(model, "MacBook",
                        base::CompareCase::INSENSITIVE_ASCII)) {
-    if (retry_count > 0) {
-      video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-          infos.empty()
-              ? video_capture::uma::
-                    PROVIDER_RECEIVED_ZERO_INFOS_FROM_RETRY_GIVING_UP
-              : video_capture::uma::PROVIDER_RECEIVED_NONZERO_INFOS_FROM_RETRY);
-    }
-    if (infos.empty() && stashed_result_callback_for_retry_) {
-      video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-          video_capture::uma::
-              PROVIDER_NOT_ATTEMPTING_RETRY_BECAUSE_ALREADY_PENDING);
-    }
     if (infos.empty() && retry_count < kMaxRetriesForGetDeviceInfos &&
         !stashed_result_callback_for_retry_) {
-      video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-          video_capture::uma::PROVIDER_RECEIVED_ZERO_INFOS_STOPPING_SERVICE);
       TRACE_EVENT_INSTANT0(TRACE_DISABLED_BY_DEFAULT("video_and_image_capture"),
                            "Waiting for video capture service to shut down.",
                            TRACE_EVENT_SCOPE_PROCESS);
@@ -333,19 +304,6 @@
     GetDeviceInfosCallback result_callback,
     int retry_count) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-#if BUILDFLAG(IS_MAC)
-  std::string model = base::mac::GetModelIdentifier();
-  if (base::FeatureList::IsEnabled(
-          features::kRetryGetVideoCaptureDeviceInfos) &&
-      base::StartsWith(model, "MacBook",
-                       base::CompareCase::INSENSITIVE_ASCII)) {
-    video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-        retry_count == 0 ? video_capture::uma::
-                               SERVICE_DROPPED_DEVICE_INFOS_REQUEST_ON_FIRST_TRY
-                         : video_capture::uma::
-                               SERVICE_DROPPED_DEVICE_INFOS_REQUEST_ON_RETRY);
-  }
-#endif
   std::move(result_callback)
       .Run(media::mojom::DeviceEnumerationResult::kErrorCaptureServiceCrash,
            std::vector<media::VideoCaptureDeviceInfo>());
@@ -364,34 +322,7 @@
 void ServiceVideoCaptureProvider::OnServiceConnectionClosed(
     ReasonForDisconnect reason) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  base::TimeDelta duration_since_last_connect(base::TimeTicks::Now() -
-                                              time_of_last_connect_);
-  switch (reason) {
-    case ReasonForDisconnect::kShutdown:
-    case ReasonForDisconnect::kUnused:
-      if (launcher_has_connected_to_source_provider_) {
-        video_capture::uma::LogVideoCaptureServiceEvent(
-            video_capture::uma::
-                BROWSER_CLOSING_CONNECTION_TO_SERVICE_AFTER_CAPTURE);
-        video_capture::uma::
-            LogDurationFromLastConnectToClosingConnectionAfterCapture(
-                duration_since_last_connect);
-      } else {
-        video_capture::uma::LogVideoCaptureServiceEvent(
-            video_capture::uma::
-                BROWSER_CLOSING_CONNECTION_TO_SERVICE_AFTER_ENUMERATION_ONLY);
-        video_capture::uma::
-            LogDurationFromLastConnectToClosingConnectionAfterEnumerationOnly(
-                duration_since_last_connect);
-      }
-      break;
-    case ReasonForDisconnect::kConnectionLost:
-      video_capture::uma::LogVideoCaptureServiceEvent(
-          video_capture::uma::BROWSER_LOST_CONNECTION_TO_SERVICE);
-      video_capture::uma::LogDurationFromLastConnectToConnectionLost(
-          duration_since_last_connect);
-      break;
-  }
+
   time_of_last_uninitialize_ = base::TimeTicks::Now();
 }
 
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc
index 16dd466..11bfc221 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -512,6 +512,9 @@
   // If the feature is enabled, the main resource request bypasses ServiceWorker
   // and starts the worker in parallel for subsequent subresources.
   if (ShouldBypassFetchHandlerForMainResource(stripped_url_)) {
+    registration->active_version()->CountFeature(
+        blink::mojom::WebFeature::
+            kServiceWorkerBypassFetchHandlerForMainResource);
     CompleteWithoutLoader();
     if (registration->active_version()->running_status() ==
             EmbeddedWorkerStatus::STARTING ||
diff --git a/content/browser/speech/speech_recognizer_impl.cc b/content/browser/speech/speech_recognizer_impl.cc
index b0c95d1..15babfc 100644
--- a/content/browser/speech/speech_recognizer_impl.cc
+++ b/content/browser/speech/speech_recognizer_impl.cc
@@ -32,6 +32,7 @@
 
 using media::AudioBus;
 using media::AudioConverter;
+using media::AudioGlitchInfo;
 using media::AudioParameters;
 using media::ChannelLayout;
 
@@ -60,7 +61,9 @@
 
  private:
   // media::AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* dest, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* dest,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Handles resampling, buffering, and channel mixing between input and output
   // parameters.
@@ -164,7 +167,8 @@
 
 double SpeechRecognizerImpl::OnDataConverter::ProvideInput(
     AudioBus* dest,
-    uint32_t frames_delayed) {
+    uint32_t frames_delayed,
+    const AudioGlitchInfo& glitch_info) {
   // Read from the input bus to feed the converter.
   input_bus_->CopyTo(dest);
   // Indicate that the recorded audio has in fact been used by the converter.
diff --git a/content/browser/video_capture_service.cc b/content/browser/video_capture_service.cc
index ba8c8431..5a6a622 100644
--- a/content/browser/video_capture_service.cc
+++ b/content/browser/video_capture_service.cc
@@ -19,7 +19,6 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
 #include "services/video_capture/public/mojom/video_capture_service.mojom.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 #include "services/video_capture/video_capture_service_impl.h"
 
 #if BUILDFLAG(IS_WIN)
@@ -132,12 +131,7 @@
           base::Seconds(5),
           base::BindRepeating(
               [](mojo::Remote<video_capture::mojom::VideoCaptureService>*
-                     remote) {
-                video_capture::uma::LogVideoCaptureServiceEvent(
-                    video_capture::uma ::
-                        SERVICE_SHUTTING_DOWN_BECAUSE_NO_CLIENT);
-                remote->reset();
-              },
+                     remote) { remote->reset(); },
               &remote));
 #endif  // !BUILDFLAG(IS_ANDROID)
 
diff --git a/content/browser/web_package/web_bundle_browsertest_base.cc b/content/browser/web_package/web_bundle_browsertest_base.cc
index 0897bb2..c3925b7 100644
--- a/content/browser/web_package/web_bundle_browsertest_base.cc
+++ b/content/browser/web_package/web_bundle_browsertest_base.cc
@@ -291,8 +291,8 @@
 
 std::string CreateSimpleWebBundle(const GURL& primary_url) {
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(primary_url.spec());
-  builder.AddExchange(primary_url.spec(),
+  builder.AddPrimaryURL(primary_url);
+  builder.AddExchange(primary_url,
                       {{":status", "200"}, {"content-type", "text/html"}},
                       "<title>Ready</title>");
   std::vector<uint8_t> bundle = builder.CreateBundle();
@@ -303,7 +303,7 @@
                  const GURL& base_url,
                  const std::string& path,
                  const std::string& content) {
-  builder->AddExchange(base_url.Resolve(path).spec(),
+  builder->AddExchange(base_url.Resolve(path),
                        {{":status", "200"}, {"content-type", "text/html"}},
                        content);
 }
@@ -313,7 +313,7 @@
                    const std::string& path,
                    const std::string& content) {
   builder->AddExchange(
-      base_url.Resolve(path).spec(),
+      base_url.Resolve(path),
       {{":status", "200"}, {"content-type", "application/javascript"}},
       content);
 }
@@ -321,7 +321,7 @@
 std::string CreatePathTestWebBundle(const GURL& base_url) {
   const std::string primary_url_path = "/web_bundle/path_test/in_scope/";
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(base_url.Resolve(primary_url_path).spec());
+  builder.AddPrimaryURL(base_url.Resolve(primary_url_path));
   AddHtmlFile(&builder, base_url, primary_url_path, "<title>Ready</title>");
   AddHtmlFile(
       &builder, base_url, "/web_bundle/path_test/in_scope/page.html",
@@ -400,7 +400,7 @@
   *third_party_origin = third_party_server->GetURL("/");
 
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(primary_url_origin->Resolve("/top").spec());
+  builder.AddPrimaryURL(primary_url_origin->Resolve("/top"));
   AddHtmlFile(&builder, *primary_url_origin, "/top", R"(
     <script>
     window.addEventListener('message',
@@ -613,7 +613,7 @@
                                 std::string* web_bundle_content) {
   SetUpNavigationTestServer(server, url_origin);
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(url_origin->Resolve("/top-page/").spec());
+  builder.AddPrimaryURL(url_origin->Resolve("/top-page/"));
   for (const auto& path : pathes)
     AddHtmlAndScriptForNavigationTest(&builder, *url_origin, path, "");
 
@@ -981,7 +981,7 @@
                                std::string* web_bundle_content) {
   SetUpNavigationTestServer(server, url_origin);
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(url_origin->Resolve("/top-page/").spec());
+  builder.AddPrimaryURL(url_origin->Resolve("/top-page/"));
   const std::vector<std::string> pathes = {"/top-page/", "/1-page/",
                                            "/2-page/"};
   for (const auto& path : pathes)
diff --git a/content/browser/web_package/web_bundle_element_browsertest.cc b/content/browser/web_package/web_bundle_element_browsertest.cc
index 402ee76f..3bf5d3c9 100644
--- a/content/browser/web_package/web_bundle_element_browsertest.cc
+++ b/content/browser/web_package/web_bundle_element_browsertest.cc
@@ -213,10 +213,10 @@
     GURL test1_url(https_server_.GetURL("/web_bundle/test1.txt"));
     GURL test2_url(https_server_.GetURL("/web_bundle/test2.txt"));
     web_package::WebBundleBuilder builder;
-    builder.AddExchange(test1_url.spec(),
+    builder.AddExchange(test1_url,
                         {{":status", "200"}, {"content-type", "text/plain"}},
                         "test1");
-    builder.AddExchange(test2_url.spec(),
+    builder.AddExchange(test2_url,
                         {{":status", "200"}, {"content-type", "text/plain"}},
                         "test2");
     auto bundle = builder.CreateBundle();
diff --git a/content/browser/web_package/web_bundle_network_browsertest.cc b/content/browser/web_package/web_bundle_network_browsertest.cc
index 189fd40..6e696dbc 100644
--- a/content/browser/web_package/web_bundle_network_browsertest.cc
+++ b/content/browser/web_package/web_bundle_network_browsertest.cc
@@ -137,12 +137,12 @@
       embedded_test_server()->GetURL("/web_bundle/script.js");
 
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(primary_url.spec());
-  builder.AddExchange(primary_url.spec(),
+  builder.AddPrimaryURL(primary_url);
+  builder.AddExchange(primary_url,
                       {{":status", "200"}, {"content-type", "text/html"}},
                       "<script src=\"script.js\"></script>");
   builder.AddExchange(
-      script_url.spec(),
+      script_url,
       {{":status", "200"}, {"content-type", "application/javascript"}},
       "document.title = 'Ready';");
 
@@ -233,8 +233,8 @@
   const GURL inner_url =
       embedded_test_server()->GetURL("/web_bundle/inner.html");
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(primary_url.spec());
-  builder.AddExchange(inner_url.spec(),
+  builder.AddPrimaryURL(primary_url);
+  builder.AddExchange(inner_url,
                       {{":status", "200"}, {"content-type", "text/html"}},
                       "<title>Ready</title>");
   std::vector<uint8_t> bundle = builder.CreateBundle();
@@ -252,7 +252,7 @@
   const GURL inner_url =
       embedded_test_server()->GetURL("/web_bundle/inner.html");
   web_package::WebBundleBuilder builder;
-  builder.AddExchange(inner_url.spec(),
+  builder.AddExchange(inner_url,
                       {{":status", "200"}, {"content-type", "text/html"}},
                       "<title>Ready</title>");
   std::vector<uint8_t> bundle = builder.CreateBundle();
@@ -288,8 +288,8 @@
   const GURL wbn_url = embedded_test_server()->GetURL(wbn_path);
   const GURL primary_url = embedded_test_server()->GetURL(primary_url_path);
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(primary_url.spec());
-  builder.AddExchange(primary_url.spec(),
+  builder.AddPrimaryURL(primary_url);
+  builder.AddExchange(primary_url,
                       {{":status", "200"}, {"content-type", "text/html"}},
                       "<title>Ready</title>");
   builder.AddExchange("foo://bar",
@@ -758,7 +758,7 @@
   ASSERT_TRUE(embedded_test_server()->Start());
   const GURL origin = embedded_test_server()->GetURL("/");
   web_package::WebBundleBuilder builder;
-  builder.AddPrimaryURL(origin.Resolve(primary_url_path).spec());
+  builder.AddPrimaryURL(origin.Resolve(primary_url_path));
   web_bundle_browsertest_utils::AddHtmlFile(&builder, origin, primary_url_path,
                                             R"(
     <script>
diff --git a/content/test/data/accessibility/aria/aria-current-expected-android-external.txt b/content/test/data/accessibility/aria/aria-current-expected-android-external.txt
index 9441f3c..2ef06b2 100644
--- a/content/test/data/accessibility/aria/aria-current-expected-android-external.txt
+++ b/content/test/data/accessibility/aria/aria-current-expected-android-external.txt
@@ -1,12 +1,12 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View text:"null" contentDescription:"Section one" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-current.html#section1"]
-++++TextView text:"Section one" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Section one" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Section two" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-current.html#section2"]
-++++TextView text:"Section two" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Section two" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Section three" stateDescription:"current location" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-current.html#section3"]
-++++TextView text:"Section three" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Section three" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View text:"\n" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="lineBreak"]
 ++TextView text:"Section one heading" viewIdResName:"section1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="heading", roleDescription="heading 1"]
 ++TextView text:"Section two heading" viewIdResName:"section2" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="heading", roleDescription="heading 1"]
diff --git a/content/test/data/accessibility/aria/aria-option-complex-children-expected-android-external.txt b/content/test/data/accessibility/aria/aria-option-complex-children-expected-android-external.txt
index c9091f8..9cc6a88a 100644
--- a/content/test/data/accessibility/aria/aria-option-complex-children-expected-android-external.txt
+++ b/content/test/data/accessibility/aria/aria-option-complex-children-expected-android-external.txt
@@ -2,7 +2,7 @@
 ++ListView clickable CollectionInfo:[rows=2, cols=1] actions:[CLICK, AX_FOCUS] bundle:[chromeRole="listBox", roleDescription="list box"]
 ++++View text:"label-WAI-ARIA 1.1" focusable selected CollectionItemInfo:[rowIndex=0, colIndex=0] actions:[FOCUS, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listBoxOption"]
 ++++++View text:"null" hint:"title-WAI-ARIA 1.1" contentDescription:"href-WAI-ARIA 1.1" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hint="title-WAI-ARIA 1.1", roleDescription="link", targetUrl="https://www.w3.org/TR/wai-aria-practices-1.1/"]
-++++++++TextView text:"href-WAI-ARIA 1.1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"href-WAI-ARIA 1.1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++TextView text:"title-https://www.w3.org/TR/wai-aria-practices-1.1/" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="paragraph"]
 ++++++Button text:"Close" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
 ++++View text:"1234567" focusable CollectionItemInfo:[rowIndex=1, colIndex=0] actions:[FOCUS, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listBoxOption"]
diff --git a/content/test/data/accessibility/aria/aria-textbox-with-non-text-children-expected-android-external.txt b/content/test/data/accessibility/aria/aria-textbox-with-non-text-children-expected-android-external.txt
index 39a81ae..ad61df3 100644
--- a/content/test/data/accessibility/aria/aria-textbox-with-non-text-children-expected-android-external.txt
+++ b/content/test/data/accessibility/aria/aria-textbox-with-non-text-children-expected-android-external.txt
@@ -3,25 +3,25 @@
 ++++TextView text:"focusable: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++Button text:"ok" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
 ++++View text:"null" contentDescription:"link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-textbox-with-non-text-children.html#"]
-++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View actions:[AX_FOCUS] bundle:[chromeRole="labelText"]
 ++++++TextView text:"name: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++++EditText hint:"name:" clickable editable focusable inputType:1 textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, PASTE, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", clickableScore="300", hint="name:"]
 ++EditText text:"focusable: oklink name: \n" hint:"editable" clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", clickableScore="300", hint="editable"]
-++++TextView text:"focusable: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"focusable: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++Button text:"ok" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
 ++++View text:"null" contentDescription:"link" clickable actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-textbox-with-non-text-children.html#"]
-++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
-++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
+++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View actions:[AX_FOCUS] bundle:[chromeRole="labelText", clickableScore="100"]
-++++++TextView text:"name: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"name: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++EditText hint:"name:" clickable editable focusable inputType:1 textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, PASTE, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", clickableScore="300", hint="name:"]
 ++EditText text:"focusable: oklink name: \n" hint:"not editable or focusable" clickable editable textSelectionStart:0 textSelectionEnd:0 actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", hint="not editable or focusable"]
 ++++TextView text:"focusable: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++Button text:"ok" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
 ++++View text:"null" contentDescription:"link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-textbox-with-non-text-children.html#"]
-++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View actions:[AX_FOCUS] bundle:[chromeRole="labelText"]
 ++++++TextView text:"name: " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
diff --git a/content/test/data/accessibility/aria/aria-tree-expected-android-external.txt b/content/test/data/accessibility/aria/aria-tree-expected-android-external.txt
index 70766da..5889231 100644
--- a/content/test/data/accessibility/aria/aria-tree-expected-android-external.txt
+++ b/content/test/data/accessibility/aria/aria-tree-expected-android-external.txt
@@ -2,21 +2,21 @@
 ++View CollectionInfo:[hierarchical, rows=2, cols=0] actions:[AX_FOCUS] bundle:[chromeRole="tree", roleDescription="tree"]
 ++++View text:"Animals" stateDescription:"Partially Checked" clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=0, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++View text:"null" contentDescription:"Animals" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#animals"]
-++++++++TextView text:"Animals" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"Animals" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++View actions:[AX_FOCUS] bundle:[chromeRole="group"]
 ++++++++View text:"Domesticated" clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=0, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++++++View text:"null" contentDescription:"Domesticated" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#domesticated"]
-++++++++++++TextView text:"Domesticated" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++++TextView text:"Domesticated" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++++++View actions:[AX_FOCUS] bundle:[chromeRole="group"]
 ++++++++++++View text:"Dog" checkable checked clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=0, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++++++++++View text:"null" contentDescription:"Dog" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#dog"]
-++++++++++++++++TextView text:"Dog" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++++++++TextView text:"Dog" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++++++++View text:"Cat" checkable clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=1, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++++++++++View text:"null" contentDescription:"Cat" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#cat"]
-++++++++++++++++TextView text:"Cat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++++++++TextView text:"Cat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++++View text:"Wild" clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=1, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++++++View text:"null" contentDescription:"Wild" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#wild"]
-++++++++++++TextView text:"Wild" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++++TextView text:"Wild" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View text:"Plants" clickable CollectionItemInfo:[rowSpan=0, colSpan=0, rowIndex=1, colIndex=0] actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="treeItem", roleDescription="tree item"]
 ++++++View text:"null" contentDescription:"Plants" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/aria-tree.html#plants"]
-++++++++TextView text:"Plants" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++++TextView text:"Plants" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/aria/presentational-expected-android-external.txt b/content/test/data/accessibility/aria/presentational-expected-android-external.txt
index 1000b0a..8fe489c7 100644
--- a/content/test/data/accessibility/aria/presentational-expected-android-external.txt
+++ b/content/test/data/accessibility/aria/presentational-expected-android-external.txt
@@ -3,7 +3,7 @@
 ++++View text:"Heading with link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="heading", roleDescription="heading 2"]
 ++++++TextView text:"Heading " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++++View text:"null" contentDescription:"with link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/presentational.html#"]
-++++++++TextView text:"with link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"with link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:"Presentational heading " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"with link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/aria/presentational.html#"]
-++++++TextView text:"with link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++TextView text:"with link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/a-expected-android-external.txt b/content/test/data/accessibility/html/a-expected-android-external.txt
index 9a0cd72..ee42ac4 100644
--- a/content/test/data/accessibility/html/a-expected-android-external.txt
+++ b/content/test/data/accessibility/html/a-expected-android-external.txt
@@ -1,4 +1,4 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="genericContainer"]
 ++++View text:"null" contentDescription:"normal link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="http://www.google.com/"]
-++++++TextView text:"normal link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++TextView text:"normal link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/a-expected-fuchsia.txt b/content/test/data/accessibility/html/a-expected-fuchsia.txt
index ed8ea83..3d7a22c 100644
--- a/content/test/data/accessibility/html/a-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-expected-fuchsia.txt
@@ -2,5 +2,5 @@
 ++UNKNOWN hidden
 ++++UNKNOWN
 ++++++LINK focusable label='normal link' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='normal link'
-++++++++++UNKNOWN label='normal link'
\ No newline at end of file
+++++++++STATIC_TEXT label='normal link' actions='{DEFAULT}'
+++++++++++UNKNOWN label='normal link'
diff --git a/content/test/data/accessibility/html/a-name-calc-expected-android-external.txt b/content/test/data/accessibility/html/a-name-calc-expected-android-external.txt
index 45561e6..42b7489 100644
--- a/content/test/data/accessibility/html/a-name-calc-expected-android-external.txt
+++ b/content/test/data/accessibility/html/a-name-calc-expected-android-external.txt
@@ -1,15 +1,15 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View text:"null" contentDescription:"InnerText0" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
-++++TextView text:"InnerText0" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"InnerText0" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" hint:"Title1" contentDescription:"InnerText1" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hint="Title1", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
-++++TextView text:"InnerText1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"InnerText1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Title2" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
-++++TextView text:"InnerText2" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"InnerText2" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"LabelledBy3" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
-++++TextView text:"InnerText3" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"InnerText3" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View text:"null" contentDescription:"Title4" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
 ++View text:"null" contentDescription:"Label5" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
 ++View text:"null" contentDescription:"LabelledBy6" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name-calc.html#"]
diff --git a/content/test/data/accessibility/html/a-name-calc-expected-fuchsia.txt b/content/test/data/accessibility/html/a-name-calc-expected-fuchsia.txt
index 451093f..79055f2 100644
--- a/content/test/data/accessibility/html/a-name-calc-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-name-calc-expected-fuchsia.txt
@@ -2,23 +2,23 @@
 ++UNKNOWN hidden
 ++++UNKNOWN hidden
 ++++++LINK focusable label='InnerText0' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='InnerText0'
+++++++++STATIC_TEXT label='InnerText0' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText0'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='InnerText1' actions='{DEFAULT}' secondary_label='Title1'
-++++++++STATIC_TEXT label='InnerText1'
+++++++++STATIC_TEXT label='InnerText1' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText1'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Title2' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='InnerText2'
+++++++++STATIC_TEXT label='InnerText2' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText2'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='LabelledBy3' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='InnerText3'
+++++++++STATIC_TEXT label='InnerText3' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText3'
 ++++++LINK focusable label='Title4' actions='{DEFAULT}'
 ++++++LINK focusable label='Label5' actions='{DEFAULT}'
-++++++LINK focusable label='LabelledBy6' actions='{DEFAULT}'
\ No newline at end of file
+++++++LINK focusable label='LabelledBy6' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/a-name-expected-android-external.txt b/content/test/data/accessibility/html/a-name-expected-android-external.txt
index 5647ff8..9a88ba6 100644
--- a/content/test/data/accessibility/html/a-name-expected-android-external.txt
+++ b/content/test/data/accessibility/html/a-name-expected-android-external.txt
@@ -1,4 +1,4 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++TextView text:"named anchor" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="genericContainer"]
 ++View text:"null" contentDescription:"both a named anchor and a link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/a-name.html#foo"]
-++++TextView text:"both a named anchor and a link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++TextView text:"both a named anchor and a link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/a-name-expected-fuchsia.txt b/content/test/data/accessibility/html/a-name-expected-fuchsia.txt
index c5a07b0e..8a77da9 100644
--- a/content/test/data/accessibility/html/a-name-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-name-expected-fuchsia.txt
@@ -5,5 +5,5 @@
 ++++++++STATIC_TEXT label='named anchor'
 ++++++++++UNKNOWN label='named anchor'
 ++++++LINK focusable label='both a named anchor and a link' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='both a named anchor and a link'
-++++++++++UNKNOWN label='both a named anchor and a link'
\ No newline at end of file
+++++++++STATIC_TEXT label='both a named anchor and a link' actions='{DEFAULT}'
+++++++++++UNKNOWN label='both a named anchor and a link'
diff --git a/content/test/data/accessibility/html/a-nested-structure-expected-android-external.txt b/content/test/data/accessibility/html/a-nested-structure-expected-android-external.txt
index 6b4eed91..5cb3082 100644
--- a/content/test/data/accessibility/html/a-nested-structure-expected-android-external.txt
+++ b/content/test/data/accessibility/html/a-nested-structure-expected-android-external.txt
@@ -5,10 +5,10 @@
 ++++++ListView CollectionInfo:[rows=3, cols=1] actions:[AX_FOCUS] bundle:[chromeRole="list", clickableScore="100"]
 ++++++++View CollectionItemInfo:[rowIndex=0, colIndex=0] actions:[AX_FOCUS] bundle:[chromeRole="listItem", clickableScore="100"]
 ++++++++++View text:"• " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listMarker", clickableScore="100"]
-++++++++++TextView text:"List element 1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++TextView text:"List element 1" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++++View CollectionItemInfo:[rowIndex=1, colIndex=0] actions:[AX_FOCUS] bundle:[chromeRole="listItem", clickableScore="100"]
 ++++++++++View text:"• " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listMarker", clickableScore="100"]
-++++++++++TextView text:"List element 2" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++++TextView text:"List element 2" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++++View CollectionItemInfo:[rowIndex=2, colIndex=0] actions:[AX_FOCUS] bundle:[chromeRole="listItem", clickableScore="100"]
 ++++++++++View text:"• " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listMarker", clickableScore="100"]
-++++++++++TextView text:"List element 3" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++++++TextView text:"List element 3" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/a-onclick-expected-blink.txt b/content/test/data/accessibility/html/a-onclick-expected-blink.txt
index cd4f44c..de3bb6f 100644
--- a/content/test/data/accessibility/html/a-onclick-expected-blink.txt
+++ b/content/test/data/accessibility/html/a-onclick-expected-blink.txt
@@ -2,8 +2,8 @@
 ++genericContainer ignored
 ++++genericContainer ignored
 ++++++link name='link with no href but onclick' defaultActionVerb=jump
-++++++++staticText name='link with no href but onclick'
+++++++++staticText name='link with no href but onclick' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='link with no href but onclick'
 ++++++link name='link with no href and click handler added via script' defaultActionVerb=jump
-++++++++staticText name='link with no href and click handler added via script'
-++++++++++inlineTextBox name='link with no href and click handler added via script'
\ No newline at end of file
+++++++++staticText name='link with no href and click handler added via script' defaultActionVerb=clickAncestor
+++++++++++inlineTextBox name='link with no href and click handler added via script'
diff --git a/content/test/data/accessibility/html/a-onclick-expected-fuchsia.txt b/content/test/data/accessibility/html/a-onclick-expected-fuchsia.txt
index 5b735e1a..f22c127 100644
--- a/content/test/data/accessibility/html/a-onclick-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-onclick-expected-fuchsia.txt
@@ -2,8 +2,8 @@
 ++UNKNOWN hidden
 ++++UNKNOWN hidden
 ++++++LINK label='link with no href but onclick' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='link with no href but onclick'
+++++++++STATIC_TEXT label='link with no href but onclick' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='link with no href but onclick'
 ++++++LINK label='link with no href and click handler added via script' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='link with no href and click handler added via script'
-++++++++++UNKNOWN label='link with no href and click handler added via script'
\ No newline at end of file
+++++++++STATIC_TEXT label='link with no href and click handler added via script' actions='{DEFAULT}'
+++++++++++UNKNOWN label='link with no href and click handler added via script'
diff --git a/content/test/data/accessibility/html/a-onclick-expected-win.txt b/content/test/data/accessibility/html/a-onclick-expected-win.txt
index ca05411..3a87b570 100644
--- a/content/test/data/accessibility/html/a-onclick-expected-win.txt
+++ b/content/test/data/accessibility/html/a-onclick-expected-win.txt
@@ -1,5 +1,5 @@
 ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE action_name='doDefault'
 ++ROLE_SYSTEM_LINK name='link with no href but onclick' LINKED default_action='jump' action_name='jump'
-++++ROLE_SYSTEM_STATICTEXT name='link with no href but onclick' action_name='doDefault'
+++++ROLE_SYSTEM_STATICTEXT name='link with no href but onclick' default_action='click ancestor' action_name='clickAncestor'
 ++ROLE_SYSTEM_LINK name='link with no href and click handler added via script' LINKED default_action='jump' action_name='jump'
-++++ROLE_SYSTEM_STATICTEXT name='link with no href and click handler added via script' action_name='doDefault'
+++++ROLE_SYSTEM_STATICTEXT name='link with no href and click handler added via script' default_action='click ancestor' action_name='clickAncestor'
diff --git a/content/test/data/accessibility/html/a-with-before-expected-fuchsia.txt b/content/test/data/accessibility/html/a-with-before-expected-fuchsia.txt
index 5ede700..a974a73 100644
--- a/content/test/data/accessibility/html/a-with-before-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-with-before-expected-fuchsia.txt
@@ -5,9 +5,9 @@
 ++++++++UNKNOWN label='Here is a '
 ++++++LINK focusable label='[linked] link' actions='{DEFAULT}'
 ++++++++UNKNOWN hidden
-++++++++++STATIC_TEXT label='[linked] '
+++++++++++STATIC_TEXT label='[linked] ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='[linked] '
-++++++++STATIC_TEXT label='link'
+++++++++STATIC_TEXT label='link' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='link'
 ++++++STATIC_TEXT label='.'
-++++++++UNKNOWN label='.'
\ No newline at end of file
+++++++++UNKNOWN label='.'
diff --git a/content/test/data/accessibility/html/a-with-img-expected-android-external.txt b/content/test/data/accessibility/html/a-with-img-expected-android-external.txt
index 3e8afd9..82f8c30 100644
--- a/content/test/data/accessibility/html/a-with-img-expected-android-external.txt
+++ b/content/test/data/accessibility/html/a-with-img-expected-android-external.txt
@@ -2,18 +2,18 @@
 ++View actions:[AX_FOCUS] bundle:[chromeRole="genericContainer", hasImage="true"]
 ++++View text:"null" contentDescription:"Link with image at start." clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hasImage="true", roleDescription="link", targetUrl="http://www.google.com/"]
 ++++++Image text:"Link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/bullet.png"]
-++++++TextView text:" with image at start." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:" with image at start." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"Link with image in the middle." clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hasImage="true", roleDescription="link", targetUrl="http://www.google.com/"]
-++++++TextView text:"Link with " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"Link with " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++Image text:"image" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/bullet.png"]
-++++++TextView text:" in the middle." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:" in the middle." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"Link with broken in the middle." clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hasImage="true", roleDescription="link", targetUrl="http://www.google.com/"]
-++++++TextView text:"Link with " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"Link with " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++Image text:"broken" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/broken.png"]
-++++++TextView text:" in the middle." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:" in the middle." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"Link with image at the end" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hasImage="true", roleDescription="link", targetUrl="http://www.google.com/"]
-++++++TextView text:"Link with image at the " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"Link with image at the " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++Image text:"end" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/bullet.png"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/a-with-img-expected-fuchsia.txt b/content/test/data/accessibility/html/a-with-img-expected-fuchsia.txt
index dd5619a3..cdcd2a5 100644
--- a/content/test/data/accessibility/html/a-with-img-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/a-with-img-expected-fuchsia.txt
@@ -3,27 +3,27 @@
 ++++UNKNOWN
 ++++++LINK focusable label='Link with image at start.' actions='{DEFAULT}'
 ++++++++IMAGE label='Link' actions='{DEFAULT}'
-++++++++STATIC_TEXT label=' with image at start.'
+++++++++STATIC_TEXT label=' with image at start.' actions='{DEFAULT}'
 ++++++++++UNKNOWN label=' with image at start.'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Link with image in the middle.' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Link with '
+++++++++STATIC_TEXT label='Link with ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Link with '
 ++++++++IMAGE label='image' actions='{DEFAULT}'
-++++++++STATIC_TEXT label=' in the middle.'
+++++++++STATIC_TEXT label=' in the middle.' actions='{DEFAULT}'
 ++++++++++UNKNOWN label=' in the middle.'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Link with broken in the middle.' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Link with '
+++++++++STATIC_TEXT label='Link with ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Link with '
 ++++++++IMAGE label='broken' actions='{DEFAULT}'
-++++++++STATIC_TEXT label=' in the middle.'
+++++++++STATIC_TEXT label=' in the middle.' actions='{DEFAULT}'
 ++++++++++UNKNOWN label=' in the middle.'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Link with image at the end' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Link with image at the '
+++++++++STATIC_TEXT label='Link with image at the ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Link with image at the '
-++++++++IMAGE label='end' actions='{DEFAULT}'
\ No newline at end of file
+++++++++IMAGE label='end' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/action-verbs-expected-android-external.txt b/content/test/data/accessibility/html/action-verbs-expected-android-external.txt
index 9f07ff1a..1d70db83 100644
--- a/content/test/data/accessibility/html/action-verbs-expected-android-external.txt
+++ b/content/test/data/accessibility/html/action-verbs-expected-android-external.txt
@@ -3,7 +3,7 @@
 ++TextView text:"Heading" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="heading", roleDescription="heading 1"]
 ++Button text:"Button" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
 ++View text:"null" contentDescription:"Link" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/action-verbs.html#"]
-++++TextView text:"Link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++EditText clickable editable focusable inputType:1 textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, PASTE, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", clickableScore="300"]
 ++EditText clickable editable focusable inputType:1 textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, PASTE, SET_TEXT, IME_ENTER] bundle:[chromeRole="searchBox", clickableScore="300", roleDescription="search text field"]
 ++EditText clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, PASTE, SET_TEXT, IME_ENTER] bundle:[chromeRole="textField", clickableScore="300"]
diff --git a/content/test/data/accessibility/html/action-verbs-expected-auralinux.txt b/content/test/data/accessibility/html/action-verbs-expected-auralinux.txt
index 103546a..48faa55 100644
--- a/content/test/data/accessibility/html/action-verbs-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/action-verbs-expected-auralinux.txt
@@ -5,7 +5,7 @@
 ++++[static] name='Heading' actions=(doDefault, showContextMenu)
 ++[push button] name='Button' actions=(press, showContextMenu)
 ++[link] name='Link' actions=(jump, showContextMenu)
-++++[static] name='Link' actions=(doDefault, showContextMenu)
+++++[static] name='Link' actions=(clickAncestor, showContextMenu)
 ++[entry] selectable-text actions=(activate, showContextMenu)
 ++[entry] selectable-text actions=(activate, showContextMenu)
 ++[entry] selectable-text actions=(activate, showContextMenu)
@@ -16,15 +16,15 @@
 ++[toggle button] name='ARIA Switch' actions=(check, showContextMenu) checkable:true
 ++[panel] actions=(doDefault, showContextMenu)
 ++++[toggle button] name='Summary' actions=(press, showContextMenu)
-++++++[static] name='Summary' actions=(doDefault, showContextMenu)
+++++++[static] name='Summary' actions=(clickAncestor, showContextMenu)
 ++[combo box] actions=(open, showContextMenu)
 ++++[menu] actions=(doDefault, showContextMenu)
 ++++++[menu item] name='Pop-up button' selectable selected actions=(select, showContextMenu)
 ++[section] actions=(click, showContextMenu)
-++++[static] name='Div with click handler' actions=(doDefault, showContextMenu)
+++++[static] name='Div with click handler' actions=(clickAncestor, showContextMenu)
 ++[panel] actions=(click, showContextMenu)
 ++++[paragraph] actions=(clickAncestor, showContextMenu)
-++++++[static] name='Paragraph with click handler on parent' actions=(doDefault, showContextMenu)
+++++++[static] name='Paragraph with click handler on parent' actions=(clickAncestor, showContextMenu)
 ++[menu] actions=(doDefault, showContextMenu)
 ++++[menu item] name='Menu item 1' actions=(select, showContextMenu)
 ++++[check menu item] name='Menu item 2' checked actions=(uncheck, showContextMenu) checkable:true
@@ -37,4 +37,4 @@
 ++[section] actions=(click, showContextMenu)
 ++++[toggle button] name='ARIA switch in clickable container' actions=(check, showContextMenu) checkable:true
 ++++[section] actions=(clickAncestor, showContextMenu)
-++++++[static] name='Generic in clickable container' actions=(doDefault, showContextMenu)
+++++++[static] name='Generic in clickable container' actions=(clickAncestor, showContextMenu)
diff --git a/content/test/data/accessibility/html/action-verbs-expected-blink.txt b/content/test/data/accessibility/html/action-verbs-expected-blink.txt
index d4ed8f6..18eec34 100644
--- a/content/test/data/accessibility/html/action-verbs-expected-blink.txt
+++ b/content/test/data/accessibility/html/action-verbs-expected-blink.txt
@@ -8,10 +8,10 @@
 ++++++++staticText name='Heading'
 ++++++++++inlineTextBox name='Heading'
 ++++++button name='Button' defaultActionVerb=press
-++++++++staticText name='Button'
+++++++++staticText name='Button' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Button'
 ++++++link name='Link' defaultActionVerb=jump
-++++++++staticText name='Link'
+++++++++staticText name='Link' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Link'
 ++++++textField defaultActionVerb=activate
 ++++++++genericContainer
@@ -24,14 +24,14 @@
 ++++++checkBox defaultActionVerb=uncheck checkedState=true
 ++++++radioButton defaultActionVerb=check checkedState=false
 ++++++switch name='ARIA Switch' defaultActionVerb=check checkedState=false
-++++++++staticText name='ARIA Switch'
+++++++++staticText name='ARIA Switch' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='ARIA Switch'
 ++++++details
 ++++++++genericContainer ignored
 ++++++++++disclosureTriangle collapsed name='Summary' defaultActionVerb=press
 ++++++++++++listMarker ignored
 ++++++++++++++staticText ignored name='%E2%96%B8 '
-++++++++++++staticText name='Summary'
+++++++++++++staticText name='Summary' defaultActionVerb=clickAncestor
 ++++++++++++++inlineTextBox name='Summary'
 ++++++++genericContainer ignored
 ++++++++++staticText ignored invisible name='Details'
@@ -39,39 +39,39 @@
 ++++++++menuListPopup invisible
 ++++++++++menuListOption name='Pop-up button' defaultActionVerb=select selected=true
 ++++++genericContainer defaultActionVerb=click
-++++++++staticText name='Div with click handler'
+++++++++staticText name='Div with click handler' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Div with click handler'
 ++++++group defaultActionVerb=click
 ++++++++paragraph defaultActionVerb=clickAncestor
-++++++++++staticText name='Paragraph with click handler on parent'
+++++++++++staticText name='Paragraph with click handler on parent' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='Paragraph with click handler on parent'
 ++++++menu
 ++++++++menuItem name='Menu item 1' defaultActionVerb=select
-++++++++++staticText name='Menu item 1'
+++++++++++staticText name='Menu item 1' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='Menu item 1'
 ++++++++menuItemCheckBox name='Menu item 2' defaultActionVerb=uncheck checkedState=true
-++++++++++staticText name='Menu item 2'
+++++++++++staticText name='Menu item 2' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='Menu item 2'
 ++++++++menuItemRadio name='Menu item 3' defaultActionVerb=check checkedState=false
-++++++++++staticText name='Menu item 3'
+++++++++++staticText name='Menu item 3' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='Menu item 3'
 ++++++button name='ARIA Button' defaultActionVerb=click
-++++++++staticText name='ARIA Button'
+++++++++staticText name='ARIA Button' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='ARIA Button'
 ++++++button name='ARIA button with tab index' defaultActionVerb=press
-++++++++staticText name='ARIA button with tab index'
+++++++++staticText name='ARIA button with tab index' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='ARIA button with tab index'
 ++++++button name='ARIA button with negative tab index' defaultActionVerb=press
-++++++++staticText name='ARIA button with negative tab index'
+++++++++staticText name='ARIA button with negative tab index' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='ARIA button with negative tab index'
 ++++++genericContainer defaultActionVerb=click activedescendantId=button
 ++++++++button name='ARIA button that is an active descendant' defaultActionVerb=press
-++++++++++staticText name='ARIA button that is an active descendant'
+++++++++++staticText name='ARIA button that is an active descendant' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='ARIA button that is an active descendant'
 ++++++genericContainer defaultActionVerb=click
 ++++++++switch name='ARIA switch in clickable container' defaultActionVerb=check checkedState=false
-++++++++++staticText name='ARIA switch in clickable container'
+++++++++++staticText name='ARIA switch in clickable container' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='ARIA switch in clickable container'
 ++++++++genericContainer defaultActionVerb=clickAncestor
-++++++++++staticText name='Generic in clickable container'
+++++++++++staticText name='Generic in clickable container' defaultActionVerb=clickAncestor
 ++++++++++++inlineTextBox name='Generic in clickable container'
diff --git a/content/test/data/accessibility/html/action-verbs-expected-fuchsia.txt b/content/test/data/accessibility/html/action-verbs-expected-fuchsia.txt
index 214d875b..0865c1e 100644
--- a/content/test/data/accessibility/html/action-verbs-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/action-verbs-expected-fuchsia.txt
@@ -8,10 +8,10 @@
 ++++++++STATIC_TEXT label='Heading'
 ++++++++++UNKNOWN label='Heading'
 ++++++BUTTON focusable label='Button' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Button'
+++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Button'
 ++++++LINK focusable label='Link' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Link'
+++++++++STATIC_TEXT label='Link' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Link'
 ++++++TEXT_FIELD focusable actions='{DEFAULT, SET_VALUE}'
 ++++++++UNKNOWN
@@ -24,14 +24,14 @@
 ++++++CHECK_BOX focusable actions='{DEFAULT}' checked_state='CHECKED'
 ++++++RADIO_BUTTON focusable actions='{DEFAULT}' checked_state='UNCHECKED'
 ++++++UNKNOWN focusable label='ARIA Switch' actions='{DEFAULT}' checked_state='UNCHECKED'
-++++++++STATIC_TEXT label='ARIA Switch'
+++++++++STATIC_TEXT label='ARIA Switch' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='ARIA Switch'
 ++++++UNKNOWN
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN focusable label='Summary' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='Summary'
+++++++++++++STATIC_TEXT label='Summary' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Summary'
 ++++++++UNKNOWN hidden
 ++++++++++STATIC_TEXT hidden label='Details'
@@ -39,39 +39,39 @@
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN focusable selected label='Pop-up button' actions='{DEFAULT}'
 ++++++UNKNOWN actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Div with click handler'
+++++++++STATIC_TEXT label='Div with click handler' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Div with click handler'
 ++++++UNKNOWN actions='{DEFAULT}'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Paragraph with click handler on parent'
+++++++++++STATIC_TEXT label='Paragraph with click handler on parent' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Paragraph with click handler on parent'
 ++++++UNKNOWN
 ++++++++UNKNOWN label='Menu item 1' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Menu item 1'
+++++++++++STATIC_TEXT label='Menu item 1' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Menu item 1'
 ++++++++UNKNOWN label='Menu item 2' actions='{DEFAULT}' checked_state='CHECKED'
-++++++++++STATIC_TEXT label='Menu item 2'
+++++++++++STATIC_TEXT label='Menu item 2' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Menu item 2'
 ++++++++UNKNOWN label='Menu item 3' actions='{DEFAULT}' checked_state='UNCHECKED'
-++++++++++STATIC_TEXT label='Menu item 3'
+++++++++++STATIC_TEXT label='Menu item 3' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Menu item 3'
 ++++++BUTTON label='ARIA Button' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='ARIA Button'
+++++++++STATIC_TEXT label='ARIA Button' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='ARIA Button'
 ++++++BUTTON focusable label='ARIA button with tab index' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='ARIA button with tab index'
+++++++++STATIC_TEXT label='ARIA button with tab index' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='ARIA button with tab index'
 ++++++BUTTON focusable label='ARIA button with negative tab index' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='ARIA button with negative tab index'
+++++++++STATIC_TEXT label='ARIA button with negative tab index' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='ARIA button with negative tab index'
 ++++++UNKNOWN actions='{DEFAULT}'
 ++++++++BUTTON focusable label='ARIA button that is an active descendant' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='ARIA button that is an active descendant'
+++++++++++STATIC_TEXT label='ARIA button that is an active descendant' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='ARIA button that is an active descendant'
 ++++++UNKNOWN actions='{DEFAULT}'
 ++++++++UNKNOWN label='ARIA switch in clickable container' actions='{DEFAULT}' checked_state='UNCHECKED'
-++++++++++STATIC_TEXT label='ARIA switch in clickable container'
+++++++++++STATIC_TEXT label='ARIA switch in clickable container' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='ARIA switch in clickable container'
 ++++++++UNKNOWN actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Generic in clickable container'
-++++++++++++UNKNOWN label='Generic in clickable container'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Generic in clickable container' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='Generic in clickable container'
diff --git a/content/test/data/accessibility/html/action-verbs-expected-win.txt b/content/test/data/accessibility/html/action-verbs-expected-win.txt
index 217eaa5..53b38be 100644
--- a/content/test/data/accessibility/html/action-verbs-expected-win.txt
+++ b/content/test/data/accessibility/html/action-verbs-expected-win.txt
@@ -5,7 +5,7 @@
 ++++ROLE_SYSTEM_STATICTEXT name='Heading' action_name='doDefault'
 ++ROLE_SYSTEM_PUSHBUTTON name='Button' FOCUSABLE default_action='press' action_name='press'
 ++ROLE_SYSTEM_LINK name='Link' FOCUSABLE default_action='jump' action_name='jump'
-++++ROLE_SYSTEM_STATICTEXT name='Link' action_name='doDefault'
+++++ROLE_SYSTEM_STATICTEXT name='Link' default_action='click ancestor' action_name='clickAncestor'
 ++ROLE_SYSTEM_TEXT FOCUSABLE default_action='activate' action_name='activate'
 ++ROLE_SYSTEM_TEXT FOCUSABLE default_action='activate' action_name='activate'
 ++ROLE_SYSTEM_TEXT FOCUSABLE IA2_STATE_MULTI_LINE default_action='activate' action_name='activate'
@@ -16,13 +16,13 @@
 ++IA2_ROLE_TOGGLE_BUTTON name='ARIA Switch' FOCUSABLE IA2_STATE_CHECKABLE checkable:true default_action='check' action_name='check'
 ++ROLE_SYSTEM_GROUPING action_name='doDefault'
 ++++ROLE_SYSTEM_PUSHBUTTON name='Summary' COLLAPSED FOCUSABLE default_action='press' action_name='press'
-++++++ROLE_SYSTEM_STATICTEXT name='Summary' action_name='doDefault'
+++++++ROLE_SYSTEM_STATICTEXT name='Summary' default_action='click ancestor' action_name='clickAncestor'
 ++ROLE_SYSTEM_COMBOBOX value='Pop-up button' COLLAPSED FOCUSABLE HASPOPUP haspopup:menu default_action='open' action_name='open'
 ++IA2_ROLE_SECTION default_action='click' action_name='click'
-++++ROLE_SYSTEM_STATICTEXT name='Div with click handler' action_name='doDefault'
+++++ROLE_SYSTEM_STATICTEXT name='Div with click handler' default_action='click ancestor' action_name='clickAncestor'
 ++ROLE_SYSTEM_GROUPING default_action='click' action_name='click'
 ++++IA2_ROLE_PARAGRAPH default_action='click ancestor' action_name='clickAncestor'
-++++++ROLE_SYSTEM_STATICTEXT name='Paragraph with click handler on parent' action_name='doDefault'
+++++++ROLE_SYSTEM_STATICTEXT name='Paragraph with click handler on parent' default_action='click ancestor' action_name='clickAncestor'
 ++ROLE_SYSTEM_MENUPOPUP action_name='doDefault'
 ++++ROLE_SYSTEM_MENUITEM name='Menu item 1' default_action='select' action_name='select'
 ++++IA2_ROLE_CHECK_MENU_ITEM name='Menu item 2' CHECKED IA2_STATE_CHECKABLE checkable:true default_action='uncheck' action_name='uncheck'
@@ -35,4 +35,4 @@
 ++IA2_ROLE_SECTION default_action='click' action_name='click'
 ++++IA2_ROLE_TOGGLE_BUTTON name='ARIA switch in clickable container' IA2_STATE_CHECKABLE checkable:true default_action='check' action_name='check'
 ++++IA2_ROLE_SECTION default_action='click ancestor' action_name='clickAncestor'
-++++++ROLE_SYSTEM_STATICTEXT name='Generic in clickable container' action_name='doDefault'
+++++++ROLE_SYSTEM_STATICTEXT name='Generic in clickable container' default_action='click ancestor' action_name='clickAncestor'
diff --git a/content/test/data/accessibility/html/button-expected-fuchsia.txt b/content/test/data/accessibility/html/button-expected-fuchsia.txt
index f20ddc2..cda94c3 100644
--- a/content/test/data/accessibility/html/button-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/button-expected-fuchsia.txt
@@ -2,5 +2,5 @@
 ++UNKNOWN hidden
 ++++UNKNOWN
 ++++++BUTTON focusable label='Click me!' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Click me!'
-++++++++++UNKNOWN label='Click me!'
\ No newline at end of file
+++++++++STATIC_TEXT label='Click me!' actions='{DEFAULT}'
+++++++++++UNKNOWN label='Click me!'
diff --git a/content/test/data/accessibility/html/button-name-calc-expected-fuchsia.txt b/content/test/data/accessibility/html/button-name-calc-expected-fuchsia.txt
index 61787eb..5920cf0 100644
--- a/content/test/data/accessibility/html/button-name-calc-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/button-name-calc-expected-fuchsia.txt
@@ -2,39 +2,39 @@
 ++UNKNOWN hidden
 ++++UNKNOWN hidden
 ++++++BUTTON focusable label='InnerText0' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='InnerText0'
+++++++++STATIC_TEXT label='InnerText0' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText0'
 ++++++BUTTON focusable label='InnerText1' actions='{DEFAULT}' secondary_label='Title1'
-++++++++STATIC_TEXT label='InnerText1'
+++++++++STATIC_TEXT label='InnerText1' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText1'
 ++++++BUTTON focusable label='AriaLabel2' actions='{DEFAULT}' secondary_label='Title2'
-++++++++STATIC_TEXT label='InnerText2'
+++++++++STATIC_TEXT label='InnerText2' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText2'
 ++++++BUTTON focusable label='LabelledBy3' actions='{DEFAULT}' secondary_label='Title3'
-++++++++STATIC_TEXT label='InnerText3'
+++++++++STATIC_TEXT label='InnerText3' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText3'
 ++++++BUTTON focusable label='LabelledBy4' actions='{DEFAULT}' secondary_label='DescribedBy4'
-++++++++STATIC_TEXT label='InnerText4'
+++++++++STATIC_TEXT label='InnerText4' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText4'
 ++++++BUTTON focusable label='InnerText5' actions='{DEFAULT}' secondary_label='DescribedBy5'
-++++++++STATIC_TEXT label='InnerText5'
+++++++++STATIC_TEXT label='InnerText5' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='InnerText5'
 ++++++BUTTON focusable label='Outer inner' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Outer'
+++++++++STATIC_TEXT label='Outer' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Outer'
 ++++++++UNKNOWN actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='inner'
+++++++++++STATIC_TEXT label='inner' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='inner'
 ++++++BUTTON focusable label='Outer inner1' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Outer'
+++++++++STATIC_TEXT label='Outer' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Outer'
 ++++++++UNKNOWN label='inner1' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='inner2'
+++++++++++STATIC_TEXT label='inner2' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='inner2'
 ++++++BUTTON focusable label='Outer grandchild' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Outer'
+++++++++STATIC_TEXT label='Outer' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Outer'
 ++++++++UNKNOWN actions='{DEFAULT}'
 ++++++++++UNKNOWN actions='{DEFAULT}'
-++++++++++++STATIC_TEXT label='grandchild'
-++++++++++++++UNKNOWN label='grandchild'
\ No newline at end of file
+++++++++++++STATIC_TEXT label='grandchild' actions='{DEFAULT}'
+++++++++++++++UNKNOWN label='grandchild'
diff --git a/content/test/data/accessibility/html/button-with-listbox-popup-expected-fuchsia.txt b/content/test/data/accessibility/html/button-with-listbox-popup-expected-fuchsia.txt
index b12adac0..77b0caeb 100644
--- a/content/test/data/accessibility/html/button-with-listbox-popup-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/button-with-listbox-popup-expected-fuchsia.txt
@@ -6,24 +6,24 @@
 ++++++++++STATIC_TEXT label='Choose one:'
 ++++++++++++UNKNOWN label='Choose one:'
 ++++++++UNKNOWN focusable label='Choose one: Foo' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Foo'
+++++++++++STATIC_TEXT label='Foo' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Foo'
 ++++++++UNKNOWN focusable label='Choose one:' actions='{DEFAULT}'
 ++++++++++UNKNOWN focusable label='Baz' actions='{DEFAULT}'
 ++++++++++++UNKNOWN hidden
-++++++++++++++STATIC_TEXT label='%E2%80%A2 '
+++++++++++++++STATIC_TEXT label='%E2%80%A2 ' actions='{DEFAULT}'
 ++++++++++++++++UNKNOWN label='%E2%80%A2 '
-++++++++++++STATIC_TEXT label='Baz'
+++++++++++++STATIC_TEXT label='Baz' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Baz'
 ++++++++++UNKNOWN focusable label='Bar' actions='{DEFAULT}'
 ++++++++++++UNKNOWN hidden
-++++++++++++++STATIC_TEXT label='%E2%80%A2 '
+++++++++++++++STATIC_TEXT label='%E2%80%A2 ' actions='{DEFAULT}'
 ++++++++++++++++UNKNOWN label='%E2%80%A2 '
-++++++++++++STATIC_TEXT label='Bar'
+++++++++++++STATIC_TEXT label='Bar' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Bar'
 ++++++++++UNKNOWN focusable label='Foo' actions='{DEFAULT}'
 ++++++++++++UNKNOWN hidden
-++++++++++++++STATIC_TEXT label='%E2%80%A2 '
+++++++++++++++STATIC_TEXT label='%E2%80%A2 ' actions='{DEFAULT}'
 ++++++++++++++++UNKNOWN label='%E2%80%A2 '
-++++++++++++STATIC_TEXT label='Foo'
-++++++++++++++UNKNOWN label='Foo'
\ No newline at end of file
+++++++++++++STATIC_TEXT label='Foo' actions='{DEFAULT}'
+++++++++++++++UNKNOWN label='Foo'
diff --git a/content/test/data/accessibility/html/canvas-expected-android-external.txt b/content/test/data/accessibility/html/canvas-expected-android-external.txt
index 711a5df8..1abbc3a 100644
--- a/content/test/data/accessibility/html/canvas-expected-android-external.txt
+++ b/content/test/data/accessibility/html/canvas-expected-android-external.txt
@@ -3,4 +3,4 @@
 ++++Image text:"Static fallback" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="canvas", hasImage="true"]
 ++++Image actions:[AX_FOCUS] bundle:[chromeRole="canvas", hasImage="true"]
 ++++++View text:"null" contentDescription:"Interactive fallback" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/canvas.html#"]
-++++++++TextView text:"Interactive fallback" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++++TextView text:"Interactive fallback" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/canvas-expected-fuchsia.txt b/content/test/data/accessibility/html/canvas-expected-fuchsia.txt
index 3e92321..27a47ee 100644
--- a/content/test/data/accessibility/html/canvas-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/canvas-expected-fuchsia.txt
@@ -5,4 +5,4 @@
 ++++++++STATIC_TEXT label='Static fallback'
 ++++++UNKNOWN
 ++++++++LINK focusable label='Interactive fallback' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Interactive fallback'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Interactive fallback' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/character-locations-expected-fuchsia.txt b/content/test/data/accessibility/html/character-locations-expected-fuchsia.txt
index f36232d3..1ad85ed8 100644
--- a/content/test/data/accessibility/html/character-locations-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/character-locations-expected-fuchsia.txt
@@ -8,7 +8,7 @@
 ++++++++STATIC_TEXT label='Paragraph'
 ++++++++++UNKNOWN label='Paragraph'
 ++++++BUTTON focusable label='Button' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Button'
+++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Button'
 ++++++TEXT_FIELD focusable actions='{DEFAULT, SET_VALUE}' value='Input'
 ++++++++UNKNOWN
@@ -20,4 +20,4 @@
 ++++++++++++UNKNOWN label='Textarea'
 ++++++IMAGE label='Image with alt text'
 ++++++LINK focusable label='Image inside link' actions='{DEFAULT}'
-++++++++IMAGE label='Image inside link' actions='{DEFAULT}'
\ No newline at end of file
+++++++++IMAGE label='Image inside link' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/clickable-ancestor-expected-fuchsia.txt b/content/test/data/accessibility/html/clickable-ancestor-expected-fuchsia.txt
index 188d7b7..ec17315a05 100644
--- a/content/test/data/accessibility/html/clickable-ancestor-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/clickable-ancestor-expected-fuchsia.txt
@@ -8,9 +8,9 @@
 ++++++++STATIC_TEXT label='Heading'
 ++++++++++UNKNOWN label='Heading'
 ++++++BUTTON focusable label='Button' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Button'
+++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Button'
 ++++++UNKNOWN actions='{DEFAULT}'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Paragraph with click handler on parent and should be not marked as clickable'
-++++++++++++UNKNOWN label='Paragraph with click handler on parent and should be not marked as clickable'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Paragraph with click handler on parent and should be not marked as clickable' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='Paragraph with click handler on parent and should be not marked as clickable'
diff --git a/content/test/data/accessibility/html/contenteditable-descendants-expected-android-external.txt b/content/test/data/accessibility/html/contenteditable-descendants-expected-android-external.txt
index 36119833..b99c1a8 100644
--- a/content/test/data/accessibility/html/contenteditable-descendants-expected-android-external.txt
+++ b/content/test/data/accessibility/html/contenteditable-descendants-expected-android-external.txt
@@ -1,20 +1,20 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea", hasImage="true"]
 ++EditText text:"A contenteditable with a link and an \n\n and a Button.\nAlways expose editable tables as tables.\n1. Editable list item." clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="genericContainer", clickableScore="200", hasImage="true"]
 ++++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph", clickableScore="100", hasImage="true"]
-++++++TextView text:"A contenteditable with a " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"A contenteditable with a " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++View text:"null" contentDescription:"link" clickable actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/contenteditable-descendants.html#"]
-++++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
-++++++TextView text:" and an " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"link" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
+++++++TextView text:" and an " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++Image text:"Image" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic"]
-++++++TextView text:" and a " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:" and a " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++++Button text:"Button" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="button", clickableScore="300", roleDescription="button"]
-++++++TextView text:"." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++GridView CollectionInfo:[rows=1, cols=1] actions:[AX_FOCUS] bundle:[chromeRole="table", clickableScore="100", roleDescription="table"]
 ++++++View actions:[AX_FOCUS] bundle:[chromeRole="row", clickableScore="100"]
 ++++++++View text:"Always expose editable tables as tables." CollectionItemInfo:[rowIndex=0, colIndex=0] actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="cell", clickableScore="100"]
 ++++ListView CollectionInfo:[rows=1, cols=1] actions:[AX_FOCUS] bundle:[chromeRole="list", clickableScore="100"]
 ++++++View CollectionItemInfo:[rowIndex=0, colIndex=0] actions:[AX_FOCUS] bundle:[chromeRole="listItem", clickableScore="100"]
 ++++++++View text:"1. " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="listMarker", clickableScore="100"]
-++++++++TextView text:"Editable list item." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"Editable list item." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:"Non-editable paragraph." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="paragraph"]
 ++EditText text:"Should keep the role but change the state." clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="paragraph", clickableScore="200"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/contenteditable-descendants-expected-fuchsia.txt b/content/test/data/accessibility/html/contenteditable-descendants-expected-fuchsia.txt
index 7b104138..468c6622 100644
--- a/content/test/data/accessibility/html/contenteditable-descendants-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/contenteditable-descendants-expected-fuchsia.txt
@@ -3,36 +3,36 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN focusable actions='{DEFAULT}' value='A contenteditable with a link and an <newline><newline> and a Button.<newline>Always expose editable tables as tables.<newline>1. Editable list item.'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='A contenteditable with a '
+++++++++++STATIC_TEXT label='A contenteditable with a ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='A contenteditable with a '
 ++++++++++LINK label='link' actions='{DEFAULT}'
-++++++++++++STATIC_TEXT label='link'
+++++++++++++STATIC_TEXT label='link' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='link'
-++++++++++STATIC_TEXT label=' and an '
+++++++++++STATIC_TEXT label=' and an ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label=' and an '
 ++++++++++IMAGE label='Image' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label=' and a '
+++++++++++STATIC_TEXT label=' and a ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label=' and a '
 ++++++++++BUTTON focusable label='Button' actions='{DEFAULT}'
 ++++++++++++STATIC_TEXT label='Button'
 ++++++++++++++UNKNOWN label='Button'
-++++++++++STATIC_TEXT label='.'
+++++++++++STATIC_TEXT label='.' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='.'
 ++++++++TABLE actions='{DEFAULT}' number_of_rows=1 number_of_columns=1
 ++++++++++ROW_GROUP hidden
 ++++++++++++TABLE_ROW actions='{DEFAULT}'
 ++++++++++++++CELL label='Always expose editable tables as tables.' actions='{DEFAULT}' cell_row_span=1 cell_column_span=1
-++++++++++++++++STATIC_TEXT label='Always expose editable tables as tables.'
+++++++++++++++++STATIC_TEXT label='Always expose editable tables as tables.' actions='{DEFAULT}'
 ++++++++++++++++++UNKNOWN label='Always expose editable tables as tables.'
 ++++++++LIST actions='{DEFAULT}' list_size=1
 ++++++++++LIST_ELEMENT actions='{DEFAULT}' list_element_index=1
 ++++++++++++LIST_ELEMENT_MARKER label='1. ' actions='{DEFAULT}'
 ++++++++++++++STATIC_TEXT hidden label='1. '
-++++++++++++STATIC_TEXT label='Editable list item.'
+++++++++++++STATIC_TEXT label='Editable list item.' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Editable list item.'
 ++++++PARAGRAPH
 ++++++++STATIC_TEXT label='Non-editable paragraph.'
 ++++++++++UNKNOWN label='Non-editable paragraph.'
 ++++++PARAGRAPH focusable actions='{DEFAULT}' value='Should keep the role but change the state.'
-++++++++STATIC_TEXT label='Should keep the role but change the state.'
-++++++++++UNKNOWN label='Should keep the role but change the state.'
\ No newline at end of file
+++++++++STATIC_TEXT label='Should keep the role but change the state.' actions='{DEFAULT}'
+++++++++++UNKNOWN label='Should keep the role but change the state.'
diff --git a/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-fuchsia.txt b/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-fuchsia.txt
index 844eeb8..248954c 100644
--- a/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-fuchsia.txt
@@ -3,30 +3,30 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN focusable has_input_focus actions='{DEFAULT}' value='A contenteditable with a link and an <newline><newline> and a Button.<newline>Always expose editable tables as tables.<newline>1. Editable list item.'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='A contenteditable with a '
+++++++++++STATIC_TEXT label='A contenteditable with a ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='A contenteditable with a '
 ++++++++++LINK label='link' actions='{DEFAULT}'
-++++++++++++STATIC_TEXT label='link'
+++++++++++++STATIC_TEXT label='link' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='link'
-++++++++++STATIC_TEXT label=' and an '
+++++++++++STATIC_TEXT label=' and an ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label=' and an '
 ++++++++++IMAGE label='Image' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label=' and a '
+++++++++++STATIC_TEXT label=' and a ' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label=' and a '
 ++++++++++BUTTON focusable label='Button' actions='{DEFAULT}'
 ++++++++++++STATIC_TEXT label='Button'
 ++++++++++++++UNKNOWN label='Button'
-++++++++++STATIC_TEXT label='.'
+++++++++++STATIC_TEXT label='.' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='.'
 ++++++++TABLE actions='{DEFAULT}' number_of_rows=1 number_of_columns=1
 ++++++++++ROW_GROUP hidden
 ++++++++++++TABLE_ROW actions='{DEFAULT}'
 ++++++++++++++CELL label='Always expose editable tables as tables.' actions='{DEFAULT}' cell_row_span=1 cell_column_span=1
-++++++++++++++++STATIC_TEXT label='Always expose editable tables as tables.'
+++++++++++++++++STATIC_TEXT label='Always expose editable tables as tables.' actions='{DEFAULT}'
 ++++++++++++++++++UNKNOWN label='Always expose editable tables as tables.'
 ++++++++LIST actions='{DEFAULT}' list_size=1
 ++++++++++LIST_ELEMENT actions='{DEFAULT}' list_element_index=1
 ++++++++++++LIST_ELEMENT_MARKER label='1. ' actions='{DEFAULT}'
 ++++++++++++++STATIC_TEXT hidden label='1. '
-++++++++++++STATIC_TEXT label='Editable list item.'
-++++++++++++++UNKNOWN label='Editable list item.'
\ No newline at end of file
+++++++++++++STATIC_TEXT label='Editable list item.' actions='{DEFAULT}'
+++++++++++++++UNKNOWN label='Editable list item.'
diff --git a/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-android-external.txt b/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-android-external.txt
index fc49c8c..20a62d8 100644
--- a/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-android-external.txt
+++ b/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-android-external.txt
@@ -1,7 +1,7 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++EditText text:"This is editable.\nThis is not editable.\nBut this one is.\nSo is this one." clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="genericContainer", clickableScore="200"]
 ++++TextView text:"This is editable." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="paragraph", clickableScore="100"]
-++++TextView text:"This is not editable." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"This is not editable." actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View text:"\n" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="lineBreak", clickableScore="100"]
 ++++EditText text:"But this one is." clickable editable focusable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="paragraph", clickableScore="200"]
 ++++EditText text:"So is this one." clickable editable multiLine textSelectionStart:0 textSelectionEnd:0 actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS, COPY, PASTE, CUT, SET_SELECTION, SET_TEXT, IME_ENTER] bundle:[chromeRole="paragraph", clickableScore="200"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-fuchsia.txt b/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-fuchsia.txt
index 685bd423..eda651b1 100644
--- a/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/contenteditable-with-embedded-contenteditables-expected-fuchsia.txt
@@ -3,16 +3,16 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN focusable actions='{DEFAULT}' value='This is editable.<newline>This is not editable.<newline>But this one is.<newline>So is this one.'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='This is editable.'
+++++++++++STATIC_TEXT label='This is editable.' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='This is editable.'
 ++++++++UNKNOWN hidden
-++++++++++STATIC_TEXT label='This is not editable.'
+++++++++++STATIC_TEXT label='This is not editable.' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='This is not editable.'
 ++++++++++UNKNOWN label='<newline>' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='<newline>'
 ++++++++++PARAGRAPH focusable actions='{DEFAULT}' value='But this one is.'
-++++++++++++STATIC_TEXT label='But this one is.'
+++++++++++++STATIC_TEXT label='But this one is.' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='But this one is.'
 ++++++++PARAGRAPH actions='{DEFAULT}' value='So is this one.'
-++++++++++STATIC_TEXT label='So is this one.'
-++++++++++++UNKNOWN label='So is this one.'
\ No newline at end of file
+++++++++++STATIC_TEXT label='So is this one.' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='So is this one.'
diff --git a/content/test/data/accessibility/html/continuations-expected-android-external.txt b/content/test/data/accessibility/html/continuations-expected-android-external.txt
index 433091c..2f36637 100644
--- a/content/test/data/accessibility/html/continuations-expected-android-external.txt
+++ b/content/test/data/accessibility/html/continuations-expected-android-external.txt
@@ -12,7 +12,7 @@
 ++++View viewIdResName:"ever" actions:[AX_FOCUS] bundle:[chromeRole="genericContainer"]
 ++++++TextView text:"Ever " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="genericContainer"]
 ++++++View text:"null" contentDescription:"After" viewIdResName:"after" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/continuations.html#"]
-++++++++TextView text:"After" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++++TextView text:"After" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View text:"Group 4" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="group"]
 ++++TextView text:"Before" viewIdResName:"before" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="genericContainer"]
 ++++View actions:[AX_FOCUS] bundle:[chromeRole="genericContainer"]
diff --git a/content/test/data/accessibility/html/details-expected-fuchsia.txt b/content/test/data/accessibility/html/details-expected-fuchsia.txt
index 9cccbc0fc..f45bc0b 100644
--- a/content/test/data/accessibility/html/details-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/details-expected-fuchsia.txt
@@ -6,7 +6,7 @@
 ++++++++++UNKNOWN focusable label='details tag' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='details tag'
+++++++++++++STATIC_TEXT label='details tag' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='details tag'
 ++++++++UNKNOWN hidden
 ++++++++++STATIC_TEXT hidden label='<newline>    '
@@ -19,9 +19,9 @@
 ++++++++++UNKNOWN focusable label='details tag open' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%BE '
-++++++++++++STATIC_TEXT label='details tag open'
+++++++++++++STATIC_TEXT label='details tag open' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='details tag open'
 ++++++++UNKNOWN hidden
 ++++++++++PARAGRAPH
 ++++++++++++STATIC_TEXT label='The details tag with open specifies that the details should be visible (open) to the user.'
-++++++++++++++UNKNOWN label='The details tag with open specifies that the details should be visible (open) to the user.'
\ No newline at end of file
+++++++++++++++UNKNOWN label='The details tag with open specifies that the details should be visible (open) to the user.'
diff --git a/content/test/data/accessibility/html/html-expected-fuchsia.txt b/content/test/data/accessibility/html/html-expected-fuchsia.txt
index f7d16e0..3402073 100644
--- a/content/test/data/accessibility/html/html-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/html-expected-fuchsia.txt
@@ -2,5 +2,5 @@
 ++UNKNOWN hidden
 ++++UNKNOWN label='BODY element'
 ++++++BUTTON focusable label='Button element' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Button'
-++++++++++UNKNOWN label='Button'
\ No newline at end of file
+++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
+++++++++++UNKNOWN label='Button'
diff --git a/content/test/data/accessibility/html/iframe-coordinates-expected-fuchsia.txt b/content/test/data/accessibility/html/iframe-coordinates-expected-fuchsia.txt
index 41e1adb..b65b78d 100644
--- a/content/test/data/accessibility/html/iframe-coordinates-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/iframe-coordinates-expected-fuchsia.txt
@@ -3,11 +3,11 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++BUTTON focusable label='Button' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Button'
+++++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Button'
 ++++++UNKNOWN
 ++++++++BUTTON focusable label='Button' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Button'
+++++++++++STATIC_TEXT label='Button' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='Button'
 ++++++UNKNOWN
 ++++++++UNKNOWN focusable
@@ -16,7 +16,7 @@
 ++++++++++++++UNKNOWN hidden
 ++++++++++++++++UNKNOWN
 ++++++++++++++++++BUTTON focusable label='Ordinary Button' actions='{DEFAULT}'
-++++++++++++++++++++STATIC_TEXT label='Ordinary Button'
+++++++++++++++++++++STATIC_TEXT label='Ordinary Button' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN label='Ordinary Button'
 ++++++UNKNOWN
 ++++++++UNKNOWN focusable
@@ -25,5 +25,5 @@
 ++++++++++++++UNKNOWN hidden
 ++++++++++++++++UNKNOWN
 ++++++++++++++++++BUTTON focusable label='Scrolled Button' actions='{DEFAULT}'
-++++++++++++++++++++STATIC_TEXT label='Scrolled Button'
-++++++++++++++++++++++UNKNOWN label='Scrolled Button'
\ No newline at end of file
+++++++++++++++++++++STATIC_TEXT label='Scrolled Button' actions='{DEFAULT}'
+++++++++++++++++++++++UNKNOWN label='Scrolled Button'
diff --git a/content/test/data/accessibility/html/iframe-create-expected-fuchsia.txt b/content/test/data/accessibility/html/iframe-create-expected-fuchsia.txt
index 2e04c6c..c5b6954 100644
--- a/content/test/data/accessibility/html/iframe-create-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/iframe-create-expected-fuchsia.txt
@@ -6,5 +6,5 @@
 ++++++++++UNKNOWN hidden
 ++++++++++++UNKNOWN
 ++++++++++++++LINK focusable label='done' actions='{DEFAULT}'
-++++++++++++++++STATIC_TEXT label='done'
-++++++++++++++++++UNKNOWN label='done'
\ No newline at end of file
+++++++++++++++++STATIC_TEXT label='done' actions='{DEFAULT}'
+++++++++++++++++++UNKNOWN label='done'
diff --git a/content/test/data/accessibility/html/img-link-empty-alt-expected-android-external.txt b/content/test/data/accessibility/html/img-link-empty-alt-expected-android-external.txt
index 34463c4..c28f764c 100644
--- a/content/test/data/accessibility/html/img-link-empty-alt-expected-android-external.txt
+++ b/content/test/data/accessibility/html/img-link-empty-alt-expected-android-external.txt
@@ -1,11 +1,11 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea", hasImage="true"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="genericContainer", hasImage="true"]
 ++++View text:"null" contentDescription:"unread " clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/foo"]
-++++++TextView text:"unread " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"unread " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View text:"null" contentDescription:"read " clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/foo"]
-++++++TextView text:"read " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"read " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View text:"null" contentDescription:"read " clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/foo"]
-++++++TextView text:"read " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"read " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++View text:"null" contentDescription:"read" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", hasImage="true", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/foo"]
 ++++++Image text:"read" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="image", clickableScore="100", hasImage="true", roleDescription="graphic", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/read.jpg"]
-++++++TextView text:"read" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++TextView text:"read" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/img-link-empty-alt-expected-fuchsia.txt b/content/test/data/accessibility/html/img-link-empty-alt-expected-fuchsia.txt
index 931fade..8080b63 100644
--- a/content/test/data/accessibility/html/img-link-empty-alt-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/img-link-empty-alt-expected-fuchsia.txt
@@ -2,15 +2,15 @@
 ++UNKNOWN hidden
 ++++UNKNOWN
 ++++++LINK focusable label='unread ' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='unread '
+++++++++STATIC_TEXT label='unread ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='unread '
 ++++++LINK focusable label='read ' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='read '
+++++++++STATIC_TEXT label='read ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='read '
 ++++++LINK focusable label='read ' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='read '
+++++++++STATIC_TEXT label='read ' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='read '
 ++++++LINK focusable label='read' actions='{DEFAULT}'
 ++++++++IMAGE actions='{DEFAULT}'
-++++++++STATIC_TEXT label='read'
-++++++++++UNKNOWN label='read'
\ No newline at end of file
+++++++++STATIC_TEXT label='read' actions='{DEFAULT}'
+++++++++++UNKNOWN label='read'
diff --git a/content/test/data/accessibility/html/in-page-links-expected-android-external.txt b/content/test/data/accessibility/html/in-page-links-expected-android-external.txt
index 68886a8..830f815 100644
--- a/content/test/data/accessibility/html/in-page-links-expected-android-external.txt
+++ b/content/test/data/accessibility/html/in-page-links-expected-android-external.txt
@@ -1,21 +1,21 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View text:"null" contentDescription:"Empty anchor" viewIdResName:"anchor1" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#emptyAnchor"]
-++++TextView text:"Empty anchor" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Empty anchor" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Anchor with content" viewIdResName:"anchor2" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#anchorWithContent"]
-++++TextView text:"Anchor with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Anchor with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Anchor with ID" viewIdResName:"anchor3" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#anchorWithID"]
-++++TextView text:"Anchor with ID" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Anchor with ID" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Empty span" viewIdResName:"anchor4" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#emptySpan"]
-++++TextView text:"Empty span" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Empty span" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Span with content" viewIdResName:"anchor5" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#spanWithContent"]
-++++TextView text:"Span with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Span with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View text:"null" contentDescription:"Paragraph with content" viewIdResName:"anchor6" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/in-page-links.html#paragraphWithContent"]
-++++TextView text:"Paragraph with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++TextView text:"Paragraph with content" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++TextView actions:[AX_FOCUS] bundle:[chromeRole="genericContainer"]
 ++++TextView text:"After empty anchor" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
diff --git a/content/test/data/accessibility/html/in-page-links-expected-blink.txt b/content/test/data/accessibility/html/in-page-links-expected-blink.txt
index 6b70f70..75cfe31 100644
--- a/content/test/data/accessibility/html/in-page-links-expected-blink.txt
+++ b/content/test/data/accessibility/html/in-page-links-expected-blink.txt
@@ -2,32 +2,32 @@
 ++genericContainer ignored
 ++++genericContainer ignored
 ++++++link name='Empty anchor' defaultActionVerb=jump inPageLinkTargetId=genericContainer
-++++++++staticText name='Empty anchor'
+++++++++staticText name='Empty anchor' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Empty anchor'
 ++++++staticText name=' '
 ++++++++inlineTextBox name=' '
 ++++++link name='Anchor with content' defaultActionVerb=jump inPageLinkTargetId=genericContainer
-++++++++staticText name='Anchor with content'
+++++++++staticText name='Anchor with content' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Anchor with content'
 ++++++staticText name=' '
 ++++++++inlineTextBox name=' '
 ++++++link name='Anchor with ID' defaultActionVerb=jump inPageLinkTargetId=genericContainer
-++++++++staticText name='Anchor with ID'
+++++++++staticText name='Anchor with ID' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Anchor with ID'
 ++++++staticText name=' '
 ++++++++inlineTextBox name=' '
 ++++++link name='Empty span' defaultActionVerb=jump inPageLinkTargetId=genericContainer
-++++++++staticText name='Empty span'
+++++++++staticText name='Empty span' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Empty span'
 ++++++staticText name=' '
 ++++++++inlineTextBox name=' '
 ++++++link name='Span with content' defaultActionVerb=jump inPageLinkTargetId=genericContainer
-++++++++staticText name='Span with content'
+++++++++staticText name='Span with content' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Span with content'
 ++++++staticText name=' '
 ++++++++inlineTextBox name=' '
 ++++++link name='Paragraph with content' defaultActionVerb=jump inPageLinkTargetId=paragraph
-++++++++staticText name='Paragraph with content'
+++++++++staticText name='Paragraph with content' defaultActionVerb=clickAncestor
 ++++++++++inlineTextBox name='Paragraph with content'
 ++++++paragraph
 ++++++++genericContainer
@@ -51,4 +51,4 @@
 ++++++++++++inlineTextBox name='Span with content'
 ++++++paragraph
 ++++++++staticText name='Paragraph with content'
-++++++++++inlineTextBox name='Paragraph with content'
\ No newline at end of file
+++++++++++inlineTextBox name='Paragraph with content'
diff --git a/content/test/data/accessibility/html/in-page-links-expected-fuchsia.txt b/content/test/data/accessibility/html/in-page-links-expected-fuchsia.txt
index 1b5e594..ed65eee 100644
--- a/content/test/data/accessibility/html/in-page-links-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/in-page-links-expected-fuchsia.txt
@@ -2,32 +2,32 @@
 ++UNKNOWN hidden
 ++++UNKNOWN hidden
 ++++++LINK focusable label='Empty anchor' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Empty anchor'
+++++++++STATIC_TEXT label='Empty anchor' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Empty anchor'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Anchor with content' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Anchor with content'
+++++++++STATIC_TEXT label='Anchor with content' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Anchor with content'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Anchor with ID' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Anchor with ID'
+++++++++STATIC_TEXT label='Anchor with ID' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Anchor with ID'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Empty span' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Empty span'
+++++++++STATIC_TEXT label='Empty span' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Empty span'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Span with content' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Span with content'
+++++++++STATIC_TEXT label='Span with content' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Span with content'
 ++++++STATIC_TEXT label=' '
 ++++++++UNKNOWN label=' '
 ++++++LINK focusable label='Paragraph with content' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Paragraph with content'
+++++++++STATIC_TEXT label='Paragraph with content' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Paragraph with content'
 ++++++PARAGRAPH
 ++++++++UNKNOWN
@@ -51,4 +51,4 @@
 ++++++++++++UNKNOWN label='Span with content'
 ++++++PARAGRAPH
 ++++++++STATIC_TEXT label='Paragraph with content'
-++++++++++UNKNOWN label='Paragraph with content'
\ No newline at end of file
+++++++++++UNKNOWN label='Paragraph with content'
diff --git a/content/test/data/accessibility/html/input-time-with-popup-open-expected-fuchsia.txt b/content/test/data/accessibility/html/input-time-with-popup-open-expected-fuchsia.txt
index 2be15178..af6ec5e 100644
--- a/content/test/data/accessibility/html/input-time-with-popup-open-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/input-time-with-popup-open-expected-fuchsia.txt
@@ -36,294 +36,294 @@
 ++++++++++++++++++UNKNOWN hidden
 ++++++++++++++++++++UNKNOWN focusable has_input_focus label='Hours' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable selected label='01' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='01'
+++++++++++++++++++++++++STATIC_TEXT label='01' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='02' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='02'
+++++++++++++++++++++++++STATIC_TEXT label='02' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='03' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='03'
+++++++++++++++++++++++++STATIC_TEXT label='03' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='04' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='04'
+++++++++++++++++++++++++STATIC_TEXT label='04' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='05' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='05'
+++++++++++++++++++++++++STATIC_TEXT label='05' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='06' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='06'
+++++++++++++++++++++++++STATIC_TEXT label='06' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='07' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='07'
+++++++++++++++++++++++++STATIC_TEXT label='07' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='08' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='08'
+++++++++++++++++++++++++STATIC_TEXT label='08' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='09' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='09'
+++++++++++++++++++++++++STATIC_TEXT label='09' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='10' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='10'
+++++++++++++++++++++++++STATIC_TEXT label='10' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='11' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='11'
+++++++++++++++++++++++++STATIC_TEXT label='11' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='12' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='12'
+++++++++++++++++++++++++STATIC_TEXT label='12' actions='{DEFAULT}'
 ++++++++++++++++++++UNKNOWN focusable label='Minutes' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='01' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='01'
+++++++++++++++++++++++++STATIC_TEXT label='01' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='02' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='02'
+++++++++++++++++++++++++STATIC_TEXT label='02' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='03' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='03'
+++++++++++++++++++++++++STATIC_TEXT label='03' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='04' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='04'
+++++++++++++++++++++++++STATIC_TEXT label='04' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='05' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='05'
+++++++++++++++++++++++++STATIC_TEXT label='05' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='06' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='06'
+++++++++++++++++++++++++STATIC_TEXT label='06' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='07' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='07'
+++++++++++++++++++++++++STATIC_TEXT label='07' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='08' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='08'
+++++++++++++++++++++++++STATIC_TEXT label='08' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='09' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='09'
+++++++++++++++++++++++++STATIC_TEXT label='09' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='10' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='10'
+++++++++++++++++++++++++STATIC_TEXT label='10' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='11' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='11'
+++++++++++++++++++++++++STATIC_TEXT label='11' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='12' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='12'
+++++++++++++++++++++++++STATIC_TEXT label='12' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='13' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='13'
+++++++++++++++++++++++++STATIC_TEXT label='13' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='14' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='14'
+++++++++++++++++++++++++STATIC_TEXT label='14' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='15' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='15'
+++++++++++++++++++++++++STATIC_TEXT label='15' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='16' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='16'
+++++++++++++++++++++++++STATIC_TEXT label='16' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='17' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='17'
+++++++++++++++++++++++++STATIC_TEXT label='17' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='18' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='18'
+++++++++++++++++++++++++STATIC_TEXT label='18' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='19' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='19'
+++++++++++++++++++++++++STATIC_TEXT label='19' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='20' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='20'
+++++++++++++++++++++++++STATIC_TEXT label='20' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='21' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='21'
+++++++++++++++++++++++++STATIC_TEXT label='21' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='22' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='22'
+++++++++++++++++++++++++STATIC_TEXT label='22' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='23' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='23'
+++++++++++++++++++++++++STATIC_TEXT label='23' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='24' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='24'
+++++++++++++++++++++++++STATIC_TEXT label='24' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='25' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='25'
+++++++++++++++++++++++++STATIC_TEXT label='25' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='26' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='26'
+++++++++++++++++++++++++STATIC_TEXT label='26' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='27' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='27'
+++++++++++++++++++++++++STATIC_TEXT label='27' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='28' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='28'
+++++++++++++++++++++++++STATIC_TEXT label='28' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='29' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='29'
+++++++++++++++++++++++++STATIC_TEXT label='29' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='30' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='30'
+++++++++++++++++++++++++STATIC_TEXT label='30' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='31' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='31'
+++++++++++++++++++++++++STATIC_TEXT label='31' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='32' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='32'
+++++++++++++++++++++++++STATIC_TEXT label='32' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='33' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='33'
+++++++++++++++++++++++++STATIC_TEXT label='33' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='34' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='34'
+++++++++++++++++++++++++STATIC_TEXT label='34' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='35' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='35'
+++++++++++++++++++++++++STATIC_TEXT label='35' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='36' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='36'
+++++++++++++++++++++++++STATIC_TEXT label='36' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='37' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='37'
+++++++++++++++++++++++++STATIC_TEXT label='37' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='38' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='38'
+++++++++++++++++++++++++STATIC_TEXT label='38' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='39' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='39'
+++++++++++++++++++++++++STATIC_TEXT label='39' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='40' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='40'
+++++++++++++++++++++++++STATIC_TEXT label='40' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='41' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='41'
+++++++++++++++++++++++++STATIC_TEXT label='41' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='42' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='42'
+++++++++++++++++++++++++STATIC_TEXT label='42' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='43' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='43'
+++++++++++++++++++++++++STATIC_TEXT label='43' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='44' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='44'
+++++++++++++++++++++++++STATIC_TEXT label='44' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='45' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='45'
+++++++++++++++++++++++++STATIC_TEXT label='45' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='46' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='46'
+++++++++++++++++++++++++STATIC_TEXT label='46' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='47' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='47'
+++++++++++++++++++++++++STATIC_TEXT label='47' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='48' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='48'
+++++++++++++++++++++++++STATIC_TEXT label='48' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='49' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='49'
+++++++++++++++++++++++++STATIC_TEXT label='49' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable selected label='50' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='50'
+++++++++++++++++++++++++STATIC_TEXT label='50' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='51' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='51'
+++++++++++++++++++++++++STATIC_TEXT label='51' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='52' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='52'
+++++++++++++++++++++++++STATIC_TEXT label='52' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='53' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='53'
+++++++++++++++++++++++++STATIC_TEXT label='53' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='54' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='54'
+++++++++++++++++++++++++STATIC_TEXT label='54' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='55' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='55'
+++++++++++++++++++++++++STATIC_TEXT label='55' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='56' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='56'
+++++++++++++++++++++++++STATIC_TEXT label='56' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='57' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='57'
+++++++++++++++++++++++++STATIC_TEXT label='57' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='58' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='58'
+++++++++++++++++++++++++STATIC_TEXT label='58' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='59' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='59'
+++++++++++++++++++++++++STATIC_TEXT label='59' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='00' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='00'
+++++++++++++++++++++++++STATIC_TEXT label='00' actions='{DEFAULT}'
 ++++++++++++++++++++UNKNOWN focusable label='Seconds' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='01' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='01'
+++++++++++++++++++++++++STATIC_TEXT label='01' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable selected label='02' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='02'
+++++++++++++++++++++++++STATIC_TEXT label='02' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='03' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='03'
+++++++++++++++++++++++++STATIC_TEXT label='03' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='04' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='04'
+++++++++++++++++++++++++STATIC_TEXT label='04' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='05' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='05'
+++++++++++++++++++++++++STATIC_TEXT label='05' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='06' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='06'
+++++++++++++++++++++++++STATIC_TEXT label='06' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='07' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='07'
+++++++++++++++++++++++++STATIC_TEXT label='07' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='08' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='08'
+++++++++++++++++++++++++STATIC_TEXT label='08' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='09' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='09'
+++++++++++++++++++++++++STATIC_TEXT label='09' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='10' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='10'
+++++++++++++++++++++++++STATIC_TEXT label='10' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='11' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='11'
+++++++++++++++++++++++++STATIC_TEXT label='11' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='12' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='12'
+++++++++++++++++++++++++STATIC_TEXT label='12' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='13' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='13'
+++++++++++++++++++++++++STATIC_TEXT label='13' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='14' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='14'
+++++++++++++++++++++++++STATIC_TEXT label='14' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='15' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='15'
+++++++++++++++++++++++++STATIC_TEXT label='15' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='16' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='16'
+++++++++++++++++++++++++STATIC_TEXT label='16' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='17' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='17'
+++++++++++++++++++++++++STATIC_TEXT label='17' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='18' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='18'
+++++++++++++++++++++++++STATIC_TEXT label='18' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='19' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='19'
+++++++++++++++++++++++++STATIC_TEXT label='19' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='20' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='20'
+++++++++++++++++++++++++STATIC_TEXT label='20' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='21' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='21'
+++++++++++++++++++++++++STATIC_TEXT label='21' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='22' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='22'
+++++++++++++++++++++++++STATIC_TEXT label='22' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='23' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='23'
+++++++++++++++++++++++++STATIC_TEXT label='23' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='24' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='24'
+++++++++++++++++++++++++STATIC_TEXT label='24' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='25' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='25'
+++++++++++++++++++++++++STATIC_TEXT label='25' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='26' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='26'
+++++++++++++++++++++++++STATIC_TEXT label='26' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='27' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='27'
+++++++++++++++++++++++++STATIC_TEXT label='27' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='28' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='28'
+++++++++++++++++++++++++STATIC_TEXT label='28' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='29' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='29'
+++++++++++++++++++++++++STATIC_TEXT label='29' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='30' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='30'
+++++++++++++++++++++++++STATIC_TEXT label='30' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='31' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='31'
+++++++++++++++++++++++++STATIC_TEXT label='31' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='32' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='32'
+++++++++++++++++++++++++STATIC_TEXT label='32' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='33' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='33'
+++++++++++++++++++++++++STATIC_TEXT label='33' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='34' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='34'
+++++++++++++++++++++++++STATIC_TEXT label='34' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='35' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='35'
+++++++++++++++++++++++++STATIC_TEXT label='35' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='36' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='36'
+++++++++++++++++++++++++STATIC_TEXT label='36' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='37' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='37'
+++++++++++++++++++++++++STATIC_TEXT label='37' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='38' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='38'
+++++++++++++++++++++++++STATIC_TEXT label='38' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='39' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='39'
+++++++++++++++++++++++++STATIC_TEXT label='39' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='40' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='40'
+++++++++++++++++++++++++STATIC_TEXT label='40' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='41' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='41'
+++++++++++++++++++++++++STATIC_TEXT label='41' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='42' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='42'
+++++++++++++++++++++++++STATIC_TEXT label='42' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='43' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='43'
+++++++++++++++++++++++++STATIC_TEXT label='43' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='44' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='44'
+++++++++++++++++++++++++STATIC_TEXT label='44' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='45' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='45'
+++++++++++++++++++++++++STATIC_TEXT label='45' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='46' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='46'
+++++++++++++++++++++++++STATIC_TEXT label='46' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='47' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='47'
+++++++++++++++++++++++++STATIC_TEXT label='47' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='48' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='48'
+++++++++++++++++++++++++STATIC_TEXT label='48' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='49' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='49'
+++++++++++++++++++++++++STATIC_TEXT label='49' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='50' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='50'
+++++++++++++++++++++++++STATIC_TEXT label='50' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='51' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='51'
+++++++++++++++++++++++++STATIC_TEXT label='51' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='52' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='52'
+++++++++++++++++++++++++STATIC_TEXT label='52' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='53' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='53'
+++++++++++++++++++++++++STATIC_TEXT label='53' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='54' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='54'
+++++++++++++++++++++++++STATIC_TEXT label='54' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='55' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='55'
+++++++++++++++++++++++++STATIC_TEXT label='55' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='56' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='56'
+++++++++++++++++++++++++STATIC_TEXT label='56' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='57' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='57'
+++++++++++++++++++++++++STATIC_TEXT label='57' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='58' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='58'
+++++++++++++++++++++++++STATIC_TEXT label='58' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='59' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='59'
+++++++++++++++++++++++++STATIC_TEXT label='59' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='00' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='00'
+++++++++++++++++++++++++STATIC_TEXT label='00' actions='{DEFAULT}'
 ++++++++++++++++++++UNKNOWN focusable label='Milliseconds' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='100' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='100'
+++++++++++++++++++++++++STATIC_TEXT label='100' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='200' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='200'
+++++++++++++++++++++++++STATIC_TEXT label='200' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='300' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='300'
+++++++++++++++++++++++++STATIC_TEXT label='300' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='400' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='400'
+++++++++++++++++++++++++STATIC_TEXT label='400' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='500' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='500'
+++++++++++++++++++++++++STATIC_TEXT label='500' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='600' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='600'
+++++++++++++++++++++++++STATIC_TEXT label='600' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='700' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='700'
+++++++++++++++++++++++++STATIC_TEXT label='700' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='800' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='800'
+++++++++++++++++++++++++STATIC_TEXT label='800' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable selected label='922' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='922'
+++++++++++++++++++++++++STATIC_TEXT label='922' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='000' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='000'
+++++++++++++++++++++++++STATIC_TEXT label='000' actions='{DEFAULT}'
 ++++++++++++++++++++UNKNOWN focusable label='AM/PM' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable selected label='PM' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='PM'
+++++++++++++++++++++++++STATIC_TEXT label='PM' actions='{DEFAULT}'
 ++++++++++++++++++++++UNKNOWN focusable label='AM' actions='{DEFAULT}'
-++++++++++++++++++++++++STATIC_TEXT label='AM'
\ No newline at end of file
+++++++++++++++++++++++++STATIC_TEXT label='AM' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/isInteresting-expected-fuchsia.txt b/content/test/data/accessibility/html/isInteresting-expected-fuchsia.txt
index b9edbe85..4f4b4ae 100644
--- a/content/test/data/accessibility/html/isInteresting-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/isInteresting-expected-fuchsia.txt
@@ -6,9 +6,9 @@
 ++++++++++UNKNOWN label='A non focusable child of a control should not be '
 ++++++++++UNKNOWN label='interesting on Android'
 ++++++UNKNOWN actions='{DEFAULT}'
-++++++++STATIC_TEXT label='Div with click handler'
+++++++++STATIC_TEXT label='Div with click handler' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='Div with click handler'
 ++++++BUTTON label='I am interesting' actions='{DEFAULT}'
 ++++++++PARAGRAPH actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='I should not be interesting'
-++++++++++++UNKNOWN label='I should not be interesting'
\ No newline at end of file
+++++++++++STATIC_TEXT label='I should not be interesting' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='I should not be interesting'
diff --git a/content/test/data/accessibility/html/landmark-expected-fuchsia.txt b/content/test/data/accessibility/html/landmark-expected-fuchsia.txt
index 6b2350d5..23914f7 100644
--- a/content/test/data/accessibility/html/landmark-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/landmark-expected-fuchsia.txt
@@ -71,7 +71,7 @@
 ++++++++++UNKNOWN focusable label='Details' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='Details'
+++++++++++++STATIC_TEXT label='Details' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Details'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN hidden
@@ -125,7 +125,7 @@
 ++++++++++UNKNOWN focusable label='Details' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='Details'
+++++++++++++STATIC_TEXT label='Details' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Details'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN hidden
@@ -179,7 +179,7 @@
 ++++++++++UNKNOWN focusable label='Details' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='Details'
+++++++++++++STATIC_TEXT label='Details' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Details'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN hidden
@@ -233,7 +233,7 @@
 ++++++++++UNKNOWN focusable label='Details' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='Details'
+++++++++++++STATIC_TEXT label='Details' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Details'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN hidden
@@ -261,4 +261,4 @@
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN
 ++++++++++++STATIC_TEXT label='This should NOT have footer role.'
-++++++++++++++UNKNOWN label='This should NOT have footer role.'
\ No newline at end of file
+++++++++++++++UNKNOWN label='This should NOT have footer role.'
diff --git a/content/test/data/accessibility/html/link-inside-heading-expected-android-external.txt b/content/test/data/accessibility/html/link-inside-heading-expected-android-external.txt
index be266bc..ffff2e96 100644
--- a/content/test/data/accessibility/html/link-inside-heading-expected-android-external.txt
+++ b/content/test/data/accessibility/html/link-inside-heading-expected-android-external.txt
@@ -1,4 +1,4 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View text:"Link In Heading" clickable actions:[CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="heading", roleDescription="heading 1 link"]
 ++++View text:"null" contentDescription:"Link In Heading" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="heading 1 link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/link-inside-heading.html#"]
-++++++TextView text:"Link In Heading" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++TextView text:"Link In Heading" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/link-inside-heading-expected-fuchsia.txt b/content/test/data/accessibility/html/link-inside-heading-expected-fuchsia.txt
index 2a41a80..d29ef3b 100644
--- a/content/test/data/accessibility/html/link-inside-heading-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/link-inside-heading-expected-fuchsia.txt
@@ -3,5 +3,5 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN label='Link In Heading'
 ++++++++LINK focusable label='Link In Heading' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Link In Heading'
-++++++++++++UNKNOWN label='Link In Heading'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Link In Heading' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='Link In Heading'
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-fuchsia.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-fuchsia.txt
index 547f3c16..0c7ea42 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-fuchsia.txt
@@ -6,10 +6,10 @@
 ++++++++++STATIC_TEXT label='The dialog subtree should be the only text content in the accessibility tree. '
 ++++++++++++UNKNOWN label='The dialog subtree should be the only text content in the accessibility tree. '
 ++++++++++LINK focusable has_input_focus label='Link inside the dialog.' actions='{DEFAULT}'
-++++++++++++STATIC_TEXT label='Link inside the dialog.'
+++++++++++++STATIC_TEXT label='Link inside the dialog.' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Link inside the dialog.'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN hidden
 ++++++UNKNOWN hidden
 ++++++++STATIC_TEXT hidden label='No file chosen'
-++++++UNKNOWN hidden
\ No newline at end of file
+++++++UNKNOWN hidden
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-fuchsia.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-fuchsia.txt
index 118b3e89..d11f5ec 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-fuchsia.txt
@@ -12,6 +12,6 @@
 ++++++++STATIC_TEXT label='This is the now active dialog. Of course it should be in the tree. '
 ++++++++++UNKNOWN label='This is the now active dialog. Of course it should be in the tree. '
 ++++++++BUTTON focusable label='This is in the active dialog and should be in the tree.' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='This is in the active dialog and should be in the tree.'
+++++++++++STATIC_TEXT label='This is in the active dialog and should be in the tree.' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='This is in the active dialog and should be in the tree.'
-++++++UNKNOWN hidden
\ No newline at end of file
+++++++UNKNOWN hidden
diff --git a/content/test/data/accessibility/html/navigation-expected-android-external.txt b/content/test/data/accessibility/html/navigation-expected-android-external.txt
index 4419803f..b97e7fa8 100644
--- a/content/test/data/accessibility/html/navigation-expected-android-external.txt
+++ b/content/test/data/accessibility/html/navigation-expected-android-external.txt
@@ -1,4 +1,4 @@
 WebView focusable focused scrollable actions:[CLEAR_FOCUS, AX_FOCUS] bundle:[chromeRole="rootWebArea"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="navigation", roleDescription="navigation"]
 ++++View text:"null" contentDescription:"Don't click on me" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///fake/"]
-++++++TextView text:"Don't click on me" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
\ No newline at end of file
+++++++TextView text:"Don't click on me" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/navigation-expected-fuchsia.txt b/content/test/data/accessibility/html/navigation-expected-fuchsia.txt
index 7fb570cb..0bdadc6 100644
--- a/content/test/data/accessibility/html/navigation-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/navigation-expected-fuchsia.txt
@@ -3,5 +3,5 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++LINK focusable label='Don't click on me' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Don't click on me'
-++++++++++++UNKNOWN label='Don't click on me'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Don't click on me' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='Don't click on me'
diff --git a/content/test/data/accessibility/html/select-follows-focus-aria-selected-false-expected-fuchsia.txt b/content/test/data/accessibility/html/select-follows-focus-aria-selected-false-expected-fuchsia.txt
index 9e43d24..9fe0be05 100644
--- a/content/test/data/accessibility/html/select-follows-focus-aria-selected-false-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/select-follows-focus-aria-selected-false-expected-fuchsia.txt
@@ -3,10 +3,10 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++UNKNOWN focusable has_input_focus label='tab1' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab1'
+++++++++++STATIC_TEXT label='tab1' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab1'
 ++++++++UNKNOWN focusable label='tab2' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab2'
+++++++++++STATIC_TEXT label='tab2' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab2'
 ++++++STATIC_TEXT label='Done'
-++++++++UNKNOWN label='Done'
\ No newline at end of file
+++++++++UNKNOWN label='Done'
diff --git a/content/test/data/accessibility/html/select-follows-focus-expected-fuchsia.txt b/content/test/data/accessibility/html/select-follows-focus-expected-fuchsia.txt
index 02a623e..53d4418 100644
--- a/content/test/data/accessibility/html/select-follows-focus-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/select-follows-focus-expected-fuchsia.txt
@@ -3,13 +3,13 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++UNKNOWN focusable has_input_focus selected label='tab1' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab1'
+++++++++++STATIC_TEXT label='tab1' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab1'
 ++++++++UNKNOWN focusable selected label='tab2' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab2'
+++++++++++STATIC_TEXT label='tab2' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab2'
 ++++++++UNKNOWN focusable label='tab3' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab3'
+++++++++++STATIC_TEXT label='tab3' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab3'
 ++++++STATIC_TEXT label='Done'
-++++++++UNKNOWN label='Done'
\ No newline at end of file
+++++++++UNKNOWN label='Done'
diff --git a/content/test/data/accessibility/html/select-follows-focus-multiselect-expected-fuchsia.txt b/content/test/data/accessibility/html/select-follows-focus-multiselect-expected-fuchsia.txt
index bc25732..558f2634 100644
--- a/content/test/data/accessibility/html/select-follows-focus-multiselect-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/select-follows-focus-multiselect-expected-fuchsia.txt
@@ -3,13 +3,13 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++UNKNOWN focusable has_input_focus label='tab1' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab1'
+++++++++++STATIC_TEXT label='tab1' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab1'
 ++++++++UNKNOWN focusable selected label='tab2' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab2'
+++++++++++STATIC_TEXT label='tab2' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab2'
 ++++++++UNKNOWN focusable label='tab3' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='tab3'
+++++++++++STATIC_TEXT label='tab3' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='tab3'
 ++++++STATIC_TEXT label='Done'
-++++++++UNKNOWN label='Done'
\ No newline at end of file
+++++++++UNKNOWN label='Done'
diff --git a/content/test/data/accessibility/html/selectmenu-expected-fuchsia.txt b/content/test/data/accessibility/html/selectmenu-expected-fuchsia.txt
index 6fcc1822..4f9cf0b 100644
--- a/content/test/data/accessibility/html/selectmenu-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/selectmenu-expected-fuchsia.txt
@@ -5,7 +5,7 @@
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN focusable actions='{DEFAULT}' value='Option 1'
 ++++++++++++UNKNOWN actions='{DEFAULT}'
-++++++++++++++STATIC_TEXT label='Option 1'
+++++++++++++++STATIC_TEXT label='Option 1' actions='{DEFAULT}'
 ++++++++++++++++UNKNOWN label='Option 1'
 ++++++++++++UNKNOWN hidden
 ++++++++UNKNOWN hidden
@@ -13,7 +13,7 @@
 ++++++UNKNOWN
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN actions='{DEFAULT}' value='Custom selectmenu button'
-++++++++++++STATIC_TEXT label='Custom selectmenu button'
+++++++++++++STATIC_TEXT label='Custom selectmenu button' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Custom selectmenu button'
 ++++++++UNKNOWN hidden
-++++++++++UNKNOWN hidden
\ No newline at end of file
+++++++++++UNKNOWN hidden
diff --git a/content/test/data/accessibility/html/selectmenu-open-expected-fuchsia.txt b/content/test/data/accessibility/html/selectmenu-open-expected-fuchsia.txt
index 6f515e8a..814312c 100644
--- a/content/test/data/accessibility/html/selectmenu-open-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/selectmenu-open-expected-fuchsia.txt
@@ -4,10 +4,10 @@
 ++++++UNKNOWN
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN actions='{DEFAULT}' value='Custom selectmenu button'
-++++++++++++STATIC_TEXT label='Custom selectmenu button'
+++++++++++++STATIC_TEXT label='Custom selectmenu button' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Custom selectmenu button'
 ++++++++UNKNOWN hidden
 ++++++++++UNKNOWN actions='{DEFAULT}'
 ++++++++++++UNKNOWN focusable has_input_focus selected label='Option 1' actions='{DEFAULT}'
 ++++++++++++UNKNOWN focusable label='Option 2' actions='{DEFAULT}'
-++++++++++++UNKNOWN focusable label='Option 3' actions='{DEFAULT}'
\ No newline at end of file
+++++++++++++UNKNOWN focusable label='Option 3' actions='{DEFAULT}'
diff --git a/content/test/data/accessibility/html/span-expected-android-external.txt b/content/test/data/accessibility/html/span-expected-android-external.txt
index 009be53..5e8491b 100644
--- a/content/test/data/accessibility/html/span-expected-android-external.txt
+++ b/content/test/data/accessibility/html/span-expected-android-external.txt
@@ -4,30 +4,30 @@
 ++++TextView text:"E1. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"space" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++TextView text:"E2. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"space" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++TextView text:"E3. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++View text:"null" contentDescription:"space" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++View text:"null" contentDescription:"E4. Eat" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"E4. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"E4. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++View text:"null" contentDescription:"E5. Eat" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"E5. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"E5. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++View actions:[AX_FOCUS] bundle:[chromeRole="paragraph"]
 ++++View text:"null" contentDescription:"E6. Eat" clickable focusable actions:[FOCUS, CLICK, AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="link", clickableScore="300", roleDescription="link", targetUrl="file:///storage/emulated/0/chromium_tests_root/content/test/data/accessibility/html/span.html#"]
-++++++TextView text:"E6. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
+++++++TextView text:"E6. Eat" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText", clickableScore="100"]
 ++++TextView text:" " actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++++TextView text:"space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="staticText"]
 ++TextView text:"K1. Keep space" actions:[AX_FOCUS, NEXT, PREVIOUS] bundle:[chromeRole="paragraph"]
diff --git a/content/test/data/accessibility/html/span-expected-fuchsia.txt b/content/test/data/accessibility/html/span-expected-fuchsia.txt
index 9cf753be..e0ae7ff 100644
--- a/content/test/data/accessibility/html/span-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/span-expected-fuchsia.txt
@@ -26,7 +26,7 @@
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
 ++++++++LINK focusable label='space' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='space'
+++++++++++STATIC_TEXT label='space' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='space'
 ++++++PARAGRAPH
 ++++++++STATIC_TEXT label='E2. Eat'
@@ -34,7 +34,7 @@
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
 ++++++++LINK focusable label='space' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='space'
+++++++++++STATIC_TEXT label='space' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='space'
 ++++++PARAGRAPH
 ++++++++STATIC_TEXT label='E3. Eat'
@@ -42,11 +42,11 @@
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
 ++++++++LINK focusable label='space' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='space'
+++++++++++STATIC_TEXT label='space' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='space'
 ++++++PARAGRAPH
 ++++++++LINK focusable label='E4. Eat' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='E4. Eat'
+++++++++++STATIC_TEXT label='E4. Eat' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='E4. Eat'
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
@@ -54,7 +54,7 @@
 ++++++++++UNKNOWN label='space'
 ++++++PARAGRAPH
 ++++++++LINK focusable label='E5. Eat' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='E5. Eat'
+++++++++++STATIC_TEXT label='E5. Eat' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='E5. Eat'
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
@@ -62,7 +62,7 @@
 ++++++++++UNKNOWN label='space'
 ++++++PARAGRAPH
 ++++++++LINK focusable label='E6. Eat' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='E6. Eat'
+++++++++++STATIC_TEXT label='E6. Eat' actions='{DEFAULT}'
 ++++++++++++UNKNOWN label='E6. Eat'
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
@@ -117,4 +117,4 @@
 ++++++++STATIC_TEXT label=' '
 ++++++++++UNKNOWN label=' '
 ++++++++STATIC_TEXT label='space'
-++++++++++UNKNOWN label='space'
\ No newline at end of file
+++++++++++UNKNOWN label='space'
diff --git a/content/test/data/accessibility/html/sub-expected-fuchsia.txt b/content/test/data/accessibility/html/sub-expected-fuchsia.txt
index cd4f93c..304f4de 100644
--- a/content/test/data/accessibility/html/sub-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/sub-expected-fuchsia.txt
@@ -25,9 +25,9 @@
 ++++++++++UNKNOWN
 ++++++++++++LINK focusable label='2' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='better' actions='{DEFAULT}'
-++++++++++++++++STATIC_TEXT label='2'
+++++++++++++++++STATIC_TEXT label='2' actions='{DEFAULT}'
 ++++++++++++++++++UNKNOWN label='2'
 ++++++++++STATIC_TEXT label=' '
 ++++++++++++UNKNOWN label=' '
 ++++++++STATIC_TEXT label='O'
-++++++++++UNKNOWN label='O'
\ No newline at end of file
+++++++++++UNKNOWN label='O'
diff --git a/content/test/data/accessibility/html/summary-expected-fuchsia.txt b/content/test/data/accessibility/html/summary-expected-fuchsia.txt
index 0451e28..17df8ab0 100644
--- a/content/test/data/accessibility/html/summary-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/summary-expected-fuchsia.txt
@@ -6,7 +6,7 @@
 ++++++++++UNKNOWN focusable label='details tag' actions='{DEFAULT}'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='details tag'
+++++++++++++STATIC_TEXT label='details tag' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='details tag'
 ++++++++UNKNOWN hidden
 ++++++++++STATIC_TEXT hidden label='<newline>    '
@@ -19,11 +19,11 @@
 ++++++++++UNKNOWN focusable label='name' actions='{DEFAULT}' secondary_label='details #2'
 ++++++++++++LIST_ELEMENT_MARKER hidden
 ++++++++++++++STATIC_TEXT hidden label='%E2%96%B8 '
-++++++++++++STATIC_TEXT label='details #2'
+++++++++++++STATIC_TEXT label='details #2' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='details #2'
 ++++++++UNKNOWN hidden
 ++++++++++STATIC_TEXT hidden label='<newline>    '
 ++++++++++STATIC_TEXT hidden label='<newline>    '
 ++++++++++PARAGRAPH hidden
 ++++++++++++STATIC_TEXT hidden label='Paragraph#2'
-++++++++++STATIC_TEXT hidden label='<newline>  '
\ No newline at end of file
+++++++++++STATIC_TEXT hidden label='<newline>  '
diff --git a/content/test/data/accessibility/html/svg-style-element-expected-fuchsia.txt b/content/test/data/accessibility/html/svg-style-element-expected-fuchsia.txt
index c60e784..47438af 100644
--- a/content/test/data/accessibility/html/svg-style-element-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/svg-style-element-expected-fuchsia.txt
@@ -3,5 +3,5 @@
 ++++UNKNOWN hidden
 ++++++UNKNOWN
 ++++++++BUTTON focusable label='Kettle' actions='{DEFAULT}'
-++++++++++STATIC_TEXT label='Kettle'
-++++++++++++UNKNOWN label='Kettle'
\ No newline at end of file
+++++++++++STATIC_TEXT label='Kettle' actions='{DEFAULT}'
+++++++++++++UNKNOWN label='Kettle'
diff --git a/content/test/data/accessibility/html/transition-expected-fuchsia.txt b/content/test/data/accessibility/html/transition-expected-fuchsia.txt
index a7de07a1..9c685f0 100644
--- a/content/test/data/accessibility/html/transition-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/transition-expected-fuchsia.txt
@@ -2,7 +2,7 @@
 ++UNKNOWN hidden
 ++++UNKNOWN
 ++++++BUTTON focusable has_input_focus label='GrowButton' actions='{DEFAULT}'
-++++++++STATIC_TEXT label='GrowButton'
+++++++++STATIC_TEXT label='GrowButton' actions='{DEFAULT}'
 ++++++++++UNKNOWN label='GrowButton'
 ++++++STATIC_TEXT label='Done'
-++++++++UNKNOWN label='Done'
\ No newline at end of file
+++++++++UNKNOWN label='Done'
diff --git a/content/test/data/accessibility/html/ul-contenteditable-expected-fuchsia.txt b/content/test/data/accessibility/html/ul-contenteditable-expected-fuchsia.txt
index 656bafa..3899bea 100644
--- a/content/test/data/accessibility/html/ul-contenteditable-expected-fuchsia.txt
+++ b/content/test/data/accessibility/html/ul-contenteditable-expected-fuchsia.txt
@@ -6,10 +6,10 @@
 ++++++++++LIST_ELEMENT actions='{DEFAULT}' list_element_index=1
 ++++++++++++LIST_ELEMENT_MARKER label='%E2%80%A2 ' actions='{DEFAULT}'
 ++++++++++++++STATIC_TEXT hidden label='%E2%80%A2 '
-++++++++++++STATIC_TEXT label='Hello'
+++++++++++++STATIC_TEXT label='Hello' actions='{DEFAULT}'
 ++++++++++++++UNKNOWN label='Hello'
 ++++++++++LIST_ELEMENT actions='{DEFAULT}' list_element_index=2
 ++++++++++++LIST_ELEMENT_MARKER label='%E2%80%A2 ' actions='{DEFAULT}'
 ++++++++++++++STATIC_TEXT hidden label='%E2%80%A2 '
-++++++++++++STATIC_TEXT label='Bye'
-++++++++++++++UNKNOWN label='Bye'
\ No newline at end of file
+++++++++++++STATIC_TEXT label='Bye' actions='{DEFAULT}'
+++++++++++++++UNKNOWN label='Bye'
diff --git a/content/test/gpu/gpu_tests/context_lost_integration_test.py b/content/test/gpu/gpu_tests/context_lost_integration_test.py
index a34538a..b4e889b 100644
--- a/content/test/gpu/gpu_tests/context_lost_integration_test.py
+++ b/content/test/gpu/gpu_tests/context_lost_integration_test.py
@@ -14,6 +14,7 @@
 from gpu_tests import common_browser_args as cba
 from gpu_tests import common_typing as ct
 from gpu_tests import gpu_integration_test
+from gpu_tests import gpu_helper
 
 import gpu_path_util
 
@@ -542,7 +543,8 @@
     # notifications.
     time.sleep(3)
     self._NavigateAndWaitForLoad(test_path)
-    if not self._IsIntel(self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
+    if not gpu_helper.IsIntel(
+        self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
       self.fail('Test did not start up on low-power GPU')
     tab = self.tab
     tab.EvaluateJavaScript('runTest()')
@@ -563,7 +565,8 @@
     # notifications.
     time.sleep(3)
     self._NavigateAndWaitForLoad(test_path)
-    if not self._IsIntel(self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
+    if not gpu_helper.IsIntel(
+        self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
       self.fail('Test did not start up on low-power GPU')
     tab = self.tab
     tab.EvaluateJavaScript('runTest()')
@@ -584,7 +587,8 @@
     # notifications.
     time.sleep(3)
     self._NavigateAndWaitForLoad(test_path)
-    if not self._IsIntel(self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
+    if not gpu_helper.IsIntel(
+        self.browser.GetSystemInfo().gpu.devices[0].vendor_id):
       self.fail('Test did not start up on low-power GPU')
     tab = self.tab
     tab.EvaluateJavaScript('runTest()')
diff --git a/content/test/gpu/gpu_tests/gpu_helper.py b/content/test/gpu/gpu_tests/gpu_helper.py
index baf8ac2..6f815f3b 100644
--- a/content/test/gpu/gpu_tests/gpu_helper.py
+++ b/content/test/gpu/gpu_tests/gpu_helper.py
@@ -38,6 +38,14 @@
     'nvidia-corporation': 'nvidia',
 }
 
+VENDOR_AMD = 0x1002
+VENDOR_INTEL = 0x8086
+VENDOR_NVIDIA = 0x10DE
+
+INTEL_DEVICE_ID_MASK = 0xFF00
+INTEL_GEN_9 = {0x1900, 0x3100, 0x3E00, 0x5900, 0x5A00, 0x9B00}
+INTEL_GEN_12 = {0x4C00, 0x9A00, 0x4900, 0x4600, 0x4F00, 0x5600, 0xA700}
+
 
 def _ParseANGLEGpuVendorString(device_string: str) -> Optional[str]:
   if not device_string:
@@ -71,11 +79,11 @@
       angle_vendor_string = _ParseANGLEGpuVendorString(
           primary_gpu.device_string)
       vendor_id = primary_gpu.vendor_id
-      if vendor_id == 0x10DE:
+      if vendor_id == VENDOR_NVIDIA:
         return 'nvidia'
-      if vendor_id == 0x1002:
+      if vendor_id == VENDOR_AMD:
         return 'amd'
-      if vendor_id == 0x8086:
+      if vendor_id == VENDOR_INTEL:
         return 'intel'
       if angle_vendor_string:
         return angle_vendor_string.lower()
@@ -94,6 +102,19 @@
   return 0
 
 
+def IsIntel(vendor_id: int) -> bool:
+  return vendor_id == VENDOR_INTEL
+
+
+# Intel GPU architectures
+def IsIntelGen9(gpu_device_id: int) -> bool:
+  return gpu_device_id & INTEL_DEVICE_ID_MASK in INTEL_GEN_9
+
+
+def IsIntelGen12(gpu_device_id: int) -> bool:
+  return gpu_device_id & INTEL_DEVICE_ID_MASK in INTEL_GEN_12
+
+
 def GetGpuDriverVendor(gpu_info: tgi.GPUInfo) -> Optional[str]:
   if gpu_info:
     primary_gpu = gpu_info.devices[0]
diff --git a/content/test/gpu/gpu_tests/gpu_integration_test.py b/content/test/gpu/gpu_tests/gpu_integration_test.py
index eab0a18..ec4130f1 100644
--- a/content/test/gpu/gpu_tests/gpu_integration_test.py
+++ b/content/test/gpu/gpu_tests/gpu_integration_test.py
@@ -602,15 +602,11 @@
       self._RestartBrowser('Restarting browser to clear process crash count.')
     return retval
 
-  @staticmethod
-  def _IsIntel(vendor_id: int) -> bool:
-    return vendor_id == 0x8086
-
   def _IsIntelGPUActive(self) -> bool:
     gpu = self.browser.GetSystemInfo().gpu
     # The implementation of GetSystemInfo guarantees that the first entry in the
     # GPU devices list is the active GPU.
-    return self._IsIntel(gpu.devices[0].vendor_id)
+    return gpu_helper.IsIntel(gpu.devices[0].vendor_id)
 
   def _IsDualGPUMacLaptop(self) -> bool:
     if sys.platform != 'darwin':
@@ -623,11 +619,11 @@
       self.fail('Target machine must have a GPU')
     if len(gpu.devices) != 2:
       return False
-    if (self._IsIntel(gpu.devices[0].vendor_id)
-        and not self._IsIntel(gpu.devices[1].vendor_id)):
+    if (gpu_helper.IsIntel(gpu.devices[0].vendor_id)
+        and not gpu_helper.IsIntel(gpu.devices[1].vendor_id)):
       return True
-    if (not self._IsIntel(gpu.devices[0].vendor_id)
-        and self._IsIntel(gpu.devices[1].vendor_id)):
+    if (not gpu_helper.IsIntel(gpu.devices[0].vendor_id)
+        and gpu_helper.IsIntel(gpu.devices[1].vendor_id)):
       return True
     return False
 
@@ -830,11 +826,14 @@
             gpu_device_tag = '%s-%s' % (gpu_vendor, gpu_device_id)
           if ii == 0 or gpu_vendor != 'intel':
             gpu_tags.extend([gpu_vendor, gpu_device_tag])
-            # This acts as a way to add expectations for Intel Gen9 GPUs
-            # without resorting to the more generic "intel" tag.
-            if gpu_vendor == 'intel' and (gpu_device_id & 0xFF00) in (
-                0x1900, 0x3100, 0x3E00, 0x5900, 0x5A00, 0x9B00):
+          # This acts as a way to add expectations for Intel GPUs without
+          # resorting to the more generic "intel" tag.
+          if ii == 0 and gpu_vendor == 'intel':
+            if gpu_helper.IsIntelGen9(gpu_device_id):
               gpu_tags.extend(['intel-gen-9'])
+            elif gpu_helper.IsIntelGen12(gpu_device_id):
+              gpu_tags.extend(['intel-gen-12'])
+
       # all spaces and underscores in the tag will be replaced by dashes
       tags.extend([re.sub('[ _]', '-', tag) for tag in gpu_tags])
 
diff --git a/content/test/gpu/gpu_tests/test_expectations/cast_streaming_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/cast_streaming_expectations.txt
index 82c8166..e1aca64 100644
--- a/content/test/gpu/gpu_tests/test_expectations/cast_streaming_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/cast_streaming_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt
index d73a206..f785186ec 100644
--- a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
index 354626f..53a3e17d 100644
--- a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
index 0511b911..7e6de2e 100644
--- a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt
index 90b89bdc..72e10379 100644
--- a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt
index ee79f4c..df8caa2f 100644
--- a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt
index cc76028a..72b2bcf8 100644
--- a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index c17ef270..c80aadb 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt
index c5590b7..8554f4e 100644
--- a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
index 0511b911..7e6de2e 100644
--- a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
index ef9e62d..b6c8bd7 100644
--- a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
index d78f14d..e7df712 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
index c7f8943..959196eb 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
index ad7ef93..bc953189 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -26,8 +26,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/content/test/gpu/validate_tag_consistency.py b/content/test/gpu/validate_tag_consistency.py
index 3ba2cad0..1e207b8 100755
--- a/content/test/gpu/validate_tag_consistency.py
+++ b/content/test/gpu/validate_tag_consistency.py
@@ -39,8 +39,8 @@
 #         apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1
 #         arm
 #         google google-0xffff
-#         intel intel-gen-9 intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92
-#               intel-0x3e9b intel-0x5912 intel-0x9bc5
+#         intel intel-gen-9 intel-gen-12 intel-0xa2e intel-0xd26 intel-0xa011
+#               intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5
 #         nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184
 #         qualcomm ]
 # Architecture
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index 74bbc5d..46322f4e 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -1740,9 +1740,9 @@
   AUTOTESTPRIVATE_ISINPUTMETHODREADYFORTESTING = 1677,
   AUTOTESTPRIVATE_GETARCAPPKILLS = 1678,
   FILEMANAGERPRIVATE_OPENMANAGESYNCSETTINGS = 1679,
-  PASSWORDSPRIVATE_STARTAUTOMATEDPASSWORDCHANGE = 1680,
+  DELETED_PASSWORDSPRIVATE_STARTAUTOMATEDPASSWORDCHANGE = 1680,
   OFFSCREEN_CREATEDOCUMENT = 1681,
-  PASSWORDSPRIVATE_REFRESHSCRIPTSIFNECESSARY = 1682,
+  DELETED_PASSWORDSPRIVATE_REFRESHSCRIPTSIFNECESSARY = 1682,
   OFFSCREEN_CLOSEDOCUMENT = 1683,
   WMDESKSPRIVATE_SETWINDOWPROPERTIES = 1684,
   AUTOTESTPRIVATE_LAUNCHFILESAPPTOPATH = 1685,
diff --git a/gpu/command_buffer/service/dawn_service_memory_transfer_service.cc b/gpu/command_buffer/service/dawn_service_memory_transfer_service.cc
index 4f12f4d..635e58962 100644
--- a/gpu/command_buffer/service/dawn_service_memory_transfer_service.cc
+++ b/gpu/command_buffer/service/dawn_service_memory_transfer_service.cc
@@ -6,6 +6,7 @@
 
 #include "base/memory/raw_ptr.h"
 #include "gpu/command_buffer/common/dawn_memory_transfer_handle.h"
+#include "gpu/command_buffer/service/command_buffer_service.h"
 #include "gpu/command_buffer/service/common_decoder.h"
 
 namespace gpu {
@@ -16,8 +17,8 @@
 class ReadHandleImpl
     : public dawn::wire::server::MemoryTransferService::ReadHandle {
  public:
-  ReadHandleImpl(void* ptr, uint32_t size)
-      : ReadHandle(), ptr_(ptr), size_(size) {}
+  ReadHandleImpl(scoped_refptr<Buffer> buffer, void* ptr, uint32_t size)
+      : buffer_(std::move(buffer)), ptr_(ptr), size_(size) {}
 
   ~ReadHandleImpl() override = default;
 
@@ -44,6 +45,8 @@
   }
 
  private:
+  scoped_refptr<gpu::Buffer> buffer_;
+  // Pointer to client-visible shared memory owned by buffer_.
   raw_ptr<void> ptr_;
   uint32_t size_;
 };
@@ -51,8 +54,8 @@
 class WriteHandleImpl
     : public dawn::wire::server::MemoryTransferService::WriteHandle {
  public:
-  WriteHandleImpl(const void* ptr, uint32_t size)
-      : WriteHandle(), ptr_(ptr), size_(size) {}
+  WriteHandleImpl(scoped_refptr<Buffer> buffer, const void* ptr, uint32_t size)
+      : buffer_(std::move(buffer)), ptr_(ptr), size_(size) {}
 
   ~WriteHandleImpl() override = default;
 
@@ -82,7 +85,9 @@
   }
 
  private:
-  raw_ptr<const void> ptr_;  // Pointer to client-visible shared memory.
+  scoped_refptr<gpu::Buffer> buffer_;
+  // Pointer to client-visible shared memory owned by buffer_.
+  raw_ptr<const void> ptr_;
   uint32_t size_;
 };
 
@@ -111,13 +116,19 @@
   int32_t shm_id = handle->shm_id;
   uint32_t shm_offset = handle->shm_offset;
 
-  void* ptr = decoder_->GetAddressAndCheckSize(shm_id, shm_offset, size);
+  scoped_refptr<gpu::Buffer> buffer =
+      decoder_->command_buffer_service()->GetTransferBuffer(shm_id);
+  if (buffer == nullptr) {
+    return false;
+  }
+
+  void* ptr = buffer->GetDataAddress(shm_offset, size);
   if (ptr == nullptr) {
     return false;
   }
 
   DCHECK(read_handle);
-  *read_handle = new ReadHandleImpl(ptr, size);
+  *read_handle = new ReadHandleImpl(std::move(buffer), ptr, size);
 
   return true;
 }
@@ -139,13 +150,19 @@
   int32_t shm_id = handle->shm_id;
   uint32_t shm_offset = handle->shm_offset;
 
-  void* ptr = decoder_->GetAddressAndCheckSize(shm_id, shm_offset, size);
+  scoped_refptr<gpu::Buffer> buffer =
+      decoder_->command_buffer_service()->GetTransferBuffer(shm_id);
+  if (buffer == nullptr) {
+    return false;
+  }
+
+  const void* ptr = buffer->GetDataAddress(shm_offset, size);
   if (ptr == nullptr) {
     return false;
   }
 
   DCHECK(write_handle);
-  *write_handle = new WriteHandleImpl(ptr, size);
+  *write_handle = new WriteHandleImpl(std::move(buffer), ptr, size);
 
   return true;
 }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
index 2ea014a..5b2940b 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/strings/string_number_conversions.h"
+#include "build/build_config.h"
 #include "gpu/command_buffer/common/gles2_cmd_format.h"
 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
 #include "gpu/command_buffer/service/context_group.h"
@@ -267,15 +268,28 @@
                                           0,                    /* border */
                                           GL_RGBA, GL_UNSIGNED_BYTE);
   scoped_refptr<gl::GLImage> image(new gl::GLImageStub);
-  abstract_texture->BindImage(image.get(), GetParam());
+
+  // Invoke BindImage() in the way that is done in production on each platform
+  // (note that blundell@ will shortly be hardening the code to enforce that
+  // BindImage() is invoked only as expected on a per-platform basis).
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  abstract_texture->BindImage(image.get(), /*client_managed=*/false);
+#else
+  abstract_texture->BindImage(image.get(), /*client_managed=*/true);
+#endif
+
   auto* validating_texture =
       static_cast<ValidatingAbstractTextureImpl*>(abstract_texture.get());
   TextureRef* texture_ref = validating_texture->GetTextureRefForTesting();
   Texture::ImageState state;
   EXPECT_EQ(texture_ref->texture()->GetLevelImage(target, 0, &state),
             image.get());
-  EXPECT_EQ(state, GetParam() ? Texture::ImageState::BOUND
-                              : Texture::ImageState::UNBOUND);
+
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  EXPECT_EQ(state, Texture::ImageState::UNBOUND);
+#else
+  EXPECT_EQ(state, Texture::ImageState::BOUND);
+#endif
 
   EXPECT_CALL(*gl_, DeleteTextures(1, _)).Times(1).RetiresOnSaturation();
   abstract_texture.reset();
@@ -315,14 +329,36 @@
 
   // Attach an image and see if it works.
   scoped_refptr<gl::GLImage> image(new gl::GLImageStub);
-  abstract_texture->BindImage(image.get(), true);
+
+  // Invoke BindImage() in the way that is done in production on each platform
+  // (note that blundell@ will shortly be hardening the code to enforce that
+  // BindImage() is invoked only as expected on a per-platform basis).
+  // NOTE: For this test, it doesn't actually matter whether the image is
+  // client-managed or decoder-managed.
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  abstract_texture->BindImage(image.get(), /*client_managed=*/false);
+#else
+  abstract_texture->BindImage(image.get(), /*client_managed=*/true);
+#endif
+
   EXPECT_EQ(abstract_texture->GetImageForTesting(), image.get());
   // Binding an image should make the texture renderable.
   EXPECT_EQ(texture->SafeToRenderFrom(), true);
   EXPECT_EQ(texture->GetLevelImage(target, 0), image.get());
 
   // Unbinding should make it not renderable.
-  abstract_texture->BindImage(nullptr, false);
+
+  // Invoke BindImage() in the way that is done in production on each platform
+  // (note that blundell@ will shortly be hardening the code to enforce that
+  // BindImage() is invoked only as expected on a per-platform basis).
+  // NOTE: For this test, it doesn't actually matter whether the image is
+  // client-managed or decoder-managed.
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  abstract_texture->BindImage(nullptr, /*client_managed=*/false);
+#else
+  abstract_texture->BindImage(nullptr, /*client_managed=*/true);
+#endif
+
   EXPECT_EQ(texture->SafeToRenderFrom(), false);
   EXPECT_EQ(abstract_texture->GetImageForTesting(), nullptr);
 
diff --git a/gpu/command_buffer/service/shared_image/iosurface_image_backing.h b/gpu/command_buffer/service/shared_image/iosurface_image_backing.h
index 530abbb..abf9ecf 100644
--- a/gpu/command_buffer/service/shared_image/iosurface_image_backing.h
+++ b/gpu/command_buffer/service/shared_image/iosurface_image_backing.h
@@ -11,7 +11,6 @@
 #include "gpu/command_buffer/service/shared_image/shared_image_backing.h"
 #include "gpu/gpu_gles2_export.h"
 #include "ui/gl/gl_fence.h"
-#include "ui/gl/gl_image_memory.h"
 
 namespace gl {
 class ScopedEGLSurfaceIOSurface;
@@ -167,21 +166,6 @@
   scoped_refptr<gl::GLImage> gl_image_;
 };
 
-class MemoryIOSurfaceRepresentation : public MemoryImageRepresentation {
- public:
-  MemoryIOSurfaceRepresentation(SharedImageManager* manager,
-                                SharedImageBacking* backing,
-                                MemoryTypeTracker* tracker,
-                                scoped_refptr<gl::GLImageMemory> image_memory);
-  ~MemoryIOSurfaceRepresentation() override;
-
- protected:
-  SkPixmap BeginReadAccess() override;
-
- private:
-  scoped_refptr<gl::GLImageMemory> image_memory_;
-};
-
 // This class is only put into unique_ptrs and is never copied or assigned.
 class SharedEventAndSignalValue {
  public:
@@ -259,9 +243,6 @@
       SharedImageManager* manager,
       MemoryTypeTracker* tracker,
       scoped_refptr<SharedContextState> context_state) override;
-  std::unique_ptr<MemoryImageRepresentation> ProduceMemory(
-      SharedImageManager* manager,
-      MemoryTypeTracker* tracker) override;
   void Update(std::unique_ptr<gfx::GpuFence> in_fence) override;
 
   // IOSurfaceBackingEGLState::Client:
diff --git a/gpu/command_buffer/service/shared_image/iosurface_image_backing.mm b/gpu/command_buffer/service/shared_image/iosurface_image_backing.mm
index 89089cf..7e422ac 100644
--- a/gpu/command_buffer/service/shared_image/iosurface_image_backing.mm
+++ b/gpu/command_buffer/service/shared_image/iosurface_image_backing.mm
@@ -551,33 +551,6 @@
       tracker);
 }
 
-MemoryIOSurfaceRepresentation::MemoryIOSurfaceRepresentation(
-    SharedImageManager* manager,
-    SharedImageBacking* backing,
-    MemoryTypeTracker* tracker,
-    scoped_refptr<gl::GLImageMemory> image_memory)
-    : MemoryImageRepresentation(manager, backing, tracker),
-      image_memory_(std::move(image_memory)) {}
-
-MemoryIOSurfaceRepresentation::~MemoryIOSurfaceRepresentation() = default;
-
-SkPixmap MemoryIOSurfaceRepresentation::BeginReadAccess() {
-  return SkPixmap(backing()->AsSkImageInfo(), image_memory_->memory(),
-                  image_memory_->stride());
-}
-
-std::unique_ptr<MemoryImageRepresentation> IOSurfaceImageBacking::ProduceMemory(
-    SharedImageManager* manager,
-    MemoryTypeTracker* tracker) {
-  gl::GLImageMemory* image_memory =
-      gl::GLImageMemory::FromGLImage(image_.get());
-  if (!image_memory)
-    return nullptr;
-
-  return std::make_unique<MemoryIOSurfaceRepresentation>(
-      manager, this, tracker, base::WrapRefCounted(image_memory));
-}
-
 void IOSurfaceImageBacking::Update(std::unique_ptr<gfx::GpuFence> in_fence) {
   if (in_fence) {
     // TODO(dcastagna): Don't wait for the fence if the SharedImage is going
diff --git a/gpu/command_buffer/service/shared_image/shared_memory_image_backing.cc b/gpu/command_buffer/service/shared_image/shared_memory_image_backing.cc
index d05b532..95a5411 100644
--- a/gpu/command_buffer/service/shared_image/shared_memory_image_backing.cc
+++ b/gpu/command_buffer/service/shared_image/shared_memory_image_backing.cc
@@ -139,7 +139,8 @@
   if (!shared_memory_wrapper_.IsValid())
     return nullptr;
 
-  auto gl_image = base::MakeRefCounted<gl::GLImageMemory>(size());
+  auto gl_image =
+      base::WrapRefCounted<gl::GLImageMemory>(new gl::GLImageMemory(size()));
   if (!gl_image->Initialize(shared_memory_wrapper_.GetMemory(),
                             ToBufferFormat(format()),
                             shared_memory_wrapper_.GetStride(),
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd
index 1bbc835..d07655c 100644
--- a/ios/chrome/app/strings/ios_strings.grd
+++ b/ios/chrome/app/strings/ios_strings.grd
@@ -1279,6 +1279,9 @@
       <message name="IDS_IOS_KEYBOARD_CLOSE_TAB" desc="Title of the keyboard shortcut to close the current tab." meaning="Used as a command title in the iPad command menu.">
         Close Tab
       </message>
+      <message name="IDS_IOS_KEYBOARD_EDIT_BOOKMARK" desc="Title of the keyboard shortcut that edits the bookmark of the current page." meaning="Used as a command title in the iPad command menu.">
+        Edit Bookmark
+      </message>
       <message name="IDS_IOS_KEYBOARD_FIND" desc="The default title of the keyboard shortcut to search." meaning="Used as a command title in the iPad command menu.">
         Find
       </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_KEYBOARD_EDIT_BOOKMARK.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_KEYBOARD_EDIT_BOOKMARK.png.sha1
new file mode 100644
index 0000000..6f5060c
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_KEYBOARD_EDIT_BOOKMARK.png.sha1
@@ -0,0 +1 @@
+2ce031a54e354c5506cd3ae8d7eb4d84680411bf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index beba6b3..5287c79 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Gevorderd</translation>
 <translation id="1981118202195772574">Selfoon</translation>
 <translation id="1989112275319619282">Blaai deur</translation>
+<translation id="1990820278544963435">Soek</translation>
 <translation id="199425419756152024">Bekyk wagwoord</translation>
 <translation id="2010008505735295285">Herlaai</translation>
 <translation id="2015722694326466240">Om wagwoorde te sien, moet jy eers 'n wagkode op jou toestel stel.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">Werwe kan webkoekies gebruik om jou blaai-ervaring beter te maak, byvoorbeeld, om jou aangemeld te hou of om items in jou inkopiemandjie te onthou.
 
 Werwe kan webkoekies gebruik om jou blaai-aktiwiteit op verskillende werwe te sien, byvoorbeeld, om advertensies te personaliseer.</translation>
-<translation id="7966904497916178308">Standaardbeskerming is aan</translation>
 <translation id="7971521879845308059">Blokkeer opspringers</translation>
 <translation id="797413074872316787">Skakel sinkronisering aan om oor toestelle heen te sinkroniseer en te personaliseer.</translation>
 <translation id="7978018860671536736">3. Tik op AutoFill Passwords</translation>
@@ -1089,6 +1089,7 @@
 <translation id="9188680907066685419">Meld af uit bestuurde rekening</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> d. gelede</translation>
 <translation id="9203116392574189331">Oorgee</translation>
+<translation id="9219154867334666734">Soek oortjies …</translation>
 <translation id="9223358826628549784">Omvalverslag is gestuur.</translation>
 <translation id="941747855997058526">Kies wagwoord …</translation>
 <translation id="952704832371081537">Kanselleer</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index 2320fa7..80c46e15 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">ጣቢያዎች የአሰሳዎን ተሞክሮ ለማሻሻል፣ ለምሳሌ እርስዎ በመለያ እንደገቡ ለማቆየት ወይም በግዢ ጋሪዎ ውስጥ ንጥሎችን ለማስታወስ ኩኪዎችን መጠቀም ይችላሉ።
 
 ጣቢያዎች እርስዎ በተለያዩ ጣቢያዎች ላይ ያሉዎት የአሰሳ እንቅስቃሴን ለመመልከት፣ ለምሳሌ ማስታወቂያዎችን ግላዊነት ለማላበስ፣ ኩኪዎችን መጠቀም ይችላሉ።</translation>
-<translation id="7966904497916178308">መደበኛ ጥበቃ በርቷል</translation>
 <translation id="7971521879845308059">ብቅ-ባዮችን አግድ</translation>
 <translation id="797413074872316787">በመላ መሣሪያዎች ላይ ለማስመር እና ግላዊነትን ለማላበስ ስምረትን ያብሩ።</translation>
 <translation id="7978018860671536736">3. የይለፍ ቃላትን በራስ-ሙላን መታ ያድርጉ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index 91fc885..23084b01 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -576,6 +576,7 @@
 <translation id="5439599923922718668">المواقع الإلكترونية التي تزورها بشكلٍ متكرر</translation>
 <translation id="54401264925851789">معلومات أمان الصفحة</translation>
 <translation id="5443952882982198570">بطاقات الائتمان</translation>
+<translation id="5444892875087332195">الإشارات المرجعية</translation>
 <translation id="5457226814769348910">فتح نسخة بلا إنترنت</translation>
 <translation id="5489208564673669003">لإدارة ملفات تعريف الارتباط لجميع المواقع الإلكترونية، يمكنك الاطّلاع على <ph name="BEGIN_LINK" />إعدادات ملفات تعريف الارتباط<ph name="END_LINK" />.</translation>
 <translation id="5490005495580364134">حظر كل ملفات تعريف الارتباط (غير مُستحسَن)</translation>
@@ -929,7 +930,6 @@
 <translation id="7966516440812255683">يسمح هذا الإجراء للمواقع الإلكترونية باستخدام ملفات تعريف الارتباط لتحسين تجربة التصفُّح، مثل إبقائك مُسجِّلاً الدخول أو تذكُّر عناصر في سلة التسوق.
 
 يسمح هذا الإجراء للمواقع الإلكترونية باستخدام ملفات تعريف الارتباط للاطّلاع على نشاط التصفُّح الخاص بك على المواقع الإلكترونية المختلفة، وذلك لتقديم إعلانات مخصَّصة لك مثلاً.</translation>
-<translation id="7966904497916178308">ميزة الحماية العادية مفعَّلة.</translation>
 <translation id="7971521879845308059">حظر النوافذ المنبثقة</translation>
 <translation id="797413074872316787">للمزامنة والتخصيص على جميع الأجهزة، عليك تفعيل المزامنة.</translation>
 <translation id="7978018860671536736">‏3. النقر على AutoFill Passwords (الملء التلقائي لكلمات المرور)</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index bb13f912..92b18c30 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">ছাইটসমূহে আপোনাৰ ব্ৰাউজিঙৰ অভিজ্ঞতা উন্নত কৰিবলৈ কুকিসমূহ ব্যৱহাৰ কৰিব পাৰে, উদাহৰণস্বৰূপে, আপোনাক ছাইন ইন কৰি ৰাখিবলৈ অথবা আপোনাৰ শ্বপিং কার্টত থকা বস্তুবোৰ মনত ৰাখিবলৈ।
 
 আপুনি বিভিন্ন ছাইটসমূহত কৰা ব্ৰাউজিঙৰ কার্যকলাপ চাবলৈ ছাইটসমূহে কুকিসমূহ ব্যৱহাৰ কৰিব পাৰে, যেনে, বিজ্ঞাপন ব্যক্তিগতকৃত কৰিবলৈ।</translation>
-<translation id="7966904497916178308">মানক সুৰক্ষা অন আছে</translation>
 <translation id="7971521879845308059">পপ-আপ অৱৰোধ কৰক</translation>
 <translation id="797413074872316787">সকলো ডিভাইচতে ছিংক আৰু ব্যক্তিগতকৰণ কৰিবলৈ ছিংক কৰা সুবিধাটো অন কৰক।</translation>
 <translation id="7978018860671536736">৩) স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱা পাছৱৰ্ডত টিপক</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 444359e..d703190 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Saytlar baxış təcrübənizi yaxşılaşdırmaq üçün, məsələn, sizi daxil olmuş vəziyyətdə saxlamaq və ya alış-veriş səbətinizdəki elementləri yadda saxlamaq üçün kukilərdən istifadə edə bilər.
 
 Saytlar müxtəlif saytlarda baxış fəaliyyətinizi görmək üçün kukilərdən istifadə edə bilər (məsələn, reklamları fərdiləşdirmək üçün).</translation>
-<translation id="7966904497916178308">Standart qoruma aktivdir</translation>
 <translation id="7971521879845308059">Popupları bloklayın</translation>
 <translation id="797413074872316787">Cihazlarda sinxronizasiya etmək və fərdiləşdirmək üçün sinxronizasiyanı aktiv edin.</translation>
 <translation id="7978018860671536736">3. Parolların Avtomatik Doldurulmasına toxunun</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 659c1d54..1dec673 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Пашыраныя налады</translation>
 <translation id="1981118202195772574">Рэжым мабільнай прылады</translation>
 <translation id="1989112275319619282">Агляд</translation>
+<translation id="1990820278544963435">Пошук</translation>
 <translation id="199425419756152024">Праглядзець пароль</translation>
 <translation id="2010008505735295285">Перазагрузіць</translation>
 <translation id="2015722694326466240">Каб убачыць паролі, на прыладзе трэба спачатку задаць пароль.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">Сайты могуць выкарыстоўваць файлы cookie для паляпшэння сваёй функцыянальнасці: напрыклад, для захавання інфармацыі пра тое, што вы ўвайшлі ва ўліковы запіс, або каб запамінаць тавары ў кошыку.
 
 Сайты могуць выкарыстоўваць файлы cookie для адсочвання вашых дзеянняў у браўзеры на розных сайтах, напрыклад, каб персаналізаваць рэкламу.</translation>
-<translation id="7966904497916178308">Стандартная абарона ўключана</translation>
 <translation id="7971521879845308059">Блакіраваць усплывальныя вокны</translation>
 <translation id="797413074872316787">Каб сінхранізаваць даныя на некалькіх прыладах і персаналізаваць іх, уключыце сінхранізацыю.</translation>
 <translation id="7978018860671536736">3. Націсніце "Аўтазапаўненне пароляў"</translation>
@@ -1089,6 +1089,7 @@
 <translation id="9188680907066685419">Выйсці з уліковага запісу пад кіраваннем</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> сут таму</translation>
 <translation id="9203116392574189331">Перадача вэб-сайта</translation>
+<translation id="9219154867334666734">Пошук укладак…</translation>
 <translation id="9223358826628549784">Справаздача аб збоях адпраўлена.</translation>
 <translation id="941747855997058526">Выбраць пароль…</translation>
 <translation id="952704832371081537">Скасаваць</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 9777a53..8f7f2eb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">Сайтовете могат да използват „бисквитки“ с цел по-добро сърфиране, например за да оставате в профила си или за да запомнят артикулите в пазарската ви кошница.
 
 Сайтовете могат да използват „бисквитки“, за да следят активността ви при сърфиране в различни сайтове, например за да персонализират реклами.</translation>
-<translation id="7966904497916178308">Режимът за стандартна защита е включен</translation>
 <translation id="7971521879845308059">Изск. прозорци: Блокиране</translation>
 <translation id="797413074872316787">Включете синхронизирането, за да се възползвате от синхронизиране и персонализиране на всички устройства.</translation>
 <translation id="7978018860671536736">3. Докоснете „Автоматично попълване на паролите“.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 0091bfb..8b4ec5b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">আপনি যাতে সাইন-ইন হয়ে থাকতে পারেন তার ব্যবস্থা করা বা শপিং কার্টে আপনার বেছে নেওয়া আইটেমগুলি মনে রাখার মতো আপনার ব্রাউজিং অভিজ্ঞতা আরও ভাল করার জন্য সাইট কুকি ব্যবহার করতে পারবে।
 
 আপনার জন্য পছন্দমতো বিজ্ঞাপন বেছে নেওয়ার মতো বিভিন্ন ওয়েবসাইট জুড়ে আপনার ব্রাউজিং অ্যাক্টিভিটি দেখার জন্য সাইট কুকি ব্যবহার করতে পারবে।</translation>
-<translation id="7966904497916178308">'স্ট্যান্ডার্ড সুরক্ষা' ফিচারটি চালু করা আছে</translation>
 <translation id="7971521879845308059">পপ-আপগুলি অবরুদ্ধ করুন</translation>
 <translation id="797413074872316787">ডিভাইস জুড়ে সিঙ্ক করতে এবং নিজের মতো সাজিয়ে নিতে সিঙ্ক বিকল্পটি চালু করুন।</translation>
 <translation id="7978018860671536736">৩. অটোফিল পাসওয়ার্ড বিকল্পে ট্যাপ করুন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index b14b914..c412262 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Napredno</translation>
 <translation id="1981118202195772574">Mobilni uređaj</translation>
 <translation id="1989112275319619282">Pregledaj</translation>
+<translation id="1990820278544963435">Traženje</translation>
 <translation id="199425419756152024">Prikaži lozinku</translation>
 <translation id="2010008505735295285">Ponovo učitaj</translation>
 <translation id="2015722694326466240">Postavite šifru na uređaju da vidite lozinke.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Trenutna web lokacija</translation>
 <translation id="7537586195939242955">Žao nam je, pristupna riječ trenutačno se ne može instalirati u Passbook.</translation>
 <translation id="7553234618121028547">Da isključite, otvorite <ph name="BEGIN_LINK" />Postavke<ph name="END_LINK" /> i idite u Opcije lozinke.</translation>
+<translation id="7554645225856321710">Zatvori sve</translation>
 <translation id="7554791636758816595">Nova kartica</translation>
 <translation id="7561196759112975576">Uvijek</translation>
 <translation id="7583004045319035904">Koristite <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> da otključate svoje anonimne kartice.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Web lokacije mogu koristiti kolačiće da poboljšaju vaše iskustvo pregledanja, naprimjer, da ostanete prijavljeni ili da stavke u kolicima za kupovinu ostanu sačuvane.
 
 Web lokacije mogu koristiti kolačiće da vide vašu aktivnost pregledanja na različitim web lokacijama, naprimjer, radi personaliziranja oglasa.</translation>
-<translation id="7966904497916178308">Standardna zaštita je uključena</translation>
 <translation id="7971521879845308059">Blokiranje skočnih prozora</translation>
 <translation id="797413074872316787">Uključite sinhronizaciju da vršite sinhronizaciju i personalizaciju na svim uređajima.</translation>
 <translation id="7978018860671536736">3. Dodirnite Automatsko popunjavanje lozinki</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Odjava s upravljanog računa</translation>
 <translation id="9200875785104711666">Prije <ph name="TIME" /> dan/a</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Pretraživanje kartica…</translation>
 <translation id="9223358826628549784">Izvještaj o padovima aplikacije je poslan.</translation>
 <translation id="941747855997058526">Odaberite lozinku...</translation>
 <translation id="952704832371081537">Otkaži</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 4b478da..725002c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -874,6 +874,7 @@
 <translation id="7531345132340165516">Lloc web actual</translation>
 <translation id="7537586195939242955">No es pot instal·lar el passi a Passbook en aquest moment.</translation>
 <translation id="7553234618121028547">Per desactivar aquesta funció, obre <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" /> i ves a Opcions de contrasenya.</translation>
+<translation id="7554645225856321710">Tanca-ho tot</translation>
 <translation id="7554791636758816595">Pestanya nova</translation>
 <translation id="7561196759112975576">Sempre</translation>
 <translation id="7583004045319035904">Utilitza <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> per desbloquejar les pestanyes d'incògnit.</translation>
@@ -927,7 +928,6 @@
 <translation id="7966516440812255683">Els llocs web poden fer servir galetes per millorar la teva experiència de navegació, per exemple, per mantenir la teva sessió iniciada o per recordar els elements que tens al carretó electrònic.
 
 Els llocs web poden fer servir galetes per veure la teva activitat de navegació en diferents llocs web, per exemple, per personalitzar els anuncis.</translation>
-<translation id="7966904497916178308">Està activada la protecció estàndard</translation>
 <translation id="7971521879845308059">Bloqueig de finestres emerg.</translation>
 <translation id="797413074872316787">Per sincronitzar i personalitzar el contingut en tots els dispositius, activa la sincronització.</translation>
 <translation id="7978018860671536736">3. Toca Emplenament automàtic de contrasenyes.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 65964222..934fa85 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Rozšířená nastavení</translation>
 <translation id="1981118202195772574">Mobil</translation>
 <translation id="1989112275319619282">Procházet</translation>
+<translation id="1990820278544963435">Najít</translation>
 <translation id="199425419756152024">Zobrazit heslo</translation>
 <translation id="2010008505735295285">Načíst znovu</translation>
 <translation id="2015722694326466240">Chcete-li zobrazit hesla, musíte nejdříve na zařízení nastavit heslo.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Aktuální web</translation>
 <translation id="7537586195939242955">Pass v této chvíli do aplikace Passbook nelze nainstalovat.</translation>
 <translation id="7553234618121028547">Tuto funkci vypnete tak, že otevřete <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" /> a přejdete na Volby hesel.</translation>
+<translation id="7554645225856321710">Zavřít vše</translation>
 <translation id="7554791636758816595">Nová karta</translation>
 <translation id="7561196759112975576">Vždy</translation>
 <translation id="7583004045319035904">Anonymní karty odemknete pomocí <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Weby mohou používat soubory cookie ke zlepšování prostředí při prohlížení, například si pomocí nich mohou pamatovat vaše přihlášení a položky v nákupním košíku.
 
 Weby pomocí souborů cookie mohou sledovat vaši aktivitu prohlížení na různých webech, například k personalizaci reklam.</translation>
-<translation id="7966904497916178308">Je zapnutá standardní ochrana</translation>
 <translation id="7971521879845308059">Blokování oken</translation>
 <translation id="797413074872316787">Pokud chcete synchronizovat a přizpůsobit různá zařízení, zapněte synchronizaci.</translation>
 <translation id="7978018860671536736">3. Klepněte na Automatické vyplnění hesel.</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Odhlásit se ze spravovaného účtu</translation>
 <translation id="9200875785104711666">před <ph name="TIME" /> d</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Hledat karty…</translation>
 <translation id="9223358826628549784">Zpráva o selhání byla odeslána.</translation>
 <translation id="941747855997058526">Vybrat heslo…</translation>
 <translation id="952704832371081537">Zrušit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 6e06c3e..cb23f9a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Gall gwefannau ddefnyddio cwcis i wella'ch profiad pori, er enghraifft, i'ch cadw bod wedi'ch mewngofnodi neu i gofio eitemau yn eich basged siopa.
 
 Gall gwefannau ddefnyddio cwcis i weld eich gweithgarwch pori ar draws gwahanol wefannau, er enghraifft, i bersonoleiddio hysbysebion.</translation>
-<translation id="7966904497916178308">Mae amddiffyniad safonol wedi'i droi ymlaen</translation>
 <translation id="7971521879845308059">Rhwystro ffenestri naid</translation>
 <translation id="797413074872316787">I gysoni a phersonoleiddio ar draws dyfeisiau, trowch gysoni ymlaen.</translation>
 <translation id="7978018860671536736">3. Tapiwch Awtolenwi Cyfrineiriau</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 7a3cbd11..dab843b6a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Websites kan bruge cookies til at forbedre din browseroplevelse ved f.eks. at sørge for, at du forbliver logget ind, eller ved at huske varerne i din kurv.
 
 Websites kan bruge cookies til at se din browseraktivitet på forskellige websites for f.eks. at tilpasse annoncer.</translation>
-<translation id="7966904497916178308">Standardbeskyttelse er aktiveret</translation>
 <translation id="7971521879845308059">Bloker pop op-vinduer</translation>
 <translation id="797413074872316787">Aktivér synkronisering for at synkronisere og tilpasse på alle dine enheder.</translation>
 <translation id="7978018860671536736">3. Tryk på Autoudfyld adgangskoder</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 9687d50df..4cd3527c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -283,6 +283,7 @@
 <translation id="3153862085237805241">Karte speichern</translation>
 <translation id="3157387275655328056">Zur Leseliste hinzufügen</translation>
 <translation id="3157684681743766797">Alle markieren…</translation>
+<translation id="315778507796115851">Verlauf</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">Du kannst gespeicherte Passwörter auch auf deinen anderen Geräten verwenden.</translation>
 <translation id="3175081911749765310">Webdienste</translation>
@@ -927,7 +928,6 @@
 <translation id="7966516440812255683">Websites können Cookies verwenden, um dir das Surfen zu erleichtern; zum Beispiel, damit du angemeldet bleibst oder Artikel in deinem Einkaufswagen gespeichert bleiben.
 
 Websites können Cookies verwenden, um deine Browseraktivitäten auf anderen Websites zu sehen und beispielsweise zur Personalisierung von Werbung zu nutzen.</translation>
-<translation id="7966904497916178308">Standardschutz ist aktiviert</translation>
 <translation id="7971521879845308059">Pop-ups blockieren</translation>
 <translation id="797413074872316787">Aktiviere die Synchronisierung, um geräteübergreifend zu synchronisieren und zu personalisieren.</translation>
 <translation id="7978018860671536736">3. Tippe auf „Passwörter automatisch ausfüllen lassen“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 57f626f..9521845 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Σύνθετες</translation>
 <translation id="1981118202195772574">Για κινητό</translation>
 <translation id="1989112275319619282">Περιήγηση</translation>
+<translation id="1990820278544963435">Εύρεση</translation>
 <translation id="199425419756152024">Προβ. κωδ. πρόσ.</translation>
 <translation id="2010008505735295285">Επανάληψη φόρτωσης</translation>
 <translation id="2015722694326466240">Για να δείτε τους κωδικούς πρόσβασης, θα πρέπει πρώτα να ορίσετε έναν κωδικό πρόσβασης για τη συσκευή σας.</translation>
@@ -929,7 +930,6 @@
 <translation id="7966516440812255683">Οι ιστότοποι μπορούν να χρησιμοποιούν cookie για να βελτιώσουν την εμπειρία περιήγησής σας, για παράδειγμα, για να παραμείνετε συνδεδεμένοι ή να διατηρηθούν τα προϊόντα στο καλάθι αγορών σας.
 
 Οι ιστότοποι μπορούν να χρησιμοποιούν cookie για να βλέπουν τη δραστηριότητα περιήγησής σας σε διαφορετικούς ιστοτόπους, για παράδειγμα, για την εξατομίκευση των διαφημίσεων.</translation>
-<translation id="7966904497916178308">Η Βασική προστασία είναι ενεργή.</translation>
 <translation id="7971521879845308059">Αποκ. αναδυόμ.</translation>
 <translation id="797413074872316787">Για συγχρονισμό και εξατομίκευση σε διάφορες συσκευές, ενεργοποιήστε τον συγχρονισμό.</translation>
 <translation id="7978018860671536736">3. Πατήστε Αυτόματη συμπλήρωση κωδικών πρόσβασης</translation>
@@ -1090,6 +1090,7 @@
 <translation id="9188680907066685419">Αποσύνδεση από διαχειριζόμενο λογαριασμό</translation>
 <translation id="9200875785104711666">Πριν από <ph name="TIME" /> ημ.</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Αναζήτηση στις καρτέλες…</translation>
 <translation id="9223358826628549784">Η αναφορά σφάλματος εστάλη.</translation>
 <translation id="941747855997058526">Επιλογή κωδικού πρόσβασης…</translation>
 <translation id="952704832371081537">Ακύρωση</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index 0a12b6db..5c3ddc8b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Advanced</translation>
 <translation id="1981118202195772574">Mobile</translation>
 <translation id="1989112275319619282">Browse</translation>
+<translation id="1990820278544963435">Find</translation>
 <translation id="199425419756152024">View password</translation>
 <translation id="2010008505735295285">Reload</translation>
 <translation id="2015722694326466240">To see passwords, you must first set a passcode on your device.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Current site</translation>
 <translation id="7537586195939242955">Sorry, your Pass cannot be installed to Passbook at this time.</translation>
 <translation id="7553234618121028547">To turn off, open <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> and go to Password options.</translation>
+<translation id="7554645225856321710">Close all</translation>
 <translation id="7554791636758816595">New Tab</translation>
 <translation id="7561196759112975576">Always</translation>
 <translation id="7583004045319035904">Use <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> to unlock your incognito tabs.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Sites can use cookies to improve your browsing experience, for example, to keep you signed in or to remember items in your shopping basket.
 
 Sites can use cookies to see your browsing activity across different sites, for example, to personalise ads.</translation>
-<translation id="7966904497916178308">Standard protection is on</translation>
 <translation id="7971521879845308059">Block Pop-ups</translation>
 <translation id="797413074872316787">To sync and personalise across devices, turn on sync.</translation>
 <translation id="7978018860671536736">3. Tap auto-fill passwords</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Sign out of managed account</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> d ago</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Search Tabs…</translation>
 <translation id="9223358826628549784">Crash report sent.</translation>
 <translation id="941747855997058526">Select password…</translation>
 <translation id="952704832371081537">Cancel</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index f72b813..ab70b0b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Los sitios pueden usar cookies para mejorar la experiencia de navegación, por ejemplo, para mantener el acceso a ellos o recordar artículos en el carrito de compras.
 
 También pueden usar cookies para ver la actividad de navegación en diferentes sitios, por ejemplo, con el fin de personalizar anuncios.</translation>
-<translation id="7966904497916178308">Se activó la protección estándar</translation>
 <translation id="7971521879845308059">Bloquear ventanas emergentes</translation>
 <translation id="797413074872316787">Para sincronizar diferentes dispositivos y personalizar tu experiencia, activa la sincronización.</translation>
 <translation id="7978018860671536736">3. Presiona Autorrelleno de contraseñas.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index d13ea1a..2d8aa2b3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Los sitios pueden usar cookies para mejorar tu experiencia de navegación; por ejemplo, para mantener tu sesión iniciada o recordar los artículos de tu carrito de la compra.
 
 Los sitios pueden usar cookies para ver tu actividad de navegación en otros sitios con el objetivo de, por ejemplo, personalizar anuncios.</translation>
-<translation id="7966904497916178308">La protección estándar está activada</translation>
 <translation id="7971521879845308059">Bloquear pop-ups</translation>
 <translation id="797413074872316787">Activa la sincronización para sincronizar y personalizar todos tus dispositivos.</translation>
 <translation id="7978018860671536736">3. Toca Autorrellenar contraseñas</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index b390683..5df8eeb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Saidid võivad kasutada küpsisefaile teie sirvimiskogemuse täiustamiseks, näiteks selleks, et hoida teid sisselogituna või jätta meelde teie ostukorvis olevad esemed.
 
 Saidid saavad küpsisefailide abil eri saitidel teie sirvimistegevust jälgida, näiteks reklaamide isikupärastamiseks.</translation>
-<translation id="7966904497916178308">Tavakaitse on sisse lülitatud</translation>
 <translation id="7971521879845308059">Hüpikute blok.</translation>
 <translation id="797413074872316787">Seadmete vahel sünkroonimiseks ja isikupärastamiseks lülitage sünkroonimine sisse.</translation>
 <translation id="7978018860671536736">3. Puudutage valikut AutoFill Passwords</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index 74445a89..4c9340b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Webguneek cookieak erabil ditzakete arakatze-zerbitzua hobetzeko; adibidez, saioa hasita mantentzeko edo erosketa-saskiko produktuak gogoratzeko.
 
 Webguneek cookieak erabil ditzakete beste webguneetan egiten dituzun arakatze-jarduerak ikusteko, hala nola iragarkiak pertsonalizatzeko.</translation>
-<translation id="7966904497916178308">Babes estandarra dago aktibatuta</translation>
 <translation id="7971521879845308059">Blokeatu leihoak</translation>
 <translation id="797413074872316787">Gailu guztiak sinkronizatu eta pertsonalizatzeko, aktibatu sinkronizazioa.</translation>
 <translation id="7978018860671536736">3. Sakatu AutoFill Passwords (pasahitzak automatikoki betetzeko aukera).</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 5fa83f8..dc04ca2b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">سایت‌ها می‌توانند از کوکی‌ها برای بهبود تجربه مرورتان استفاده کنند، مثلاً برای اینکه شما را درحالت واردشده به سیستم نگه دارند یا موارد موجود در سبد خریدتان را به‌خاطر بسپارند.
 
 سایت‌ها می‌توانند از کوکی‌های برای دیدن فعالیت مرور شما در سایت‌های مختلف و برای اهدافی مثل شخصی‌سازی آگهی‌ها استفاده کنند.</translation>
-<translation id="7966904497916178308">محافظت استاندارد روشن است</translation>
 <translation id="7971521879845308059">انسداد پنجره‌های بازشو</translation>
 <translation id="797413074872316787">برای همگام‌سازی و شخصی‌سازی در همه دستگاه‌ها، همگام‌سازی را روشن کنید.</translation>
 <translation id="7978018860671536736">‏۳. روی AutoFill Passwords (تکمیل خودکار گذرواژه‌ها) ضربه بزنید</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index 516c086f..f6cecc54 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -875,6 +875,7 @@
 <translation id="7531345132340165516">Nykyinen sivusto</translation>
 <translation id="7537586195939242955">Passiasi ei voi asentaa Passbookiin tällä hetkellä.</translation>
 <translation id="7553234618121028547">Jos haluat laittaa ominaisuuden pois päältä, avaa <ph name="BEGIN_LINK" />Asetukset<ph name="END_LINK" /> ja sitten Salasana-asetukset.</translation>
+<translation id="7554645225856321710">Sulje kaikki</translation>
 <translation id="7554791636758816595">Uusi välilehti</translation>
 <translation id="7561196759112975576">Aina</translation>
 <translation id="7583004045319035904">Valitse <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> incognito-välilehtien lukituksen avaamiseen.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">Sivustot voivat käyttää evästeitä selauskokemuksesi parantamiseen, esimerkiksi pitää sinut kirjautuneena tai muistaa ostoskorisi sisällön.
 
 Sivustot voivat nähdä selaustoimintaasi eri sivustoilta evästeiden kautta esim. personoidakseen mainoksia.</translation>
-<translation id="7966904497916178308">Perustason suojaus on päällä</translation>
 <translation id="7971521879845308059">Estä ponn.ikk.</translation>
 <translation id="797413074872316787">Ota synkronointi käyttöön, niin sisältö synkronoidaan ja personoidaan eri laitteilla.</translation>
 <translation id="7978018860671536736">3. Valitse Automaattisen täytön salasanat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 5873a29dd..e67e699d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Puwedeng gumamit ng cookies ang mga site para pahusayin ang iyong karanasan sa pag-browse, halimbawa, para mapanatili kang naka-sign in o para maalala ang mga item sa shopping cart mo.
 
 Puwedeng gumamit ng cookies ang mga site para makita ang iyong aktibidad sa pag-browse sa iba't ibang site, halimbawa, para mag-personalize ng mga ad.</translation>
-<translation id="7966904497916178308">Naka-on ang standard na proteksyon.</translation>
 <translation id="7971521879845308059">I-block ang Mga Pop-up</translation>
 <translation id="797413074872316787">Para mag-sync at mag-personalize sa mga device, i-on ang pag-sync.</translation>
 <translation id="7978018860671536736">3. I-tap ang I-autofill ang Mga Password</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index fc0c0562..f0ab792 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Options avancées</translation>
 <translation id="1981118202195772574">Mobile</translation>
 <translation id="1989112275319619282">Parcourir</translation>
+<translation id="1990820278544963435">Trouver</translation>
 <translation id="199425419756152024">Afficher le mot de passe</translation>
 <translation id="2010008505735295285">Actualiser</translation>
 <translation id="2015722694326466240">Pour afficher vos mots de passe, vous devez d'abord définir un mot de passe sur votre appareil.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Site actuel</translation>
 <translation id="7537586195939242955">Imposs. d'install. votre pass. pour Passbook pour le moment.</translation>
 <translation id="7553234618121028547">Pour désactiver cette fonctionnalité, ouvrez <ph name="BEGIN_LINK" />Paramètres<ph name="END_LINK" /> et accédez à Options de mot de passe.</translation>
+<translation id="7554645225856321710">Tout fermer</translation>
 <translation id="7554791636758816595">Nouvel onglet</translation>
 <translation id="7561196759112975576">Toujours</translation>
 <translation id="7583004045319035904">Utiliser <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> pour déverrouiller vos onglets de navigation privée.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Les sites peuvent utiliser des témoins afin d'améliorer votre expérience de navigation, par exemple en vous permettant de rester connecté ou en mémorisant des articles de votre panier d'achats.
 
 Les sites peuvent utiliser des témoins afin de voir votre activité de navigation sur l'ensemble des différents sites (par exemple, pour personnaliser les annonces).</translation>
-<translation id="7966904497916178308">La protection standard est activée</translation>
 <translation id="7971521879845308059">Bloq fen contex</translation>
 <translation id="797413074872316787">Pour profiter de la synchronisation et d'une expérience personnalisée sur tous vos appareils, activez la synchronisation.</translation>
 <translation id="7978018860671536736">3. Touchez Remplir automatiquement les mots de passe</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Se déconnecter du compte géré</translation>
 <translation id="9200875785104711666">il y a <ph name="TIME" /> j</translation>
 <translation id="9203116392574189331">Transférer</translation>
+<translation id="9219154867334666734">Rechercher des onglets…</translation>
 <translation id="9223358826628549784">Rapport de plantage envoyé.</translation>
 <translation id="941747855997058526">Sélectionner un mot de passe…</translation>
 <translation id="952704832371081537">Annuler</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index f1b3ca1..f872b7d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">Les sites peuvent utiliser des cookies pour améliorer votre expérience de navigation (par exemple, pour maintenir votre connexion ou mémoriser les articles de votre panier).
 
 Ils peuvent également s'en servir pour voir votre activité de navigation sur l'ensemble des différents sites (par exemple, pour personnaliser les annonces).</translation>
-<translation id="7966904497916178308">La protection standard est activée</translation>
 <translation id="7971521879845308059">Bloquer les pop-ups</translation>
 <translation id="797413074872316787">Activez la synchronisation pour accéder à vos données et les personnaliser sur tous vos appareils.</translation>
 <translation id="7978018860671536736">3. Appuyez sur "Saisir automatiquement les mots de passe"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 9156811..8182a69c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Os sitios poden utilizar cookies para mellorar a túa experiencia de navegación a través de funcións como manter a sesión iniciada ou lembrar artigos da túa cesta da compra.
 
 Tamén poden utilizalas para ver a túa actividade de navegación en varios sitios (por exemplo, co fin de personalizar os anuncios).</translation>
-<translation id="7966904497916178308">A protección estándar está activada</translation>
 <translation id="7971521879845308059">Bloq. ventás em.</translation>
 <translation id="797413074872316787">Para sincronizar e personalizar o contido de todos os teus dispositivos, activa a sincronización.</translation>
 <translation id="7978018860671536736">3. Toca AutoFill Passwords (Autocompletar contrasinais)</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index f1c2cf1..9706ec6c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">વિગતવાર</translation>
 <translation id="1981118202195772574">મોબાઇલ</translation>
 <translation id="1989112275319619282">બ્રાઉઝ કરો</translation>
+<translation id="1990820278544963435">શોધો</translation>
 <translation id="199425419756152024">પાસવર્ડ જુઓ</translation>
 <translation id="2010008505735295285">ફરીથી લોડ કરો</translation>
 <translation id="2015722694326466240">પાસવર્ડ જોવા માટે, તમારે સૌથી પહેલા તમારા ઉપકરણ પર એક પાસકોડ સેટ કરવો આવશ્યક છે.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">સાઇટ તમને વધુ સારો બ્રાઉઝિંગ અનુભવ આપવા, ઉદાહરણ તરીકે, તમને સાઇન ઇન કરીને રાખવા અથવા તમારા શૉપિંગ કાર્ટની આઇટમ યાદ રાખવા માટે, કુકીનો ઉપયોગ કરી શકે છે.
 
 સાઇટ વિભિન્ન સાઇટ પરની તમારી બ્રાઉઝિંગ પ્રવૃત્તિ જોવા માટે કુકીનો ઉપયોગ કરી શકે છે, ઉદાહરણ તરીકે, મનગમતી જાહેરાતો બનાવવા માટે.</translation>
-<translation id="7966904497916178308">માનક સુરક્ષા ચાલુ છે</translation>
 <translation id="7971521879845308059">પૉપ-અપ્સ અવરોધિત કરો</translation>
 <translation id="797413074872316787">એકથી વધુ ડિવાઇસને સિંક અને મનગમતા બનાવવા માટે, સિંકની સુવિધા ચાલુ કરો.</translation>
 <translation id="7978018860671536736">3. પાસવર્ડ માટે ઑટોમૅટિક રીતે ભરવાની સુવિધા પર ટૅપ કરો</translation>
@@ -1089,6 +1089,7 @@
 <translation id="9188680907066685419">મેનેજ થયેલા એકાઉન્ટમાંથી સાઇન આઉટ કરો</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> દિવસ પહેલાં</translation>
 <translation id="9203116392574189331">હેન્ડઓફ</translation>
+<translation id="9219154867334666734">ટૅબ શોધો…</translation>
 <translation id="9223358826628549784">ક્રૅશ રિપોર્ટ મોકલ્યો.</translation>
 <translation id="941747855997058526">પાસવર્ડ પસંદ કરો...</translation>
 <translation id="952704832371081537">રદ કરો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 1674f26f..747ca479 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">साइटें आपके ब्राउज़ करने के अनुभव को बेहतर बनाने के लिए कुकी का इस्तेमाल कर सकती हैं. जैसे कि आपको साइन इन बनाए रखने के लिए या आपने शॉपिंग कार्ट में जो आइटम सेव किए हैं उन्हें याद रखने के लिए.
 
 साइटें, अलग-अलग साइटों पर की गई आपकी ब्राउज़िंग गतिविधियों के बारे में जानने के लिए, कुकी इस्तेमाल कर सकती हैं. जैसे, दर्शकों की पसंद को ध्यान में रखकर विज्ञापन दिखाने के लिए.</translation>
-<translation id="7966904497916178308">सामान्य सुरक्षा की सुविधा चालू है</translation>
 <translation id="7971521879845308059">पॉप-अप अवरोधित करें</translation>
 <translation id="797413074872316787">सभी डिवाइसों पर सिंक करने और अपने हिसाब से बनाने के लिए, सिंक की सुविधा चालू करें.</translation>
 <translation id="7978018860671536736">3. पासवर्ड अपने-आप भरने की सुविधा पर टैप करें</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index a0dafe85..3eacd23 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Napredno</translation>
 <translation id="1981118202195772574">Mobilni uređaj</translation>
 <translation id="1989112275319619282">Pregledaj</translation>
+<translation id="1990820278544963435">Traženje</translation>
 <translation id="199425419756152024">Prikaži zaporku</translation>
 <translation id="2010008505735295285">Ponovno učitaj</translation>
 <translation id="2015722694326466240">Da biste vidjeli zaporke, najprije morate postaviti šifru zaporke na uređaju.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Trenutačna web-lokacija</translation>
 <translation id="7537586195939242955">Žao nam je, pristupna riječ trenutačno se ne može instalirati u Passbook.</translation>
 <translation id="7553234618121028547">Da biste isključili značajku, otvorite <ph name="BEGIN_LINK" />Postavke<ph name="END_LINK" />, a zatim Opcije zaporke.</translation>
+<translation id="7554645225856321710">Zatvori sve</translation>
 <translation id="7554791636758816595">Nova kartica</translation>
 <translation id="7561196759112975576">Uvijek</translation>
 <translation id="7583004045319035904">Koristite <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> za otključavanje anonimnih kartica.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Web-lokacije mogu upotrebljavati kolačiće za poboljšanje vašeg doživljaja pregledavanja, primjerice da biste ostali prijavljeni ili da bi stavke u vašoj košarici ostale zapamćene.
 
 Web-lokacije mogu upotrebljavati kolačiće za uvid u vašu aktivnost pregledavanja na različitim web-lokacijama, primjerice radi prilagođavanja oglasa.</translation>
-<translation id="7966904497916178308">Uključena je Standardna zaštita</translation>
 <translation id="7971521879845308059">Blokiraj skočne</translation>
 <translation id="797413074872316787">Da biste sinkronizirali i prilagodili više uređaja, uključite sinkronizaciju.</translation>
 <translation id="7978018860671536736">3. Dodirnite Automatsko popunjavanje zaporki</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Odjava s upravljanog računa</translation>
 <translation id="9200875785104711666">Prije ovoliko dana: <ph name="TIME" /></translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Pretraživanje kartica…</translation>
 <translation id="9223358826628549784">Izvješće o rušenju programa poslano je.</translation>
 <translation id="941747855997058526">Odaberite zaporku...</translation>
 <translation id="952704832371081537">Odustani</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 297fa44..e9819f45 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">A webhelyek használhatnak cookie-kat a böngészés megkönnyítésére; például arra, hogy bejelentkezve tartsák Önt, vagy megjegyezzék a kosarában lévő termékeket.
 
 A webhelyek használhatnak cookie-kat arra, hogy megfigyeljék más webhelyekre is vonatkozó böngészési tevékenységeit; ennek célja például a hirdetések személyre szabása lehet.</translation>
-<translation id="7966904497916178308">A Normál védelem be van kapcsolva</translation>
 <translation id="7971521879845308059">Pop-upok tiltása</translation>
 <translation id="797413074872316787">Az eszközök közötti szinkronizáláshoz és személyre szabáshoz kapcsolja be a szinkronizálást.</translation>
 <translation id="7978018860671536736">3. Koppintson az AutoFill Passwords (Jelszavak automatikus kitöltése) lehetőségre</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index e8ca691f..cc074f8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Կայքերը կարող են օգտագործել քուքիներ՝ ձեր աշխատանքն ավելի հարմարավետ դարձնելու, օրինակ, ձեր մուտքը հաշիվ հիշելու կամ ձեր ընտրած ապրանքները զամբյուղում պահելու համար։
 
 Կայքերը կարող են օգտագործել քուքիներ՝ դիտարկիչում ձեր գործողությունները տեսնելու համար, օրինակ՝ գովազդի անհատականացման նպատակով։</translation>
-<translation id="7966904497916178308">Սովորական պաշտպանությունը միացված է</translation>
 <translation id="7971521879845308059">Արգելափակել ելնող պատուհանները</translation>
 <translation id="797413074872316787">Բոլոր սարքերում տվյալները համաժամացնելու և անհատականացնելու համար միացրեք համաժամացումը։</translation>
 <translation id="7978018860671536736">3. Հպեք «Գաղտնաբառերի ինքնալրացում»։</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index b8fc817..6de31bc6c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Situs dapat menggunakan cookie untuk menyempurnakan pengalaman penjelajahan Anda, misalnya untuk membuat Anda tetap login atau untuk mengingat item di keranjang belanja Anda.
 
 Situs dapat menggunakan cookie untuk melihat aktivitas penjelajahan Anda di berbagai situs, misalnya untuk mempersonalisasi iklan.</translation>
-<translation id="7966904497916178308">Perlindungan standar aktif</translation>
 <translation id="7971521879845308059">Blokir Pop-up</translation>
 <translation id="797413074872316787">Untuk menyinkronkan dan mempersonalisasi berbagai perangkat, aktifkan sinkronisasi.</translation>
 <translation id="7978018860671536736">3. Ketuk AutoFill Passwords</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 4678e765..073ee2b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Vefsvæði geta notað fótspor til að bjóða þér upp á betri vefnotkun, til dæmis að vera áfram skráð(ur) inn eða muna hvað þú setur í innkaupakörfuna.
 
 Vefsvæði geta notað fótspor til að sjá vafranotkun þína á mismunandi vefsvæðum, til dæmis til að sérsníða auglýsingar.</translation>
-<translation id="7966904497916178308">Kveikt er á hefðbundinni vörn</translation>
 <translation id="7971521879845308059">Útiloka sprettiglugga</translation>
 <translation id="797413074872316787">Kveiktu á samstillingu til að hafa allt samstillt og sérsniðið í tækjunum þínum.</translation>
 <translation id="7978018860671536736">3. Ýttu á „Sjálfvirk útfylling aðgangsorða“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index e767d1fd..fbc054c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -283,6 +283,7 @@
 <translation id="3153862085237805241">Salva carta</translation>
 <translation id="3157387275655328056">Aggiungi all'elenco di lettura</translation>
 <translation id="3157684681743766797">Segna tutti come...</translation>
+<translation id="315778507796115851">Cronologia</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">Puoi usare le password salvate anche sugli altri tuoi dispositivi.</translation>
 <translation id="3175081911749765310">Servizi web</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">I siti possono utilizzare i cookie per migliorare la tua esperienza di navigazione, ad esempio per mantenere l'accesso o memorizzare gli articoli aggiunti al carrello.
 
 I siti possono utilizzare i cookie per conoscere la tua attività di navigazione su diversi siti web, ad esempio per personalizzare gli annunci.</translation>
-<translation id="7966904497916178308">È attiva la protezione standard</translation>
 <translation id="7971521879845308059">Blocca popup</translation>
 <translation id="797413074872316787">Attiva la sincronizzazione per sincronizzare e personalizzare tutti i dispositivi.</translation>
 <translation id="7978018860671536736">3. Tocca Riempimento automatico password</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 8d62e3c5..a4dc5d6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">‏אתרים יכולים להשתמש בקובצי cookie כדי לשפר את חוויית הגלישה – למשל כדי למנוע את ניתוקך מהחשבון או כדי לזכור את הפריטים שהוספת לעגלת הקניות.
 
 אתרים יכולים להשתמש בקובצי cookie כדי לראות את פעילות הגלישה שלך באתרים שונים, למשל לצורך התאמה אישית של מודעות.</translation>
-<translation id="7966904497916178308">מופעלת הגנה רגילה</translation>
 <translation id="7971521879845308059">חסימת חלונות קופצים</translation>
 <translation id="797413074872316787">כדי לסנכרן ולהתאים אישית את החוויה במכשירים שונים, צריך להפעיל את הסנכרון.</translation>
 <translation id="7978018860671536736">3. מקישים על 'מילוי אוטומטי של סיסמאות'</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 2a15001..cc4c2518 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">サイトは、Cookie を使用してブラウジングの利便性を改善することができます。たとえばログイン状態の維持や、ショッピング カートの中身の保存が可能になります。
 
 サイトは、Cookie を使用して別のサイトでのあなたの閲覧アクティビティを確認することができます。広告のカスタマイズなどが可能になります。</translation>
-<translation id="7966904497916178308">標準保護機能がオンになっています</translation>
 <translation id="7971521879845308059">ポップアップのブロック</translation>
 <translation id="797413074872316787">カスタマイズした設定を複数のデバイスで同期して使用するには、同期を有効にします。</translation>
 <translation id="7978018860671536736">3.[パスワードを自動入力] をタップする</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 22d98cf0..3bccfce3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">საიტებს შეუძლია ქუქი-ჩანაწერების გამოყენება ვების დათვალიერების პროცესის გასაუმჯობესებლად, მაგალითად, სისტემაში შესული მდგომარეობის შესანარჩუნებლად ან საყიდლების კალათაში დამატებული ერთეულების დასამახსოვრებლად.
 
 საიტებს შეუძლია ქუქი-ჩანაწერების გამოყენება სხვადასხვა საიტის თქვენ მიერ დათვალიერების აქტივობის სანახავად, მაგალითად, რეკლამის თქვენზე მოსარგებად.</translation>
-<translation id="7966904497916178308">სტანდარტული დაცვა ჩართულია</translation>
 <translation id="7971521879845308059">კონტექსტური ფანჯრების დაბლოკვა</translation>
 <translation id="797413074872316787">თქვენი ყველა მოწყობილობის სინქრონიზაციისთვისა და პერსონალიზებისთვის ჩართეთ სინქრონიზაცია.</translation>
 <translation id="7978018860671536736">3. შეხებით აირჩიეთ „პაროლების ავტომატური შევსება“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 6af36bae..7f49555 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">Сайттар шолуды жақсарту (мысалы, аккаунттан шығармау не сатып алу себетіңіздегі нәрселерді есте сақтау) үшін cookie файлдарын пайдалана алады.
 
 Сайттар түрлі сайттардағы браузерді қолдану мәліметін көру үшін (мысалы, жарнамаларды жекелендіру мақсатында) cookie файлдарын пайдалана алады.</translation>
-<translation id="7966904497916178308">Стандартты қорғаныс қосулы.</translation>
 <translation id="7971521879845308059">Қалқымалы терезелерге тыйым салу</translation>
 <translation id="797413074872316787">Барлық құрылғыда синхрондау және жекелендіру үшін синхрондау функциясын қосыңыз.</translation>
 <translation id="7978018860671536736">3. "Құпия сөздерді автотолтыру" дегенді түртіңіз.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 891ffb5..75094ef8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">គេហទំព័រ​អាចប្រើខូគី ដើម្បី​កែលម្អ​បទពិសោធន៍​រុករក​របស់អ្នក ឧទាហរណ៍ ដើម្បីឱ្យអ្នក​បន្តចូលគណនី ឬចងចាំទំនិញ​នៅក្នុង​រទេះទិញទំនិញ​របស់អ្នក​។
 
 គេហទំព័រ​អាចប្រើ​ខូគី ដើម្បីមើលសកម្មភាព​រុករក​តាមអ៊ីនធឺណិត​របស់អ្នក​នៅលើ​គេហទំព័រ​ផ្សេងៗ ឧទាហរណ៍ ដើម្បីកំណត់​ការផ្សាយ​ពាណិជ្ជកម្ម​ឱ្យ​ស្របនឹងអ្នក។</translation>
-<translation id="7966904497916178308">ការការពារស្តង់ដារ​ត្រូវបានបើក</translation>
 <translation id="7971521879845308059">រារាំងការលេចឡើង</translation>
 <translation id="797413074872316787">ដើម្បី​ធ្វើសមកាលកម្ម និង​កំណត់ផ្ទាល់ខ្លួន​នៅលើ​ឧបករណ៍នានា សូម​បើក​សមកាលកម្ម។</translation>
 <translation id="7978018860671536736">3. ចុច​ការបំពេញ​ពាក្យសម្ងាត់​ស្វ័យប្រវត្តិ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 93ba90e..c12c730 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮನ್ನು ಸೈನ್ ಇನ್ ಆಗಿರಿಸಲು ಅಥವಾ ನಿಮ್ಮ ಶಾಪಿಂಗ್ ಕಾರ್ಟ್‌ನಲ್ಲಿರುವ ಐಟಂಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಸೈಟ್‌ಗಳು ಕುಕೀಗಳನ್ನು ಬಳಸಬಹುದು.
 
 ವಿವಿಧ ಸೈಟ್‌ಗಳಾದ್ಯಂತ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯನ್ನು ನೋಡಲು, ಉದಾಹರಣೆಗೆ, ಜಾಹೀರಾತುಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ಸೈಟ್‌ಗಳು ಕುಕೀಗಳನ್ನು ಬಳಸಬಹುದು.</translation>
-<translation id="7966904497916178308">ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆ ಆನ್ ಆಗಿದೆ</translation>
 <translation id="7971521879845308059">ಪಾಪ್-ಅಪ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="797413074872316787">ಸಾಧನಗಳಾದ್ಯಂತ ಸಿಂಕ್ ಮಾಡಲು ಮತ್ತು ವೈಯಕ್ತೀಕರಿಸಲು, ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation>
 <translation id="7978018860671536736">3. ಸ್ವಯಂ ಭರ್ತಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 790388a..384edd2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">고급</translation>
 <translation id="1981118202195772574">모바일</translation>
 <translation id="1989112275319619282">찾아보기</translation>
+<translation id="1990820278544963435">찾기</translation>
 <translation id="199425419756152024">비밀번호 보기</translation>
 <translation id="2010008505735295285">새로고침</translation>
 <translation id="2015722694326466240">비밀번호를 보려면 먼저 기기에 비밀번호를 설정해야 합니다.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">사이트에서 사용자의 로그인 상태를 유지하거나 장바구니에 담긴 상품을 기억하는 등 탐색 환경을 개선하는 데 쿠키를 사용할 수 있습니다.
 
 사이트에서 사용자의 다양한 사이트 탐색 활동 정보로 광고 맞춤설정 등의 작업을 하는 데 쿠키를 사용할 수 있습니다.</translation>
-<translation id="7966904497916178308">표준 보호 모드를 사용 중입니다.</translation>
 <translation id="7971521879845308059">팝업 차단</translation>
 <translation id="797413074872316787">모든 기기에서 동기화 및 맞춤설정하려면 동기화를 사용 설정하세요</translation>
 <translation id="7978018860671536736">3. AutoFill Passwords(비밀번호 자동 완성)를 탭합니다.</translation>
@@ -1089,6 +1089,7 @@
 <translation id="9188680907066685419">관리 계정에서 로그아웃</translation>
 <translation id="9200875785104711666"><ph name="TIME" />일 전</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">탭 검색…</translation>
 <translation id="9223358826628549784">비정상 종료 보고서 전송 완료</translation>
 <translation id="941747855997058526">비밀번호 선택...</translation>
 <translation id="952704832371081537">취소</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index b00124f..6754efca 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -283,6 +283,7 @@
 <translation id="3153862085237805241">Карточканы сактоо</translation>
 <translation id="3157387275655328056">Окуу тизмесине кошуу</translation>
 <translation id="3157684681743766797">Баарын белгилөө…</translation>
+<translation id="315778507796115851">Таржымал</translation>
 <translation id="3169472444629675720">Аныктоо</translation>
 <translation id="3174662312949010067">Сакталган сырсөздөрдү башка түзмөктөрүңүздө да колдонсоңуз болот.</translation>
 <translation id="3175081911749765310">Желе кызмт</translation>
@@ -927,7 +928,6 @@
 <translation id="7966516440812255683">Серептөөнү ыңгайлаштыруу, мисалы, аккаунттан чыгарбоо же арабадагы сатып алган нерселериңизди эстеп калуу үчүн сайттар cookie файлдарын колдоно алышат.
 
 Сайттар жарнамаларды жекелештирүү максатында башка сайттардагы серептөө аракеттериңизди көрүү үчүн cookie файлдарын колдоно алышат.</translation>
-<translation id="7966904497916178308">Стандарттуу коргоо күйүк</translation>
 <translation id="7971521879845308059">Калк чыкмл бөгт</translation>
 <translation id="797413074872316787">Бардык түзмөктөрүңүздө шайкештирүү жана жекечелештирүү үчүн шайкештирүүнү иштетиңиз.</translation>
 <translation id="7978018860671536736">3. Сырсөздөрдү автотолтурууну таптап коюңуз</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index d494796..214365f0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອປັບປຸງປະສົບການທ່ອງເວັບຂອງທ່ານ, ຕົວຢ່າງ: ເພື່ອໃຫ້ທ່ານສືບຕໍ່ຢູ່ໃນລະບົບ ຫຼື ຈື່ລາຍການຕ່າງໆໃນກະຕ່າຊື້ເຄື່ອງຂອງທ່ານ.
 
 ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອເບິ່ງການເຄື່ອນໄຫວທ່ອງເວັບຂອງທ່ານໃນທົ່ວເວັບໄຊຕ່າງໆ ເຊັ່ນ: ເພື່ອປັບແຕ່ງໂຄສະນາໃຫ້ເປັນແບບສ່ວນຕົວ.</translation>
-<translation id="7966904497916178308">ການປົກປ້ອງມາດຕະຖານເປີດຢູ່</translation>
 <translation id="7971521879845308059">ບລັອກປັອບອັບ</translation>
 <translation id="797413074872316787">ເພື່ອຊິ້ງຂໍ້ມູນ ແລະ ປັບແຕ່ງເປັນແບບສ່ວນຕົວຢູ່ອຸປະກອນຕ່າງໆ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນກ່ອນ.</translation>
 <translation id="7978018860671536736">3. ແຕະໃສ່ການຕື່ມຂໍ້ມູນລະຫັດຜ່ານອັດຕະໂນມັດ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 65ca70b..fe5920d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -283,6 +283,7 @@
 <translation id="3153862085237805241">Kortelės išsaugojimas</translation>
 <translation id="3157387275655328056">Pridėti prie skaitomų sąrašo</translation>
 <translation id="3157684681743766797">Pažymėti visus...</translation>
+<translation id="315778507796115851">Istorija</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">Be to, išsaugotus slaptažodžius galite naudoti kituose įrenginiuose.</translation>
 <translation id="3175081911749765310">Žin. pasl.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">Svetainės gali naudoti slapukus, kad pagerintų naršymo kokybę, pvz., kad liktumėte prisijungę ar būtų įsimintos pirkinių krepšelyje esančios prekės.
 
 Svetainės gali naudoti slapukus, kad sužinotų apie naršymo veiklą skirtingose svetainėse, pvz., kad galėtų suasmeninti skelbimus.</translation>
-<translation id="7966904497916178308">Įprasta apsauga įjungta</translation>
 <translation id="7971521879845308059">Blok. iššok. l.</translation>
 <translation id="797413074872316787">Kad turinys būtų sinchronizuojamas ir suasmeninamas visuose įrenginiuose, įjunkite sinchronizavimą.</translation>
 <translation id="7978018860671536736">3. Palieskite „AutoFill Passwords“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index b69b56f..4fe3596 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Vietnes drīkst izmantot sīkfailus, lai uzlabotu pārlūkošanas pieredzi, piemēram, lai nodrošinātu ilgstošu pierakstīšanos vai saglabātu pirkumu grozā ievietotās preces.
 
 Vietnes drīkst izmantot sīkfailus, lai skatītu jūsu pārlūkošanas darbības dažādās vietnēs, piemēram, reklāmu personalizēšanai.</translation>
-<translation id="7966904497916178308">Standarta aizsardzība ir ieslēgta</translation>
 <translation id="7971521879845308059">Bl. uzn. logus</translation>
 <translation id="797413074872316787">Lai sinhronizētu un personalizētu saturu dažādās ierīcēs, ieslēdziet sinhronizāciju.</translation>
 <translation id="7978018860671536736">3. Pieskarieties vienumam AutoFill Passwords (Paroļu automātiskā aizpilde)</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index 90898b6e..c82e4d1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Напредни</translation>
 <translation id="1981118202195772574">Мобилен</translation>
 <translation id="1989112275319619282">Прелистувај</translation>
+<translation id="1990820278544963435">Најди</translation>
 <translation id="199425419756152024">Видете ја лозинката</translation>
 <translation id="2010008505735295285">Вчитај повторно</translation>
 <translation id="2015722694326466240">За да ги видите лозинките, прво мора да поставите лозинка на вашиот уред.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Моментален сајт</translation>
 <translation id="7537586195939242955">Pass не може да се инсталира во Passbook во моментов.</translation>
 <translation id="7553234618121028547">За да исклучите, отворете <ph name="BEGIN_LINK" />Поставки<ph name="END_LINK" /> и одете на „Опции за лозинки“.</translation>
+<translation id="7554645225856321710">Затвори ги сите</translation>
 <translation id="7554791636758816595">Нова картичка</translation>
 <translation id="7561196759112975576">Секогаш</translation>
 <translation id="7583004045319035904">Користете <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> за да ги отклучите картичките „Инкогнито“.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Сајтовите може да користат колачиња за да го подобрат вашето доживување со прелистувањето, на пример, да останете најавени или да запомнат ставки во кошничката за купување.
 
 Сајтовите може да користат колачиња за да ја следат вашата активност од прелистувањето на различни сајтови, на пример, за персонализирање реклами.</translation>
-<translation id="7966904497916178308">Вклучена е „Стандардната заштита“</translation>
 <translation id="7971521879845308059">Блокирај појавни прозорци</translation>
 <translation id="797413074872316787">За да ги синхронизирате и персонализирате уредите, вклучете синхронизација.</translation>
 <translation id="7978018860671536736">3. Допрете „Автоматско пополнување лозинки“</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Одјавете се од управувана сметка</translation>
 <translation id="9200875785104711666">Пред <ph name="TIME" /> д.</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Пребарајте ги картичките…</translation>
 <translation id="9223358826628549784">Извештајот за пад се испрати.</translation>
 <translation id="941747855997058526">Изберете лозинка…</translation>
 <translation id="952704832371081537">Откажи</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index c04c014..5a635a18 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">വിപുലമായത്</translation>
 <translation id="1981118202195772574">മൊബൈൽ</translation>
 <translation id="1989112275319619282">ബ്രൗസ് ചെയ്യുക</translation>
+<translation id="1990820278544963435">കണ്ടെത്തുക</translation>
 <translation id="199425419756152024">പാസ്‌വേഡ് കാണുക</translation>
 <translation id="2010008505735295285">റീലോഡ് ചെയ്യുക</translation>
 <translation id="2015722694326466240">പാസ്‍വേഡുകൾ കാണാൻ, ആദ്യം നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‌കോഡ് സജ്ജീകരിക്കുക.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">നിലവിലെ സൈറ്റ്</translation>
 <translation id="7537586195939242955">ക്ഷമിക്കണം, നിങ്ങളുടെ പാസ് ഈ സമയം പാസ്‌ബുക്കിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയില്ല.</translation>
 <translation id="7553234618121028547">ഓഫാക്കാൻ, <ph name="BEGIN_LINK" />ക്രമീകരണം<ph name="END_LINK" /> തുറന്ന് പാസ്‌വേഡ് ഓപ്ഷനുകളിലേക്ക് പോകുക.</translation>
+<translation id="7554645225856321710">എല്ലാം അടയ്‌ക്കുക</translation>
 <translation id="7554791636758816595">പുതിയ ടാബ്</translation>
 <translation id="7561196759112975576">എല്ലായ്പ്പോഴും</translation>
 <translation id="7583004045319035904">നിങ്ങളുടെ അദൃശ്യ ടാബുകൾ അൺലോക്ക് ചെയ്യാൻ <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ഉപയോഗിക്കുക.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ സൈറ്റുകൾക്ക് കുക്കികൾ ഉപയോഗിക്കാവുന്നതാണ്, ഉദാഹരണത്തിന്, സൈൻ ഇൻ ചെയ്‌ത നിലയിൽ തുടരാനോ ഷോപ്പിംഗ് കാർട്ടിലെ ഇനങ്ങൾ ഓർമ്മിക്കാനോ.
 
 വ്യത്യസ്‌ത സൈറ്റുകളിലുടനീളമുള്ള നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി കാണാൻ സൈറ്റുകൾക്ക് കുക്കികൾ ഉപയോഗിക്കാനാവും, ഉദാഹരണത്തിന്, പരസ്യങ്ങൾ വ്യക്തിപരമാക്കാൻ.</translation>
-<translation id="7966904497916178308">സാധാരണ പരിരക്ഷ ഓണാക്കിയിരിക്കുന്നു</translation>
 <translation id="7971521879845308059">പോപ്പ്-അപ്പുകൾ തടയുക</translation>
 <translation id="797413074872316787">ഉപകരണങ്ങളിൽ ഉടനീളം സമന്വയിപ്പിക്കാനും വ്യക്തിപരമാക്കാനും സമന്വയിപ്പിക്കൽ ഓണാക്കുക.</translation>
 <translation id="7978018860671536736">3. 'പാസ്‌വേഡുകൾ സ്വയമേവ പൂരിപ്പിക്കുക' ടാപ്പ് ചെയ്യുക</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">മാനേജ് ചെയ്‌ത അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> ദിവസം മുമ്പ്</translation>
 <translation id="9203116392574189331">ഹാൻഡ്ഓഫ്</translation>
+<translation id="9219154867334666734">ടാബുകൾ തിരയുക…</translation>
 <translation id="9223358826628549784">ക്രാഷ് റിപ്പോർട്ട് അയച്ചു.</translation>
 <translation id="941747855997058526">പാസ്‌വേഡ് തിരഞ്ഞെടുക്കുക...</translation>
 <translation id="952704832371081537">റദ്ദാക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 232a9c8..3154d9ad 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Боловсронгуй</translation>
 <translation id="1981118202195772574">Мобайл</translation>
 <translation id="1989112275319619282">Хөтлөх</translation>
+<translation id="1990820278544963435">Олох</translation>
 <translation id="199425419756152024">Нууц үгийг харах</translation>
 <translation id="2010008505735295285">Дахин ачаалах</translation>
 <translation id="2015722694326466240">Нууц үгийг харахын тулд та эхлээд төхөөрөмждөө нууц код тохируулах шаардлагатай.</translation>
@@ -874,6 +875,7 @@
 <translation id="7531345132340165516">Одоогийн сайт</translation>
 <translation id="7537586195939242955">Уучлаарай, таны Pass-ыг одоогоор Passbook руу суулгаж болохгүй байна.</translation>
 <translation id="7553234618121028547">Унтраахын тулд <ph name="BEGIN_LINK" />Тохиргоог<ph name="END_LINK" /> нээж, Нууц үгний сонголт руу очно уу.</translation>
+<translation id="7554645225856321710">Бүгдийг хаах</translation>
 <translation id="7554791636758816595">Шинэ таб</translation>
 <translation id="7561196759112975576">Үргэлж</translation>
 <translation id="7583004045319035904">Нууцлалтай табуудынхаа түгжээг тайлахын тулд <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />-г ашиглана уу.</translation>
@@ -927,7 +929,6 @@
 <translation id="7966516440812255683">Сайтууд нь, жишээлбэл таныг нэвтэрсэн хэвээр байлгах эсвэл таны худалдан авалтын сагсан дахь зүйлсийг санах зэргээр таны хөтчийн туршлагыг сайжруулахын тулд күүки ашиглах боломжтой.
 
 Сайтууд нь, жишээлбэл зарыг хувийн болгохын тулд таны хөтчийн өөр сайт дээрх үйл ажиллагааг харах зорилгоор күүки ашиглах боломжтой.</translation>
-<translation id="7966904497916178308">Стандарт хамгаалалт асаалттай байна</translation>
 <translation id="7971521879845308059">Зар сурталчилгааг хориглох</translation>
 <translation id="797413074872316787">Төхөөрөмжүүдэд синк хийж, хувийн болгохын тулд синкийг асаана уу.</translation>
 <translation id="7978018860671536736">3. Автоматаар бөглөх хэсэг дэх нууц үг дээр товшино уу</translation>
@@ -1088,6 +1089,7 @@
 <translation id="9188680907066685419">Удирдсан бүртгэлээс гарах</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> өдрийн өмнө</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Табуудаас хайх…</translation>
 <translation id="9223358826628549784">Алдаа ослын тайланг илгээсэн байна.</translation>
 <translation id="941747855997058526">Нууц үг сонгох...</translation>
 <translation id="952704832371081537">Цуцлах</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 6b08c70..44e7b19b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -930,7 +930,6 @@
 <translation id="7966516440812255683">तुमच्या ब्राउझिंग अनुभवात सुधारणा करण्यासाठी, उदाहरणार्थ, तुम्हाला साइन इन केलेले ठेवण्यासाठी किंवा तुमच्या शॉपिंग कार्टमधील आयटम लक्षात ठेवण्यासाठी साइट कुकी वापरू शकतात.
 
 वेगवेगळ्या साइटवरील तुमची ब्राउझिंग ॲक्टिव्हिटी पाहण्यासाठी साइट कुकी वापरू शकतात, उदाहरणार्थ, जाहिराती पर्सनलाइझ करण्यासाठी.</translation>
-<translation id="7966904497916178308">मानक संरक्षण सुरू आहे</translation>
 <translation id="7971521879845308059">पॉप-अप ब्लॉक करा</translation>
 <translation id="797413074872316787">सर्व डिव्हाइसवर सिंक आणि पर्सनलाइझ करण्यासाठी, सिंक सुरू करा.</translation>
 <translation id="7978018860671536736">३. AutoFill पासवर्ड वर टॅप करा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index ae463ba..34bd969 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Lanjutan</translation>
 <translation id="1981118202195772574">Mudah Alih</translation>
 <translation id="1989112275319619282">Semak Imbas</translation>
+<translation id="1990820278544963435">Cari</translation>
 <translation id="199425419756152024">Lihat Kata Laluan</translation>
 <translation id="2010008505735295285">Muat semula</translation>
 <translation id="2015722694326466240">Untuk melihat kata laluan, mula-mula anda mesti menetapkan kod laluan pada peranti anda.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Laman Semasa</translation>
 <translation id="7537586195939242955">Maaf, Pas anda tidak boleh dipasang pd Passbook pd masa ini.</translation>
 <translation id="7553234618121028547">Untuk mematikan, buka <ph name="BEGIN_LINK" />Tetapan<ph name="END_LINK" /> dan pergi ke Pilihan Kata Laluan.</translation>
+<translation id="7554645225856321710">Tutup Semua</translation>
 <translation id="7554791636758816595">Tab Baharu</translation>
 <translation id="7561196759112975576">Sentiasa</translation>
 <translation id="7583004045319035904">Gunakan <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> untuk membuka kunci tab Inkognito anda.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Tapak boleh menggunakan kuki untuk memperbaik pengalaman penyemakan imbas anda, contohnya, untuk mengekalkan log masuk anda atau untuk mengingati item dalam troli beli-belah anda.
 
 Tapak boleh menggunakan kuki untuk melihat aktiviti penyemakan imbas anda merentas tapak lain, contohnya, untuk memperibadikan iklan.</translation>
-<translation id="7966904497916178308">Perlindungan standard dihidupkan</translation>
 <translation id="7971521879845308059">Sekat P/Timbul</translation>
 <translation id="797413074872316787">Hidupkan penyegerakan untuk melakukan penyegerakan dan pemperibadian pada semua peranti.</translation>
 <translation id="7978018860671536736">3. Ketik Kata Laluan Autolengkap</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Log keluar daripada akaun terurus</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> h yang lalu</translation>
 <translation id="9203116392574189331">Serah</translation>
+<translation id="9219154867334666734">Cari Tab…</translation>
 <translation id="9223358826628549784">Laporan ranap sistem dihantar.</translation>
 <translation id="941747855997058526">Pilih Kata Laluan...</translation>
 <translation id="952704832371081537">Batal</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index 87a5cd3a..ab53bfa 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">သင်၏ဝဘ်ကြည့်ရှုမှု ပိုကောင်းမွန်စေရန် ဥပမာအားဖြင့် အမြဲလက်မှတ်ထိုးဝင်ထားရန် သို့မဟုတ် ဈေးခြင်းတောင်းထဲရှိ အရာများ မှတ်ထားရန်တို့အတွက် ဝဘ်ဆိုက်များက ကွတ်ကီးများကို အသုံးပြုနိုင်သည်။
 
 ဝဘ်ဆိုက်များသည် ကြော်ငြာများကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန်အတွက် မတူညီသည့်ဝဘ်ဆိုက်များတစ်လျှောက်တွင် ကွတ်ကီးများသုံးပြီး သင့်ကြည့်ရှုခြင်းမှတ်တမ်းများကို ဝင်ကြည့်ခြင်းမျိုး လုပ်နိုင်သည်။</translation>
-<translation id="7966904497916178308">ပုံမှန်ကာကွယ်မှု ဖွင့်ထားသည်</translation>
 <translation id="7971521879845308059">ပေါ့အာပ်များ ပိတ်ဆို့မည်</translation>
 <translation id="797413074872316787">စက်အားလုံးတွင် စင့်ခ်လုပ်ရန်နှင့် ပုဂ္ဂိုလ်ရေးသီးသန့်လုပ်ရန် စင့်ခ်လုပ်ခြင်းကိုဖွင့်ပါ။</translation>
 <translation id="7978018860671536736">၃။ ‘စကားဝှက်များ အော်တိုဖြည့်ခြင်း’ ကိုတို့ပါ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 4533a87..422ba06 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">साइटहरूले तपाईंलाई राम्रो ब्राउजिङको अनुभव प्रदान गर्न कुकीहरूको प्रयोग गर्न सक्छन्। उदाहरणको लागि साइटहरूले कुकीहरूको प्रयोग गरी तपाईंलाई साइन इन अवस्थामै राख्न वा तपाईंको किनमेलको कार्टमा भएका वस्तुहरू सम्झन सक्छन्।
 
 साइटहरूले तपाईंका गतिविधिअनुसार विज्ञापन देखाउने जस्ता प्रयोजनका लागि विभिन्न साइटहरूमा तपाईंको ब्राउजिङसम्बन्धी गतिविधि हेर्न कुकीहरू प्रयोग गर्न सक्छन्।</translation>
-<translation id="7966904497916178308">"मानक सुरक्षा" अन गरिएको छ</translation>
 <translation id="7971521879845308059">पप-अपहरूलाई रोक्नुहोस्</translation>
 <translation id="797413074872316787">सबै डिभाइसमा सिंक गर्न र आफू अनुकूल बनाउन सिंक गर्ने सुविधा अन गर्नुहोस्।</translation>
 <translation id="7978018860671536736">३. "पासवर्ड स्वतः भरियोस्" मा ट्याप गर्नुहोस्</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index a69ce11..d5b0c8a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Geavanceerd</translation>
 <translation id="1981118202195772574">Mobiel</translation>
 <translation id="1989112275319619282">Browsen</translation>
+<translation id="1990820278544963435">Zoeken</translation>
 <translation id="199425419756152024">Wachtwoord bekijken</translation>
 <translation id="2010008505735295285">Opnieuw laden</translation>
 <translation id="2015722694326466240">Als je wachtwoorden wilt zien, moet je eerst een toegangscode instellen op je apparaat.</translation>
@@ -928,7 +929,6 @@
 <translation id="7966516440812255683">Sites mogen cookies gebruiken om de browsefunctionaliteit te verbeteren, bijvoorbeeld door je ingelogd te houden of door artikelen in je winkelwagen te onthouden.
 
 Sites mogen cookies gebruiken om je browse-activiteit op verschillende sites te bekijken, bijvoorbeeld om advertenties te personaliseren.</translation>
-<translation id="7966904497916178308">Standaardbeveiliging staat aan</translation>
 <translation id="7971521879845308059">Pop-ups blokkeren</translation>
 <translation id="797413074872316787">Zet de synchronisatie aan om verschillende apparaten te synchroniseren en te personaliseren.</translation>
 <translation id="7978018860671536736">3. Tik op Wachtwoorden automatisch invullen</translation>
@@ -1089,6 +1089,7 @@
 <translation id="9188680907066685419">Uitloggen van beheerd account</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> d geleden</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Tabbladen doorzoeken…</translation>
 <translation id="9223358826628549784">Crashrapport verzonden.</translation>
 <translation id="941747855997058526">Wachtwoord selecteren…</translation>
 <translation id="952704832371081537">Annuleren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 8b47b0d5..adc886f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">Nettsteder kan bruke informasjonskapsler for å gi deg en bedre surfeopplevelse, for eksempel for å holde deg pålogget eller huske varene i handlekurven din.
 
 Nettsteder kan bruke informasjonskapsler til å se nettleseraktiviteten din på andre nettsteder, for eksempel for å vise deg personlig tilpassede annonser.</translation>
-<translation id="7966904497916178308">Standardbeskyttelse er på</translation>
 <translation id="7971521879845308059">Blokkér forgrunnsvinduer</translation>
 <translation id="797413074872316787">For å synkronisere flere enheter og gi dem samme personlige preg, slå på synkronisering.</translation>
 <translation id="7978018860671536736">3. Trykk på Autofyll passord</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 6315623..b78448c7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -926,7 +926,6 @@
 <translation id="7966516440812255683">ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପରି, ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।
 
 ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତକୃତ କରିବା ପରି ବିଭିନ୍ନ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।</translation>
-<translation id="7966904497916178308">ଷ୍ଟାଣ୍ଡାର୍ଡ ସୁରକ୍ଷା ଚାଲୁ ଅଛି</translation>
 <translation id="7971521879845308059">ପପ୍-ଅପ୍ଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation>
 <translation id="797413074872316787">ସମଗ୍ର ଡିଭାଇସରେ ସିଙ୍କ୍ ଏବଂ ପର୍ସନାଲାଇଜ୍ କରିବାକୁ, ସିଙ୍କ୍ ଚାଲୁ କରନ୍ତୁ।</translation>
 <translation id="7978018860671536736">3. "ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସ୍ୱତଃପୂରଣ କରନ୍ତୁ"ରେ ଟାପ କରନ୍ତୁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index f62ff87a..bed4ac6e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">ਸਾਈਟਾਂ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਕੁਕੀਜ਼ ਨੂੰ ਵਰਤ ਸਕਦੀਆਂ ਹਨ, ਉਦਾਹਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਸਾਈਨ-ਇਨ ਜਾਂ ਤੁਹਾਡੇ ਖਰੀਦਦਾਰੀ ਕਾਰਟ ਵਿਚਲੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਯਾਦ ਰੱਖਣ ਲਈ।
 
 ਸਾਈਟਾਂ ਵੱਖ-ਵੱਖ ਸਾਈਟਾਂ ਵਿਚਲੀ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਦੇਖਣ ਲਈ ਕੁਕੀਜ਼ ਨੂੰ ਵਰਤ ਸਕਦੀਆਂ ਹਨ, ਉਦਾਹਰਨ ਲਈ, ਵਿਗਿਆਪਨਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ।</translation>
-<translation id="7966904497916178308">ਮਿਆਰੀ ਸੁਰੱਖਿਆ ਚਾਲੂ ਹੈ</translation>
 <translation id="7971521879845308059">ਪੌਪ-ਅਪਸ ਬਲੌਕ ਕਰੋ</translation>
 <translation id="797413074872316787">ਡੀਵਾਈਸਾਂ ਵਿਚਾਲੇ ਸਿੰਕ ਕਰਨ ਅਤੇ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ, ਸਿੰਕ ਚਾਲੂ ਕਰੋ।</translation>
 <translation id="7978018860671536736">3. ਆਟੋਫਿਲ ਪਾਸਵਰਡ 'ਤੇ ਟੈਪ ਕਰੋ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index b62a604..8d78c8f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Zaawansowane</translation>
 <translation id="1981118202195772574">Mobilny</translation>
 <translation id="1989112275319619282">Przeglądaj</translation>
+<translation id="1990820278544963435">Znajdź</translation>
 <translation id="199425419756152024">Wyświetl hasło</translation>
 <translation id="2010008505735295285">Załaduj ponownie</translation>
 <translation id="2015722694326466240">Aby wyświetlić hasła, musisz najpierw ustawić kod dostępu na urządzeniu.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Bieżąca witryna</translation>
 <translation id="7537586195939242955">Twojego hasła nie można teraz umieścić w Passbooku.</translation>
 <translation id="7553234618121028547">Aby wyłączyć funkcję, otwórz <ph name="BEGIN_LINK" />Ustawienia<ph name="END_LINK" /> i kliknij Opcje haseł.</translation>
+<translation id="7554645225856321710">Zamknij wszystko</translation>
 <translation id="7554791636758816595">Nowa karta</translation>
 <translation id="7561196759112975576">Zawsze</translation>
 <translation id="7583004045319035904">Używaj <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> do odblokowywania kart incognito.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Witryny mogą używać plików cookie dla Twojej wygody – na przykład, by zapamiętać Twoje logowanie lub zawartość koszyka.
 
 Witryny mogą używać plików cookie do śledzenia Twojej aktywności związanej z przeglądaniem różnych witryn, na przykład w celu personalizowania reklam.</translation>
-<translation id="7966904497916178308">Włączona jest standardowa ochrona</translation>
 <translation id="7971521879845308059">Blokuj wyskakujące okienka</translation>
 <translation id="797413074872316787">Aby synchronizować i personalizować wszystkie swoje urządzenia, włącz synchronizację.</translation>
 <translation id="7978018860671536736">3. Kliknij Automatyczne wypełnianie haseł.</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Wyloguj się z konta zarządzanego</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> d temu</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Wyszukaj karty…</translation>
 <translation id="9223358826628549784">Raport o awarii został wysłany.</translation>
 <translation id="941747855997058526">Wybierz hasło</translation>
 <translation id="952704832371081537">Anuluj</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
index 319f7a3..b2bcfd5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Avançado</translation>
 <translation id="1981118202195772574">Dispositivo móvel</translation>
 <translation id="1989112275319619282">Procurar</translation>
+<translation id="1990820278544963435">Buscar</translation>
 <translation id="199425419756152024">Ver senha</translation>
 <translation id="2010008505735295285">Atualizar</translation>
 <translation id="2015722694326466240">Para ver as senhas, defina uma senha no dispositivo primeiro.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Site atual</translation>
 <translation id="7537586195939242955">Impossível instalar senha no livro de senhas no momento.</translation>
 <translation id="7553234618121028547">Para desativar, abra <ph name="BEGIN_LINK" />Configurações<ph name="END_LINK" /> e acesse "Opções de senha".</translation>
+<translation id="7554645225856321710">Fechar todas</translation>
 <translation id="7554791636758816595">Nova guia</translation>
 <translation id="7561196759112975576">Sempre</translation>
 <translation id="7583004045319035904">Use o <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> para desbloquear suas guias anônimas.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Os sites podem usar cookies para melhorar sua experiência de navegação, como manter sua conta conectada ou se lembrar dos itens em um carrinho de compras.
 
 Eles também podem usar cookies para ver sua atividade de navegação em diferentes sites, por exemplo, para personalizar anúncios.</translation>
-<translation id="7966904497916178308">A Proteção padrão está ativa</translation>
 <translation id="7971521879845308059">Bloquear pop-ups</translation>
 <translation id="797413074872316787">Para sincronizar e personalizar vários dispositivos, ative a sincronização.</translation>
 <translation id="7978018860671536736">3. Toque em "Preenchimento automático de senhas"</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Sair da conta gerenciada</translation>
 <translation id="9200875785104711666"><ph name="TIME" />d atrás</translation>
 <translation id="9203116392574189331">Transição</translation>
+<translation id="9219154867334666734">Pesquisar guias…</translation>
 <translation id="9223358826628549784">Relatórios de erros enviados.</translation>
 <translation id="941747855997058526">Selecionar senha…</translation>
 <translation id="952704832371081537">Cancelar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
index 6e65330..21b322bb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Avançadas</translation>
 <translation id="1981118202195772574">Telemóvel</translation>
 <translation id="1989112275319619282">Procurar</translation>
+<translation id="1990820278544963435">Encontrar</translation>
 <translation id="199425419756152024">Ver a palavra-passe</translation>
 <translation id="2010008505735295285">Atualizar</translation>
 <translation id="2015722694326466240">Para ver as palavras-passe, tem de definir primeiro um código secreto no dispositivo.</translation>
@@ -283,6 +284,7 @@
 <translation id="3153862085237805241">Guardar cartão</translation>
 <translation id="3157387275655328056">Adicionar à lista de leitura</translation>
 <translation id="3157684681743766797">Marcar tudo…</translation>
+<translation id="315778507796115851">Histórico</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">Também pode utilizar palavras-passe guardadas nos outros dispositivos.</translation>
 <translation id="3175081911749765310">Serviços Web</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Os sites podem utilizar cookies para melhorar a experiência de navegação, por exemplo, para manter a sua sessão iniciada ou memorizar os artigos no seu carrinho de compras.
 
 Os sites podem utilizar cookies para ver a sua atividade de navegação em diferentes sites, por exemplo, para personalizar anúncios.</translation>
-<translation id="7966904497916178308">A proteção padrão está ativada</translation>
 <translation id="7971521879845308059">Bloquear Pop-ups</translation>
 <translation id="797413074872316787">Para sincronizar e personalizar dados entre dispositivos, ative a sincronização.</translation>
 <translation id="7978018860671536736">3. Toque em Preenchimento automático de palavras-passe</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Terminar sessão na conta gerida</translation>
 <translation id="9200875785104711666">Há <ph name="TIME" /> d</translation>
 <translation id="9203116392574189331">Entrega</translation>
+<translation id="9219154867334666734">Pesquisar separadores…</translation>
 <translation id="9223358826628549784">Relatório de falha enviado.</translation>
 <translation id="941747855997058526">Selecionar palavra-passe…</translation>
 <translation id="952704832371081537">Cancelar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 48f99e0..3005c48 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Avansate</translation>
 <translation id="1981118202195772574">Mobil</translation>
 <translation id="1989112275319619282">Răsfoiește</translation>
+<translation id="1990820278544963435">Caută</translation>
 <translation id="199425419756152024">Vezi parola</translation>
 <translation id="2010008505735295285">Reîncarcă</translation>
 <translation id="2015722694326466240">Pentru a vedea parolele, trebuie mai întâi să setezi o parolă pe dispozitiv.</translation>
@@ -283,6 +284,7 @@
 <translation id="3153862085237805241">Salvează cardul</translation>
 <translation id="3157387275655328056">Adaugă în lista de lectură</translation>
 <translation id="3157684681743766797">Marchează-le pe toate…</translation>
+<translation id="315778507796115851">Istoric</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">Poți folosi parolele salvate și pe alte dispozitive.</translation>
 <translation id="3175081911749765310">Servicii web</translation>
@@ -927,7 +929,6 @@
 <translation id="7966516440812255683">Site-urile pot folosi cookie-uri pentru a-ți îmbunătăți experiența de navigare, de exemplu, pentru a te menține conectat(ă) sau pentru a reține articolele din coșul de cumpărături.
 
 Site-urile pot folosi cookie-uri pentru a vedea activitatea ta de navigare de pe diferite site-uri, de exemplu, pentru a personaliza anunțurile.</translation>
-<translation id="7966904497916178308">Protecția standard este activată</translation>
 <translation id="7971521879845308059">Blochează pop-upurile</translation>
 <translation id="797413074872316787">Pentru a sincroniza și a personaliza pe toate dispozitivele, activează sincronizarea.</translation>
 <translation id="7978018860671536736">3. Atinge Completează automat parolele.</translation>
@@ -1088,6 +1089,7 @@
 <translation id="9188680907066685419">Deconectează-te de la contul gestionat</translation>
 <translation id="9200875785104711666">acum <ph name="TIME" /> zile</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Caută în file…</translation>
 <translation id="9223358826628549784">Raportul de blocare a fost trimis.</translation>
 <translation id="941747855997058526">Selectează o parolă...</translation>
 <translation id="952704832371081537">Anulează</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 4b4dd508..d1cdd41 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Сайты могут использовать файлы cookie для вашего удобства, например сохранять информацию о товарах в корзине или о том, что вы вошли в аккаунт.
 
 Сайты могут использовать файлы cookie, чтобы отслеживать ваши действия в браузере, например для показа персонализированной рекламы.</translation>
-<translation id="7966904497916178308">Стандартная защита включена</translation>
 <translation id="7971521879845308059">Блок. вспл. окна</translation>
 <translation id="797413074872316787">Чтобы синхронизировать и персонализировать данные на всех устройствах, включите синхронизацию.</translation>
 <translation id="7978018860671536736">3. Нажмите "Автозаполнение пароля".</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index bbe1f2b3..17917e3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">ඔබේ බ්‍රවුස් කිරීමේ අත්දැකීම වැඩිදියුණු කිරීමට, උදාහරණයක් වශයෙන්, ඔබව පුරා තබා ගැනීමට හෝ ඔබේ සාප්පු සවාරි කරත්තයේ අයිතම මතක තබා ගැනීමට වෙබ් අඩවිවලට කුකි භාවිත කළ හැකිය.
 
 විවිධ වෙබ් අඩවි හරහා ඔබේ බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම් බැලීමට, උදාහරණයක් වශයෙන්, වෙළඳ දැන්වීම් පෞද්ගලීකරණය කිරීමට වෙබ් අඩවිවලට කුකි භාවිත කළ හැකිය.</translation>
-<translation id="7966904497916178308">සම්මත ආරක්ෂව ක්‍රියාත්මකයි</translation>
 <translation id="7971521879845308059">උත්පතන අවහිර කරන්න</translation>
 <translation id="797413074872316787">උපාංග හරහා සමමුහුර්ත සහ පෞද්ගලිකකරණය කිරීමට, සමමුහුර්තය ක්‍රියාත්මක කරන්න.</translation>
 <translation id="7978018860671536736">3. ස්වයං පිරවුම් මුරපද තට්ටු කරන්න</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index f2ae87c..709ade69 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Weby môžu pomocou súborov cookie zlepšovať vaše prostredie prehliadania, napríklad zabrániť odhláseniu alebo zapamätať si položky vo vašom nákupnom košíku.
 
 Na základe súborov cookie si môžu zobraziť vašu históriu prehliadania v rámci rôznych webov (napríklad na prispôsobenie reklám).</translation>
-<translation id="7966904497916178308">Je zapnutá štandardná ochrana</translation>
 <translation id="7971521879845308059">Blokov. okien</translation>
 <translation id="797413074872316787">Ak chcete synchronizovať a prispôsobovať viaceré zariadenia, zapnite synchronizáciu.</translation>
 <translation id="7978018860671536736">3. Klepnite na Automatické dopĺňanie hesiel</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 838139c..5fe4487c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Spletna mesta lahko uporabljajo piškotke za izboljšanje izkušnje brskanja, na primer tako, da poskrbijo, da ostanete prijavljeni, ali si zapomnijo izdelke v nakupovalnem vozičku.
 
 Spletna mesta lahko uporabljajo piškotke za ogled dejavnosti brskanja na različnih spletnih mestih, na primer za osebno prilagajanje oglasov.</translation>
-<translation id="7966904497916178308">Standardna zaščita je vklopljena.</translation>
 <translation id="7971521879845308059">Blokiraj pojavna okna</translation>
 <translation id="797413074872316787">Če želite sinhronizirati in prilagajati v vseh napravah, vklopite sinhronizacijo.</translation>
 <translation id="7978018860671536736">3. Dotaknite se »Samodejno izpolnjevanje gesel«.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index 8f4b2de..4ff9adb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Sajtet mund t'i përdorin kukit për të përmirësuar përvojën e shfletimit, për shembull për të të mbajtur të identifikuar ose për të kujtuar artikujt në karrocën e blerjeve.
 
 Sajtet mund t'i përdorin kukit për të parë aktivitetin tënd të shfletimit nëpër sajte të ndryshme, për shembull për t'i personalizuar reklamat.</translation>
-<translation id="7966904497916178308">Mbrojtja standarde është aktive</translation>
 <translation id="7971521879845308059">Blloko dritaret kërcyese</translation>
 <translation id="797413074872316787">Për të sinkronizuar dhe personalizuar mes pajisjeve, aktivizo sinkronizimin.</translation>
 <translation id="7978018860671536736">3. Trokit "Plotëso automatikisht fjalëkalimet"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
index a70d365f..55f29b8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Napredne opcije</translation>
 <translation id="1981118202195772574">Mobilni uređaj</translation>
 <translation id="1989112275319619282">Pregledaj</translation>
+<translation id="1990820278544963435">Pronađite</translation>
 <translation id="199425419756152024">Prikaži lozinku</translation>
 <translation id="2010008505735295285">Ponovo učitaj</translation>
 <translation id="2015722694326466240">Da biste videli lozinke, prvo morate da podesite šifru na uređaju.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Trenutni sajt</translation>
 <translation id="7537586195939242955">Žao nam je, pristupna reč sada ne može da se instalira u Passbook.</translation>
 <translation id="7553234618121028547">Da biste isključili, otvorite <ph name="BEGIN_LINK" />Podešavanja<ph name="END_LINK" /> i idite u Opcije lozinki.</translation>
+<translation id="7554645225856321710">Zatvori sve</translation>
 <translation id="7554791636758816595">Nova kartica</translation>
 <translation id="7561196759112975576">Uvek</translation>
 <translation id="7583004045319035904">Otključajte kartice bez arhiviranja pomoću opcije <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /></translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Sajtovi mogu da koriste kolačiće za poboljšanje doživljaja pregledanja, na primer, da biste ostali prijavljeni ili da bi stavke u vašoj korpi za kupovinu ostale sačuvane.
 
 Sajtovi mogu da koriste kolačiće da bi videli vaše aktivnosti pregledanja na različitim sajtovima, na primer, za personalizaciju oglasa.</translation>
-<translation id="7966904497916178308">Standardna zaštita je uključena</translation>
 <translation id="7971521879845308059">Blokiraj iskačuće prozore</translation>
 <translation id="797413074872316787">Da biste sinhronizovali i personalizovali sadržaj na uređajima, uključite sinhronizaciju.</translation>
 <translation id="7978018860671536736">3. Dodirnite Automatski popuni lozinke</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Odjavite se sa naloga kojim se upravlja</translation>
 <translation id="9200875785104711666">pre <ph name="TIME" /> d</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Pretražite kartice…</translation>
 <translation id="9223358826628549784">Izveštaj o otkazivanju je poslat.</translation>
 <translation id="941747855997058526">Izaberite lozinku…</translation>
 <translation id="952704832371081537">Otkaži</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 0caf969..2b13cd485 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Напредне опције</translation>
 <translation id="1981118202195772574">Мобилни уређај</translation>
 <translation id="1989112275319619282">Прегледај</translation>
+<translation id="1990820278544963435">Пронађите</translation>
 <translation id="199425419756152024">Прикажи лозинку</translation>
 <translation id="2010008505735295285">Поново учитај</translation>
 <translation id="2015722694326466240">Да бисте видели лозинке, прво морате да подесите шифру на уређају.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Тренутни сајт</translation>
 <translation id="7537586195939242955">Жао нам је, приступна реч сада не може да се инсталира у Passbook.</translation>
 <translation id="7553234618121028547">Да бисте искључили, отворите <ph name="BEGIN_LINK" />Подешавања<ph name="END_LINK" /> и идите у Опције лозинки.</translation>
+<translation id="7554645225856321710">Затвори све</translation>
 <translation id="7554791636758816595">Нова картица</translation>
 <translation id="7561196759112975576">Увек</translation>
 <translation id="7583004045319035904">Откључајте картице без архивирања помоћу опције <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /></translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Сајтови могу да користе колачиће за побољшање доживљаја прегледања, на пример, да бисте остали пријављени или да би ставке у вашој корпи за куповину остале сачуване.
 
 Сајтови могу да користе колачиће да би видели ваше активности прегледања на различитим сајтовима, на пример, за персонализацију огласа.</translation>
-<translation id="7966904497916178308">Стандардна заштита је укључена</translation>
 <translation id="7971521879845308059">Блокирај искачуће прозоре</translation>
 <translation id="797413074872316787">Да бисте синхронизовали и персонализовали садржај на уређајима, укључите синхронизацију.</translation>
 <translation id="7978018860671536736">3. Додирните Аутоматски попуни лозинке</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Одјавите се са налога којим се управља</translation>
 <translation id="9200875785104711666">пре <ph name="TIME" /> д</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Претражите картице…</translation>
 <translation id="9223358826628549784">Извештај о отказивању је послат.</translation>
 <translation id="941747855997058526">Изаберите лозинку…</translation>
 <translation id="952704832371081537">Откажи</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index c0c6bf2..01d247d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Avancerat</translation>
 <translation id="1981118202195772574">Mobil</translation>
 <translation id="1989112275319619282">Bläddra</translation>
+<translation id="1990820278544963435">Sök</translation>
 <translation id="199425419756152024">Visa lösenord</translation>
 <translation id="2010008505735295285">Läs in igen</translation>
 <translation id="2015722694326466240">Du måste ställa in ett lösenord på enheten om du vill kunna se lösenorden.</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">Nuvarande webbplats</translation>
 <translation id="7537586195939242955">Det går tyvärr inte att installera det här objektet i Passbook just nu.</translation>
 <translation id="7553234618121028547">Inaktivera genom att öppna <ph name="BEGIN_LINK" />Inställningar<ph name="END_LINK" /> och sedan Lösenordsalternativ.</translation>
+<translation id="7554645225856321710">Stäng alla</translation>
 <translation id="7554791636758816595">Ny flik</translation>
 <translation id="7561196759112975576">Alltid</translation>
 <translation id="7583004045319035904">Lås upp inkognitoflikarna med <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation>
@@ -928,7 +930,6 @@
 <translation id="7966516440812255683">Webbplatser får förbättra surfupplevelsen med hjälp av cookies, till exempel genom att låta dig förbli inloggad eller spara vad du har lagt till i kundvagnen.
 
 Webbplatser får se din webbaktivitet på olika webbplatser med hjälp av cookies och till exempel anpassa annonser.</translation>
-<translation id="7966904497916178308">Standardskydd är aktiverat</translation>
 <translation id="7971521879845308059">Blockera popup-fönster</translation>
 <translation id="797413074872316787">Aktivera synkronisering om du vill synkronisera och anpassa alla dina enheter.</translation>
 <translation id="7978018860671536736">3. Tryck på Autofyll lösenord</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Logga ut från hanterat konto</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> d sedan</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Sök bland flikar …</translation>
 <translation id="9223358826628549784">Felrapporten har skickats.</translation>
 <translation id="941747855997058526">Välj lösenord …</translation>
 <translation id="952704832371081537">Avbryt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 0407145..729ed258 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Tovuti zinaweza kutumia vidakuzi ili kuboresha hali yako ya kuvinjari, kwa mfano, ili kufanya ubaki ukiwa umeingia katika akaunti au kukumbuka bidhaa zilizo kwenye kikapu chako cha ununuzi.
 
 Tovuti zinaweza kutumia vidakuzi kuona shughuli zako za kuvinjari kwenye tovuti mbalimbali, kwa mfano, kukuonyesha matangazo yanayokufaa zaidi.</translation>
-<translation id="7966904497916178308">Kipengele cha ulinzi wa kawaida kimewashwa</translation>
 <translation id="7971521879845308059">Zuia Ibukizi</translation>
 <translation id="797413074872316787">Ili usawazishe na uweke mapendeleo kwenye vifaa mbalimbali, washa kipengele cha kusawazisha.</translation>
 <translation id="7978018860671536736">3. Gusa 'Jaza Manenosiri Kiotomatiki'</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 6fd4b6f..9629fb84 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">உங்கள் உலாவல் அனுபவத்தை மேம்படுத்துவதற்காக (எ.கா., உங்களை உள்நுழைந்தபடியே வைத்திருப்பது, உங்கள் ஷாப்பிங் கார்ட்டில் உள்ளவற்றை நினைவில் கொள்வது போன்றவை) குக்கீகளைத் தளங்கள் பயன்படுத்த முடியும்.
 
 விளம்பரங்களைப் பிரத்தியேகமாக்குவது போன்ற செயல்களைச் செய்வதற்காக வெவ்வேறு தளங்களில் உங்களின் உலாவல் செயல்பாட்டைப் பார்க்க, தளங்களால் குக்கீகளைப் பயன்படுத்த முடியும்.</translation>
-<translation id="7966904497916178308">நிலையான பாதுகாப்பு இயக்கப்பட்டுள்ளது</translation>
 <translation id="7971521879845308059">பாப்-அப்களைத் தடு</translation>
 <translation id="797413074872316787">ஒத்திசைவை இயக்கி அனைத்துச் சாதனங்களிலும் ஒத்திசைக்கவும் பிரத்தியேகமாக்கவும்.</translation>
 <translation id="7978018860671536736">3. 'கடவுச்சொற்களைத் தானாக நிரப்பு' என்பதைத் தட்டவும்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 4ff4c0431..2644a2e8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">సైట్‌లు మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి కుక్కీలను ఉపయోగిస్తాయి, ఉదాహరణకు, మిమ్మల్ని సైన్ ఇన్ చేసి ఉంచడం లేదా మీ షాపింగ్ కార్ట్‌లోని ఐటెమ్‌లను గుర్తు చేయడం లాంటివి.
 
 వివిధ సైట్‌లలో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి సైట్‌లు కుక్కీలను ఉపయోగించవచ్చు, ఉదాహరణకు, యాడ్‌లను వ్యక్తిగతీకరించడం.</translation>
-<translation id="7966904497916178308">స్టాండర్డ్ రక్షణ ఆన్‌లో ఉంది</translation>
 <translation id="7971521879845308059">పాప్-అప్‌లను బ్లాక్ చేయండి</translation>
 <translation id="797413074872316787">మీ అన్ని పరికరాలలోనూ సింక్, ఇంకా వ్యక్తిగతీకరణ చేయడం కోసం, సింక్‌ను ఆన్ చేయండి.</translation>
 <translation id="7978018860671536736">3. 'పాస్‌వర్డ్‌లను ఆటోఫిల్ చేయండి'ని ట్యాప్ చేయండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 792b77b8..fc6618c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -930,7 +930,6 @@
 <translation id="7966516440812255683">เว็บไซต์จะใช้คุกกี้เพื่อปรับปรุงประสบการณ์การท่องเว็บ เช่น ให้คุณลงชื่อเข้าใช้ต่อไปเรื่อยๆ หรือจดจำรายการในรถเข็นช็อปปิ้ง
 
 เว็บไซต์ใช้คุกกี้เพื่อดูกิจกรรมการท่องเว็บที่คุณทำในเว็บไซต์ และดำเนินการต่างๆ เช่น ปรับโฆษณาตามโปรไฟล์ของคุณ</translation>
-<translation id="7966904497916178308">การปกป้องมาตรฐานเปิดอยู่</translation>
 <translation id="7971521879845308059">บล็อกป๊อปอัป</translation>
 <translation id="797413074872316787">เปิดการซิงค์เพื่อซิงค์และปรับเปลี่ยนข้อมูลตามความต้องการในอุปกรณ์ทุกเครื่อง</translation>
 <translation id="7978018860671536736">3. แตะ "ป้อนรหัสผ่านอัตโนมัติ"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index bcedff5..d159b26 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Siteler size daha iyi bir göz atma deneyimi sunmak, örneğin, oturumunuzu açık tutmak veya alışveriş sepetinizdeki ürünleri hatırlamak için çerez kullanabilir.
 
 Siteler, örneğin reklamları kişiselleştirmek amacıyla farklı sitelerde tarama etkinliğinizi görmek için çerezler kullanabilir.</translation>
-<translation id="7966904497916178308">Standart koruma açık</translation>
 <translation id="7971521879845308059">Pop-up'ları Engelle</translation>
 <translation id="797413074872316787">Cihazlar arasında senkronizasyon ve kişiselleştirme yapmak için senkronizasyonu etkinleştirin.</translation>
 <translation id="7978018860671536736">3. Parolaları Otomatik Doldur seçeneğine dokunun</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 4897c38e..a33ef7c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Сайти можуть використовувати файли cookie, щоб покращувати веб-перегляд, наприклад не виходити з облікового запису чи запам'ятовувати товари в кошику для покупок.
 
 Також сайти можуть використовувати ці файли для перегляду ваших дій у веб-переглядачі, зокрема, щоб персоналізувати рекламу.</translation>
-<translation id="7966904497916178308">Стандартний захист увімкнено</translation>
 <translation id="7971521879845308059">Блок.сплив.вікна</translation>
 <translation id="797413074872316787">Щоб синхронізувати й персоналізувати дані на всіх своїх пристроях, увімкніть синхронізацію.</translation>
 <translation id="7978018860671536736">3. Натисніть "Автозаповнення паролів"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 7709c9f..ee9a6d0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">سائٹس آپ کے براؤزنگ کے تجربہ کو بہتر بنانے کے لیے کوکیز کا استعمال کر سکتی ہیں، مثال کے طور پر آپ کو سائن ان رکھنا یا آپ کی شاپنگ کارٹ میں آئٹمز کو یاد رکھنا۔
 
 سائٹس مختلف سائٹس پر آپ کی براؤزنگ کی سرگرمی دیکھنے کیلئے کوکیز کا استعمال کر سکتی ہیں، مثال کے طور پر اشتہارات کو ذاتی نوعیت کا بنانا۔</translation>
-<translation id="7966904497916178308">معیاری تحفظ آن ہے</translation>
 <translation id="7971521879845308059">پاپ اپس کو مسدود کریں</translation>
 <translation id="797413074872316787">سبھی آلات پر سِنک کرنے اور ذاتی نوعیت سازی کیلئے، سِنک کو آن کریں۔</translation>
 <translation id="7978018860671536736">3۔ آٹو فل پاس ورڈز پر تھپتھپائیں</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index ce616fe..9706de1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">Saytlar sahifalarni kezishingizni yaxshilash, jumladan, kirish axborotingiz yoki xarid qutingizni eslab qolish uchun cookie fayllardan foydalanishi mumkin.
 
 Saytlar reklamalarni sizga moslashtirish uchun brauzerdagi faoliyatingizni kuzatishi mumkin</translation>
-<translation id="7966904497916178308">Standart himoya yoniq</translation>
 <translation id="7971521879845308059">Qalqib chiquvchi oynalarni bloklash</translation>
 <translation id="797413074872316787">Barcha qurilmalarda sinxronlash va o‘zingizga moslash uchun sinxronizatsiyani yoqing.</translation>
 <translation id="7978018860671536736">3. Parollarni avtomatik kiritish uchun bosing</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 3569591..4713bb56 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">Các trang web có thể dùng cookie để cải thiện trải nghiệm duyệt web của bạn, chẳng hạn như để duy trì trạng thái đăng nhập hoặc ghi nhớ những mặt hàng có trong giỏ hàng.
 
 Các trang web có thể dùng cookie để giám sát hoạt động duyệt web của bạn trên nhiều trang web, chẳng hạn như để điều chỉnh quảng cáo cho phù hợp với bạn.</translation>
-<translation id="7966904497916178308">Chế độ Bảo vệ thông thường đang bật</translation>
 <translation id="7971521879845308059">Chặn cửa sổ bật lên</translation>
 <translation id="797413074872316787">Để đồng bộ hóa và cá nhân hóa trên các thiết bị, hãy bật tính năng đồng bộ hóa.</translation>
 <translation id="7978018860671536736">3. Nhấn vào Tự động điền mật khẩu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index ee2d273..ce66800 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -929,7 +929,6 @@
 <translation id="7966516440812255683">网站可以使用 Cookie 来提升您的浏览体验,例如让您保持登录状态或记住您购物车中的商品。
 
 网站还可以使用 Cookie 查看您在各个不同网站上的浏览活动,以便实现某些功能或目的(例如为您展示个性化广告)。</translation>
-<translation id="7966904497916178308">标准保护已开启</translation>
 <translation id="7971521879845308059">拦截弹出式窗口</translation>
 <translation id="797413074872316787">若要在您的所有设备上保持同步并获享个性化体验,请开启同步功能。</translation>
 <translation id="7978018860671536736">3. 点按“自动填充密码”</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index 7c196d7..4ea08f7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -927,7 +927,6 @@
 <translation id="7966516440812255683">網站可使用 Cookie 來改善瀏覽體驗,例如讓您保持登入狀態或記住購物車中的商品。
 
 網站可使用 Cookie 來查看您在各網站的瀏覽活動,例如放送個人化廣告。</translation>
-<translation id="7966904497916178308">已開啟「標準保護功能」</translation>
 <translation id="7971521879845308059">封鎖彈出式視窗</translation>
 <translation id="797413074872316787">如要在不同裝置上同步並享受個人化體驗,請開啟同步處理功能。</translation>
 <translation id="7978018860671536736">3. 輕按 [自動填入密碼]</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
index 23824792..a3105e1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">網站可使用 Cookie 改善瀏覽體驗,例如讓你保持登入狀態,或記住購物車中的商品。
 
 網站可使用 Cookie 查看你在各網站的瀏覽活動,並提供個人化廣告等服務。</translation>
-<translation id="7966904497916178308">已啟用標準防護功能</translation>
 <translation id="7971521879845308059">封鎖彈出式視窗</translation>
 <translation id="797413074872316787">如要在所有裝置上保持同步並享有個人化體驗,請開啟同步功能。</translation>
 <translation id="7978018860671536736">3. 輕觸 [自動填入密碼]</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index 9e46087..b66b5c3b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -928,7 +928,6 @@
 <translation id="7966516440812255683">Amasayithi angasebenzisa amakhukhi ukuthuthukisa ukuzizwela kwakho kokuphequlula, ngokwesibonelo, ukukugcina ungene ngemvume noma ukukhumbula izinto ezikukalishi yakho yokuthenga.
 
 Amasayithi angasebenzisa amakhukhi ukubona umsebenzi wakho wokuphequlula kumasayithi ahlukahlukene, ngokwesibonelo, ukwenza izikhangiso ngokwezifiso.</translation>
-<translation id="7966904497916178308">Ukuvikela okujwayelekile kuvuliwe</translation>
 <translation id="7971521879845308059">Vimba izigelekeqe</translation>
 <translation id="797413074872316787">Ukuze uvumelanise uphinde wenze kube ngokwakho kuwo wonkana amadivayisi akho, vula ukuvumelanisa.</translation>
 <translation id="7978018860671536736">3. Thepha Ukugcwalisa Amaphasiwedi Ngokuzenzakalelayo</translation>
diff --git a/ios/chrome/browser/reading_list/BUILD.gn b/ios/chrome/browser/reading_list/BUILD.gn
index 436d2a3f..f45ce2bb 100644
--- a/ios/chrome/browser/reading_list/BUILD.gn
+++ b/ios/chrome/browser/reading_list/BUILD.gn
@@ -99,12 +99,12 @@
   ]
   deps = [
     ":distilled_bundle_data",
-    ":fakes",
     ":reading_list",
     "//base",
     "//base/test:test_support",
     "//components/favicon/ios",
     "//components/reading_list/core",
+    "//components/reading_list/core:test_support",
     "//ios/chrome/browser/browser_state:test_support",
     "//ios/chrome/browser/dom_distiller",
     "//ios/chrome/browser/paths",
@@ -119,20 +119,6 @@
   ]
 }
 
-source_set("fakes") {
-  configs += [ "//build/config/compiler:enable_arc" ]
-  testonly = true
-  sources = [
-    "fake_reading_list_model.h",
-    "fake_reading_list_model.mm",
-  ]
-  deps = [
-    "//base",
-    "//components/reading_list/core",
-  ]
-  public_deps = [ "//third_party/abseil-cpp:absl" ]
-}
-
 bundle_data("distilled_bundle_data") {
   testonly = true
 
diff --git a/ios/chrome/browser/reading_list/offline_page_tab_helper_unittest.mm b/ios/chrome/browser/reading_list/offline_page_tab_helper_unittest.mm
index 5271b616..e0149b9 100644
--- a/ios/chrome/browser/reading_list/offline_page_tab_helper_unittest.mm
+++ b/ios/chrome/browser/reading_list/offline_page_tab_helper_unittest.mm
@@ -9,9 +9,9 @@
 #import "base/run_loop.h"
 #import "base/test/ios/wait_util.h"
 #import "base/time/default_clock.h"
+#import "components/reading_list/core/fake_reading_list_model.h"
 #import "components/reading_list/core/reading_list_model_impl.h"
 #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
-#import "ios/chrome/browser/reading_list/fake_reading_list_model.h"
 #import "ios/chrome/browser/reading_list/reading_list_model_factory.h"
 #import "ios/web/public/test/fakes/fake_navigation_context.h"
 #import "ios/web/public/test/fakes/fake_navigation_manager.h"
diff --git a/ios/chrome/browser/sessions/session_service_ios.mm b/ios/chrome/browser/sessions/session_service_ios.mm
index 1da21d62..e5f3a2b 100644
--- a/ios/chrome/browser/sessions/session_service_ios.mm
+++ b/ios/chrome/browser/sessions/session_service_ios.mm
@@ -71,9 +71,10 @@
 
 - (instancetype)init {
   scoped_refptr<base::SequencedTaskRunner> taskRunner =
-      base::ThreadPool::CreateSequencedTaskRunner(
+      base::ThreadPool::CreateSingleThreadTaskRunner(
           {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-           base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
+           base::TaskShutdownBehavior::BLOCK_SHUTDOWN},
+          base::SingleThreadTaskRunnerThreadMode::DEDICATED);
   return [self initWithTaskRunner:taskRunner];
 }
 
diff --git a/ios/chrome/browser/signin/BUILD.gn b/ios/chrome/browser/signin/BUILD.gn
index 4dae641..ac0646e 100644
--- a/ios/chrome/browser/signin/BUILD.gn
+++ b/ios/chrome/browser/signin/BUILD.gn
@@ -161,6 +161,18 @@
   frameworks = [ "Foundation.framework" ]
 }
 
+source_set("fake_account_details_view_controller") {
+  testonly = true
+  visibility = [ "//ios/public/provider/chrome/browser/signin:test_support" ]
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "fake_account_details_view_controller.h",
+    "fake_account_details_view_controller.mm",
+  ]
+  deps = [ ":system_identity" ]
+  frameworks = [ "UIKit.framework" ]
+}
+
 source_set("fake_system_identity") {
   testonly = true
   configs += [ "//build/config/compiler:enable_arc" ]
diff --git a/ios/chrome/browser/signin/fake_account_details_view_controller.h b/ios/chrome/browser/signin/fake_account_details_view_controller.h
new file mode 100644
index 0000000..73890a7
--- /dev/null
+++ b/ios/chrome/browser/signin/fake_account_details_view_controller.h
@@ -0,0 +1,19 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_SIGNIN_FAKE_ACCOUNT_DETAILS_VIEW_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_SIGNIN_FAKE_ACCOUNT_DETAILS_VIEW_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+@protocol SystemIdentity;
+
+// View controller used to fake "My Google Account" view in tests.
+@interface FakeAccountDetailsViewController : UIViewController
+
+- (instancetype)initWithIdentity:(id<SystemIdentity>)identity;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_SIGNIN_FAKE_ACCOUNT_DETAILS_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/signin/fake_account_details_view_controller.mm b/ios/chrome/browser/signin/fake_account_details_view_controller.mm
new file mode 100644
index 0000000..a6877e7c
--- /dev/null
+++ b/ios/chrome/browser/signin/fake_account_details_view_controller.mm
@@ -0,0 +1,49 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/signin/fake_account_details_view_controller.h"
+
+#import "ios/chrome/browser/signin/system_identity.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@implementation FakeAccountDetailsViewController {
+  __weak id<SystemIdentity> _identity;
+  UITextView* _detailView;
+}
+
+- (instancetype)initWithIdentity:(id<SystemIdentity>)identity {
+  if ((self = [super init])) {
+    _identity = identity;
+  }
+  return self;
+}
+
+#pragma mark - UIViewController
+
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  // Obnovioux color, this is a test screen.
+  self.view.backgroundColor = [UIColor orangeColor];
+
+  _detailView = [[UITextView alloc] init];
+  _detailView.text =
+      [NSString stringWithFormat:@"Details: %@", [_identity debugDescription]];
+}
+
+- (void)viewWillLayoutSubviews {
+  [super viewWillLayoutSubviews];
+
+  const CGRect bounds = self.view.bounds;
+  const CGPoint center =
+      CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds));
+
+  [_detailView sizeToFit];
+  _detailView.center = center;
+}
+
+@end
diff --git a/ios/chrome/browser/ui/browser_view/key_commands_provider.mm b/ios/chrome/browser/ui/browser_view/key_commands_provider.mm
index d8c5cf9..c10cd24 100644
--- a/ios/chrome/browser/ui/browser_view/key_commands_provider.mm
+++ b/ios/chrome/browser/ui/browser_view/key_commands_provider.mm
@@ -8,8 +8,10 @@
 
 #import "base/metrics/user_metrics.h"
 #import "base/metrics/user_metrics_action.h"
+#import "components/bookmarks/browser/bookmark_model.h"
 #import "components/sessions/core/tab_restore_service_helper.h"
 #import "components/strings/grit/components_strings.h"
+#import "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
 #import "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #import "ios/chrome/browser/find_in_page/find_tab_helper.h"
 #import "ios/chrome/browser/main/browser.h"
@@ -244,9 +246,14 @@
   if (command.action == @selector(keyCommand_select1)) {
     command.discoverabilityTitle =
         l10n_util::GetNSStringWithFixup(IDS_IOS_KEYBOARD_FIRST_TAB);
-  } else {
-    return [super validateCommand:command];
   }
+  if (command.action == @selector(keyCommand_addToBookmarks)) {
+    if ([self isBookmarkedPage]) {
+      command.discoverabilityTitle =
+          l10n_util::GetNSStringWithFixup(IDS_IOS_KEYBOARD_EDIT_BOOKMARK);
+    }
+  }
+  return [super validateCommand:command];
 }
 
 #pragma mark - Key Command Actions
@@ -593,4 +600,18 @@
   return url.is_valid() && url.SchemeIsHTTPOrHTTPS();
 }
 
+- (BOOL)isBookmarkedPage {
+  web::WebState* currentWebState =
+      self.browser->GetWebStateList()->GetActiveWebState();
+  if (!currentWebState) {
+    return NO;
+  }
+
+  const GURL& url = currentWebState->GetLastCommittedURL();
+  bookmarks::BookmarkModel* bookmarkModel =
+      ios::BookmarkModelFactory::GetForBrowserState(
+          self.browser->GetBrowserState());
+  return bookmarkModel->IsBookmarked(url);
+}
+
 @end
diff --git a/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm b/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
index 1af881ba..1d34f4b 100644
--- a/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
+++ b/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
@@ -7,6 +7,10 @@
 #import "base/test/metrics/user_action_tester.h"
 #import "base/test/scoped_feature_list.h"
 #import "base/test/task_environment.h"
+#import "components/bookmarks/browser/bookmark_model.h"
+#import "components/bookmarks/browser/bookmark_node.h"
+#import "components/bookmarks/test/bookmark_test_helpers.h"
+#import "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
 #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
 #import "ios/chrome/browser/find_in_page/find_tab_helper.h"
 #import "ios/chrome/browser/lens/lens_browser_agent.h"
@@ -36,6 +40,7 @@
 #import "ios/web/public/test/fakes/fake_navigation_manager.h"
 #import "ios/web/public/test/fakes/fake_web_state.h"
 #import "testing/gtest/include/gtest/gtest.h"
+#import "testing/gtest_mac.h"
 #import "testing/platform_test.h"
 #import "third_party/ocmock/OCMock/OCMock.h"
 #import "third_party/ocmock/gtest_support.h"
@@ -59,6 +64,8 @@
     TestChromeBrowserState::Builder builder;
     builder.AddTestingFactory(IOSChromeTabRestoreServiceFactory::GetInstance(),
                               base::BindRepeating(BuildFakeTabRestoreService));
+    builder.AddTestingFactory(ios::BookmarkModelFactory::GetInstance(),
+                              ios::BookmarkModelFactory::GetDefaultFactory());
     browser_state_ = builder.Build();
     browser_ = std::make_unique<TestBrowser>(browser_state_.get());
     web_state_list_ = browser_->GetWebStateList();
@@ -66,6 +73,9 @@
     WebNavigationBrowserAgent::CreateForBrowser(browser_.get());
     scene_state_ = [[SceneState alloc] initWithAppState:nil];
     SceneStateBrowserAgent::CreateForBrowser(browser_.get(), scene_state_);
+    bookmark_model_ =
+        ios::BookmarkModelFactory::GetForBrowserState(browser_state_.get());
+    bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model_);
     provider_ = [[KeyCommandsProvider alloc] initWithBrowser:browser_.get()];
   }
   ~KeyCommandsProviderTest() override {}
@@ -151,6 +161,7 @@
   WebStateList* web_state_list_;
   SceneState* scene_state_;
   base::UserActionTester user_action_tester_;
+  bookmarks::BookmarkModel* bookmark_model_;
   KeyCommandsProvider* provider_;
 };
 
@@ -890,4 +901,48 @@
   }
 }
 
+TEST_F(KeyCommandsProviderTest, ValidateBookmarkCommand) {
+  // Open a tab with a URL.
+  GURL url = GURL("https://test/url");
+  auto web_state = CreateFakeWebStateWithURL(url);
+  browser_->GetWebStateList()->InsertWebState(
+      0, std::move(web_state), WebStateList::INSERT_ACTIVATE, WebStateOpener());
+
+  for (UIKeyCommand* command in provider_.keyCommands) {
+    [provider_ validateCommand:command];
+    if (command.action == @selector(keyCommand_addToBookmarks)) {
+      EXPECT_NSEQ(
+          command.discoverabilityTitle,
+          l10n_util::GetNSStringWithFixup(IDS_IOS_KEYBOARD_ADD_TO_BOOKMARKS));
+    }
+  }
+
+  // Bookmark the page.
+  const bookmarks::BookmarkNode* bookmark_bar =
+      bookmark_model_->bookmark_bar_node();
+  const bookmarks::BookmarkNode* bookmark =
+      bookmark_model_->AddURL(bookmark_bar, 0, u"", url);
+
+  for (UIKeyCommand* command in provider_.keyCommands) {
+    [provider_ validateCommand:command];
+    if (command.action == @selector(keyCommand_addToBookmarks)) {
+      EXPECT_NSEQ(
+          command.discoverabilityTitle,
+          l10n_util::GetNSStringWithFixup(IDS_IOS_KEYBOARD_EDIT_BOOKMARK));
+    }
+  }
+
+  // Remove the bookmark.
+  bookmark_model_->Remove(bookmark);
+
+  for (UIKeyCommand* command in provider_.keyCommands) {
+    [provider_ validateCommand:command];
+    if (command.action == @selector(keyCommand_addToBookmarks)) {
+      EXPECT_NSEQ(
+          command.discoverabilityTitle,
+          l10n_util::GetNSStringWithFixup(IDS_IOS_KEYBOARD_ADD_TO_BOOKMARKS));
+    }
+  }
+}
+
 }  // namespace
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.mm b/ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.mm
index 69cfea9..b94468cf 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.mm
@@ -7,6 +7,7 @@
 #import <memory>
 
 #import "components/reading_list/core/reading_list_model.h"
+#import "components/reading_list/core/reading_list_model_observer.h"
 #import "ios/chrome/browser/ui/reading_list/reading_list_menu_notification_delegate.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
index 8f58ff2..1ecb1dc 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
@@ -1026,6 +1026,20 @@
   inset.right = self.scrollView.safeAreaInsets.right;
   inset.top += self.scrollView.safeAreaInsets.top;
   inset.bottom += self.scrollView.safeAreaInsets.bottom;
+
+  if (IsPinnedTabsEnabled() && !self.pinnedTabsViewController.view.isHidden) {
+    CGFloat pinnedViewHeight =
+        self.pinnedTabsViewController.view.bounds.size.height;
+    switch (GetPinnedTabsPosition()) {
+      case PinnedTabsPosition::kBottomPosition:
+        inset.bottom += pinnedViewHeight + kPinnedViewBottomPadding;
+        break;
+      case PinnedTabsPosition::kTopPosition:
+        inset.top += pinnedViewHeight + kPinnedViewTopPadding;
+        break;
+    }
+  }
+
   self.incognitoTabsViewController.gridView.contentInset = inset;
   self.regularTabsViewController.gridView.contentInset = inset;
 }
diff --git a/ios/chrome/browser/ui/whats_new/cells/BUILD.gn b/ios/chrome/browser/ui/whats_new/cells/BUILD.gn
index b89b4e44..6328cda 100644
--- a/ios/chrome/browser/ui/whats_new/cells/BUILD.gn
+++ b/ios/chrome/browser/ui/whats_new/cells/BUILD.gn
@@ -18,6 +18,7 @@
     "//ios/chrome/browser/ui/table_view:styler",
     "//ios/chrome/browser/ui/table_view/cells",
     "//ios/chrome/browser/ui/util",
+    "//ios/chrome/browser/ui/whats_new/resources:hero_image_background_color",
     "//ios/chrome/browser/ui/whats_new/resources:whats_new_icon_tile",
     "//ios/chrome/common/ui/colors",
     "//ios/chrome/common/ui/table_view:cells_constants",
diff --git a/ios/chrome/browser/ui/whats_new/cells/whats_new_table_view_banner_item.mm b/ios/chrome/browser/ui/whats_new/cells/whats_new_table_view_banner_item.mm
index 0bc74b5..d797f4ad 100644
--- a/ios/chrome/browser/ui/whats_new/cells/whats_new_table_view_banner_item.mm
+++ b/ios/chrome/browser/ui/whats_new/cells/whats_new_table_view_banner_item.mm
@@ -22,8 +22,6 @@
 const CGFloat kItemLeadingMargin = 16.0;
 // The height of the image.
 const CGFloat kImageViewHeight = 220.0;
-// The width of the image.
-const CGFloat kImageViewWidth = 343.0;
 // The size of the space between each items in the stack view.
 const CGFloat kStackViewVerticalSpacings = 10.0;
 // The size of the margin between the stack view and the content top view.
@@ -103,9 +101,10 @@
     _bannerImageView = [[UIImageView alloc] init];
     _bannerImageView.translatesAutoresizingMaskIntoConstraints = NO;
     _isBannerAtBottom = NO;
+    _bannerImageView.contentMode = UIViewContentModeScaleAspectFit;
     [self.bannerView addSubview:_bannerImageView];
     self.bannerView.backgroundColor =
-        [UIColor colorNamed:kPrimaryBackgroundColor];
+        [UIColor colorNamed:@"hero_image_background_color"];
 
     // Text label.
     _textLabel = [[UILabel alloc] init];
@@ -168,7 +167,6 @@
           constraintEqualToAnchor:self.bannerView.centerXAnchor],
       [_bannerImageView.heightAnchor
           constraintEqualToConstant:kImageViewHeight],
-      [_bannerImageView.widthAnchor constraintEqualToConstant:kImageViewWidth],
 
       // Section text label constraints.
       [_sectionTextLabel.leadingAnchor
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@2x.png
index 0feb16c..3adf382 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@3x.png
index f37f70d..1ddecf9a 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@2x.png
index fd077b1..74014c0b 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@3x.png
index d59b4a50..9db81539 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/autofill_hero_banner.imageset/autofill_hero_banner_dark@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@2x.png
index 3b9943a2..a756338 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@3x.png
index 890b1af..653b74f 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@2x.png
index 4acecd4..acf87f17 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@3x.png
index ebea68e8..aac6718 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/chrome_by_default_hero_banner.imageset/chrome_by_default_hero_banner_dark@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@2x.png
index c25f95d..2e3a157 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@3x.png
index 7d63d36c..e3c143f 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@2x.png
index 70ea26f..f8ed58a 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@3x.png
index b06f5d6..8073e3d0 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/passwords_in_other_apps_hero_banner.imageset/passwords_in_other_apps_hero_banner_dark@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@2x.png
index fa8133b..b065333 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@3x.png
index f041eeb9..b1466d1d 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@2x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@2x.png
index 08c3ee4..3196c86 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@2x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@3x.png b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@3x.png
index 94f3119..beb0c2a 100644
--- a/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@3x.png
+++ b/ios/chrome/browser/ui/whats_new/data_source/resources/search_tabs_hero_banner.imageset/search_tabs_hero_banner_dark@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/whats_new/resources/BUILD.gn b/ios/chrome/browser/ui/whats_new/resources/BUILD.gn
index 01044f5..1f7aebc 100644
--- a/ios/chrome/browser/ui/whats_new/resources/BUILD.gn
+++ b/ios/chrome/browser/ui/whats_new/resources/BUILD.gn
@@ -11,3 +11,7 @@
     "whats_new_icon_tile.imageset/whats_new_icon_tile@3x.png",
   ]
 }
+
+colorset("hero_image_background_color") {
+  sources = [ "hero_image_background_color.colorset/Contents.json" ]
+}
diff --git a/ios/chrome/browser/ui/whats_new/resources/hero_image_background_color.colorset/Contents.json b/ios/chrome/browser/ui/whats_new/resources/hero_image_background_color.colorset/Contents.json
new file mode 100644
index 0000000..4dde54c
--- /dev/null
+++ b/ios/chrome/browser/ui/whats_new/resources/hero_image_background_color.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+    "info": {
+      "version": 1,
+      "author": "xcode"
+    },
+    "colors": [
+      {
+        "idiom": "universal",
+        "color": {
+          "color-space": "display-p3",
+          "components": {
+            "alpha": "1.000",
+            "red": "0xF7",
+            "green": "0xF7",
+            "blue": "0xF7"
+          }
+        }
+      },
+      {
+        "idiom" : "universal",
+        "appearances" : [
+          {
+            "appearance" : "luminosity",
+            "value" : "dark"
+          }
+        ],
+        "color" : {
+          "color-space" : "display-p3",
+          "components" : {
+            "alpha" : "1.000",
+            "red" : "0x2B",
+            "green" : "0x2C",
+            "blue" : "0x2F"
+          }
+        }
+      }
+    ]
+  }
\ No newline at end of file
diff --git a/ios/chrome/browser/ui/whats_new/whats_new_detail_view_controller.mm b/ios/chrome/browser/ui/whats_new/whats_new_detail_view_controller.mm
index cf74f32..00856d8 100644
--- a/ios/chrome/browser/ui/whats_new/whats_new_detail_view_controller.mm
+++ b/ios/chrome/browser/ui/whats_new/whats_new_detail_view_controller.mm
@@ -24,6 +24,7 @@
 namespace {
 
 constexpr CGFloat kDefaultMargin = 32;
+constexpr CGFloat kSubtitleTopMargin = 8;
 constexpr CGFloat kActionsBottomMargin = 10;
 constexpr CGFloat kContentWidthMultiplier = 0.8;
 constexpr CGFloat kButtonHorizontalMargin = 4;
@@ -201,7 +202,7 @@
     // Subtitle contraints.
     [self.subtitleLabel.topAnchor
         constraintEqualToAnchor:self.titleLabel.bottomAnchor
-                       constant:kDefaultMargin],
+                       constant:kSubtitleTopMargin],
     [self.subtitleLabel.centerXAnchor
         constraintEqualToAnchor:scrollContentView.centerXAnchor],
     [self.subtitleLabel.widthAnchor
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
index 8a90c49c..295d607c 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-61290bccddc9336c7a1aa08b92a98d606964d0a1
\ No newline at end of file
+f5c6a9eab21eb3245a7577e2a76587bae46ec2d6
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
index 967cbe8..90e54315 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-17c705848ab1e7c9419f11e96e9d4a1fdb3556c1
\ No newline at end of file
+c26b1535d0532d0521ecd94c21c0bed2752405d2
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
index 0bf6304..ba29c1a 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-fbf80bf78e23dd3a4fb3a846c411ad70fde63da9
\ No newline at end of file
+10bb987404be58474a92d4b2cd12e5cf8402c831
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
index 51cea50..f214c68 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-eb4c6ecdc5b866e7a9161578c28a5528c9bc9d36
\ No newline at end of file
+ad185b70dec544646ffe052c27f579eee80624ea
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
index 1554c88..b6f0bf2 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-bfe14c3e55a8eebbb405a488d90c3e10b9a7fa03
\ No newline at end of file
+c92acf8fdff4e0bc64acf79ade547a4d47400468
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
index 7429a726..f18146b 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-7a290c3ca595db4757d9d45a77ec207b0d0b57ac
\ No newline at end of file
+60bc1123d46e356dcad97791b7ecc7c10ecc1246
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
index ede3c4b..e16699b 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-3002a3e9299db0700df9f51b66ef2f5c7ed99aef
\ No newline at end of file
+5cfb845834c88316c59bd852925eeb86002c4be2
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
index 2c00533..54e6a27 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-16a8488a4c1889c3097bda1c0933e036b5e5464c
\ No newline at end of file
+3cb3e1c76a6bbf488e5f4b8fcf327abc67179e9c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
index a5403f1..088d14fb 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-f39f9a580799e962a00cf8b7d37419fd79c2f110
\ No newline at end of file
+dfd7dcec6cf0ec1ccf1738287de1463689d89de7
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
index 4196ad1..06bf229 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-1a21db7c9dd8f34d58bb3adcd4520373bb7a7198
\ No newline at end of file
+d02805f20c322d04b55865bad884cccead6ea93f
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
index f4b6be918..5d5bbfa 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-611b8166f2b84b8454613c9be9a53a86020c9dd6
\ No newline at end of file
+b03119cd708631cae1c04552625015d8e5ac4497
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
index 4a946f8..cc653617 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-ccc3a759f0e7446bafc8b43be438760402c90cae
\ No newline at end of file
+b99da7c942910f17b7974611276efe76643ae574
\ No newline at end of file
diff --git a/ios/public/provider/chrome/browser/signin/BUILD.gn b/ios/public/provider/chrome/browser/signin/BUILD.gn
index e7839293..b412f01 100644
--- a/ios/public/provider/chrome/browser/signin/BUILD.gn
+++ b/ios/public/provider/chrome/browser/signin/BUILD.gn
@@ -62,6 +62,7 @@
     "//base/test:test_support",
     "//components/signin/public/identity_manager",
     "//google_apis",
+    "//ios/chrome/browser/signin:fake_account_details_view_controller",
     "//ios/chrome/browser/signin:fake_system_identity",
     "//ios/chrome/browser/signin:system_identity",
     "//ios/public/provider/chrome/browser",
diff --git a/ios/public/provider/chrome/browser/signin/DEPS b/ios/public/provider/chrome/browser/signin/DEPS
index 4d69b84..9b1069a 100644
--- a/ios/public/provider/chrome/browser/signin/DEPS
+++ b/ios/public/provider/chrome/browser/signin/DEPS
@@ -13,6 +13,7 @@
   ],
   "fake_chrome_identity_service\.mm": [
     "+ios/chrome/browser/signin/fake_system_identity.h",
+    "+ios/chrome/browser/signin/fake_account_details_view_controller.h",
   ],
   "chrome_identity_service_unittest\.mm": [
     "+ios/chrome/browser/signin/fake_system_identity.h",
diff --git a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm
index 1d89760..d0b881ca 100644
--- a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm
+++ b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm
@@ -13,6 +13,7 @@
 #import "base/strings/sys_string_conversions.h"
 #import "base/test/ios/wait_util.h"
 #import "google_apis/gaia/gaia_auth_util.h"
+#import "ios/chrome/browser/signin/fake_account_details_view_controller.h"
 #import "ios/chrome/browser/signin/fake_system_identity.h"
 #import "ios/public/provider/chrome/browser/chrome_browser_provider.h"
 #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity_interaction_manager.h"
@@ -58,91 +59,6 @@
 
 }  // anonymous namespace
 
-@interface FakeAccountDetailsViewController : UIViewController {
-  __weak id<SystemIdentity> _identity;
-  UIButton* _removeAccountButton;
-  UIButton* _closeAccountDetailsButton;
-}
-@end
-
-@implementation FakeAccountDetailsViewController
-
-- (instancetype)initWithIdentity:(id<SystemIdentity>)identity {
-  self = [super initWithNibName:nil bundle:nil];
-  if (self) {
-    _identity = identity;
-  }
-  return self;
-}
-
-- (void)dealloc {
-  [_removeAccountButton removeTarget:self
-                              action:@selector(didTapRemoveAccount:)
-                    forControlEvents:UIControlEventTouchUpInside];
-  [_closeAccountDetailsButton removeTarget:self
-                                    action:@selector(didTapCloseAccount:)
-                          forControlEvents:UIControlEventTouchUpInside];
-}
-
-- (void)viewDidLoad {
-  [super viewDidLoad];
-
-  // Obnoxious color, this is a test screen.
-  self.view.backgroundColor = [UIColor orangeColor];
-
-  _removeAccountButton = [UIButton buttonWithType:UIButtonTypeCustom];
-  [self addButtonToSubviewWithTitle:@"Remove account"
-                             button:_removeAccountButton
-                             action:@selector(didTapRemoveAccount:)];
-
-  _closeAccountDetailsButton = [UIButton buttonWithType:UIButtonTypeCustom];
-  [self addButtonToSubviewWithTitle:@"Close account"
-                             button:_closeAccountDetailsButton
-                             action:@selector(didTapCloseAccount:)];
-}
-
-- (void)viewWillLayoutSubviews {
-  [super viewWillLayoutSubviews];
-
-  CGRect bounds = self.view.bounds;
-  [self sizeButtonToFitWithCenter:CGPointMake(CGRectGetMidX(bounds),
-                                              CGRectGetMinY(bounds))
-                           button:_removeAccountButton];
-  [self sizeButtonToFitWithCenter:CGPointMake(CGRectGetMidX(bounds),
-                                              CGRectGetMidY(bounds))
-                           button:_closeAccountDetailsButton];
-}
-
-#pragma mark - Private
-
-- (void)addButtonToSubviewWithTitle:(NSString*)title
-                             button:(UIButton*)button
-                             action:(SEL)action {
-  [button setTitle:title forState:UIControlStateNormal];
-  [button addTarget:self
-                action:action
-      forControlEvents:UIControlEventTouchUpInside];
-  [self.view addSubview:button];
-}
-
-- (void)sizeButtonToFitWithCenter:(CGPoint)center button:(UIButton*)button {
-  [button setCenter:center];
-  [button sizeToFit];
-}
-
-- (void)didTapRemoveAccount:(id)sender {
-  ios::FakeChromeIdentityService::GetInstanceFromChromeProvider()
-      ->ForgetIdentity(_identity, ^(NSError*) {
-        [self dismissViewControllerAnimated:YES completion:nil];
-      });
-}
-
-- (void)didTapCloseAccount:(id)sender {
-  [self dismissViewControllerAnimated:YES completion:nil];
-}
-
-@end
-
 namespace ios {
 FakeChromeIdentityService::FakeChromeIdentityService()
     : identities_([[NSMutableArray alloc] init]),
@@ -177,6 +93,7 @@
   [viewController presentViewController:accountDetailsViewController
                                animated:animated
                              completion:nil];
+
   return ^(BOOL dismissAnimated) {
     [accountDetailsViewController dismissViewControllerAnimated:dismissAnimated
                                                      completion:nil];
diff --git a/media/audio/audio_output_resampler.cc b/media/audio/audio_output_resampler.cc
index fca55020..5188470 100644
--- a/media/audio/audio_output_resampler.cc
+++ b/media/audio/audio_output_resampler.cc
@@ -64,7 +64,9 @@
 
  private:
   // AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Source callback.
   raw_ptr<AudioOutputStream::AudioSourceCallback> source_callback_;
@@ -479,7 +481,8 @@
 }
 
 double OnMoreDataConverter::ProvideInput(AudioBus* dest,
-                                         uint32_t frames_delayed) {
+                                         uint32_t frames_delayed,
+                                         const AudioGlitchInfo& glitch_info) {
   base::TimeDelta new_delay =
       current_delay_ + AudioTimestampHelper::FramesToTime(
                            frames_delayed, input_samples_per_second_);
diff --git a/media/audio/cras/audio_manager_cras_unittest.cc b/media/audio/cras/audio_manager_cras_unittest.cc
index b3645632..2cf3cad 100644
--- a/media/audio/cras/audio_manager_cras_unittest.cc
+++ b/media/audio/cras/audio_manager_cras_unittest.cc
@@ -121,6 +121,23 @@
   EXPECT_EQ(params.channels(), 6);
 }
 
+TEST_F(AudioManagerCrasTest, UnsupportedMaxChannelsDefaultsToStereo) {
+  std::unique_ptr<MockCrasUtil> util = std::make_unique<MockCrasUtil>();
+  std::vector<CrasDevice> devices;
+  CrasDevice dev;
+  dev.type = DeviceType::kOutput;
+  dev.id = 123;
+  dev.max_supported_channels = 100;
+  devices.emplace_back(dev);
+  EXPECT_CALL(*util, CrasGetDefaultOutputBufferSize());
+  EXPECT_CALL(*util, CrasGetAudioDevices(DeviceType::kOutput))
+      .WillRepeatedly(testing::Return(devices));
+  audio_manager_->SetCrasUtil(std::move(util));
+  auto params = audio_manager_->GetPreferredOutputStreamParameters(
+      "123", AudioParameters());
+  EXPECT_EQ(params.channel_layout(), ChannelLayout::CHANNEL_LAYOUT_STEREO);
+}
+
 const CrasDevice kInternalSpeaker(DeviceType::kOutput,
                                   0,
                                   0,
diff --git a/media/audio/simple_sources.cc b/media/audio/simple_sources.cc
index 873793ed..6a01eb1 100644
--- a/media/audio/simple_sources.cc
+++ b/media/audio/simple_sources.cc
@@ -238,7 +238,8 @@
 }
 
 double FileSource::ProvideInput(AudioBus* audio_bus_into_converter,
-                                uint32_t frames_delayed) {
+                                uint32_t frames_delayed,
+                                const AudioGlitchInfo& glitch_info) {
   // Unfilled frames will be zeroed by CopyTo.
   size_t bytes_written;
   wav_audio_handler_->CopyTo(audio_bus_into_converter, wav_file_read_pos_,
diff --git a/media/audio/simple_sources.h b/media/audio/simple_sources.h
index 84a480c..7b2fc58 100644
--- a/media/audio/simple_sources.h
+++ b/media/audio/simple_sources.h
@@ -106,7 +106,9 @@
   bool looping_;
 
   // Provides audio data from wav_audio_handler_ into the file audio converter.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Loads the wav file on the first OnMoreData invocation.
   void LoadWavFile(const base::FilePath& path_to_wav_file);
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc
index a014f20..02fc1b8a7 100644
--- a/media/audio/win/audio_low_latency_input_win.cc
+++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -1657,8 +1657,10 @@
       FormatRelatedInitError::kCount);
 }
 
-double WASAPIAudioInputStream::ProvideInput(AudioBus* audio_bus,
-                                            uint32_t frames_delayed) {
+double WASAPIAudioInputStream::ProvideInput(
+    AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const AudioGlitchInfo& glitch_info) {
   fifo_->Consume()->CopyTo(audio_bus);
   return 1.0;
 }
diff --git a/media/audio/win/audio_low_latency_input_win.h b/media/audio/win/audio_low_latency_input_win.h
index 3357e5b..b9224d80 100644
--- a/media/audio/win/audio_low_latency_input_win.h
+++ b/media/audio/win/audio_low_latency_input_win.h
@@ -200,7 +200,9 @@
   void MaybeReportFormatRelatedInitError(HRESULT hr) const;
 
   // AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Reports glitch stats and resets associated variables.
   void ReportAndResetGlitchStats();
diff --git a/media/base/BUILD.gn b/media/base/BUILD.gn
index b7d03772..9ad0713 100644
--- a/media/base/BUILD.gn
+++ b/media/base/BUILD.gn
@@ -67,6 +67,7 @@
     "audio_encoder.h",
     "audio_fifo.cc",
     "audio_fifo.h",
+    "audio_glitch_info.h",
     "audio_hash.cc",
     "audio_hash.h",
     "audio_power_monitor.cc",
diff --git a/media/base/audio_buffer_converter.cc b/media/base/audio_buffer_converter.cc
index c8655f3..c056595 100644
--- a/media/base/audio_buffer_converter.cc
+++ b/media/base/audio_buffer_converter.cc
@@ -92,7 +92,8 @@
 }
 
 double AudioBufferConverter::ProvideInput(AudioBus* audio_bus,
-                                          uint32_t frames_delayed) {
+                                          uint32_t frames_delayed,
+                                          const AudioGlitchInfo& glitch_info) {
   DCHECK(is_flushing_ || input_frames_ >= audio_bus->frames());
 
   int requested_frames_left = audio_bus->frames();
diff --git a/media/base/audio_buffer_converter.h b/media/base/audio_buffer_converter.h
index 2ae351a9..936a900 100644
--- a/media/base/audio_buffer_converter.h
+++ b/media/base/audio_buffer_converter.h
@@ -50,7 +50,9 @@
 
  private:
   // Callback to provide data to the AudioConverter
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Reset the converter in response to a configuration change.
   void ResetConverter(const AudioBuffer& input_buffer);
diff --git a/media/base/audio_converter.cc b/media/base/audio_converter.cc
index a9d261b..202ab19 100644
--- a/media/base/audio_converter.cc
+++ b/media/base/audio_converter.cc
@@ -217,7 +217,7 @@
   // Have each mixer render its data into an output buffer then mix the result.
   for (auto* input : transform_inputs_) {
     const float volume =
-        input->ProvideInput(provide_input_dest, total_frames_delayed);
+        input->ProvideInput(provide_input_dest, total_frames_delayed, {});
     // Optimize the most common single input, full volume case.
     if (input == transform_inputs_.front()) {
       if (volume == 1.0f) {
diff --git a/media/base/audio_converter.h b/media/base/audio_converter.h
index bf557c8..7e1fb84 100644
--- a/media/base/audio_converter.h
+++ b/media/base/audio_converter.h
@@ -22,6 +22,7 @@
 #include <memory>
 
 #include "base/callback.h"
+#include "media/base/audio_glitch_info.h"
 #include "media/base/audio_parameters.h"
 #include "media/base/media_export.h"
 
@@ -56,7 +57,8 @@
     // the volume level will be used to scale the provided audio data.
     // |frames_delayed| is given in terms of the input sample rate.
     virtual double ProvideInput(AudioBus* audio_bus,
-                                uint32_t frames_delayed) = 0;
+                                uint32_t frames_delayed,
+                                const AudioGlitchInfo& glitch_info) = 0;
 
    protected:
     virtual ~InputCallback() {}
diff --git a/media/base/audio_converter_perftest.cc b/media/base/audio_converter_perftest.cc
index 4451917..411c2b71 100644
--- a/media/base/audio_converter_perftest.cc
+++ b/media/base/audio_converter_perftest.cc
@@ -20,7 +20,9 @@
   NullInputProvider() = default;
   ~NullInputProvider() override = default;
 
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override {
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override {
     audio_bus->Zero();
     return 1;
   }
diff --git a/media/base/audio_glitch_info.h b/media/base/audio_glitch_info.h
new file mode 100644
index 0000000..0221ec4
--- /dev/null
+++ b/media/base/audio_glitch_info.h
@@ -0,0 +1,15 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_BASE_AUDIO_GLITCH_INFO_H_
+#define MEDIA_BASE_AUDIO_GLITCH_INFO_H_
+
+namespace media {
+
+// Audio glitch info.
+struct AudioGlitchInfo {};
+
+}  // namespace media
+
+#endif  // MEDIA_BASE_AUDIO_GLITCH_INFO_H_
diff --git a/media/base/audio_parameters.cc b/media/base/audio_parameters.cc
index d9c200e..7c01eee 100644
--- a/media/base/audio_parameters.cc
+++ b/media/base/audio_parameters.cc
@@ -26,7 +26,8 @@
   }
   const int calculated_channel_count =
       ChannelLayoutToChannelCount(channel_layout);
-  DCHECK_EQ(calculated_channel_count, channels);
+  DCHECK(channel_layout == CHANNEL_LAYOUT_UNSUPPORTED ||
+         calculated_channel_count == channels);
   return calculated_channel_count;
 }
 
diff --git a/media/base/audio_parameters_unittest.cc b/media/base/audio_parameters_unittest.cc
index 7ed6f52..ee7f2976 100644
--- a/media/base/audio_parameters_unittest.cc
+++ b/media/base/audio_parameters_unittest.cc
@@ -207,4 +207,10 @@
   EXPECT_EQ(2, channel_layout_config.channels());
 }
 
+TEST(AudioParameters, ChannelLayoutConfig_GuessUnsupported) {
+  ChannelLayoutConfig channel_layout_config = ChannelLayoutConfig::Guess(100);
+  EXPECT_EQ(CHANNEL_LAYOUT_UNSUPPORTED, channel_layout_config.channel_layout());
+  EXPECT_EQ(0, channel_layout_config.channels());
+}
+
 }  // namespace media
diff --git a/media/base/audio_renderer_mixer_input.cc b/media/base/audio_renderer_mixer_input.cc
index 2c469b9..94109bf8 100644
--- a/media/base/audio_renderer_mixer_input.cc
+++ b/media/base/audio_renderer_mixer_input.cc
@@ -218,8 +218,10 @@
                      base::RetainedRef(this), std::move(callback), new_sink));
 }
 
-double AudioRendererMixerInput::ProvideInput(AudioBus* audio_bus,
-                                             uint32_t frames_delayed) {
+double AudioRendererMixerInput::ProvideInput(
+    AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const AudioGlitchInfo& glitch_info) {
   TRACE_EVENT0("audio", "AudioRendererMixerInput::ProvideInput");
   const base::TimeDelta delay =
       AudioTimestampHelper::FramesToTime(frames_delayed, params_.sample_rate());
diff --git a/media/base/audio_renderer_mixer_input.h b/media/base/audio_renderer_mixer_input.h
index 4b0458b..46639bd0 100644
--- a/media/base/audio_renderer_mixer_input.h
+++ b/media/base/audio_renderer_mixer_input.h
@@ -89,7 +89,9 @@
   absl::optional<OutputDeviceInfo> device_info_;
 
   // AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   void OnDeviceInfoReceived(OutputDeviceInfoCB info_cb,
                             OutputDeviceInfo device_info);
diff --git a/media/base/audio_renderer_mixer_input_unittest.cc b/media/base/audio_renderer_mixer_input_unittest.cc
index ee3b3fe..9ac03f44 100644
--- a/media/base/audio_renderer_mixer_input_unittest.cc
+++ b/media/base/audio_renderer_mixer_input_unittest.cc
@@ -76,7 +76,7 @@
   }
 
   double ProvideInput() {
-    return mixer_input_->ProvideInput(audio_bus_.get(), 0);
+    return mixer_input_->ProvideInput(audio_bus_.get(), 0, {});
   }
 
   scoped_refptr<AudioRendererSink> GetSink(
diff --git a/media/base/converting_audio_fifo.cc b/media/base/converting_audio_fifo.cc
index 77633d69..0735753a 100644
--- a/media/base/converting_audio_fifo.cc
+++ b/media/base/converting_audio_fifo.cc
@@ -75,7 +75,8 @@
 }
 
 double ConvertingAudioFifo::ProvideInput(AudioBus* audio_bus,
-                                         uint32_t frames_delayed) {
+                                         uint32_t frames_delayed,
+                                         const AudioGlitchInfo& glitch_info) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   int frames_needed = audio_bus->frames();
diff --git a/media/base/converting_audio_fifo.h b/media/base/converting_audio_fifo.h
index 617ca1f..10eec98f 100644
--- a/media/base/converting_audio_fifo.h
+++ b/media/base/converting_audio_fifo.h
@@ -50,7 +50,9 @@
   friend class ConvertingAudioFifoTest;
 
   // AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Consumes frames from |inputs_|, converts them to match
   // |output_params_| fills |dest|.
diff --git a/media/base/fake_audio_render_callback.cc b/media/base/fake_audio_render_callback.cc
index 6e6c7dd..f8ec978d0 100644
--- a/media/base/fake_audio_render_callback.cc
+++ b/media/base/fake_audio_render_callback.cc
@@ -31,8 +31,10 @@
   return RenderInternal(audio_bus, delay, volume_);
 }
 
-double FakeAudioRenderCallback::ProvideInput(AudioBus* audio_bus,
-                                             uint32_t frames_delayed) {
+double FakeAudioRenderCallback::ProvideInput(
+    AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const AudioGlitchInfo& glitch_info) {
   // Volume should only be applied by the caller to ProvideInput, so don't bake
   // it into the rendered audio.
   auto delay = AudioTimestampHelper::FramesToTime(frames_delayed, sample_rate_);
diff --git a/media/base/fake_audio_render_callback.h b/media/base/fake_audio_render_callback.h
index 9bd1511..a190d9b 100644
--- a/media/base/fake_audio_render_callback.h
+++ b/media/base/fake_audio_render_callback.h
@@ -39,7 +39,9 @@
   MOCK_METHOD0(OnRenderError, void());
 
   // AudioConverter::InputCallback implementation.
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   // Toggles only filling half the requested amount during Render().
   void set_half_fill(bool half_fill) { half_fill_ = half_fill; }
diff --git a/media/base/loopback_audio_converter.cc b/media/base/loopback_audio_converter.cc
index d22e23d..2d055050 100644
--- a/media/base/loopback_audio_converter.cc
+++ b/media/base/loopback_audio_converter.cc
@@ -14,8 +14,10 @@
 
 LoopbackAudioConverter::~LoopbackAudioConverter() = default;
 
-double LoopbackAudioConverter::ProvideInput(AudioBus* audio_bus,
-                                            uint32_t frames_delayed) {
+double LoopbackAudioConverter::ProvideInput(
+    AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const AudioGlitchInfo& glitch_info) {
   audio_converter_.ConvertWithDelay(frames_delayed, audio_bus);
   return 1.0;
 }
diff --git a/media/base/loopback_audio_converter.h b/media/base/loopback_audio_converter.h
index e3a9189..2c61caa 100644
--- a/media/base/loopback_audio_converter.h
+++ b/media/base/loopback_audio_converter.h
@@ -38,7 +38,9 @@
   bool empty() { return audio_converter_.empty(); }
 
  private:
-  double ProvideInput(AudioBus* audio_bus, uint32_t frames_delayed) override;
+  double ProvideInput(AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const AudioGlitchInfo& glitch_info) override;
 
   AudioConverter audio_converter_;
 };
diff --git a/media/capture/BUILD.gn b/media/capture/BUILD.gn
index 27afc021..9098b8f 100644
--- a/media/capture/BUILD.gn
+++ b/media/capture/BUILD.gn
@@ -199,7 +199,6 @@
     ]
     deps += [
       "//components/crash/core/common:crash_key",
-      "//services/video_capture/public/uma",
       "//third_party/decklink",
     ]
     frameworks = [
diff --git a/media/capture/video/chromeos/camera_device_delegate.cc b/media/capture/video/chromeos/camera_device_delegate.cc
index 469abbf..1bcf3fa9 100644
--- a/media/capture/video/chromeos/camera_device_delegate.cc
+++ b/media/capture/video/chromeos/camera_device_delegate.cc
@@ -1021,6 +1021,7 @@
       CAMERA3_STREAM_CONFIGURATION_NORMAL_MODE;
   if (device_api_version_ >= cros::mojom::CAMERA_DEVICE_API_VERSION_3_5) {
     stream_config->session_parameters = cros::mojom::CameraMetadata::New();
+    ConfigureSessionParameters(&stream_config->session_parameters);
   }
   device_ops_->ConfigureStreams(
       std::move(stream_config),
@@ -1208,36 +1209,16 @@
   device_context_->SetState(CameraDeviceContext::State::kCapturing);
   camera_3a_controller_->SetAutoFocusModeForStillCapture();
 
-  auto camera_app_device =
-      CameraAppDeviceBridgeImpl::GetInstance()->GetWeakCameraAppDevice(
-          device_descriptor_.device_id);
-  auto specified_fps_range =
-      camera_app_device ? camera_app_device->GetFpsRange() : absl::nullopt;
-  if (specified_fps_range) {
-    SetFpsRangeInMetadata(&settings, specified_fps_range->GetMin(),
-                          specified_fps_range->GetMax());
-  } else {
-    // Assumes the frame_rate will be the same for all |chrome_capture_params|.
-    int32_t requested_frame_rate =
-        std::round(chrome_capture_params_[ClientType::kPreviewClient]
-                       .requested_format.frame_rate);
-    bool prefer_constant_frame_rate =
-        base::FeatureList::IsEnabled(
-            chromeos::features::kPreferConstantFrameRate) ||
-        (camera_app_device && camera_app_device->GetCaptureIntent() ==
-                                  cros::mojom::CaptureIntent::VIDEO_RECORD);
-    auto [target_min, target_max] = GetTargetFrameRateRange(
-        static_metadata_, requested_frame_rate, prefer_constant_frame_rate);
-    if (target_min == 0 || target_max == 0) {
-      device_context_->SetErrorState(
-          media::VideoCaptureError::
-              kCrosHalV3DeviceDelegateFailedToGetDefaultRequestSettings,
-          FROM_HERE, "Failed to get valid frame rate range");
-      return;
-    }
-
-    SetFpsRangeInMetadata(&settings, target_min, target_max);
+  auto [target_min, target_max] = GetFrameRateRange();
+  if (target_min == 0 || target_max == 0) {
+    device_context_->SetErrorState(
+        media::VideoCaptureError::
+            kCrosHalV3DeviceDelegateFailedToGetDefaultRequestSettings,
+        FROM_HERE, "Failed to get valid frame rate range");
+    return;
   }
+  SetFpsRangeInMetadata(&settings, target_min, target_max);
+
   while (!on_reconfigured_callbacks_.empty()) {
     std::move(on_reconfigured_callbacks_.front()).Run();
     on_reconfigured_callbacks_.pop();
@@ -1785,4 +1766,55 @@
   std::move(callback).Run(std::move(photo_state));
 }
 
+std::pair<int32_t, int32_t> CameraDeviceDelegate::GetFrameRateRange() {
+  auto camera_app_device =
+      CameraAppDeviceBridgeImpl::GetInstance()->GetWeakCameraAppDevice(
+          device_descriptor_.device_id);
+  auto specified_fps_range =
+      camera_app_device ? camera_app_device->GetFpsRange() : absl::nullopt;
+  if (specified_fps_range) {
+    return std::make_pair(specified_fps_range->GetMin(),
+                          specified_fps_range->GetMax());
+  }
+  // Assumes the frame_rate will be the same for all |chrome_capture_params|.
+  int32_t requested_frame_rate =
+      std::round(chrome_capture_params_[ClientType::kPreviewClient]
+                     .requested_format.frame_rate);
+  bool prefer_constant_frame_rate =
+      base::FeatureList::IsEnabled(
+          chromeos::features::kPreferConstantFrameRate) ||
+      (camera_app_device && camera_app_device->GetCaptureIntent() ==
+                                cros::mojom::CaptureIntent::VIDEO_RECORD);
+  return GetTargetFrameRateRange(static_metadata_, requested_frame_rate,
+                                 prefer_constant_frame_rate);
+}
+
+void CameraDeviceDelegate::ConfigureSessionParameters(
+    cros::mojom::CameraMetadataPtr* session_parameters) {
+  auto session_keys = GetMetadataEntryAsSpan<int32_t>(
+      static_metadata_,
+      cros::mojom::CameraMetadataTag::ANDROID_REQUEST_AVAILABLE_SESSION_KEYS);
+  for (auto tag_value : session_keys) {
+    auto metadata_tag = static_cast<cros::mojom::CameraMetadataTag>(tag_value);
+    switch (metadata_tag) {
+      case cros::mojom::CameraMetadataTag::
+          ANDROID_CONTROL_AE_TARGET_FPS_RANGE: {
+        VLOG(1) << "Setting " << metadata_tag << " in session_parameters.";
+        auto [fps_min, fps_max] = GetFrameRateRange();
+        if (fps_min == 0 || fps_max == 0) {
+          LOG(WARNING) << "Failed to get valid fps range, did not set "
+                       << metadata_tag << " in session_parameters.";
+          break;
+        }
+        SetFpsRangeInMetadata(session_parameters, fps_min, fps_max);
+        break;
+      }
+      default: {
+        VLOG(1) << "Did not set " << metadata_tag << " in session_parameters.";
+        break;
+      }
+    }
+  }
+}
+
 }  // namespace media
diff --git a/media/capture/video/chromeos/camera_device_delegate.h b/media/capture/video/chromeos/camera_device_delegate.h
index 47d99ecd..a537e08 100644
--- a/media/capture/video/chromeos/camera_device_delegate.h
+++ b/media/capture/video/chromeos/camera_device_delegate.h
@@ -243,6 +243,16 @@
 
   void DoGetPhotoState(VideoCaptureDevice::GetPhotoStateCallback callback);
 
+  // Gets the target frame rate range as std::pair<min, max>.
+  // Returns 0 for min or max or both fps when fps range is not valid,
+  // caller should handle that accordingly.
+  std::pair<int32_t, int32_t> GetFrameRateRange();
+
+  // Configures the session_parameters with initial values for the keys
+  // found in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS.
+  void ConfigureSessionParameters(
+      cros::mojom::CameraMetadataPtr* session_parameters);
+
   const VideoCaptureDeviceDescriptor device_descriptor_;
 
   // Current configured resolution of BLOB stream.
diff --git a/media/capture/video/mac/DEPS b/media/capture/video/mac/DEPS
index b17486db..553397b 100644
--- a/media/capture/video/mac/DEPS
+++ b/media/capture/video/mac/DEPS
@@ -1,6 +1,5 @@
 include_rules = [
   "+third_party/decklink",
-  "+services/video_capture/public/uma",
 ]
 
 specific_include_rules = {
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 8661096..d068eaec 100644
--- a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
+++ b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
@@ -29,7 +29,6 @@
 #include "media/capture/video/mac/video_capture_device_mac.h"
 #import "media/capture/video/mac/video_capture_metrics_mac.h"
 #include "media/capture/video_capture_types.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace {
diff --git a/media/capture/video/mac/video_capture_device_avfoundation_utils_mac.mm b/media/capture/video/mac/video_capture_device_avfoundation_utils_mac.mm
index 88ac898..e4a6d3d 100644
--- a/media/capture/video/mac/video_capture_device_avfoundation_utils_mac.mm
+++ b/media/capture/video/mac/video_capture_device_avfoundation_utils_mac.mm
@@ -13,7 +13,6 @@
 #include "media/capture/video/mac/video_capture_device_factory_mac.h"
 #include "media/capture/video/mac/video_capture_device_mac.h"
 #include "media/capture/video_capture_types.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 
 namespace media {
 namespace {
@@ -81,12 +80,9 @@
     return;
   }
   static int attempt_since_process_start_counter = 0;
-  static int device_count_at_last_attempt = 0;
   static bool has_seen_zero_device_count = false;
   const int attempt_count_since_process_start =
       ++attempt_since_process_start_counter;
-  const int retry_count =
-      media::VideoCaptureDeviceFactoryMac::GetGetDevicesInfoRetryCount();
   const int device_count = number_of_devices + number_of_suspended_devices;
   UMA_HISTOGRAM_COUNTS_1M("Media.VideoCapture.MacBook.NumberOfDevices",
                           device_count);
@@ -101,39 +97,6 @@
       has_seen_zero_device_count = true;
     }
   }
-
-  if (attempt_count_since_process_start == 1) {
-    if (retry_count == 0) {
-      video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-          device_count == 0
-              ? video_capture::uma::
-                    AVF_RECEIVED_ZERO_INFOS_FIRST_TRY_FIRST_ATTEMPT
-              : video_capture::uma::
-                    AVF_RECEIVED_NONZERO_INFOS_FIRST_TRY_FIRST_ATTEMPT);
-    } else {
-      video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-          device_count == 0
-              ? video_capture::uma::AVF_RECEIVED_ZERO_INFOS_RETRY
-              : video_capture::uma::AVF_RECEIVED_NONZERO_INFOS_RETRY);
-    }
-    // attempt count > 1
-  } else if (retry_count == 0) {
-    video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-        device_count == 0
-            ? video_capture::uma::
-                  AVF_RECEIVED_ZERO_INFOS_FIRST_TRY_NONFIRST_ATTEMPT
-            : video_capture::uma::
-                  AVF_RECEIVED_NONZERO_INFOS_FIRST_TRY_NONFIRST_ATTEMPT);
-  }
-  if (attempt_count_since_process_start > 1 &&
-      device_count != device_count_at_last_attempt) {
-    video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-        device_count == 0
-            ? video_capture::uma::AVF_DEVICE_COUNT_CHANGED_FROM_POSITIVE_TO_ZERO
-            : video_capture::uma::
-                  AVF_DEVICE_COUNT_CHANGED_FROM_ZERO_TO_POSITIVE);
-  }
-  device_count_at_last_attempt = device_count;
 }
 
 base::scoped_nsobject<NSDictionary> GetDeviceNames() {
diff --git a/media/capture/video/mac/video_capture_device_factory_mac.mm b/media/capture/video/mac/video_capture_device_factory_mac.mm
index cacf2a23..a5b015ae 100644
--- a/media/capture/video/mac/video_capture_device_factory_mac.mm
+++ b/media/capture/video/mac/video_capture_device_factory_mac.mm
@@ -19,7 +19,6 @@
 #import "media/capture/video/mac/video_capture_device_avfoundation_utils_mac.h"
 #import "media/capture/video/mac/video_capture_device_decklink_mac.h"
 #include "media/capture/video/mac/video_capture_device_mac.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 
 namespace {
 
@@ -199,11 +198,6 @@
   // Also retrieve Blackmagic devices, if present, via DeckLink SDK API.
   VideoCaptureDeviceDeckLinkMac::EnumerateDevices(&devices_info);
 
-  if ([capture_devices count] > 0 && devices_info.empty()) {
-    video_capture::uma::LogMacbookRetryGetDeviceInfosEvent(
-        video_capture::uma::AVF_DROPPED_DESCRIPTORS_AT_FACTORY);
-  }
-
   std::move(callback).Run(std::move(devices_info));
 }
 
diff --git a/media/capture/video/win/metrics.cc b/media/capture/video/win/metrics.cc
index a086669..941c53a 100644
--- a/media/capture/video/win/metrics.cc
+++ b/media/capture/video/win/metrics.cc
@@ -10,51 +10,6 @@
 
 namespace media {
 
-namespace {
-std::string VideoCaptureWinBackendEnumToString(
-    VideoCaptureWinBackend backend_type) {
-  switch (backend_type) {
-    case VideoCaptureWinBackend::kDirectShow:
-      return "DirectShow";
-    case VideoCaptureWinBackend::kMediaFoundation:
-      return "MediaFoundation";
-    default:
-      // The default case is only needed to avoid a compiler warning.
-      NOTREACHED();
-      return "Unknown";
-  }
-}
-
-}  // anonymous namespace
-
-bool IsHighResolution(const VideoCaptureFormat& format) {
-  return format.frame_size.width() > 1920;
-}
-
-void LogVideoCaptureWinBackendUsed(VideoCaptureWinBackendUsed value) {
-  base::UmaHistogramEnumeration("Media.VideoCapture.Windows.BackendUsed", value,
-                                VideoCaptureWinBackendUsed::kCount);
-}
-
-void LogWindowsImageCaptureOutcome(VideoCaptureWinBackend backend_type,
-                                   ImageCaptureOutcome value,
-                                   bool is_high_res) {
-  static const std::string kHistogramPrefix(
-      "Media.VideoCapture.Windows.ImageCaptureOutcome.");
-  static const std::string kAnyResSuffix("AnyRes");
-  static const std::string kHighResSuffix("HighRes");
-  const std::string backend_string =
-      VideoCaptureWinBackendEnumToString(backend_type);
-  base::UmaHistogramEnumeration(
-      kHistogramPrefix + backend_string + kAnyResSuffix, value,
-      ImageCaptureOutcome::kCount);
-  if (is_high_res) {
-    base::UmaHistogramEnumeration(
-        kHistogramPrefix + backend_string + kHighResSuffix, value,
-        ImageCaptureOutcome::kCount);
-  }
-}
-
 void LogNumberOfRetriesNeededToWorkAroundMFInvalidRequest(
     MediaFoundationFunctionRequiringRetry function,
     int retry_count) {
diff --git a/media/capture/video/win/metrics.h b/media/capture/video/win/metrics.h
index d4b51ea..d370dad 100644
--- a/media/capture/video/win/metrics.h
+++ b/media/capture/video/win/metrics.h
@@ -34,12 +34,6 @@
   kGetAvailableDeviceMediaType
 };
 
-bool IsHighResolution(const VideoCaptureFormat& format);
-
-void LogVideoCaptureWinBackendUsed(VideoCaptureWinBackendUsed value);
-void LogWindowsImageCaptureOutcome(VideoCaptureWinBackend backend_type,
-                                   ImageCaptureOutcome value,
-                                   bool is_high_res);
 void LogNumberOfRetriesNeededToWorkAroundMFInvalidRequest(
     MediaFoundationFunctionRequiringRetry function,
     int retry_count);
diff --git a/media/capture/video/win/video_capture_device_factory_win.cc b/media/capture/video/win/video_capture_device_factory_win.cc
index 66c43eb..991ca5a 100644
--- a/media/capture/video/win/video_capture_device_factory_win.cc
+++ b/media/capture/video/win/video_capture_device_factory_win.cc
@@ -337,14 +337,6 @@
       com_thread_("Windows Video Capture COM Thread") {
   if (use_media_foundation_ && !PlatformSupportsMediaFoundation()) {
     use_media_foundation_ = false;
-    LogVideoCaptureWinBackendUsed(
-        VideoCaptureWinBackendUsed::kUsingDirectShowAsFallback);
-  } else if (use_media_foundation_) {
-    LogVideoCaptureWinBackendUsed(
-        VideoCaptureWinBackendUsed::kUsingMediaFoundationAsDefault);
-  } else {
-    LogVideoCaptureWinBackendUsed(
-        VideoCaptureWinBackendUsed::kUsingDirectShowAsDefault);
   }
 }
 
diff --git a/media/capture/video/win/video_capture_device_mf_win.cc b/media/capture/video/win/video_capture_device_mf_win.cc
index 2ba8d91..80279d488 100644
--- a/media/capture/video/win/video_capture_device_mf_win.cc
+++ b/media/capture/video/win/video_capture_device_mf_win.cc
@@ -107,10 +107,6 @@
       buffer->Unlock();
       if (blob) {
         std::move(callback_).Run(std::move(blob));
-        LogWindowsImageCaptureOutcome(
-            VideoCaptureWinBackend::kMediaFoundation,
-            ImageCaptureOutcome::kSucceededUsingPhotoStream,
-            IsHighResolution(format_));
 
         // What is it supposed to mean if there is more than one buffer sent to
         // us as a response to requesting a single still image? Are we supposed
@@ -124,14 +120,7 @@
 
  private:
   friend class base::RefCountedThreadSafe<MFPhotoCallback>;
-  ~MFPhotoCallback() {
-    if (callback_) {
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kMediaFoundation,
-          ImageCaptureOutcome::kFailedUsingPhotoStream,
-          IsHighResolution(format_));
-    }
-  }
+  ~MFPhotoCallback() = default;
 
   VideoCaptureDevice::TakePhotoCallback callback_;
   const VideoCaptureFormat format_;
@@ -935,16 +924,7 @@
 
 VideoCaptureDeviceMFWin::~VideoCaptureDeviceMFWin() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (!video_stream_take_photo_callbacks_.empty()) {
-    for (size_t k = 0; k < video_stream_take_photo_callbacks_.size(); k++) {
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kMediaFoundation,
-          ImageCaptureOutcome::kFailedUsingVideoStream,
-          selected_video_capability_
-              ? IsHighResolution(selected_video_capability_->supported_format)
-              : false);
-    }
-  }
+
   if (video_callback_) {
     video_callback_->Shutdown();
   }
@@ -1835,18 +1815,10 @@
         RotateAndBlobify(locked_buffer.data(), locked_buffer.length(),
                          selected_video_capability_->supported_format, 0);
     if (!blob) {
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kMediaFoundation,
-          ImageCaptureOutcome::kFailedUsingVideoStream,
-          IsHighResolution(selected_video_capability_->supported_format));
       continue;
     }
 
     std::move(cb).Run(std::move(blob));
-    LogWindowsImageCaptureOutcome(
-        VideoCaptureWinBackend::kMediaFoundation,
-        ImageCaptureOutcome::kSucceededUsingVideoStream,
-        IsHighResolution(selected_video_capability_->supported_format));
   }
 }
 
diff --git a/media/capture/video/win/video_capture_device_win.cc b/media/capture/video/win/video_capture_device_win.cc
index 040aad1..cc300ea 100644
--- a/media/capture/video/win/video_capture_device_win.cc
+++ b/media/capture/video/win/video_capture_device_win.cc
@@ -333,15 +333,6 @@
 
   if (capture_graph_builder_.Get())
     capture_graph_builder_.Reset();
-
-  if (!take_photo_callbacks_.empty()) {
-    for (size_t k = 0; k < take_photo_callbacks_.size(); k++) {
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kDirectShow,
-          ImageCaptureOutcome::kFailedUsingVideoStream,
-          IsHighResolution(capture_format_));
-    }
-  }
 }
 
 bool VideoCaptureDeviceWin::Init() {
@@ -909,15 +900,6 @@
     mojom::BlobPtr blob = RotateAndBlobify(buffer, length, format, 0);
     if (blob) {
       std::move(cb).Run(std::move(blob));
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kDirectShow,
-          ImageCaptureOutcome::kSucceededUsingVideoStream,
-          IsHighResolution(format));
-    } else {
-      LogWindowsImageCaptureOutcome(
-          VideoCaptureWinBackend::kDirectShow,
-          ImageCaptureOutcome::kFailedUsingVideoStream,
-          IsHighResolution(format));
     }
   }
 }
diff --git a/media/cast/test/fake_media_source.cc b/media/cast/test/fake_media_source.cc
index 934c2763..c7a6686 100644
--- a/media/cast/test/fake_media_source.cc
+++ b/media/cast/test/fake_media_source.cc
@@ -578,8 +578,10 @@
   }
 }
 
-double FakeMediaSource::ProvideInput(media::AudioBus* output_bus,
-                                     uint32_t frames_delayed) {
+double FakeMediaSource::ProvideInput(
+    media::AudioBus* output_bus,
+    uint32_t frames_delayed,
+    const media::AudioGlitchInfo& glitch_info) {
   if (audio_fifo_->frames() >= output_bus->frames()) {
     audio_fifo_->Consume(output_bus, 0, output_bus->frames());
     return 1.0;
diff --git a/media/cast/test/fake_media_source.h b/media/cast/test/fake_media_source.h
index 2a5e76b..fb99e597 100644
--- a/media/cast/test/fake_media_source.h
+++ b/media/cast/test/fake_media_source.h
@@ -121,7 +121,8 @@
 
   // media::AudioConverter::InputCallback implementation.
   double ProvideInput(media::AudioBus* output_bus,
-                      uint32_t frames_delayed) final;
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info) final;
 
   AVStream* av_audio_stream();
   AVStream* av_video_stream();
diff --git a/services/audio/mixing_graph_impl_unittest.cc b/services/audio/mixing_graph_impl_unittest.cc
index ba16b84..9ec7c990 100644
--- a/services/audio/mixing_graph_impl_unittest.cc
+++ b/services/audio/mixing_graph_impl_unittest.cc
@@ -37,7 +37,9 @@
   MOCK_METHOD(void, SetVolume, (double));
   MOCK_METHOD(void, Start, (media::AudioOutputStream::AudioSourceCallback*));
   MOCK_METHOD(void, Stop, ());
-  MOCK_METHOD(double, ProvideInput, (media::AudioBus*, uint32_t));
+  MOCK_METHOD(double,
+              ProvideInput,
+              (media::AudioBus*, uint32_t, const media::AudioGlitchInfo&));
 
   media::AudioParameters params;
 };
diff --git a/services/audio/output_device_mixer_impl_unittest.cc b/services/audio/output_device_mixer_impl_unittest.cc
index b80a5dc..12f4cfa 100644
--- a/services/audio/output_device_mixer_impl_unittest.cc
+++ b/services/audio/output_device_mixer_impl_unittest.cc
@@ -103,8 +103,10 @@
   MOCK_METHOD1(Start,
                void(AudioOutputStream::AudioSourceCallback* source_callback));
   MOCK_METHOD0(Stop, void());
-  MOCK_METHOD2(ProvideInput,
-               double(media::AudioBus* audio_bus, uint32_t frames_delayed));
+  MOCK_METHOD3(ProvideInput,
+               double(media::AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info));
 
  private:
   double volume_ = 0;
@@ -124,8 +126,10 @@
   }
   void Stop() final { mock_input_->Stop(); }
 
-  MOCK_METHOD2(ProvideInput,
-               double(media::AudioBus* audio_bus, uint32_t frames_delayed));
+  MOCK_METHOD3(ProvideInput,
+               double(media::AudioBus* audio_bus,
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info));
 
  private:
   const media::AudioParameters params_;
diff --git a/services/audio/sync_mixing_graph_input.cc b/services/audio/sync_mixing_graph_input.cc
index 21a1cb1..8ab50cb 100644
--- a/services/audio/sync_mixing_graph_input.cc
+++ b/services/audio/sync_mixing_graph_input.cc
@@ -24,8 +24,10 @@
 // Either calls Render() directly to produce the requested input audio, or - in
 // the case of a frames per buffer mismatch - pulls audio from the |fifo_| which
 // in turn calls Render() as needed.
-double SyncMixingGraphInput::ProvideInput(media::AudioBus* audio_bus,
-                                          uint32_t frames_delayed) {
+double SyncMixingGraphInput::ProvideInput(
+    media::AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const media::AudioGlitchInfo& glitch_info) {
   DCHECK_EQ(audio_bus->channels(), params_.channels());
   TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("audio"),
                "SyncMixingGraphInput::ProvideInput", "frames_delayed",
diff --git a/services/audio/sync_mixing_graph_input.h b/services/audio/sync_mixing_graph_input.h
index b376d72..9cc5d01 100644
--- a/services/audio/sync_mixing_graph_input.h
+++ b/services/audio/sync_mixing_graph_input.h
@@ -32,7 +32,8 @@
 
   // media::AudioConverter::InputCallback.
   double ProvideInput(media::AudioBus* audio_bus,
-                      uint32_t frames_delayed) final;
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info) final;
 
   const media::AudioParameters& GetParams() const final;
 
diff --git a/services/data_decoder/web_bundler.cc b/services/data_decoder/web_bundler.cc
index 6342846..83754ef 100644
--- a/services/data_decoder/web_bundler.cc
+++ b/services/data_decoder/web_bundler.cc
@@ -115,7 +115,7 @@
 
   CHECK_EQ(resources.size(), bodies.size());
   web_package::WebBundleBuilder builder(web_package::BundleVersion::kB2);
-  builder.AddPrimaryURL(url.spec());
+  builder.AddPrimaryURL(url);
   for (size_t i = 0; i < resources.size(); ++i) {
     const auto& info = resources[i];
     const auto& body = bodies[i];
@@ -130,7 +130,7 @@
     GURL::Replacements resource_replacements;
     resource_replacements.ClearRef();
     GURL resource_url = info->url.ReplaceComponents(resource_replacements);
-    builder.AddIndexEntry(resource_url.spec(), response_location);
+    builder.AddIndexEntry(resource_url, response_location);
   }
   std::vector<uint8_t> bundle = builder.CreateBundle();
   int written_size = file_.WriteAtCurrentPos(
diff --git a/services/video_capture/BUILD.gn b/services/video_capture/BUILD.gn
index 1d33b000..75ece63c 100644
--- a/services/video_capture/BUILD.gn
+++ b/services/video_capture/BUILD.gn
@@ -46,7 +46,6 @@
     "//services/video_capture/public/cpp",
     "//services/video_capture/public/mojom",
     "//services/video_capture/public/mojom:constants",
-    "//services/video_capture/public/uma",
     "//services/viz/public/cpp/gpu",
   ]
 
diff --git a/services/video_capture/device_factory_media_to_mojo_adapter.cc b/services/video_capture/device_factory_media_to_mojo_adapter.cc
index a8b3267..403f9e5a 100644
--- a/services/video_capture/device_factory_media_to_mojo_adapter.cc
+++ b/services/video_capture/device_factory_media_to_mojo_adapter.cc
@@ -17,7 +17,6 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "services/video_capture/device_media_to_mojo_adapter.h"
 #include "services/video_capture/public/mojom/producer.mojom.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 
 namespace {
 
@@ -273,9 +272,6 @@
 
 void DeviceFactoryMediaToMojoAdapter::OnClientConnectionErrorOrClose(
     const std::string& device_id) {
-  video_capture::uma::LogVideoCaptureServiceEvent(
-      video_capture::uma::SERVICE_LOST_CONNECTION_TO_BROWSER);
-
   auto active_device_iter = active_devices_by_id_.find(device_id);
   if (active_device_iter != active_devices_by_id_.end()) {
     active_device_iter->second.device->Stop();
diff --git a/services/video_capture/lacros/device_factory_adapter_lacros.cc b/services/video_capture/lacros/device_factory_adapter_lacros.cc
index af9cb04..ab201daa 100644
--- a/services/video_capture/lacros/device_factory_adapter_lacros.cc
+++ b/services/video_capture/lacros/device_factory_adapter_lacros.cc
@@ -12,7 +12,6 @@
 #include "base/notreached.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "services/video_capture/lacros/device_proxy_lacros.h"
-#include "services/video_capture/public/uma/video_capture_service_event.h"
 
 namespace video_capture {
 
@@ -142,9 +141,6 @@
 
 void DeviceFactoryAdapterLacros::OnClientConnectionErrorOrClose(
     std::string device_id) {
-  video_capture::uma::LogVideoCaptureServiceEvent(
-      video_capture::uma::SERVICE_LOST_CONNECTION_TO_BROWSER);
-
   devices_.erase(device_id);
 }
 
diff --git a/services/video_capture/public/uma/BUILD.gn b/services/video_capture/public/uma/BUILD.gn
deleted file mode 100644
index 6608670..0000000
--- a/services/video_capture/public/uma/BUILD.gn
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2017 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-source_set("uma") {
-  sources = [
-    "video_capture_service_event.cc",
-    "video_capture_service_event.h",
-  ]
-
-  public_deps = [ "//base" ]
-}
diff --git a/services/video_capture/public/uma/video_capture_service_event.cc b/services/video_capture/public/uma/video_capture_service_event.cc
deleted file mode 100644
index 00abc5b..0000000
--- a/services/video_capture/public/uma/video_capture_service_event.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "services/video_capture/public/uma/video_capture_service_event.h"
-
-#include "base/logging.h"
-#include "base/metrics/histogram_macros.h"
-#include "build/build_config.h"
-
-namespace video_capture {
-namespace uma {
-
-void LogVideoCaptureServiceEvent(VideoCaptureServiceEvent event) {
-  UMA_HISTOGRAM_ENUMERATION("Media.VideoCaptureService.Event", event,
-                            NUM_VIDEO_CAPTURE_SERVICE_EVENT);
-  DVLOG(4) << "Logged VideoCaptureServiceEvent " << event;
-}
-
-void LogDurationFromLastConnectToClosingConnectionAfterEnumerationOnly(
-    base::TimeDelta duration) {
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Media.VideoCaptureService."
-      "DurationFromLastConnectToClosingConnectionAfterEnumerationOnly",
-      duration, base::TimeDelta(), base::Minutes(1), 50);
-  DVLOG(4) << "Logged "
-              "DurationFromLastConnectToClosingConnectionAfterEnumerationOnl"
-              "y";
-}
-
-void LogDurationFromLastConnectToClosingConnectionAfterCapture(
-    base::TimeDelta duration) {
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Media.VideoCaptureService."
-      "DurationFromLastConnectToClosingConnectionAfterCapture",
-      duration, base::TimeDelta(), base::Days(21), 50);
-  DVLOG(4) << "Logged DurationFromLastConnectToClosingConnectionAfterCapture";
-}
-
-void LogDurationFromLastConnectToConnectionLost(base::TimeDelta duration) {
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Media.VideoCaptureService.DurationFromLastConnectToConnectionLost",
-      duration, base::TimeDelta(), base::Days(21), 50);
-  DVLOG(4) << "Logged DurationFromLastConnectToConnectionLost";
-}
-
-void LogDurationUntilReconnectAfterEnumerationOnly(base::TimeDelta duration) {
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Media.VideoCaptureService.DurationUntilReconnectAfterEnumerationOnly",
-      duration, base::TimeDelta(), base::Days(7), 50);
-  DVLOG(4) << "Logged DurationUntilReconnectAfterEnumerationOnly";
-}
-
-void LogDurationUntilReconnectAfterCapture(base::TimeDelta duration) {
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Media.VideoCaptureService.DurationUntilReconnectAfterCapture", duration,
-      base::TimeDelta(), base::Days(7), 50);
-  DVLOG(4) << "Logged DurationUntilReconnectAfterCapture";
-}
-
-#if BUILDFLAG(IS_MAC)
-void LogMacbookRetryGetDeviceInfosEvent(MacbookRetryGetDeviceInfosEvent event) {
-  UMA_HISTOGRAM_ENUMERATION(
-      "Media.VideoCapture.MacBook.RetryGetDeviceInfosEvent", event,
-      NUM_RETRY_GET_DEVICE_INFOS_EVENT);
-  DVLOG(4) << "Logged MacbookRetryGetDeviceInfosEvent " << event;
-}
-#endif
-
-}  // namespace uma
-}  // namespace video_capture
diff --git a/services/video_capture/public/uma/video_capture_service_event.h b/services/video_capture/public/uma/video_capture_service_event.h
deleted file mode 100644
index 37b7cb9c9..0000000
--- a/services/video_capture/public/uma/video_capture_service_event.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef SERVICES_VIDEO_CAPTURE_PUBLIC_UMA_VIDEO_CAPTURE_SERVICE_EVENT_H_
-#define SERVICES_VIDEO_CAPTURE_PUBLIC_UMA_VIDEO_CAPTURE_SERVICE_EVENT_H_
-
-#include "base/time/time.h"
-#include "build/build_config.h"
-
-namespace video_capture {
-namespace uma {
-
-// Used for logging capture events.
-// Elements in this enum should not be deleted or rearranged; the only
-// permitted operation is to add new elements before
-// NUM_VIDEO_CAPTURE_SERVICE_EVENT.
-enum VideoCaptureServiceEvent {
-  BROWSER_USING_LEGACY_CAPTURE = 0,
-  BROWSER_CONNECTING_TO_SERVICE = 1,
-  SERVICE_STARTED = 2,
-  SERVICE_SHUTTING_DOWN_BECAUSE_NO_CLIENT = 3,
-  SERVICE_LOST_CONNECTION_TO_BROWSER = 4,
-  BROWSER_LOST_CONNECTION_TO_SERVICE = 5,
-  BROWSER_CLOSING_CONNECTION_TO_SERVICE = 6,  // No longer in use
-  BROWSER_CLOSING_CONNECTION_TO_SERVICE_AFTER_ENUMERATION_ONLY = 7,
-  BROWSER_CLOSING_CONNECTION_TO_SERVICE_AFTER_CAPTURE = 8,
-  SERVICE_SHUTDOWN_TIMEOUT_CANCELED = 9,
-  NUM_VIDEO_CAPTURE_SERVICE_EVENT
-};
-
-#if BUILDFLAG(IS_MAC)
-enum MacbookRetryGetDeviceInfosEvent {
-  PROVIDER_RECEIVED_ZERO_INFOS_STOPPING_SERVICE = 0,
-  PROVIDER_SERVICE_STOPPED_ISSUING_RETRY = 1,
-  PROVIDER_RECEIVED_ZERO_INFOS_FROM_RETRY_GIVING_UP = 2,
-  PROVIDER_RECEIVED_NONZERO_INFOS_FROM_RETRY = 3,
-  PROVIDER_NOT_ATTEMPTING_RETRY_BECAUSE_ALREADY_PENDING = 4,
-  AVF_RECEIVED_ZERO_INFOS_FIRST_TRY_FIRST_ATTEMPT = 5,
-  AVF_RECEIVED_NONZERO_INFOS_FIRST_TRY_FIRST_ATTEMPT = 6,
-  AVF_RECEIVED_ZERO_INFOS_FIRST_TRY_NONFIRST_ATTEMPT = 7,
-  AVF_RECEIVED_NONZERO_INFOS_FIRST_TRY_NONFIRST_ATTEMPT = 8,
-  AVF_RECEIVED_ZERO_INFOS_RETRY = 9,
-  AVF_RECEIVED_NONZERO_INFOS_RETRY = 10,
-  AVF_DEVICE_COUNT_CHANGED_FROM_ZERO_TO_POSITIVE = 11,
-  AVF_DEVICE_COUNT_CHANGED_FROM_POSITIVE_TO_ZERO = 12,
-  AVF_DROPPED_DESCRIPTORS_AT_FACTORY = 13,
-  SERVICE_DROPPED_DEVICE_INFOS_REQUEST_ON_FIRST_TRY = 14,
-  SERVICE_DROPPED_DEVICE_INFOS_REQUEST_ON_RETRY = 15,
-  NUM_RETRY_GET_DEVICE_INFOS_EVENT
-};
-#endif
-
-void LogVideoCaptureServiceEvent(VideoCaptureServiceEvent event);
-
-void LogDurationFromLastConnectToClosingConnectionAfterEnumerationOnly(
-    base::TimeDelta duration);
-void LogDurationFromLastConnectToClosingConnectionAfterCapture(
-    base::TimeDelta duration);
-void LogDurationFromLastConnectToConnectionLost(base::TimeDelta duration);
-void LogDurationUntilReconnectAfterEnumerationOnly(base::TimeDelta duration);
-void LogDurationUntilReconnectAfterCapture(base::TimeDelta duration);
-
-#if BUILDFLAG(IS_MAC)
-void LogMacbookRetryGetDeviceInfosEvent(MacbookRetryGetDeviceInfosEvent event);
-#endif
-
-}  // namespace uma
-}  // namespace video_capture
-
-#endif  // SERVICES_VIDEO_CAPTURE_PUBLIC_UMA_VIDEO_CAPTURE_SERVICE_EVENT_H_
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 458e5d7..af3af57 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -5475,6 +5475,21 @@
             ]
         }
     ],
+    "IOSExpKitAppleCalendar": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "EnableExpKitAppleCalendar"
+                    ]
+                }
+            ]
+        }
+    ],
     "IOSExpKitCalendarTextClassifier": [
         {
             "platforms": [
@@ -12416,29 +12431,6 @@
             ]
         }
     ],
-    "WebRTC-Dav1dDecoder": [
-        {
-            "platforms": [
-                "android",
-                "android_webview",
-                "chromeos",
-                "chromeos_lacros",
-                "fuchsia",
-                "ios",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "WebRTC-Dav1dDecoder"
-                    ]
-                }
-            ]
-        }
-    ],
     "WebRTC-FrameBuffer3": [
         {
             "platforms": [
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index 23ffbef..c2a5905 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -3742,6 +3742,13 @@
   kSoftNavigationHeuristics = 4401,
   kMathMLMathElement = 4402,
   kMathMLMathElementInDocument = 4403,
+  kCSSAtRuleStylistic = 4404,
+  kCSSAtRuleStyleset = 4405,
+  kCSSAtRuleCharacterVariant = 4406,
+  kCSSAtRuleSwash = 4407 ,
+  kCSSAtRuleOrnaments = 4408,
+  kCSSAtRuleAnnotation = 4409,
+  kServiceWorkerBypassFetchHandlerForMainResource = 4410,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/style_builder_functions.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/style_builder_functions.tmpl
index e9189f31..ab72616 100644
--- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/style_builder_functions.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/style_builder_functions.tmpl
@@ -63,6 +63,22 @@
   {%- endif %}
 {% endmacro %}
 
+{% macro add_tree_scope(property, value, tree_scope) %}
+  {%- if property.tree_scoped_value %}
+ScopedCSSValue({{value}}, {{tree_scope}})
+  {%- else %}
+{{value}}
+  {%- endif %}
+{% endmacro %}
+
+{% macro remove_tree_scope(property, value) %}
+  {%- if property.tree_scoped_value %}
+{{value}}.GetCSSValue()
+  {%- else %}
+{{value}}
+  {%- endif %}
+{% endmacro %}
+
 {% macro style_builder_functions(property) %}
   {% if not property.style_builder_template %}
     {% call(property) apply_initial(property) %}
@@ -225,8 +241,10 @@
     {% call(property) apply_value(property) %}
   CSS{{animation}}Data& data = state.StyleBuilder().Access{{animation}}s();
   data.{{vector}}.clear();
-  for (auto& listValue : To<CSSValueList>(value))
-    data.{{vector}}.push_back(CSSToStyleMap::MapAnimation{{attribute}}(*listValue));
+  for (const CSSValue* list_value : To<CSSValueList>({{remove_tree_scope(property, 'value')}})) {
+    const auto& item = {{add_tree_scope(property, '*list_value', 'value.GetTreeScope()')}};
+    data.{{vector}}.push_back(CSSToStyleMap::MapAnimation{{attribute}}(item));
+  }
     {% endcall %}
   {% elif property.style_builder_template in ['background_layer', 'mask_layer'] %}
     {% set layer_type = 'Background' if property.style_builder_template == 'background_layer' else 'Mask' %}
diff --git a/third_party/blink/renderer/build/scripts/make_runtime_feature_state_mojom_defs.py b/third_party/blink/renderer/build/scripts/make_runtime_feature_state_mojom_defs.py
index 48074c35..9d8029a 100644
--- a/third_party/blink/renderer/build/scripts/make_runtime_feature_state_mojom_defs.py
+++ b/third_party/blink/renderer/build/scripts/make_runtime_feature_state_mojom_defs.py
@@ -14,17 +14,12 @@
         self._outputs = {
             (self.file_basename + '.mojom'): self.generate_mojom_definition
         }
-        self._browser_read_access_features = util.browser_read_access(
-            self._features)
-        self._browser_write_access_features = util.browser_write_access(
-            self._features)
+        self._overridable_features = util.overridable_features(self._features)
 
     def _template_inputs(self):
         return {
             'features': self._features,
-            'browser_read_access_features': self._browser_read_access_features,
-            'browser_write_access_features':
-            self._browser_write_access_features,
+            'overridable_features': self._overridable_features,
             'platforms': self._platforms(),
             'input_files': self._input_files,
             'header_guard': self._header_guard,
@@ -32,12 +27,7 @@
 
     @template_expander.use_jinja(f'templates/{file_basename}.mojom.tmpl')
     def generate_mojom_definition(self):
-        return {
-            'browser_read_access_features': self._browser_read_access_features,
-            'browser_write_access_features':
-            self._browser_write_access_features,
-            'input_files': self._input_files,
-        }
+        return self._template_inputs()
 
 
 if __name__ == '__main__':
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state.mojom.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state.mojom.tmpl
index c9f8d02a..81aa152a 100644
--- a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state.mojom.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state.mojom.tmpl
@@ -7,7 +7,7 @@
 
 // These enum values should not be persisted nor logged to histograms.
 enum RuntimeFeatureState {
-  {% for feature in browser_read_access_features %}
+  {% for feature in overridable_features %}
   k{{feature.name}},
   {% endfor %}
 };
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl
index 779e6f6..8257d0e 100644
--- a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl
@@ -3,6 +3,7 @@
 
 {{source_files_for_generated_file(template_file, input_files)}}
 
+#include "third_party/blink/public/mojom/runtime_feature_state/runtime_feature_state.mojom-shared.h"
 #include "third_party/blink/renderer/platform/runtime_feature_state/runtime_feature_state_override_context.h"
 
 namespace blink {
@@ -10,7 +11,7 @@
 bool RuntimeFeatureStateOverrideContext::
     Is{{feature.name}}ForceDisabled() {
   auto it = override_values_.find(
-      OverridableFeatures::k{{feature.name}});
+      blink::mojom::RuntimeFeatureState::k{{feature.name}});
   if (it != override_values_.end() && it->second == false)
     return true;
 
@@ -20,7 +21,7 @@
 bool RuntimeFeatureStateOverrideContext::
     Is{{feature.name}}ForceEnabled() {
   auto it = override_values_.find(
-      OverridableFeatures::k{{feature.name}});
+      blink::mojom::RuntimeFeatureState::k{{feature.name}});
   if(it != override_values_.end() && it->second == true)
     return true;
 
@@ -29,12 +30,16 @@
 
 void RuntimeFeatureStateOverrideContext::
     Set{{feature.name}}ForceDisabled() {
-  override_values_[OverridableFeatures::k{{feature.name}}] = false;
+  override_values_
+      [blink::mojom::RuntimeFeatureState::k{{feature.name}}] =
+          false;
 }
 
 void RuntimeFeatureStateOverrideContext::
     Set{{feature.name}}ForceEnabled() {
-  override_values_[OverridableFeatures::k{{feature.name}}] = true;
+  override_values_
+      [blink::mojom::RuntimeFeatureState::k{{feature.name}}] =
+          true;
 }
 
 {% endfor %}
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl
index 63da5d0c..67a087a5 100644
--- a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl
@@ -7,6 +7,7 @@
 #define {{header_guard}}
 
 #include "base/containers/flat_map.h"
+#include "third_party/blink/public/mojom/runtime_feature_state/runtime_feature_state.mojom-shared.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 
@@ -36,16 +37,9 @@
   void Trace(Visitor*) const {}
 
  private:
-
-  enum class OverridableFeatures {
-    {% for feature in overridable_features %}
-    k{{feature.name}} = {{loop.index0}},
-    {% endfor %}
-  };
-
   void ApplyEnterprisePolicyOverrides();
 
-  base::flat_map<OverridableFeatures, bool> override_values_;
+  base::flat_map<blink::mojom::RuntimeFeatureState, bool> override_values_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/animation/css/css_animations.cc b/third_party/blink/renderer/core/animation/css/css_animations.cc
index ed5e917b..c0cbd37 100644
--- a/third_party/blink/renderer/core/animation/css/css_animations.cc
+++ b/third_party/blink/renderer/core/animation/css/css_animations.cc
@@ -463,7 +463,10 @@
     const ComputedStyleBuilder& style_builder) {
   Document& document = animating_element.GetDocument();
 
-  const AtomicString& name = style_builder.ScrollTimelineName();
+  // TODO(crbug.com/1382876): Handle TreeScope.
+  const AtomicString& name = style_builder.ScrollTimelineName()
+                                 ? style_builder.ScrollTimelineName()->GetName()
+                                 : g_null_atom;
   TimelineAxis axis = style_builder.ScrollTimelineAxis();
 
   const CSSAnimations::TimelineData* timeline_data =
@@ -690,8 +693,10 @@
     return nullptr;
   }
   if (style_timeline.IsName()) {
-    return FindPreviousSiblingAncestorTimeline(style_timeline.GetName(),
-                                               element, &update);
+    const ScopedCSSName& scoped_name = style_timeline.GetName();
+    // TODO(crbug.com/1382876): Handle TreeScope.
+    return FindPreviousSiblingAncestorTimeline(scoped_name.GetName(), element,
+                                               &update);
   }
   DCHECK(style_timeline.IsScroll());
   return ComputeScrollFunctionTimeline(element, style_timeline.GetScroll());
diff --git a/third_party/blink/renderer/core/animation/transition_interpolation.cc b/third_party/blink/renderer/core/animation/transition_interpolation.cc
index 41db7e2..e4d5f93 100644
--- a/third_party/blink/renderer/core/animation/transition_interpolation.cc
+++ b/third_party/blink/renderer/core/animation/transition_interpolation.cc
@@ -4,10 +4,7 @@
 
 #include "third_party/blink/renderer/core/animation/transition_interpolation.h"
 
-#include "third_party/blink/renderer/core/animation/css_interpolation_types_map.h"
-#include "third_party/blink/renderer/core/animation/interpolation_environment.h"
-#include "third_party/blink/renderer/core/animation/interpolation_type.h"
-#include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
+#include "third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h"
 
 namespace blink {
 
@@ -31,10 +28,8 @@
   return merge_.non_interpolable_value.get();
 }
 
-void TransitionInterpolation::Apply(StyleResolverState& state) const {
-  CSSInterpolationTypesMap map(state.GetDocument().GetPropertyRegistry(),
-                               state.GetDocument());
-  CSSInterpolationEnvironment environment(map, state);
+void TransitionInterpolation::Apply(
+    InterpolationEnvironment& environment) const {
   type_.Apply(CurrentInterpolableValue(), CurrentNonInterpolableValue(),
               environment);
 }
diff --git a/third_party/blink/renderer/core/animation/transition_interpolation.h b/third_party/blink/renderer/core/animation/transition_interpolation.h
index 8fc263b0..ea11f8f 100644
--- a/third_party/blink/renderer/core/animation/transition_interpolation.h
+++ b/third_party/blink/renderer/core/animation/transition_interpolation.h
@@ -14,8 +14,7 @@
 
 namespace blink {
 
-class StyleResolverState;
-class InterpolationType;
+class InterpolationEnvironment;
 
 // See the documentation of Interpolation for general information about this
 // class hierarchy.
@@ -67,7 +66,7 @@
               property_.GetCSSProperty().IsCompositableProperty());
   }
 
-  void Apply(StyleResolverState&) const;
+  void Apply(InterpolationEnvironment&) const;
 
   bool IsTransitionInterpolation() const final { return true; }
 
diff --git a/third_party/blink/renderer/core/css/build.gni b/third_party/blink/renderer/core/css/build.gni
index 28bdcc8e..3e1b178 100644
--- a/third_party/blink/renderer/core/css/build.gni
+++ b/third_party/blink/renderer/core/css/build.gni
@@ -661,6 +661,8 @@
   "style_rule_css_style_declaration.h",
   "style_rule_font_palette_values.cc",
   "style_rule_font_palette_values.h",
+  "style_rule_font_feature_values.cc",
+  "style_rule_font_feature_values.h",
   "style_rule_import.cc",
   "style_rule_import.h",
   "style_rule_keyframe.cc",
diff --git a/third_party/blink/renderer/core/css/container_query_evaluator.cc b/third_party/blink/renderer/core/css/container_query_evaluator.cc
index 9b11a7b..7606cad1 100644
--- a/third_party/blink/renderer/core/css/container_query_evaluator.cc
+++ b/third_party/blink/renderer/core/css/container_query_evaluator.cc
@@ -33,7 +33,20 @@
 bool NameMatches(const ComputedStyle& style,
                  const ContainerSelector& container_selector) {
   const AtomicString& name = container_selector.Name();
-  return name.IsNull() || (style.ContainerName().Contains(name));
+  if (name.IsNull())
+    return true;
+  if (const ScopedCSSNameList* container_name = style.ContainerName()) {
+    const HeapVector<Member<const ScopedCSSName>>& names =
+        container_name->GetNames();
+    for (auto scoped_name : names) {
+      if (scoped_name->GetName() == name) {
+        // TODO(crbug.com/1382790): Should only match if the name's tree scope
+        // is an inclusive-ancestor tree scope of the selector source.
+        return true;
+      }
+    }
+  }
+  return false;
 }
 
 bool TypeMatches(const ComputedStyle& style,
diff --git a/third_party/blink/renderer/core/css/css_gradient_value.cc b/third_party/blink/renderer/core/css/css_gradient_value.cc
index 2a3f8b4c..273d0b5 100644
--- a/third_party/blink/renderer/core/css/css_gradient_value.cc
+++ b/third_party/blink/renderer/core/css/css_gradient_value.cc
@@ -32,6 +32,7 @@
 
 #include "base/memory/values_equivalent.h"
 #include "base/notreached.h"
+#include "base/ranges/algorithm.h"
 #include "third_party/blink/renderer/core/css/css_color.h"
 #include "third_party/blink/renderer/core/css/css_identifier_value.h"
 #include "third_party/blink/renderer/core/css/css_math_expression_node.h"
@@ -821,15 +822,13 @@
   if (color_interpolation_space_ == Color::ColorInterpolationSpace::kNone)
     return false;
 
-  bool has_only_legacy_colors = true;
-  for (const auto& stop : stops_) {
-    const CSSValue* value = stop.color_;
-    if (value->IsColorValue()) {
-      Color color = static_cast<const cssvalue::CSSColor*>(value)->Value();
-      if (!color.IsLegacyColor())
-        has_only_legacy_colors = false;
-    }
-  }
+  bool has_only_legacy_colors =
+      base::ranges::all_of(stops_, [](const CSSGradientColorStop& stop) {
+        const auto* color_value =
+            DynamicTo<cssvalue::CSSColor>(stop.color_.Get());
+        return !color_value || color_value->Value().IsLegacyColor();
+      });
+
   // OKLab is the default and should not be serialized unless all colors are
   // legacy colors.
   if (!has_only_legacy_colors &&
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index be53c4f..25c27ab 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -864,6 +864,7 @@
       },
       keywords: ["none", "auto"],
       typedom_types: ["Keyword"],
+      tree_scoped_value: true,
       separator: ",",
       valid_for_marker: true,
       runtime_flag: "CSSScrollTimeline",
@@ -2471,8 +2472,10 @@
     {
       name: "container-name",
       property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
-      type_name: "Vector<AtomicString>",
-      default_value: "Vector<AtomicString>()",
+      type_name: "ScopedCSSNameList",
+      wrapper_pointer_name: "Persistent",
+      tree_scoped_value: true,
+      default_value: "nullptr",
       field_group: "*",
       field_template: "external",
       converter: "ConvertContainerName",
@@ -4341,8 +4344,10 @@
       property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"],
       field_group: "*->timeline",
       field_template: "external",
-      default_value: "g_null_atom",
-      type_name: "AtomicString",
+      type_name: "ScopedCSSName",
+      wrapper_pointer_name: "Persistent",
+      default_value: "nullptr",
+      tree_scoped_value: true,
       converter: "ConvertNoneOrCustomIdent",
       runtime_flag: "CSSScrollTimeline",
     },
diff --git a/third_party/blink/renderer/core/css/css_rule.h b/third_party/blink/renderer/core/css/css_rule.h
index c66a6a7..537cb6f 100644
--- a/third_party/blink/renderer/core/css/css_rule.h
+++ b/third_party/blink/renderer/core/css/css_rule.h
@@ -62,6 +62,7 @@
     kNamespaceRule = 10,
     kCounterStyleRule = 11,
     kSupportsRule = 12,
+    kFontFeatureValuesRule = 14,
     kViewportRule = 15,
     // CSSOM constants are deprecated [1], and there will be no new
     // web-exposed values.
@@ -77,6 +78,7 @@
     kScopeRule = 21,
     kPositionFallbackRule = 22,
     kTryRule = 23,
+    kFontFeatureRule = 24,
   };
 
   virtual Type GetType() const = 0;
diff --git a/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.cc b/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.cc
index 417f632..3d606d7 100644
--- a/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.cc
@@ -269,6 +269,8 @@
     case StyleRule::kPage:
     case StyleRule::kKeyframes:
     case StyleRule::kKeyframe:
+    case StyleRule::kFontFeatureValues:
+    case StyleRule::kFontFeature:
     case StyleRule::kLayerBlock:
     case StyleRule::kLayerStatement:
     case StyleRule::kNamespace:
diff --git a/third_party/blink/renderer/core/css/parser/css_at_rule_id.cc b/third_party/blink/renderer/core/css/parser/css_at_rule_id.cc
index 8f0ef5a..2acd677f 100644
--- a/third_party/blink/renderer/core/css/parser/css_at_rule_id.cc
+++ b/third_party/blink/renderer/core/css/parser/css_at_rule_id.cc
@@ -22,6 +22,41 @@
       return CSSAtRuleID::kCSSAtRuleFontPaletteValues;
     return CSSAtRuleID::kCSSAtRuleInvalid;
   }
+  if (EqualIgnoringASCIICase(name, "font-feature-values")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleFontFeatureValues;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "stylistic")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleStylistic;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "styleset")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleStyleset;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "character-variant")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleCharacterVariant;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "swash")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleSwash;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "ornaments")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleOrnaments;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
+  if (EqualIgnoringASCIICase(name, "annotation")) {
+    if (RuntimeEnabledFeatures::FontVariantAlternatesEnabled())
+      return CSSAtRuleID::kCSSAtRuleAnnotation;
+    return CSSAtRuleID::kCSSAtRuleInvalid;
+  }
   if (EqualIgnoringASCIICase(name, "import"))
     return CSSAtRuleID::kCSSAtRuleImport;
   if (EqualIgnoringASCIICase(name, "keyframes"))
@@ -72,12 +107,18 @@
 
 absl::optional<WebFeature> AtRuleFeature(CSSAtRuleID rule_id) {
   switch (rule_id) {
+    case CSSAtRuleID::kCSSAtRuleAnnotation:
+      return WebFeature::kCSSAtRuleAnnotation;
     case CSSAtRuleID::kCSSAtRuleCharset:
       return WebFeature::kCSSAtRuleCharset;
+    case CSSAtRuleID::kCSSAtRuleCharacterVariant:
+      return WebFeature::kCSSAtRuleCharacterVariant;
     case CSSAtRuleID::kCSSAtRuleFontFace:
       return WebFeature::kCSSAtRuleFontFace;
     case CSSAtRuleID::kCSSAtRuleFontPaletteValues:
       return WebFeature::kCSSAtRuleFontPaletteValues;
+    case CSSAtRuleID::kCSSAtRuleFontFeatureValues:
+      return WebFeature::kCSSAtRuleFontFeatureValues;
     case CSSAtRuleID::kCSSAtRuleImport:
       return WebFeature::kCSSAtRuleImport;
     case CSSAtRuleID::kCSSAtRuleKeyframes:
@@ -96,8 +137,16 @@
       return WebFeature::kCSSAtRuleContainer;
     case CSSAtRuleID::kCSSAtRuleCounterStyle:
       return WebFeature::kCSSAtRuleCounterStyle;
+    case CSSAtRuleID::kCSSAtRuleOrnaments:
+      return WebFeature::kCSSAtRuleOrnaments;
     case CSSAtRuleID::kCSSAtRuleScope:
       return WebFeature::kCSSAtRuleScope;
+    case CSSAtRuleID::kCSSAtRuleStyleset:
+      return WebFeature::kCSSAtRuleStylistic;
+    case CSSAtRuleID::kCSSAtRuleStylistic:
+      return WebFeature::kCSSAtRuleStylistic;
+    case CSSAtRuleID::kCSSAtRuleSwash:
+      return WebFeature::kCSSAtRuleSwash;
     case CSSAtRuleID::kCSSAtRuleScrollTimeline:
       return WebFeature::kCSSAtRuleScrollTimeline;
     case CSSAtRuleID::kCSSAtRuleSupports:
diff --git a/third_party/blink/renderer/core/css/parser/css_at_rule_id.h b/third_party/blink/renderer/core/css/parser/css_at_rule_id.h
index f1aafe6..460209b8 100644
--- a/third_party/blink/renderer/core/css/parser/css_at_rule_id.h
+++ b/third_party/blink/renderer/core/css/parser/css_at_rule_id.h
@@ -31,6 +31,14 @@
   kCSSAtRuleSupports,
   kCSSAtRuleTry,
   kCSSAtRuleWebkitKeyframes,
+  // Font-feature-values related at-rule ids below:
+  kCSSAtRuleAnnotation,
+  kCSSAtRuleCharacterVariant,
+  kCSSAtRuleFontFeatureValues,
+  kCSSAtRuleOrnaments,
+  kCSSAtRuleStylistic,
+  kCSSAtRuleStyleset,
+  kCSSAtRuleSwash
 };
 
 CSSAtRuleID CssAtRuleID(StringView name);
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
index 289b83c0..67a3539 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
@@ -5,11 +5,13 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_impl.h"
 
 #include <bitset>
+#include <limits>
 #include <memory>
 #include <utility>
 
 #include "third_party/blink/renderer/core/css/css_custom_ident_value.h"
 #include "third_party/blink/renderer/core/css/css_custom_property_declaration.h"
+#include "third_party/blink/renderer/core/css/css_font_family_value.h"
 #include "third_party/blink/renderer/core/css/css_keyframes_rule.h"
 #include "third_party/blink/renderer/core/css/css_position_fallback_rule.h"
 #include "third_party/blink/renderer/core/css/css_selector.h"
@@ -30,6 +32,7 @@
 #include "third_party/blink/renderer/core/css/parser/media_query_parser.h"
 #include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
 #include "third_party/blink/renderer/core/css/style_rule_counter_style.h"
+#include "third_party/blink/renderer/core/css/style_rule_font_feature_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_font_palette_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_import.h"
 #include "third_party/blink/renderer/core/css/style_rule_keyframe.h"
@@ -111,6 +114,27 @@
   }
 }
 
+absl::optional<StyleRuleFontFeature::FeatureType> ToStyleRuleFontFeatureType(
+    CSSAtRuleID rule_id) {
+  switch (rule_id) {
+    case CSSAtRuleID::kCSSAtRuleStylistic:
+      return StyleRuleFontFeature::FeatureType::kStylistic;
+    case CSSAtRuleID::kCSSAtRuleStyleset:
+      return StyleRuleFontFeature::FeatureType::kStyleset;
+    case CSSAtRuleID::kCSSAtRuleCharacterVariant:
+      return StyleRuleFontFeature::FeatureType::kCharacterVariant;
+    case CSSAtRuleID::kCSSAtRuleSwash:
+      return StyleRuleFontFeature::FeatureType::kSwash;
+    case CSSAtRuleID::kCSSAtRuleOrnaments:
+      return StyleRuleFontFeature::FeatureType::kOrnaments;
+    case CSSAtRuleID::kCSSAtRuleAnnotation:
+      return StyleRuleFontFeature::FeatureType::kAnnotation;
+    default:
+      NOTREACHED();
+  }
+  return absl::nullopt;
+}
+
 }  // namespace
 
 CSSParserImpl::CSSParserImpl(const CSSParserContext* context,
@@ -530,7 +554,7 @@
   bool seen_rule = false;
   bool first_rule_valid = false;
   while (!stream.AtEnd()) {
-    StyleRuleBase* rule;
+    StyleRuleBase* rule = nullptr;
     switch (stream.UncheckedPeek().GetType()) {
       case kWhitespaceToken:
         stream.UncheckedConsume();
@@ -642,10 +666,9 @@
     CountAtRule(context_, id);
   }
 
-  if (allowed_rules == kKeyframeRules || allowed_rules == kFontFeatureRules ||
-      allowed_rules == kNoRules) {
+  if (allowed_rules == kKeyframeRules || allowed_rules == kNoRules) {
     // Parse error, no at-rules supported inside @keyframes,
-    // @font-feature-values, or blocks supported inside declaration lists.
+    // or blocks supported inside declaration lists.
     ConsumeErroneousAtRule(stream);
     return nullptr;
   }
@@ -665,6 +688,17 @@
       return ConsumeTryRule(stream);
     ConsumeErroneousAtRule(stream);
     return nullptr;
+  } else if (allowed_rules == kFontFeatureRules) {
+    if (id == CSSAtRuleID::kCSSAtRuleStylistic ||
+        id == CSSAtRuleID::kCSSAtRuleStyleset ||
+        id == CSSAtRuleID::kCSSAtRuleCharacterVariant ||
+        id == CSSAtRuleID::kCSSAtRuleSwash ||
+        id == CSSAtRuleID::kCSSAtRuleOrnaments ||
+        id == CSSAtRuleID::kCSSAtRuleAnnotation) {
+      return ConsumeFontFeatureRule(id, stream);
+    } else {
+      return nullptr;
+    }
   } else {
     DCHECK_LE(allowed_rules, kRegularRules);
 
@@ -679,6 +713,8 @@
         return ConsumeFontFaceRule(stream);
       case CSSAtRuleID::kCSSAtRuleFontPaletteValues:
         return ConsumeFontPaletteValuesRule(stream);
+      case CSSAtRuleID::kCSSAtRuleFontFeatureValues:
+        return ConsumeFontFeatureValuesRule(stream);
       case CSSAtRuleID::kCSSAtRuleWebkitKeyframes:
         return ConsumeKeyframesRule(true, stream);
       case CSSAtRuleID::kCSSAtRuleKeyframes:
@@ -701,6 +737,12 @@
       case CSSAtRuleID::kCSSAtRuleNamespace:
       case CSSAtRuleID::kCSSAtRuleScrollTimeline:
       case CSSAtRuleID::kCSSAtRuleTry:
+      case CSSAtRuleID::kCSSAtRuleStylistic:
+      case CSSAtRuleID::kCSSAtRuleStyleset:
+      case CSSAtRuleID::kCSSAtRuleCharacterVariant:
+      case CSSAtRuleID::kCSSAtRuleSwash:
+      case CSSAtRuleID::kCSSAtRuleOrnaments:
+      case CSSAtRuleID::kCSSAtRuleAnnotation:
         ConsumeErroneousAtRule(stream);
         return nullptr;  // Parse error, unrecognised or not-allowed at-rule
     }
@@ -734,28 +776,14 @@
     return keyframe_style_rule;
   }
   if (allowed_rules == kFontFeatureRules) {
-    stream.ConsumeWhitespace();
-    if (stream.AtEnd())
-      return nullptr;  // Parse error, EOF instead of qualified rule block
-    bool prelude_invalid = false;
+    // We get here if something other than an at rule (e.g. @swash,
+    // @ornaments... ) was found within @font-feature-values. As we don't
+    // support font-display in @font-feature-values, we try to it by scanning
+    // until the at-rule or until the block may end. Compare
+    // https://drafts.csswg.org/css-fonts-4/#ex-invalid-ignored
     stream.EnsureLookAhead();
-    if (stream.UncheckedPeek().GetType() != kLeftBraceToken) {
-      prelude_invalid = true;
-      while (!stream.AtEnd() &&
-             stream.UncheckedPeek().GetType() != kLeftBraceToken)
-        stream.UncheckedConsumeComponentValue();
-      if (stream.AtEnd())
-        return nullptr;
-    }
-
-    CSSParserTokenStream::BlockGuard guard(stream);
-    if (prelude_invalid)
-      return nullptr;
-    ConsumeDeclarationList(stream, StyleRule::kFontFace,
-                           /*parent_rule_for_nesting=*/nullptr,
-                           /*child_rules=*/nullptr);
-    return MakeGarbageCollected<StyleRuleFontFace>(
-        CreateCSSPropertyValueSet(parsed_properties_, kCSSFontFaceRuleMode));
+    stream.ConsumeUntilPeekedTypeIs<kAtKeywordToken>();
+    return nullptr;
   }
   if (allowed_rules == kTryRules) {
     // We reach here only when there's a parse error. Treat everything before
@@ -1062,6 +1090,189 @@
   return keyframe_rule;
 }
 
+StyleRuleFontFeature* CSSParserImpl::ConsumeFontFeatureRule(
+    CSSAtRuleID rule_id,
+    CSSParserTokenStream& stream) {
+  DCHECK(RuntimeEnabledFeatures::FontVariantAlternatesEnabled());
+
+  absl::optional<StyleRuleFontFeature::FeatureType> feature_type =
+      ToStyleRuleFontFeatureType(rule_id);
+  if (!feature_type)
+    return nullptr;
+
+  wtf_size_t max_allowed_values = 1;
+  if (feature_type == StyleRuleFontFeature::FeatureType::kCharacterVariant)
+    max_allowed_values = 2;
+  if (feature_type == StyleRuleFontFeature::FeatureType::kStyleset)
+    max_allowed_values = std::numeric_limits<wtf_size_t>::max();
+
+  stream.ConsumeWhitespace();
+
+  if (stream.Peek().GetType() != kLeftBraceToken)
+    return nullptr;
+
+  CSSParserTokenStream::BlockGuard guard(stream);
+  stream.ConsumeWhitespace();
+
+  auto* font_feature_rule =
+      MakeGarbageCollected<StyleRuleFontFeature>(*feature_type);
+
+  while (!stream.AtEnd()) {
+    const CSSParserToken& alias_token = stream.Peek();
+
+    if (alias_token.GetType() != kIdentToken)
+      return nullptr;
+    AtomicString alias =
+        stream.ConsumeIncludingWhitespace().Value().ToAtomicString();
+
+    const CSSParserToken& colon_token = stream.Peek();
+
+    if (colon_token.GetType() != kColonToken)
+      return nullptr;
+
+    stream.UncheckedConsume();
+    stream.ConsumeWhitespace();
+
+    CSSValueList* numbers = CSSValueList::CreateSpaceSeparated();
+
+    CSSParserTokenRange list =
+        stream.ConsumeUntilPeekedTypeIs<kSemicolonToken>();
+    list.ConsumeWhitespace();
+
+    do {
+      if (numbers->length() == max_allowed_values) {
+        return nullptr;
+      }
+      CSSPrimitiveValue* parsed_number =
+          css_parsing_utils::ConsumeIntegerOrNumberCalc(
+              list, *context_,
+              CSSPrimitiveValue::ValueRange::kNonNegativeInteger);
+      if (!parsed_number) {
+        return nullptr;
+      }
+      numbers->Append(*parsed_number);
+    } while (!list.AtEnd());
+
+    if (!numbers->length())
+      return nullptr;
+
+    Vector<uint32_t> parsed_numbers;
+    for (auto value : *numbers) {
+      const CSSPrimitiveValue* number_value =
+          DynamicTo<CSSPrimitiveValue>(*value);
+      if (!number_value)
+        return nullptr;
+      parsed_numbers.push_back(number_value->GetIntValue());
+    }
+
+    const CSSParserToken& expected_semicolon = stream.Peek();
+    if (expected_semicolon.GetType() == kSemicolonToken)
+      stream.UncheckedConsume();
+    stream.ConsumeWhitespace();
+
+    font_feature_rule->UpdateAlias(alias, parsed_numbers);
+  }
+
+  return font_feature_rule;
+}
+
+StyleRuleFontFeatureValues* CSSParserImpl::ConsumeFontFeatureValuesRule(
+    CSSParserTokenStream& stream) {
+  DCHECK(RuntimeEnabledFeatures::FontVariantAlternatesEnabled());
+
+  wtf_size_t prelude_offset_start = stream.LookAheadOffset();
+  CSSParserTokenRange prelude = ConsumeAtRulePrelude(stream);
+  wtf_size_t prelude_offset_end = stream.LookAheadOffset();
+  if (!ConsumeEndOfPreludeForAtRuleWithBlock(stream))
+    return nullptr;
+  CSSParserTokenStream::BlockGuard guard(stream);
+
+  if (observer_) {
+    observer_->StartRuleHeader(StyleRule::kFontFeatureValues,
+                               prelude_offset_start);
+    observer_->EndRuleHeader(prelude_offset_end);
+    observer_->StartRuleBody(stream.Offset());
+  }
+
+  CSSValueList* family_list = css_parsing_utils::ConsumeFontFamily(prelude);
+
+  if (!family_list || !family_list->length()) {
+    return nullptr;
+  }
+
+  // The nesting logic for parsing @font-feature-values looks as follow:
+  // 1) ConsumeRuleList, calls ConsumeAtRule, and in turn ConsumeAtRuleContents
+  // 2) ConsumeAtRuleContents uses new ids for inner at-rules, for swash,
+  // styleset etc.
+  // 3) ConsumeFeatureRule (with type) consumes the inner mappings from aliases
+  // to number lists.
+
+  FontFeatureAliases stylistic;
+  FontFeatureAliases styleset;
+  FontFeatureAliases character_variant;
+  FontFeatureAliases swash;
+  FontFeatureAliases ornaments;
+  FontFeatureAliases annotation;
+
+  HeapVector<StyleRuleFontFeature*> feature_rules;
+  bool had_valid_rules = false;
+  // ConsumeRuleList returns true only if the first rule is true, but we need to
+  // be more generous with the internals of what's inside a font feature value
+  // declaration, e.g. inside a @stylsitic, @styleset, etc.
+  if (ConsumeRuleList(stream, kFontFeatureRuleList,
+                      /*parent_rule_for_nesting=*/nullptr,
+                      [&feature_rules, &had_valid_rules](StyleRuleBase* rule) {
+                        if (rule)
+                          had_valid_rules = true;
+                        feature_rules.push_back(To<StyleRuleFontFeature>(rule));
+                      }) ||
+      had_valid_rules) {
+    // https://drafts.csswg.org/css-fonts-4/#font-feature-values-syntax
+    // "Specifying the same <font-feature-value-type> more than once is valid;
+    // their contents are cascaded together."
+    for (auto* feature_rule : feature_rules) {
+      switch (feature_rule->GetFeatureType()) {
+        case StyleRuleFontFeature::FeatureType::kStylistic:
+          feature_rule->OverrideAliasesIn(stylistic);
+          break;
+        case StyleRuleFontFeature::FeatureType::kStyleset:
+          feature_rule->OverrideAliasesIn(styleset);
+          break;
+        case StyleRuleFontFeature::FeatureType::kCharacterVariant:
+          feature_rule->OverrideAliasesIn(character_variant);
+          break;
+        case StyleRuleFontFeature::FeatureType::kSwash:
+          feature_rule->OverrideAliasesIn(swash);
+          break;
+        case StyleRuleFontFeature::FeatureType::kOrnaments:
+          feature_rule->OverrideAliasesIn(ornaments);
+          break;
+        case StyleRuleFontFeature::FeatureType::kAnnotation:
+          feature_rule->OverrideAliasesIn(annotation);
+          break;
+      }
+    }
+  }
+
+  Vector<AtomicString> families;
+  for (const auto family_entry : *family_list) {
+    const CSSFontFamilyValue* family_value =
+        DynamicTo<CSSFontFamilyValue>(*family_entry);
+    if (!family_value)
+      return nullptr;
+    families.push_back(family_value->Value());
+  }
+
+  auto* feature_values_rule = MakeGarbageCollected<StyleRuleFontFeatureValues>(
+      families, stylistic, styleset, character_variant, swash, ornaments,
+      annotation);
+
+  if (observer_)
+    observer_->EndRuleBody(stream.Offset());
+
+  return feature_values_rule;
+}
+
 StyleRulePage* CSSParserImpl::ConsumePageRule(CSSParserTokenStream& stream) {
   wtf_size_t prelude_offset_start = stream.LookAheadOffset();
   CSSParserTokenRange prelude = ConsumeAtRulePrelude(stream);
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl.h b/third_party/blink/renderer/core/css/parser/css_parser_impl.h
index 26184aae..ad20edf 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl.h
@@ -34,6 +34,8 @@
 class StyleRuleCounterStyle;
 class StyleRuleFontFace;
 class StyleRuleFontPaletteValues;
+class StyleRuleFontFeatureValues;
+class StyleRuleFontFeature;
 class StyleRuleImport;
 class StyleRuleKeyframe;
 class StyleRuleKeyframes;
@@ -197,6 +199,10 @@
   StyleRuleFontFace* ConsumeFontFaceRule(CSSParserTokenStream&);
   StyleRuleFontPaletteValues* ConsumeFontPaletteValuesRule(
       CSSParserTokenStream&);
+  StyleRuleFontFeatureValues* ConsumeFontFeatureValuesRule(
+      CSSParserTokenStream&);
+  StyleRuleFontFeature* ConsumeFontFeatureRule(CSSAtRuleID,
+                                               CSSParserTokenStream&);
   StyleRuleKeyframes* ConsumeKeyframesRule(bool webkit_prefixed,
                                            CSSParserTokenStream&);
   StyleRulePage* ConsumePageRule(CSSParserTokenStream&);
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc b/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
index b6ca190..99ebdf6 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
@@ -12,6 +12,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_observer.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_stream.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
+#include "third_party/blink/renderer/core/css/style_rule_font_feature_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_font_palette_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_import.h"
 #include "third_party/blink/renderer/core/css/style_sheet_contents.h"
@@ -832,4 +833,43 @@
   ASSERT_EQ(2u, DynamicTo<CSSValueList>(parsed->GetOverrideColors())->length());
 }
 
+TEST(CSSParserImplTest, FontFeatureValuesRuleParsing) {
+  ScopedFontPaletteForTest enabled_scope(true);
+  using css_test_helpers::ParseRule;
+  ScopedNullExecutionContext execution_context;
+  Document* document =
+      Document::CreateForTest(execution_context.GetExecutionContext());
+  String rule = R"CSS(@font-feature-values fontFam1, fontFam2 {
+    @styleset { curly: 4 3 2 1; wavy: 2; cool: 3; }
+    @swash { thrown: 1; }
+    @styleset { yo: 1; }
+  })CSS";
+  auto* parsed =
+      DynamicTo<StyleRuleFontFeatureValues>(ParseRule(*document, rule));
+  ASSERT_TRUE(parsed);
+  auto& families = parsed->GetFamilies();
+  ASSERT_EQ(AtomicString("fontFam1"), families[0]);
+  ASSERT_EQ(AtomicString("fontFam2"), families[1]);
+  ASSERT_EQ(parsed->GetStyleset()->size(), 4u);
+  ASSERT_TRUE(parsed->GetStyleset()->Contains("cool"));
+  ASSERT_EQ(parsed->GetStyleset()->at("curly"), Vector<uint32_t>({4, 3, 2, 1}));
+}
+
+TEST(CSSParserImplTest, FontFeatureValuesOffsets) {
+  String sheet_text = "@font-feature-values myFam { @styleset { curly: 1; } }";
+  auto* context = MakeGarbageCollected<CSSParserContext>(
+      kHTMLStandardMode, SecureContextMode::kInsecureContext);
+  auto* style_sheet = MakeGarbageCollected<StyleSheetContents>(context);
+  TestCSSParserObserver test_css_parser_observer;
+  CSSParserImpl::ParseStyleSheetForInspector(sheet_text, context, style_sheet,
+                                             test_css_parser_observer);
+  EXPECT_EQ(style_sheet->ChildRules().size(), 1u);
+  EXPECT_EQ(test_css_parser_observer.rule_type_,
+            StyleRule::RuleType::kFontFeatureValues);
+  EXPECT_EQ(test_css_parser_observer.rule_header_start_, 21u);
+  EXPECT_EQ(test_css_parser_observer.rule_header_end_, 27u);
+  EXPECT_EQ(test_css_parser_observer.rule_body_start_, 28u);
+  EXPECT_EQ(test_css_parser_observer.rule_body_end_, 53u);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
index 2a25d05..0c591fd 100644
--- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
+++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -2036,7 +2036,8 @@
     return CSSIdentifierValue::Create(timeline.GetKeyword());
   }
   if (timeline.IsName()) {
-    const AtomicString& name = timeline.GetName();
+    const ScopedCSSName& scoped_name = timeline.GetName();
+    const AtomicString& name = scoped_name.GetName();
     // Serialize as <string> if the value is not a valid <custom-ident>.
     if (css_parsing_utils::IsCSSWideKeyword(name) ||
         EqualIgnoringASCIICase(name, "auto") ||
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
index e4b6809..d7c54d8 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -2000,14 +2000,15 @@
     const ComputedStyle& style,
     const LayoutObject* layout_object,
     bool allow_visited_style) const {
-  if (style.ContainerName().empty())
+  if (!style.ContainerName())
     return CSSIdentifierValue::Create(CSSValueID::kNone);
 
   CSSValueList* list = CSSValueList::CreateSpaceSeparated();
 
-  for (const AtomicString& ident : style.ContainerName())
-    list->Append(*MakeGarbageCollected<CSSCustomIdentValue>(ident));
-
+  for (const Member<const ScopedCSSName>& name :
+       style.ContainerName()->GetNames()) {
+    list->Append(*ComputedStyleUtils::ValueForCustomIdentOrNone(name.Get()));
+  }
   return list;
 }
 
@@ -6621,10 +6622,8 @@
     const ComputedStyle& style,
     const LayoutObject* layout_object,
     bool allow_visited_style) const {
-  const AtomicString& ident = style.ScrollTimelineName();
-  if (ident.empty())
-    return CSSIdentifierValue::Create(CSSValueID::kNone);
-  return MakeGarbageCollected<CSSCustomIdentValue>(ident);
+  return ComputedStyleUtils::ValueForCustomIdentOrNone(
+      style.ScrollTimelineName().Get());
 }
 
 const CSSValue* ScrollTimelineName::InitialValue() const {
diff --git a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
index 0694d39..057fead 100644
--- a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
+++ b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
@@ -41,6 +41,7 @@
 #include "third_party/blink/renderer/core/css/css_value_pair.h"
 #include "third_party/blink/renderer/core/css/resolver/style_builder_converter.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
+#include "third_party/blink/renderer/core/css/scoped_css_value.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/style/border_image_length_box.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
@@ -386,7 +387,9 @@
   return CSSAnimationData::InitialName();
 }
 
-StyleTimeline CSSToStyleMap::MapAnimationTimeline(const CSSValue& value) {
+StyleTimeline CSSToStyleMap::MapAnimationTimeline(
+    const ScopedCSSValue& scoped_value) {
+  const CSSValue& value = scoped_value.GetCSSValue();
   if (value.IsInitialValue())
     return CSSAnimationData::InitialTimeline();
   if (auto* ident = DynamicTo<CSSIdentifierValue>(value)) {
@@ -395,10 +398,12 @@
     return StyleTimeline(ident->GetValueID());
   }
   if (auto* custom_ident = DynamicTo<CSSCustomIdentValue>(value)) {
-    return StyleTimeline(custom_ident->Value());
+    return StyleTimeline(MakeGarbageCollected<ScopedCSSName>(
+        custom_ident->Value(), scoped_value.GetTreeScope()));
   }
   if (auto* string_value = DynamicTo<CSSStringValue>(value)) {
-    return StyleTimeline(AtomicString(string_value->Value()));
+    return StyleTimeline(MakeGarbageCollected<ScopedCSSName>(
+        AtomicString(string_value->Value()), scoped_value.GetTreeScope()));
   }
   const auto& scroll_value = To<cssvalue::CSSScrollValue>(value);
   const auto* axis_value = DynamicTo<CSSIdentifierValue>(scroll_value.Axis());
diff --git a/third_party/blink/renderer/core/css/resolver/css_to_style_map.h b/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
index 7d2e551a..2fdc104 100644
--- a/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
+++ b/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
@@ -39,6 +39,7 @@
 class StyleResolverState;
 class NinePieceImage;
 class BorderImageLengthBox;
+class ScopedCSSValue;
 
 class CSSToStyleMap {
   STATIC_ONLY(CSSToStyleMap);
@@ -74,7 +75,7 @@
   static Timing::FillMode MapAnimationFillMode(const CSSValue&);
   static double MapAnimationIterationCount(const CSSValue&);
   static AtomicString MapAnimationName(const CSSValue&);
-  static StyleTimeline MapAnimationTimeline(const CSSValue&);
+  static StyleTimeline MapAnimationTimeline(const ScopedCSSValue&);
   static EAnimPlayState MapAnimationPlayState(const CSSValue&);
   static CSSTransitionData::TransitionProperty MapAnimationProperty(
       const CSSValue&);
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
index 4879d76..80f0446 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -2488,20 +2488,20 @@
   return flags;
 }
 
-Vector<AtomicString> StyleBuilderConverter::ConvertContainerName(
+ScopedCSSNameList* StyleBuilderConverter::ConvertContainerName(
     StyleResolverState& state,
-    const CSSValue& value) {
-  Vector<AtomicString> names;
-
+    const ScopedCSSValue& scoped_value) {
+  const CSSValue& value = scoped_value.GetCSSValue();
   if (auto* ident = DynamicTo<CSSIdentifierValue>(value)) {
     DCHECK_EQ(To<CSSIdentifierValue>(value).GetValueID(), CSSValueID::kNone);
-    return names;
+    return nullptr;
   }
-
-  for (const auto& item : To<CSSValueList>(value))
-    names.push_back(To<CSSCustomIdentValue>(item.Get())->Value());
-
-  return names;
+  HeapVector<Member<const ScopedCSSName>> names;
+  for (const Member<const CSSValue>& item : To<CSSValueList>(value)) {
+    names.push_back(ConvertNoneOrCustomIdent(
+        state, ScopedCSSValue(*item, scoped_value.GetTreeScope())));
+  }
+  return MakeGarbageCollected<ScopedCSSNameList>(std::move(names));
 }
 
 absl::optional<StyleIntrinsicLength>
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.h b/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
index d8ebcce..c5ec8ba3 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
@@ -320,8 +320,8 @@
   static ScrollbarGutter ConvertScrollbarGutter(StyleResolverState& state,
                                                 const CSSValue& value);
 
-  static Vector<AtomicString> ConvertContainerName(StyleResolverState&,
-                                                   const CSSValue&);
+  static ScopedCSSNameList* ConvertContainerName(StyleResolverState&,
+                                                 const ScopedCSSValue&);
 
   static absl::optional<StyleIntrinsicLength> ConvertIntrinsicDimension(
       const StyleResolverState&,
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade.cc b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
index a0838c65..354fab1 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
@@ -589,14 +589,15 @@
     CascadeResolver& resolver) {
   DCHECK(!property.IsSurrogate());
 
+  CSSInterpolationTypesMap map(state_.GetDocument().GetPropertyRegistry(),
+                               state_.GetDocument());
+  CSSInterpolationEnvironment environment(map, state_, this, &resolver);
+
   const Interpolation& interpolation = *interpolations.front();
   if (IsA<InvalidatableInterpolation>(interpolation)) {
-    CSSInterpolationTypesMap map(state_.GetDocument().GetPropertyRegistry(),
-                                 state_.GetDocument());
-    CSSInterpolationEnvironment environment(map, state_, this, &resolver);
     InvalidatableInterpolation::ApplyStack(interpolations, environment);
   } else {
-    To<TransitionInterpolation>(interpolation).Apply(state_);
+    To<TransitionInterpolation>(interpolation).Apply(environment);
   }
 
   // Applying a color property interpolation will also unconditionally apply
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index a785155a..7ca76566 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -194,7 +194,7 @@
 }
 
 bool HasTimelines(const StyleResolverState& state) {
-  if (!state.StyleBuilder().ScrollTimelineName().empty())
+  if (state.StyleBuilder().ScrollTimelineName())
     return true;
   if (state.StyleBuilder().ViewTimelineName())
     return true;
diff --git a/third_party/blink/renderer/core/css/selector_checker.cc b/third_party/blink/renderer/core/css/selector_checker.cc
index b9f0139..f343f06 100644
--- a/third_party/blink/renderer/core/css/selector_checker.cc
+++ b/third_party/blink/renderer/core/css/selector_checker.cc
@@ -223,7 +223,8 @@
   }
   if (MatchSelector(context, result) != kSelectorMatches)
     return false;
-  if (RuntimeEnabledFeatures::CSSScopeEnabled() &&
+  if (context.style_scope != nullptr &&
+      RuntimeEnabledFeatures::CSSScopeEnabled() &&
       !CheckInStyleScope(context, result)) {
     return false;
   }
@@ -2139,10 +2140,6 @@
 
 bool SelectorChecker::CheckInStyleScope(const SelectorCheckingContext& context,
                                         MatchResult& result) const {
-  const StyleScope* style_scope = context.style_scope;
-  if (!style_scope)
-    return true;
-
   SelectorCheckingContext local_context(context);
 
   // TODO(crbug.com/1280240): We can probably skip this if the main selector
diff --git a/third_party/blink/renderer/core/css/style_rule.cc b/third_party/blink/renderer/core/css/style_rule.cc
index be83c5b..455188b 100644
--- a/third_party/blink/renderer/core/css/style_rule.cc
+++ b/third_party/blink/renderer/core/css/style_rule.cc
@@ -48,6 +48,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_supports_parser.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
 #include "third_party/blink/renderer/core/css/style_rule_counter_style.h"
+#include "third_party/blink/renderer/core/css/style_rule_font_feature_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_font_palette_values.h"
 #include "third_party/blink/renderer/core/css/style_rule_import.h"
 #include "third_party/blink/renderer/core/css/style_rule_keyframe.h"
@@ -93,6 +94,12 @@
     case kFontPaletteValues:
       To<StyleRuleFontPaletteValues>(this)->TraceAfterDispatch(visitor);
       return;
+    case kFontFeatureValues:
+      To<StyleRuleFontFeatureValues>(this)->TraceAfterDispatch(visitor);
+      return;
+    case kFontFeature:
+      To<StyleRuleFontFeature>(this)->TraceAfterDispatch(visitor);
+      return;
     case kMedia:
       To<StyleRuleMedia>(this)->TraceAfterDispatch(visitor);
       return;
@@ -156,6 +163,12 @@
     case kFontPaletteValues:
       To<StyleRuleFontPaletteValues>(this)->~StyleRuleFontPaletteValues();
       return;
+    case kFontFeatureValues:
+      To<StyleRuleFontFeatureValues>(this)->~StyleRuleFontFeatureValues();
+      return;
+    case kFontFeature:
+      To<StyleRuleFontFeature>(this)->~StyleRuleFontFeature();
+      return;
     case kMedia:
       To<StyleRuleMedia>(this)->~StyleRuleMedia();
       return;
@@ -211,6 +224,10 @@
       return To<StyleRuleFontFace>(this)->Copy();
     case kFontPaletteValues:
       return To<StyleRuleFontPaletteValues>(this)->Copy();
+    case kFontFeatureValues:
+      return To<StyleRuleFontFeatureValues>(this)->Copy();
+    case kFontFeature:
+      return To<StyleRuleFontFeature>(this)->Copy();
     case kMedia:
       return To<StyleRuleMedia>(this)->Copy();
     case kScope:
@@ -317,6 +334,10 @@
       rule = MakeGarbageCollected<CSSPositionFallbackRule>(
           To<StyleRulePositionFallback>(self), parent_sheet);
       break;
+    case kFontFeature:
+    case kFontFeatureValues:
+      // TODO(drott): CSSOM implementation follows.
+      return nullptr;
     case kTry:
     case kKeyframe:
     case kCharset:
@@ -450,6 +471,8 @@
     case kProperty:
     case kFontFace:
     case kFontPaletteValues:
+    case kFontFeatureValues:
+    case kFontFeature:
     case kImport:
     case kKeyframes:
     case kLayerStatement:
diff --git a/third_party/blink/renderer/core/css/style_rule.h b/third_party/blink/renderer/core/css/style_rule.h
index 3de78e1..80fc2d59 100644
--- a/third_party/blink/renderer/core/css/style_rule.h
+++ b/third_party/blink/renderer/core/css/style_rule.h
@@ -52,6 +52,8 @@
     kMedia,
     kFontFace,
     kFontPaletteValues,
+    kFontFeatureValues,
+    kFontFeature,
     kPage,
     kProperty,
     kKeyframes,
@@ -82,6 +84,10 @@
   bool IsFontPaletteValuesRule() const {
     return GetType() == kFontPaletteValues;
   }
+  bool IsFontFeatureValuesRule() const {
+    return GetType() == kFontFeatureValues;
+  }
+  bool IsFontFeatureRule() const { return GetType() == kFontFeature; }
   bool IsKeyframesRule() const { return GetType() == kKeyframes; }
   bool IsKeyframeRule() const { return GetType() == kKeyframe; }
   bool IsLayerBlockRule() const { return GetType() == kLayerBlock; }
diff --git a/third_party/blink/renderer/core/css/style_rule_font_feature_values.cc b/third_party/blink/renderer/core/css/style_rule_font_feature_values.cc
new file mode 100644
index 0000000..491d546f
--- /dev/null
+++ b/third_party/blink/renderer/core/css/style_rule_font_feature_values.cc
@@ -0,0 +1,108 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/css/style_rule_font_feature_values.h"
+#include "third_party/blink/renderer/platform/wtf/assertions.h"
+#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
+
+namespace blink {
+
+StyleRuleFontFeature::StyleRuleFontFeature(
+    StyleRuleFontFeature::FeatureType type)
+    : StyleRuleBase(kFontFeature), type_(type) {}
+
+StyleRuleFontFeature::StyleRuleFontFeature(const StyleRuleFontFeature&) =
+    default;
+StyleRuleFontFeature::~StyleRuleFontFeature() = default;
+
+void StyleRuleFontFeature::TraceAfterDispatch(blink::Visitor* visitor) const {
+  StyleRuleBase::TraceAfterDispatch(visitor);
+}
+
+void StyleRuleFontFeature::UpdateAlias(AtomicString alias,
+                                       const Vector<uint32_t>& features) {
+  feature_aliases_.Set(alias, features);
+}
+
+void StyleRuleFontFeature::OverrideAliasesIn(FontFeatureAliases& destination) {
+  for (const auto& hash_entry : feature_aliases_) {
+    destination.Set(hash_entry.key, hash_entry.value);
+  }
+}
+
+StyleRuleFontFeatureValues::StyleRuleFontFeatureValues(
+    Vector<AtomicString> families,
+    FontFeatureAliases stylistic,
+    FontFeatureAliases styleset,
+    FontFeatureAliases character_variant,
+    FontFeatureAliases swash,
+    FontFeatureAliases ornaments,
+    FontFeatureAliases annotation)
+    : StyleRuleBase(kFontFeatureValues),
+      families_(std::move(families)),
+      stylistic_(stylistic),
+      styleset_(styleset),
+      character_variant_(character_variant),
+      swash_(swash),
+      ornaments_(ornaments),
+      annotation_(annotation) {}
+
+StyleRuleFontFeatureValues::StyleRuleFontFeatureValues(
+    const StyleRuleFontFeatureValues&) = default;
+
+StyleRuleFontFeatureValues::~StyleRuleFontFeatureValues() = default;
+
+String StyleRuleFontFeatureValues::FamilyAsString() const {
+  StringBuilder families;
+  for (wtf_size_t i = 0; i < families_.size(); ++i) {
+    families.Append(families_[i]);
+    if (i < families_.size() - 1)
+      families.Append(", ");
+  }
+  return families.ReleaseString();
+}
+
+void StyleRuleFontFeatureValues::TraceAfterDispatch(
+    blink::Visitor* visitor) const {
+  StyleRuleBase::TraceAfterDispatch(visitor);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveStylistic(
+    AtomicString alias) {
+  return ResolveInternal(stylistic_, alias);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveStyleset(
+    AtomicString alias) {
+  return ResolveInternal(styleset_, alias);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveCharacterVariant(
+    AtomicString alias) {
+  return ResolveInternal(character_variant_, alias);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveSwash(AtomicString alias) {
+  return ResolveInternal(swash_, alias);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveOrnaments(
+    AtomicString alias) {
+  return ResolveInternal(ornaments_, alias);
+}
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveAnnotation(
+    AtomicString alias) {
+  return ResolveInternal(annotation_, alias);
+}
+
+Vector<uint32_t> StyleRuleFontFeatureValues::ResolveInternal(
+    const FontFeatureAliases& aliases,
+    AtomicString alias) {
+  auto find_result = aliases.find(alias);
+  if (find_result == aliases.end())
+    return {};
+  return find_result->value;
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/css/style_rule_font_feature_values.h b/third_party/blink/renderer/core/css/style_rule_font_feature_values.h
new file mode 100644
index 0000000..848dd7b
--- /dev/null
+++ b/third_party/blink/renderer/core/css/style_rule_font_feature_values.h
@@ -0,0 +1,109 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RULE_FONT_FEATURE_VALUES_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RULE_FONT_FEATURE_VALUES_H_
+
+#include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/core/css/style_rule.h"
+
+namespace blink {
+
+using FontFeatureAliases = HashMap<AtomicString, Vector<uint32_t>>;
+
+class CORE_EXPORT StyleRuleFontFeature : public StyleRuleBase {
+ public:
+  enum class FeatureType {
+    kStylistic,
+    kStyleset,
+    kCharacterVariant,
+    kSwash,
+    kOrnaments,
+    kAnnotation
+  };
+
+  explicit StyleRuleFontFeature(FeatureType);
+  StyleRuleFontFeature(const StyleRuleFontFeature&);
+  ~StyleRuleFontFeature();
+
+  void UpdateAlias(AtomicString alias, const Vector<uint32_t>& features);
+
+  void OverrideAliasesIn(FontFeatureAliases& destination);
+
+  FeatureType GetFeatureType() { return type_; }
+
+  void TraceAfterDispatch(blink::Visitor*) const;
+
+ private:
+  FeatureType type_;
+  FontFeatureAliases feature_aliases_;
+};
+
+template <>
+struct DowncastTraits<StyleRuleFontFeature> {
+  static bool AllowFrom(const StyleRuleBase& rule) {
+    return rule.IsFontFeatureRule();
+  }
+};
+
+class CORE_EXPORT StyleRuleFontFeatureValues : public StyleRuleBase {
+ public:
+  StyleRuleFontFeatureValues(Vector<AtomicString> families,
+                             FontFeatureAliases stylistic,
+                             FontFeatureAliases styleset,
+                             FontFeatureAliases character_variant,
+                             FontFeatureAliases swash,
+                             FontFeatureAliases ornaments,
+                             FontFeatureAliases annotation);
+  StyleRuleFontFeatureValues(const StyleRuleFontFeatureValues&);
+  ~StyleRuleFontFeatureValues();
+
+  const Vector<AtomicString>& GetFamilies() const { return families_; }
+  String FamilyAsString() const;
+
+  StyleRuleFontFeatureValues* Copy() const {
+    return MakeGarbageCollected<StyleRuleFontFeatureValues>(*this);
+  }
+
+  Vector<uint32_t> ResolveStylistic(AtomicString);
+  Vector<uint32_t> ResolveStyleset(AtomicString);
+  Vector<uint32_t> ResolveCharacterVariant(AtomicString);
+  Vector<uint32_t> ResolveSwash(AtomicString);
+  Vector<uint32_t> ResolveOrnaments(AtomicString);
+  Vector<uint32_t> ResolveAnnotation(AtomicString);
+
+  // Accessors needed for cssom implementation.
+  FontFeatureAliases* GetStylistic() { return &stylistic_; }
+  FontFeatureAliases* GetStyleset() { return &styleset_; }
+  FontFeatureAliases* GetCharacterVariant() { return &character_variant_; }
+  FontFeatureAliases* GetSwash() { return &swash_; }
+  FontFeatureAliases* GetOrnaments() { return &ornaments_; }
+  FontFeatureAliases* GetAnnotation() { return &annotation_; }
+
+  void TraceAfterDispatch(blink::Visitor*) const;
+
+ private:
+  Vector<uint32_t> ResolveInternal(const FontFeatureAliases&, AtomicString);
+  // TODO(https://crbug.com/716567): Only styleset and character variant take
+  // two values for each alias, the others take 1 value. Consider reducing
+  // storage here.
+  Vector<AtomicString> families_;
+  FontFeatureAliases stylistic_;
+  FontFeatureAliases styleset_;
+  FontFeatureAliases character_variant_;
+  FontFeatureAliases swash_;
+  FontFeatureAliases ornaments_;
+  FontFeatureAliases annotation_;
+};
+
+template <>
+struct DowncastTraits<StyleRuleFontFeatureValues> {
+  static bool AllowFrom(const StyleRuleBase& rule) {
+    return rule.IsFontFeatureValuesRule();
+  }
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RULE_FONT_FEATURE_VALUES_H_
diff --git a/third_party/blink/renderer/core/css/style_sheet_contents.cc b/third_party/blink/renderer/core/css/style_sheet_contents.cc
index e54fa27..0b8e182 100644
--- a/third_party/blink/renderer/core/css/style_sheet_contents.cc
+++ b/third_party/blink/renderer/core/css/style_sheet_contents.cc
@@ -597,6 +597,8 @@
       case StyleRuleBase::kLayerStatement:
       case StyleRuleBase::kSupports:
       case StyleRuleBase::kFontPaletteValues:
+      case StyleRuleBase::kFontFeatureValues:
+      case StyleRuleBase::kFontFeature:
       case StyleRuleBase::kPositionFallback:
       case StyleRuleBase::kTry:
         break;
diff --git a/third_party/blink/renderer/core/frame/frame_serializer.cc b/third_party/blink/renderer/core/frame/frame_serializer.cc
index e515724..143fca9 100644
--- a/third_party/blink/renderer/core/frame/frame_serializer.cc
+++ b/third_party/blink/renderer/core/frame/frame_serializer.cc
@@ -456,6 +456,8 @@
     // Rules in which no external resources can be referenced
     case CSSRule::kCharsetRule:
     case CSSRule::kFontPaletteValuesRule:
+    case CSSRule::kFontFeatureRule:
+    case CSSRule::kFontFeatureValuesRule:
     case CSSRule::kPageRule:
     case CSSRule::kPropertyRule:
     case CSSRule::kKeyframesRule:
diff --git a/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc b/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
index 6a8526a..903d993 100644
--- a/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
@@ -614,6 +614,7 @@
       case StyleRule::kPage:
       case StyleRule::kFontFace:
       case StyleRule::kKeyframe:
+      case StyleRule::kFontFeature:
         result->push_back(data);
         break;
       case StyleRule::kMedia:
@@ -622,6 +623,7 @@
       case StyleRule::kKeyframes:
       case StyleRule::kContainer:
       case StyleRule::kLayerBlock:
+      case StyleRule::kFontFeatureValues:
         result->push_back(data);
         FlattenSourceData(data->child_rules, result);
         break;
@@ -674,6 +676,7 @@
       case CSSRule::kFontFaceRule:
       case CSSRule::kViewportRule:
       case CSSRule::kKeyframeRule:
+      case CSSRule::kFontFeatureRule:
         result->push_back(rule);
         break;
       case CSSRule::kMediaRule:
@@ -682,6 +685,7 @@
       case CSSRule::kKeyframesRule:
       case CSSRule::kContainerRule:
       case CSSRule::kLayerBlockRule:
+      case CSSRule::kFontFeatureValuesRule:
         result->push_back(rule);
         CollectFlatRules(AsCSSRuleList(rule), result);
         break;
@@ -1065,11 +1069,16 @@
     auto result =
         std::make_unique<protocol::Array<protocol::CSS::CSSProperty>>();
     for (auto longhand_property : longhand_properties) {
+      String value = longhand_property.Value()->CssText();
       std::unique_ptr<protocol::CSS::CSSProperty> longhand =
           protocol::CSS::CSSProperty::create()
               .setName(longhand_property.Name().ToAtomicString())
-              .setValue(longhand_property.Value()->CssText())
+              .setValue(value)
               .build();
+      if (property_entry.important) {
+        longhand->setValue(value + " !important");
+        longhand->setImportant(true);
+      }
       result->emplace_back(std::move(longhand));
     }
     return result;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc b/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
index ac54f88..18804b3 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
@@ -253,6 +253,16 @@
       self_writing_direction, is_y_axis);
   LayoutUnit value;
   switch (anchor_value) {
+    case AnchorValue::kCenter: {
+      const LayoutUnit start = is_y_axis
+                                   ? anchor.Y() - offset_to_padding_box.top
+                                   : anchor.X() - offset_to_padding_box.left;
+      const LayoutUnit end = is_y_axis
+                                 ? anchor.Bottom() - offset_to_padding_box.top
+                                 : anchor.Right() - offset_to_padding_box.left;
+      value = start + LayoutUnit::FromFloatRound((end - start) * 0.5);
+      break;
+    }
     case AnchorValue::kLeft:
       if (is_y_axis)
         return absl::nullopt;  // Wrong axis.
@@ -307,10 +317,6 @@
       // physical values in `PhysicalAnchorValueFromLogical`.
       NOTREACHED();
       return absl::nullopt;
-    case AnchorValue::kCenter:
-      // TODO(crbug.com/1382524): Not implemented yet.
-      NOTREACHED();
-      return absl::nullopt;
   }
 
   // The |value| is for the "start" side of insets. For the "end" side of
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources.cc b/third_party/blink/renderer/core/layout/svg/svg_resources.cc
index f4cba9a..34cf0f0 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources.cc
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources.cc
@@ -184,6 +184,7 @@
   FilterData(FilterEffect* last_effect, SVGFilterGraphNodeMap* node_map)
       : last_effect_(last_effect), node_map_(node_map) {}
 
+  bool HasEffects() const { return last_effect_; }
   sk_sp<PaintFilter> BuildPaintFilter() {
     return paint_filter_builder::Build(last_effect_, kInterpolationSpaceSRGB);
   }
@@ -307,7 +308,7 @@
   auto* node_map = MakeGarbageCollected<SVGFilterGraphNodeMap>();
   Filter* filter =
       builder.BuildReferenceFilter(reference_filter, nullptr, node_map);
-  if (!filter || !filter->LastEffect())
+  if (!filter)
     return nullptr;
   paint_filter_builder::PopulateSourceGraphicImageFilters(
       filter->GetSourceGraphic(), kInterpolationSpaceSRGB);
@@ -338,11 +339,15 @@
     }
     operations.Clear();
     if (filter_data_) {
-      operations.AppendReferenceFilter(filter_data_->BuildPaintFilter());
-    } else {
-      // Filter construction failed. Create a filter chain that yields
-      // transparent black.
-      operations.AppendOpacityFilter(0);
+      // If the referenced filter exists but does not contain any primitives,
+      // then the rendering of the element should be disabled.
+      if (filter_data_->HasEffects()) {
+        // BuildPaintFilter() can return null which means pass-through.
+        operations.AppendReferenceFilter(filter_data_->BuildPaintFilter());
+      } else {
+        // Create a filter chain that yields transparent black.
+        operations.AppendOpacityFilter(0);
+      }
     }
   } else {
     // Drop any existing filter data since the filter is no longer
diff --git a/third_party/blink/renderer/core/paint/filter_effect_builder.cc b/third_party/blink/renderer/core/paint/filter_effect_builder.cc
index faf8bd7..0f95f394 100644
--- a/third_party/blink/renderer/core/paint/filter_effect_builder.cc
+++ b/third_party/blink/renderer/core/paint/filter_effect_builder.cc
@@ -504,16 +504,11 @@
     return nullptr;
   if (auto* resource_container = resource->ResourceContainerNoCycleCheck())
     resource_container->ClearInvalidationMask();
+
   gfx::RectF filter_region =
       SVGLengthContext::ResolveRectangle<SVGFilterElement>(
           filter_element, filter_element->filterUnits()->CurrentEnumValue(),
           reference_box_);
-  // TODO(fs): We rely on the presence of a node map here to opt-in to the
-  // check for an empty filter region. The reason for this is that we lack a
-  // viewport to resolve against for HTML content. This is crbug.com/512453.
-  if (node_map && filter_region.IsEmpty())
-    return nullptr;
-
   bool primitive_bounding_box_mode =
       filter_element->primitiveUnits()->CurrentEnumValue() ==
       SVGUnitTypes::kSvgUnitTypeObjectboundingbox;
@@ -521,6 +516,15 @@
       primitive_bounding_box_mode ? Filter::kBoundingBox : Filter::kUserSpace;
   auto* result = MakeGarbageCollected<Filter>(reference_box_, filter_region,
                                               zoom_, unit_scaling);
+  // TODO(fs): We rely on the presence of a node map here to opt-in to the
+  // check for an empty filter region. The reason for this is that we lack a
+  // viewport to resolve against for HTML content. This is crbug.com/512453.
+  // If the filter has an empty region, then return a Filter without any
+  // primitives since the behavior in these two cases (no primitives, empty
+  // region) should match.
+  if (node_map && filter_region.IsEmpty())
+    return result;
+
   if (!previous_effect)
     previous_effect = result->GetSourceGraphic();
   SVGFilterBuilder builder(previous_effect, node_map, fill_flags_,
diff --git a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc
index fec16cb..51eff54d 100644
--- a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc
+++ b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc
@@ -295,7 +295,8 @@
     const MediaTiming& media_timing,
     const PropertyTreeStateOrAlias& current_paint_chunk_properties,
     const StyleFetchedImage* style_image,
-    const gfx::Rect& image_border) {
+    const gfx::Rect& image_border,
+    const bool is_loaded_after_mouseover) {
   Node* node = object.GetNode();
 
   if (!node)
@@ -321,7 +322,8 @@
           image_border, mapped_visual_rect, intrinsic_size,
           current_paint_chunk_properties, object, media_timing);
       records_manager_.MaybeUpdateLargestIgnoredImage(
-          record_id, rect_size, image_border, mapped_visual_rect);
+          record_id, rect_size, image_border, mapped_visual_rect,
+          is_loaded_after_mouseover);
     }
     return false;
   }
@@ -365,7 +367,8 @@
                    : 0.0;
 
   bool added_pending = records_manager_.RecordFirstPaintAndReturnIsPending(
-      record_id, rect_size, image_border, mapped_visual_rect, bpp);
+      record_id, rect_size, image_border, mapped_visual_rect, bpp,
+      is_loaded_after_mouseover);
   if (!added_pending)
     return false;
 
@@ -524,12 +527,13 @@
     const RecordId& record_id,
     const uint64_t& visual_size,
     const gfx::Rect& frame_visual_rect,
-    const gfx::RectF& root_visual_rect) {
+    const gfx::RectF& root_visual_rect,
+    bool is_loaded_after_mouseover) {
   if (visual_size && (!largest_ignored_image_ ||
                       visual_size > largest_ignored_image_->recorded_size)) {
-    largest_ignored_image_ =
-        CreateImageRecord(*record_id.first, record_id.second, visual_size,
-                          frame_visual_rect, root_visual_rect);
+    largest_ignored_image_ = CreateImageRecord(
+        *record_id.first, record_id.second, visual_size, frame_visual_rect,
+        root_visual_rect, is_loaded_after_mouseover);
     largest_ignored_image_->load_time = base::TimeTicks::Now();
   }
 }
@@ -539,7 +543,8 @@
     const uint64_t& visual_size,
     const gfx::Rect& frame_visual_rect,
     const gfx::RectF& root_visual_rect,
-    double bpp) {
+    double bpp,
+    bool is_loaded_after_mouseover) {
   // Don't process the image yet if it is invisible, as it may later become
   // visible, and potentially eligible to be an LCP candidate.
   if (visual_size == 0u) {
@@ -557,9 +562,9 @@
     return false;
   }
 
-  std::unique_ptr<ImageRecord> record =
-      CreateImageRecord(*record_id.first, record_id.second, visual_size,
-                        frame_visual_rect, root_visual_rect);
+  std::unique_ptr<ImageRecord> record = CreateImageRecord(
+      *record_id.first, record_id.second, visual_size, frame_visual_rect,
+      root_visual_rect, is_loaded_after_mouseover);
   size_ordered_set_.insert(record->AsWeakPtr());
   pending_images_.insert(record_id, std::move(record));
   return true;
@@ -570,12 +575,14 @@
     const MediaTiming* media_timing,
     const uint64_t& visual_size,
     const gfx::Rect& frame_visual_rect,
-    const gfx::RectF& root_visual_rect) {
+    const gfx::RectF& root_visual_rect,
+    bool is_loaded_after_mouseover) {
   DCHECK_GT(visual_size, 0u);
   Node* node = object.GetNode();
   DOMNodeId node_id = DOMNodeIds::IdForNode(node);
   std::unique_ptr<ImageRecord> record = std::make_unique<ImageRecord>(
-      node_id, media_timing, visual_size, frame_visual_rect, root_visual_rect);
+      node_id, media_timing, visual_size, frame_visual_rect, root_visual_rect,
+      is_loaded_after_mouseover);
   return record;
 }
 
diff --git a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.h b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.h
index 5255000..7715f5f 100644
--- a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.h
+++ b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.h
@@ -39,10 +39,12 @@
               const MediaTiming* new_media_timing,
               uint64_t new_recorded_size,
               const gfx::Rect& frame_visual_rect,
-              const gfx::RectF& root_visual_rect)
+              const gfx::RectF& root_visual_rect,
+              bool is_loaded_after_mouseover_input)
       : node_id(new_node_id),
         media_timing(new_media_timing),
-        recorded_size(new_recorded_size) {
+        recorded_size(new_recorded_size),
+        is_loaded_after_mouseover(is_loaded_after_mouseover_input) {
     static unsigned next_insertion_index_ = 1;
     insertion_index = next_insertion_index_++;
     if (PaintTimingVisualizer::IsTracingEnabled()) {
@@ -83,6 +85,8 @@
   // Images that come from origin-dirty styles should have some limitations on
   // what they report.
   bool origin_clean = true;
+
+  bool is_loaded_after_mouseover = false;
 };
 
 typedef std::pair<const LayoutObject*, const MediaTiming*> RecordId;
@@ -127,7 +131,8 @@
                                           const uint64_t& visual_size,
                                           const gfx::Rect& frame_visual_rect,
                                           const gfx::RectF& root_visual_rect,
-                                          double bpp);
+                                          double bpp,
+                                          bool is_loaded_after_mouseover);
   bool IsRecordedImage(const RecordId& record_id) const {
     return recorded_images_.Contains(record_id);
   }
@@ -159,7 +164,8 @@
   void MaybeUpdateLargestIgnoredImage(const RecordId&,
                                       const uint64_t& visual_size,
                                       const gfx::Rect& frame_visual_rect,
-                                      const gfx::RectF& root_visual_rect);
+                                      const gfx::RectF& root_visual_rect,
+                                      bool is_loaded_after_mouseover);
   void ReportLargestIgnoredImage(unsigned current_frame_index);
 
   void AssignPaintTimeToRegisteredQueuedRecords(
@@ -177,7 +183,8 @@
       const MediaTiming* media_timing,
       const uint64_t& visual_size,
       const gfx::Rect& frame_visual_rect,
-      const gfx::RectF& root_visual_rect);
+      const gfx::RectF& root_visual_rect,
+      bool is_loaded_after_mouseover);
   inline void QueueToMeasurePaintTime(const RecordId& record_id,
                                       base::WeakPtr<ImageRecord>& record,
                                       unsigned current_frame_index) {
@@ -264,7 +271,8 @@
                    const MediaTiming&,
                    const PropertyTreeStateOrAlias& current_paint_properties,
                    const StyleFetchedImage*,
-                   const gfx::Rect& image_border);
+                   const gfx::Rect& image_border,
+                   const bool is_loaded_after_mouseover);
   void NotifyImageFinished(const LayoutObject&, const MediaTiming*);
   void OnPaintFinished();
   void NotifyImageRemoved(const LayoutObject&, const MediaTiming*);
diff --git a/third_party/blink/renderer/core/paint/timing/paint_timing.cc b/third_party/blink/renderer/core/paint/timing/paint_timing.cc
index 7479f61..01cf16a 100644
--- a/third_party/blink/renderer/core/paint/timing/paint_timing.cc
+++ b/third_party/blink/renderer/core/paint/timing/paint_timing.cc
@@ -102,6 +102,12 @@
   return *timing;
 }
 
+// static
+const PaintTiming* PaintTiming::From(const Document& document) {
+  PaintTiming* timing = Supplement<Document>::From<PaintTiming>(document);
+  return timing;
+}
+
 void PaintTiming::MarkFirstPaint() {
   // Test that |first_paint_| is non-zero here, as well as in setFirstPaint, so
   // we avoid invoking monotonicallyIncreasingTime() on every call to
@@ -458,7 +464,7 @@
                                                                      index));
 }
 
-bool PaintTiming::IsLCPMouseoverDispatchedRecently() {
+bool PaintTiming::IsLCPMouseoverDispatchedRecently() const {
   static constexpr base::TimeDelta kRecencyDelta = base::Milliseconds(500);
   return (
       !lcp_mouse_over_dispatch_time_.is_null() &&
diff --git a/third_party/blink/renderer/core/paint/timing/paint_timing.h b/third_party/blink/renderer/core/paint/timing/paint_timing.h
index 2b71349..fa55507 100644
--- a/third_party/blink/renderer/core/paint/timing/paint_timing.h
+++ b/third_party/blink/renderer/core/paint/timing/paint_timing.h
@@ -47,6 +47,7 @@
   virtual ~PaintTiming() = default;
 
   static PaintTiming& From(Document&);
+  static const PaintTiming* From(const Document&);
 
   // Mark*() methods record the time for the given paint event and queue a
   // presentation promise to record the |first_*_presentation_| timestamp. These
@@ -177,7 +178,7 @@
 
   // Indicates whether a mouseover event was recently dispatched over an
   // HTMLImageElement LCP element.
-  bool IsLCPMouseoverDispatchedRecently();
+  bool IsLCPMouseoverDispatchedRecently() const;
   void SetLCPMouseoverDispatched();
 
   void Trace(Visitor*) const override;
diff --git a/third_party/blink/renderer/core/paint/timing/paint_timing_detector.cc b/third_party/blink/renderer/core/paint/timing/paint_timing_detector.cc
index 64c9455..7d693913 100644
--- a/third_party/blink/renderer/core/paint/timing/paint_timing_detector.cc
+++ b/third_party/blink/renderer/core/paint/timing/paint_timing_detector.cc
@@ -161,7 +161,7 @@
 
   return image_paint_timing_detector.RecordImage(
       *object, image.Size(), *cached_image, current_paint_chunk_properties,
-      &style_image, image_border);
+      &style_image, image_border, style_image.IsLoadedAfterMouseover());
 }
 
 // static
@@ -181,9 +181,14 @@
   if (!image_paint_timing_detector.IsRecordingLargestImagePaint())
     return false;
 
+  Node* image_node = object.GetNode();
+  HTMLImageElement* element = DynamicTo<HTMLImageElement>(image_node);
+  bool is_loaded_after_mouseover =
+      element && element->IsChangedShortlyAfterMouseover();
+
   return image_paint_timing_detector.RecordImage(
       object, intrinsic_size, media_timing, current_paint_chunk_properties,
-      nullptr, image_border);
+      nullptr, image_border, is_loaded_after_mouseover);
 }
 
 void PaintTimingDetector::NotifyImageFinished(const LayoutObject& object,
@@ -295,10 +300,7 @@
   lcp_details_.largest_contentful_paint_type_ =
       blink::LargestContentfulPaintType::kNone;
   if (image_record) {
-    Node* image_node = DOMNodeIds::NodeForId(image_record->node_id);
-    HTMLImageElement* element = DynamicTo<HTMLImageElement>(image_node);
-    if (element && !image_node->IsInShadowTree() &&
-        element->IsChangedShortlyAfterMouseover()) {
+    if (image_record->is_loaded_after_mouseover) {
       lcp_details_.largest_contentful_paint_type_ |=
           blink::LargestContentfulPaintType::kAfterMouseover;
     }
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc
index 3af4f1ff..5b8f2367 100644
--- a/third_party/blink/renderer/core/style/computed_style.cc
+++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -279,12 +279,12 @@
 // if they reference a named timeline which appeared/disappeared.
 static bool AffectsScrollAnimations(const ComputedStyle* old_style,
                                     const ComputedStyle* new_style) {
-  if (old_style && !(old_style->ScrollTimelineName().empty() &&
-                     !old_style->ViewTimelineName())) {
+  if (old_style &&
+      (old_style->ScrollTimelineName() || old_style->ViewTimelineName())) {
     return true;
   }
-  if (new_style && !(new_style->ScrollTimelineName().empty() &&
-                     !new_style->ViewTimelineName())) {
+  if (new_style &&
+      (new_style->ScrollTimelineName() || new_style->ViewTimelineName())) {
     return true;
   }
   return false;
diff --git a/third_party/blink/renderer/core/style/style_fetched_image.cc b/third_party/blink/renderer/core/style/style_fetched_image.cc
index 98c1651..8139e82b 100644
--- a/third_party/blink/renderer/core/style/style_fetched_image.cc
+++ b/third_party/blink/renderer/core/style/style_fetched_image.cc
@@ -31,6 +31,7 @@
 #include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h"
 #include "third_party/blink/renderer/core/paint/timing/image_element_timing.h"
+#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/graphics/svg_image.h"
 #include "third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h"
@@ -52,6 +53,10 @@
   is_image_resource_ = true;
   is_lazyload_possibly_deferred_ = is_lazyload_possibly_deferred;
 
+  const PaintTiming* paint_timing = PaintTiming::From(document);
+  is_loaded_after_mouseover_ =
+      paint_timing && paint_timing->IsLCPMouseoverDispatchedRecently();
+
   image_ = image;
   image_->AddObserver(this);
   // ResourceFetcher is not determined from StyleFetchedImage and it is
diff --git a/third_party/blink/renderer/core/style/style_fetched_image.h b/third_party/blink/renderer/core/style/style_fetched_image.h
index 56911e2..cba07475 100644
--- a/third_party/blink/renderer/core/style/style_fetched_image.h
+++ b/third_party/blink/renderer/core/style/style_fetched_image.h
@@ -85,6 +85,8 @@
 
   bool IsOriginClean() const { return origin_clean_; }
 
+  bool IsLoadedAfterMouseover() const { return is_loaded_after_mouseover_; }
+
  private:
   bool IsEqual(const StyleImage&) const override;
   void Prefinalize();
@@ -100,6 +102,12 @@
 
   // Whether this was created by an ad-related CSSParserContext.
   const bool is_ad_related_;
+
+  // This indicates that the style image was loaded after a recent mouseover
+  // event. This is used for LCP heuristics to ignore zoom widgets as LCP
+  // candidates. StyleFetchedImage is the best place to save this state, as it
+  // relates to the reason the image was fetched.
+  bool is_loaded_after_mouseover_ = false;
 };
 
 template <>
diff --git a/third_party/blink/renderer/core/style/style_timeline.h b/third_party/blink/renderer/core/style/style_timeline.h
index 80e7adfd..b6ae8b4c 100644
--- a/third_party/blink/renderer/core/style/style_timeline.h
+++ b/third_party/blink/renderer/core/style/style_timeline.h
@@ -6,10 +6,13 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_STYLE_TIMELINE_H_
 
 #include "base/check_op.h"
+#include "base/memory/values_equivalent.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
+#include "third_party/blink/renderer/core/style/scoped_css_name.h"
+#include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
@@ -46,10 +49,13 @@
   };
 
   explicit StyleTimeline(CSSValueID keyword) : data_(keyword) {}
-  explicit StyleTimeline(const AtomicString& name) : data_(name) {}
+  explicit StyleTimeline(const ScopedCSSName* name) : data_(name) {}
   explicit StyleTimeline(const ScrollData& scroll_data) : data_(scroll_data) {}
 
   bool operator==(const StyleTimeline& other) const {
+    if (IsName() && other.IsName()) {
+      return base::ValuesEquivalent(&GetName(), &other.GetName());
+    }
     return data_ == other.data_;
   }
   bool operator!=(const StyleTimeline& other) const {
@@ -57,15 +63,19 @@
   }
 
   bool IsKeyword() const { return absl::holds_alternative<CSSValueID>(data_); }
-  bool IsName() const { return absl::holds_alternative<AtomicString>(data_); }
+  bool IsName() const {
+    return absl::holds_alternative<Persistent<const ScopedCSSName>>(data_);
+  }
   bool IsScroll() const { return absl::holds_alternative<ScrollData>(data_); }
 
   const CSSValueID& GetKeyword() const { return absl::get<CSSValueID>(data_); }
-  const AtomicString& GetName() const { return absl::get<AtomicString>(data_); }
+  const ScopedCSSName& GetName() const {
+    return *absl::get<Persistent<const ScopedCSSName>>(data_);
+  }
   const ScrollData& GetScroll() const { return absl::get<ScrollData>(data_); }
 
  private:
-  absl::variant<CSSValueID, AtomicString, ScrollData> data_;
+  absl::variant<CSSValueID, Persistent<const ScopedCSSName>, ScrollData> data_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
index bc7188a..916b9e9 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -4484,8 +4484,16 @@
 Element* AXNodeObject::ActionElement() const {
   const AXObject* current = this;
 
-  if (!current->GetElement())
-    return nullptr;  // Do not expose action element for text or document.
+  if (blink::IsA<blink::Document>(current->GetNode()))
+    return nullptr;  // Do not expose action element for document.
+
+  // In general, we look an action element up only for AXObjects that have a
+  // backing Element. We make an exception for text nodes and pseudo elements
+  // because we also want these to expose a default action when any of their
+  // ancestors is clickable. We have found Windows ATs relying on this behavior
+  // (see https://crbug.com/1382034).
+  DCHECK(current->GetElement() || current->IsTextObject() ||
+         current->ShouldUseLayoutObjectTraversalForChildren());
 
   while (current) {
     // Handles clicks or is a textfield and is not a disabled form control.
diff --git a/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.cc
index 5bbcd80..d371bbd 100644
--- a/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.cc
@@ -82,8 +82,10 @@
   DestroyExistingOpusEncoder();
 }
 
-double AudioTrackOpusEncoder::ProvideInput(media::AudioBus* audio_bus,
-                                           uint32_t frames_delayed) {
+double AudioTrackOpusEncoder::ProvideInput(
+    media::AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const media::AudioGlitchInfo& glitch_info) {
   fifo_->Consume(audio_bus, 0, audio_bus->frames());
   return 1.0;
 }
diff --git a/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.h b/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.h
index 12d1c05..5871b06 100644
--- a/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.h
+++ b/third_party/blink/renderer/modules/mediarecorder/audio_track_opus_encoder.h
@@ -43,7 +43,8 @@
 
   // media::AudioConverted::InputCallback implementation.
   double ProvideInput(media::AudioBus* audio_bus,
-                      uint32_t frames_delayed) override;
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info) override;
 
   // Target bitrate for Opus. If 0, Opus provide automatic bitrate is used.
   const uint32_t bits_per_second_;
diff --git a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc
index 4c545d7e..509029d 100644
--- a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc
+++ b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc
@@ -153,9 +153,10 @@
 // AudioConverter which in turn is called by the above ProvideInput() function.
 // Thus thread safety analysis is disabled here and |lock_| acquire manually
 // asserted.
-double WebAudioMediaStreamAudioSink::ProvideInput(media::AudioBus* audio_bus,
-                                                  uint32_t frames_delayed)
-    NO_THREAD_SAFETY_ANALYSIS {
+double WebAudioMediaStreamAudioSink::ProvideInput(
+    media::AudioBus* audio_bus,
+    uint32_t frames_delayed,
+    const media::AudioGlitchInfo& glitch_info) NO_THREAD_SAFETY_ANALYSIS {
   TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("mediastream"),
                "WebAudioMediaStreamAudioSink::ProvideInput 2");
 
diff --git a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h
index 8c1b103a..e1d3ff3 100644
--- a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h
+++ b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h
@@ -81,7 +81,8 @@
   // This function is triggered by the above ProvideInput() on the WebAudio
   // audio thread, so it has be called under the protection of |lock_|.
   double ProvideInput(media::AudioBus* audio_bus,
-                      uint32_t frames_delayed) override;
+                      uint32_t frames_delayed,
+                      const media::AudioGlitchInfo& glitch_info) override;
 
   std::unique_ptr<media::AudioConverter> audio_converter_ GUARDED_BY(lock_);
   std::unique_ptr<media::AudioFifo> fifo_ GUARDED_BY(lock_);
diff --git a/third_party/blink/renderer/modules/webgpu/external_texture_helper.cc b/third_party/blink/renderer/modules/webgpu/external_texture_helper.cc
index 7bf50e11..d369d6c3 100644
--- a/third_party/blink/renderer/modules/webgpu/external_texture_helper.cc
+++ b/third_party/blink/renderer/modules/webgpu/external_texture_helper.cc
@@ -211,6 +211,9 @@
             device->GetDawnControlClient(), device->GetHandle(),
             WGPUTextureUsage::WGPUTextureUsage_TextureBinding,
             media_video_frame);
+    if (!mailbox_texture) {
+      return {};
+    }
 
     WGPUTextureViewDescriptor view_desc = {
         .format = WGPUTextureFormat_R8Unorm,
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 5c17be4..c50813e 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -2154,6 +2154,7 @@
     "mojo/string16_mojom_traits_test.cc",
     "p2p/filtering_network_manager_test.cc",
     "p2p/ipc_network_manager_test.cc",
+    "peerconnection/bridge_ice_controller_test.cc",
     "peerconnection/coalesced_tasks_test.cc",
     "peerconnection/linear_histogram_test.cc",
     "peerconnection/low_precision_timer_test.cc",
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.cc
index ad0e15b..c08151c 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.cc
@@ -116,6 +116,12 @@
     WGPUDevice device,
     WGPUTextureUsage usage,
     scoped_refptr<media::VideoFrame> video_frame) {
+  auto context_provider = dawn_control_client->GetContextProviderWeakPtr();
+  if (!context_provider ||
+      context_provider->ContextProvider()->IsContextLost()) {
+    return nullptr;
+  }
+
   auto finished_access_callback = base::BindOnce(
       [](base::WeakPtr<WebGraphicsContext3DProviderWrapper> context_provider,
          media::VideoFrame* frame, const gpu::SyncToken& sync_token) {
@@ -126,8 +132,7 @@
           frame->UpdateReleaseSyncToken(&client);
         }
       },
-      dawn_control_client->GetContextProviderWeakPtr(),
-      base::RetainedRef(video_frame));
+      context_provider, base::RetainedRef(video_frame));
 
   WGPUTextureDescriptor desc = {};
   desc.usage = WGPUTextureUsage_TextureBinding;
diff --git a/third_party/blink/renderer/platform/peerconnection/bridge_ice_controller_test.cc b/third_party/blink/renderer/platform/peerconnection/bridge_ice_controller_test.cc
new file mode 100644
index 0000000..e853491
--- /dev/null
+++ b/third_party/blink/renderer/platform/peerconnection/bridge_ice_controller_test.cc
@@ -0,0 +1,302 @@
+// 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.
+
+#include "third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h"
+
+#include "base/test/task_environment.h"
+
+#include "base/time/time.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#include "third_party/webrtc/p2p/base/mock_ice_agent.h"
+#include "third_party/webrtc/p2p/base/mock_ice_controller.h"
+
+namespace {
+
+namespace cricket {
+// These are opaque types for the purposes of this test, so a forward
+// declaration suffices.
+class Connection;
+class IceConfig;
+}  // namespace cricket
+
+using ::blink::BridgeIceController;
+
+using ::cricket::Connection;
+using ::cricket::IceConfig;
+using ::cricket::IceControllerFactoryArgs;
+using ::cricket::IceControllerInterface;
+using ::cricket::IceMode;
+using ::cricket::IceRecheckEvent;
+using ::cricket::IceSwitchReason;
+using ::cricket::MockIceAgent;
+using ::cricket::MockIceController;
+using ::cricket::MockIceControllerFactory;
+using ::cricket::NominationMode;
+
+using ::testing::_;
+using ::testing::ElementsAreArray;
+using ::testing::IsEmpty;
+using ::testing::NiceMock;
+using ::testing::Ref;
+using ::testing::Return;
+using ::testing::Sequence;
+
+using ::base::test::SingleThreadTaskEnvironment;
+using ::base::test::TaskEnvironment;
+
+using NiceMockIceController = NiceMock<MockIceController>;
+
+static const Connection* kConnection =
+    reinterpret_cast<const Connection*>(0xabcd);
+static const Connection* kConnectionTwo =
+    reinterpret_cast<const Connection*>(0xbcde);
+static const Connection* kConnectionThree =
+    reinterpret_cast<const Connection*>(0xcdef);
+
+static const IceConfig* kIceConfig = reinterpret_cast<const IceConfig*>(0xfefe);
+
+static const std::vector<const Connection*> kEmptyConnsList =
+    std::vector<const Connection*>();
+
+static constexpr base::TimeDelta kTick = base::Milliseconds(1);
+
+TEST(BridgeIceControllerTest, CheckTestWorks) {
+  MockIceAgent agent;
+  EXPECT_CALL(agent, SwitchSelectedConnection(_, _)).Times(0);
+}
+
+TEST(BridgeIceControllerTest, PassthroughIceControllerInterface) {
+  SingleThreadTaskEnvironment env{TaskEnvironment::TimeSource::MOCK_TIME};
+  MockIceAgent agent;
+  std::unique_ptr<MockIceController> will_move =
+      std::make_unique<MockIceController>(IceControllerFactoryArgs{});
+  MockIceController* wrapped = will_move.get();
+  BridgeIceController controller(env.GetMainThreadTaskRunner(), &agent,
+                                 std::move(will_move));
+
+  EXPECT_CALL(*wrapped, SetIceConfig(Ref(*kIceConfig)));
+  controller.SetIceConfig(*kIceConfig);
+
+  EXPECT_CALL(*wrapped,
+              GetUseCandidateAttr(kConnection, NominationMode::AGGRESSIVE,
+                                  IceMode::ICEMODE_LITE))
+      .WillOnce(Return(true));
+  EXPECT_TRUE(controller.GetUseCandidateAttribute(
+      kConnection, NominationMode::AGGRESSIVE, IceMode::ICEMODE_LITE));
+
+  EXPECT_CALL(*wrapped, AddConnection(kConnection));
+  controller.OnConnectionAdded(kConnection);
+
+  EXPECT_CALL(*wrapped, OnConnectionDestroyed(kConnection));
+  controller.OnConnectionDestroyed(kConnection);
+
+  EXPECT_CALL(*wrapped, SetSelectedConnection(kConnection));
+  controller.OnConnectionSwitched(kConnection);
+
+  EXPECT_CALL(*wrapped, MarkConnectionPinged(kConnection));
+  controller.OnConnectionPinged(kConnection);
+
+  EXPECT_CALL(*wrapped, FindNextPingableConnection())
+      .WillOnce(Return(kConnection));
+  EXPECT_EQ(controller.FindNextPingableConnection(), kConnection);
+}
+
+TEST(BridgeIceControllerTest, HandlesImmediateSwitchRequest) {
+  SingleThreadTaskEnvironment env{TaskEnvironment::TimeSource::MOCK_TIME};
+  NiceMock<MockIceAgent> agent;
+  std::unique_ptr<NiceMockIceController> will_move =
+      std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{});
+  NiceMockIceController* wrapped = will_move.get();
+  BridgeIceController controller(env.GetMainThreadTaskRunner(), &agent,
+                                 std::move(will_move));
+
+  IceSwitchReason reason = IceSwitchReason::NOMINATION_ON_CONTROLLED_SIDE;
+  std::vector<const Connection*> conns_to_forget{kConnectionTwo};
+  int recheck_delay_ms = 10;
+  IceControllerInterface::SwitchResult switch_result{
+      kConnection,
+      IceRecheckEvent(IceSwitchReason::ICE_CONTROLLER_RECHECK,
+                      recheck_delay_ms),
+      conns_to_forget};
+
+  // ICE controller should switch to given connection immediately.
+  Sequence check_then_switch;
+  EXPECT_CALL(*wrapped, ShouldSwitchConnection(reason, kConnection))
+      .InSequence(check_then_switch)
+      .WillOnce(Return(switch_result));
+  EXPECT_CALL(agent, SwitchSelectedConnection(kConnection, reason))
+      .InSequence(check_then_switch);
+  EXPECT_CALL(agent, ForgetLearnedStateForConnections(
+                         ElementsAreArray(conns_to_forget)));
+
+  EXPECT_TRUE(controller.OnImmediateSwitchRequest(reason, kConnection));
+
+  // No rechecks before recheck delay.
+  env.FastForwardBy(base::Milliseconds(recheck_delay_ms - 1));
+
+  // ICE controller should recheck for best connection after the recheck
+  // delay.
+  Sequence recheck_sort;
+  EXPECT_CALL(agent, UpdateConnectionStates()).InSequence(recheck_sort);
+  EXPECT_CALL(*wrapped,
+              SortAndSwitchConnection(IceSwitchReason::ICE_CONTROLLER_RECHECK))
+      .InSequence(recheck_sort)
+      .WillOnce(Return(IceControllerInterface::SwitchResult{}));
+  EXPECT_CALL(agent, ForgetLearnedStateForConnections(IsEmpty()));
+
+  env.FastForwardBy(kTick);
+}
+
+TEST(BridgeIceControllerTest, HandlesImmediateSortAndSwitchRequest) {
+  SingleThreadTaskEnvironment env{TaskEnvironment::TimeSource::MOCK_TIME};
+  NiceMock<MockIceAgent> agent;
+  std::unique_ptr<NiceMockIceController> will_move =
+      std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{});
+  NiceMockIceController* wrapped = will_move.get();
+  BridgeIceController controller(env.GetMainThreadTaskRunner(), &agent,
+                                 std::move(will_move));
+
+  IceSwitchReason reason = IceSwitchReason::NEW_CONNECTION_FROM_LOCAL_CANDIDATE;
+  std::vector<const Connection*> conns_to_forget{kConnectionTwo};
+  std::vector<const Connection*> conns_to_prune{kConnectionThree};
+  int recheck_delay_ms = 10;
+  IceControllerInterface::SwitchResult switch_result{
+      kConnection,
+      IceRecheckEvent(IceSwitchReason::ICE_CONTROLLER_RECHECK,
+                      recheck_delay_ms),
+      conns_to_forget};
+
+  Sequence sort_and_switch;
+  EXPECT_CALL(agent, UpdateConnectionStates()).InSequence(sort_and_switch);
+  EXPECT_CALL(*wrapped, SortAndSwitchConnection(reason))
+      .InSequence(sort_and_switch)
+      .WillOnce(Return(switch_result));
+  EXPECT_CALL(agent, SwitchSelectedConnection(kConnection, reason))
+      .InSequence(sort_and_switch);
+  EXPECT_CALL(*wrapped, PruneConnections())
+      .InSequence(sort_and_switch)
+      .WillOnce(Return(conns_to_prune));
+  EXPECT_CALL(agent, PruneConnections(ElementsAreArray(conns_to_prune)))
+      .InSequence(sort_and_switch);
+
+  controller.OnImmediateSortAndSwitchRequest(reason);
+
+  // No rechecks before recheck delay.
+  env.FastForwardBy(base::Milliseconds(recheck_delay_ms - 1));
+
+  // ICE controller should recheck for best connection after the recheck
+  // delay.
+  Sequence recheck_sort;
+  EXPECT_CALL(agent, UpdateConnectionStates()).InSequence(recheck_sort);
+  EXPECT_CALL(*wrapped,
+              SortAndSwitchConnection(IceSwitchReason::ICE_CONTROLLER_RECHECK))
+      .InSequence(recheck_sort)
+      .WillOnce(Return(IceControllerInterface::SwitchResult{}));
+  EXPECT_CALL(*wrapped, PruneConnections())
+      .InSequence(recheck_sort)
+      .WillOnce(Return(kEmptyConnsList));
+  EXPECT_CALL(agent, PruneConnections(IsEmpty())).InSequence(recheck_sort);
+
+  env.FastForwardBy(kTick);
+}
+
+TEST(BridgeIceControllerTest, HandlesSortAndSwitchRequest) {
+  SingleThreadTaskEnvironment env{TaskEnvironment::TimeSource::MOCK_TIME};
+
+  NiceMock<MockIceAgent> agent;
+  std::unique_ptr<NiceMockIceController> will_move =
+      std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{});
+  NiceMockIceController* wrapped = will_move.get();
+  BridgeIceController controller(env.GetMainThreadTaskRunner(), &agent,
+                                 std::move(will_move));
+
+  IceSwitchReason reason = IceSwitchReason::NETWORK_PREFERENCE_CHANGE;
+
+  // No action should occur immediately
+  EXPECT_CALL(agent, UpdateConnectionStates()).Times(0);
+  EXPECT_CALL(*wrapped, SortAndSwitchConnection(_)).Times(0);
+  EXPECT_CALL(agent, SwitchSelectedConnection(_, _)).Times(0);
+
+  controller.OnSortAndSwitchRequest(reason);
+
+  std::vector<const Connection*> conns_to_forget{kConnectionTwo};
+  int recheck_delay_ms = 10;
+  IceControllerInterface::SwitchResult switch_result{
+      kConnection,
+      IceRecheckEvent(IceSwitchReason::ICE_CONTROLLER_RECHECK,
+                      recheck_delay_ms),
+      conns_to_forget};
+
+  // Sort and switch should take place as the subsequent task.
+  Sequence sort_and_switch;
+  EXPECT_CALL(agent, UpdateConnectionStates()).InSequence(sort_and_switch);
+  EXPECT_CALL(*wrapped, SortAndSwitchConnection(reason))
+      .InSequence(sort_and_switch)
+      .WillOnce(Return(switch_result));
+  EXPECT_CALL(agent, SwitchSelectedConnection(kConnection, reason))
+      .InSequence(sort_and_switch);
+
+  // Pick up the first task.
+  env.FastForwardBy(kTick);
+}
+
+TEST(BridgeIceControllerTest, StartPingingAfterSortAndSwitch) {
+  SingleThreadTaskEnvironment env{TaskEnvironment::TimeSource::MOCK_TIME};
+
+  NiceMock<MockIceAgent> agent;
+  std::unique_ptr<NiceMockIceController> will_move =
+      std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{});
+  NiceMockIceController* wrapped = will_move.get();
+  BridgeIceController controller(env.GetMainThreadTaskRunner(), &agent,
+                                 std::move(will_move));
+
+  // Pinging does not start automatically, unless triggered through a sort.
+  EXPECT_CALL(*wrapped, HasPingableConnection()).Times(0);
+  EXPECT_CALL(*wrapped, SelectConnectionToPing(_)).Times(0);
+  EXPECT_CALL(agent, OnStartedPinging()).Times(0);
+
+  controller.OnSortAndSwitchRequest(IceSwitchReason::DATA_RECEIVED);
+
+  // Pinging does not start if no pingable connection.
+  EXPECT_CALL(*wrapped, HasPingableConnection()).WillOnce(Return(false));
+  EXPECT_CALL(*wrapped, SelectConnectionToPing(_)).Times(0);
+  EXPECT_CALL(agent, OnStartedPinging()).Times(0);
+
+  // Pick up the first task.
+  env.FastForwardBy(kTick);
+
+  int recheck_delay_ms = 10;
+  IceControllerInterface::PingResult ping_result(kConnection, recheck_delay_ms);
+
+  // Pinging starts when there is a pingable connection.
+  Sequence start_pinging;
+  EXPECT_CALL(*wrapped, HasPingableConnection())
+      .InSequence(start_pinging)
+      .WillOnce(Return(true));
+  EXPECT_CALL(agent, OnStartedPinging()).InSequence(start_pinging);
+  EXPECT_CALL(agent, GetLastPingSentMs())
+      .InSequence(start_pinging)
+      .WillOnce(Return(123));
+  EXPECT_CALL(*wrapped, SelectConnectionToPing(123))
+      .InSequence(start_pinging)
+      .WillOnce(Return(ping_result));
+  EXPECT_CALL(agent, SendPingRequest(kConnection)).InSequence(start_pinging);
+
+  controller.OnSortAndSwitchRequest(IceSwitchReason::DATA_RECEIVED);
+  env.FastForwardBy(kTick);
+
+  // ICE controller should recheck and ping after the recheck delay.
+  // No ping should be sent if no connection selected to ping.
+  EXPECT_CALL(agent, GetLastPingSentMs()).WillOnce(Return(456));
+  EXPECT_CALL(*wrapped, SelectConnectionToPing(456))
+      .WillOnce(Return(IceControllerInterface::PingResult(
+          /* conn= */ nullptr, recheck_delay_ms)));
+  EXPECT_CALL(agent, SendPingRequest(kConnection)).Times(0);
+
+  env.FastForwardBy(base::Milliseconds(recheck_delay_ms));
+}
+
+}  // unnamed namespace
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 3124eba..970295f 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -366,7 +366,7 @@
       status: "experimental",
       origin_trial_feature_name: "BackForwardCacheNotRestoredReasons",
       base_feature: "BackForwardCacheSendNotRestoredReasons",
-      base_feature_status: "disabled",
+      base_feature_status: "enabled",
       copied_from_base_feature_if: "overridden",
       public: true,
     },
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index 54e463d..4fc3b0b 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -1245,7 +1245,6 @@
 crbug.com/626703 wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https.html [ Timeout ]
 crbug.com/626703 external/wpt/css/css-multicol/relative-child-overflowing-container.html [ Failure ]
 crbug.com/626703 external/wpt/html/user-activation/consumption-crossorigin.sub.tentative.html [ Failure Timeout ]
-crbug.com/626703 external/wpt/dom/events/scrolling/scrollend-event-handler-content-attributes.html [ Timeout ]
 crbug.com/626703 external/wpt/screen-orientation/active-lock.html [ Timeout ]
 crbug.com/626703 external/wpt/css/selectors/media/media-loading-state.html [ Timeout ]
 crbug.com/626703 external/wpt/css/selectors/media/media-playback-state.html [ Timeout ]
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-site-isolation-trials b/third_party/blink/web_tests/FlagExpectations/disable-site-isolation-trials
index 0761869d..9e96f91 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-site-isolation-trials
+++ b/third_party/blink/web_tests/FlagExpectations/disable-site-isolation-trials
@@ -107,7 +107,6 @@
 crbug.com/626703 external/wpt/html/browsers/windows/clear-window-name.https.html [ Timeout ]
 crbug.com/626703 external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html [ Timeout ]
 crbug.com/626703 external/wpt/custom-elements/throw-on-dynamic-markup-insertion-counter-construct-xml-parser.xhtml [ Crash ]
-crbug.com/626703 external/wpt/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions-xml-parser.xhtml [ Crash ]
 crbug.com/626703 external/wpt/service-workers/cache-storage/crashtests/cache-response-clone.https.html [ Timeout ]
 crbug.com/626703 external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe.html [ Timeout ]
 crbug.com/626703 external/wpt/content-security-policy/wasm-unsafe-eval/postMessage-wasm-module.html [ Timeout ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 5a50d91..83671c1b 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -551,9 +551,6 @@
 crbug.com/1295445 virtual/scalefactor200/external/wpt/css/filter-effects/filter-function/filter-function-006.html [ Failure ]
 crbug.com/1295445 virtual/scalefactor200/external/wpt/css/filter-effects/filter-function/filter-function-007.html [ Failure ]
 
-crbug.com/1362524 external/wpt/css/filter-effects/filter-invalid.html [ Failure ]
-crbug.com/1362524 virtual/scalefactor200/external/wpt/css/filter-effects/filter-invalid.html [ Failure ]
-
 # Could be addressed with fuzzy diff.
 crbug.com/910537 external/wpt/svg/painting/marker-006.svg [ Failure ]
 crbug.com/910537 external/wpt/svg/painting/marker-005.svg [ Failure ]
@@ -6016,7 +6013,6 @@
 
 # Temporarily disabled to unblock https://crrev.com/c/2979697
 crbug.com/1222114 http/tests/devtools/console/console-dir.js [ Failure Pass ]
-crbug.com/1222114 http/tests/devtools/console/console-format.js [ Failure Pass ]
 
 crbug.com/1247844 external/wpt/css/css-contain/content-visibility/content-visibility-input-image.html [ Crash Failure Pass Timeout ]
 
@@ -6329,7 +6325,6 @@
 crbug.com/1048761 external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.html?wpt_flags=h2 [ Failure ]
 crbug.com/1048761 external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/1048761 external/wpt/websockets/Create-valid-url-protocol-string.any.html?wpt_flags=h2 [ Failure ]
-crbug.com/1048761 [ Linux ] external/wpt/websockets/Create-valid-url-protocol-string.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/1048761 external/wpt/websockets/Create-valid-url-protocol.any.html?wpt_flags=h2 [ Failure ]
 crbug.com/1048761 [ Win ] external/wpt/websockets/Create-valid-url-protocol.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/1048761 external/wpt/websockets/Create-valid-url.any.html?wpt_flags=h2 [ Failure ]
@@ -8098,11 +8093,6 @@
 crbug.com/1385497 http/tests/inspector-protocol/tracing/page-load-metrics.js [ Failure Pass ]
 crbug.com/1349215 external/wpt/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html [ Skip Timeout ]
 
-# To be removed after cherry picking
-crbug.com/1386017 external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.window.html [ Failure Pass ]
-crbug.com/1386017 external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.html [ Failure Pass ]
-crbug.com/1386017 external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.html [ Failure Pass ]
-
 # Sheriff 2022-11-21
 crbug.com/1380188 external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html [ Failure Pass ]
 crbug.com/1385809 external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html [ Failure Pass Timeout ]
@@ -8153,3 +8143,7 @@
 
 # Temporarily disable test to land devtools-frontend change crrev/c/4057666
 crbug.com/1385379 http/tests/devtools/elements/styles-4/styles-invalid-color-values.js [ Failure Pass ]
+
+# Sheriff 2022-11-29
+crbug.com/1394361 http/tests/inspector-protocol/tracing/interactions.js [ Failure Pass ]
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
index cd093138..52a31b30 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
@@ -1,137 +1,9 @@
 This is a testharness.js-based test.
-Found 116 tests; 10 PASS, 106 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Cannot read properties of null (reading 'cssText')
 PASS basic parse tests - @font-feature-values;
 PASS basic parse tests - @font-feature-values bongo;
 PASS basic parse tests - @font-feature-value {;}
 PASS basic parse tests - @font-features-values {;}
-FAIL basic parse tests - @font-feature-values bongo {  } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { ; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { ,; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { ;, } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { ,;, } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset,; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset abc; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { ;;abc } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc;; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc,: } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc:, } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc:,; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { a,b } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { a;b } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { a:;b: } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { a:,;b: } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { a:1,;b: } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc 1 2 3 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc:, 1 2 3 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc:; 1 2 3 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3a } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3, def: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @blah @styleset { abc: 1 2 3; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @blah } @styleset { abc: 1 2 3; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @blah , @styleset { abc: 1 2 3; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3; } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3 } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3; assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3 assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { ok-1: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @annotation { ok-1: 3; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @stylistic { blah: 3; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { 
-@styleset
-  { blah: 3; super-blah: 4 5;
-  more-blah: 5 6 7;
- } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { 
-@styleset
-  {
- blah:
- 3
-;
- super-blah:
- 4
- 5
-;
-  more-blah:
- 5 6
- 7;
- } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @stylistic { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1 2 3 4; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @character-variant { blah: 1 2; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @swash { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @ornaments { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @annotation { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 0; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 120 124; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @character-variant { blah: 0; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @character-variant { blah: 111; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @character-variant { blah: 111 13; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { styleset { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { stylistic { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { character-variant { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { swash { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { ornaments { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { annotation { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @bongo { blah: 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @bongo { blah: 1 2 3 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @bongo { blah: 1 2 3; burp: 1;;; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: -1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1 -1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1.5 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 15px } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: red } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: (1) } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah:(1) } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah:, 1 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: <1> } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1! } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1,, } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1 1 1 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @stylistic { blah: 1 2 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @character-variant { blah: 1 2 3 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @swash { blah: 1 2 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @ornaments { blah: 1 2 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @annotation { blah: 1 2 } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values "bongo" { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values 'bongo' { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values \62 ongo { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-PASS basic parse tests - @font-feature-values bongo,, super bongo { @styleset { blah: 1; } }
-PASS basic parse tests - @font-feature-values bongo,* { @styleset { blah: 1; } }
-PASS basic parse tests - @font-feature-values bongo, sans-serif { @styleset { blah: 1; } }
-PASS basic parse tests - @font-feature-values serif, sans-serif { @styleset { blah: 1; } }
-FAIL basic parse tests - @font-feature-values 'serif', 'sans-serif' { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo, "super bongo", 'bongo the supreme' { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values 毎日カレーを食べたい! { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values 毎日カレーを食べたい!, 納豆嫌い { @styleset { blah: 1; } } assert_true: unexpected syntax error expected true got false
-PASS basic parse tests - @font-feature-values bongo, "super" bongo, bongo the supreme { @styleset { blah: 1; } }
-PASS basic parse tests - @font-feature-values --bongo { @styleset { blah: 1; } }
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1; blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { \tra-la: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { b\lah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { \62 lah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { \:blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { \;blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { complex\20 blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { complex\ blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { Håkon: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { Åквариум: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { 魅力: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { 123blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { :123blah 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { :123blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { ?123blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { "blah": 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { complex blah: 1; } } assert_true: unexpected syntax error expected true got false
-FAIL basic parse tests - @font-feature-values bongo { @styleset { complex\  blah: 1; } } assert_true: unexpected syntax error expected true got false
+FAIL basic parse tests - @font-feature-values bongo {  } Cannot read properties of null (reading 'type')
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid.html b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid.html
index a5ae5c0..8bb6b1c 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid.html
@@ -31,6 +31,7 @@
 ];
 
 const legacy_stops = "red, blue"
+const legacy_stops_with_hint = "red, 50%, blue"
 const non_legacy_stops = "color(srgb 1 0 0), blue"
 
 function test_gradients_no_specified_interpolation_method(gradientFunction, specifiers, stops)
@@ -58,6 +59,7 @@
 function test_gradient_with_interpolation_method(gradientFunction, colorInterpolationMethod, colorInterpolationMethodResult, specifiers, stops) {
     const colorInterpolationMethodResultForLegacyStops = (colorInterpolationMethodResult == "srgb") ? "" : colorInterpolationMethodResult;
     test_gradients(gradientFunction, colorInterpolationMethod, colorInterpolationMethodResultForLegacyStops, specifiers, legacy_stops)
+    test_gradients(gradientFunction, colorInterpolationMethod, colorInterpolationMethodResultForLegacyStops, specifiers, legacy_stops_with_hint)
 
     const colorInterpolationMethodResultForNonLegacyStops = (colorInterpolationMethodResult == "oklab") ? "" : colorInterpolationMethodResult;
     test_gradients(gradientFunction, colorInterpolationMethod, colorInterpolationMethodResultForNonLegacyStops, specifiers, non_legacy_stops)
@@ -65,6 +67,7 @@
 
 function test_each_interpolation_method(gradientFunction, specifiers) {
     test_gradients_no_specified_interpolation_method(gradientFunction, specifiers, legacy_stops)
+    test_gradients_no_specified_interpolation_method(gradientFunction, specifiers, legacy_stops_with_hint)
     test_gradients_no_specified_interpolation_method(gradientFunction, specifiers, non_legacy_stops)
 
     for (const colorSpace of [ "lab", "oklab", "srgb", "srgb-linear", "xyz", "xyz-d50", "xyz-d65" ]) {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html
index e688ab8a..0533da65 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html
@@ -38,7 +38,7 @@
 <script>
 // Set author-level CSS that matches UA style, but don't use the 'revert' value.
 const elements = document.querySelectorAll('#container > *');
-const fallbackProps = [
+const fallbackProps = new Set([
   'background-color',
   'border-top-color',
   'border-top-style',
@@ -83,17 +83,27 @@
   'border-start-end-radius',
   'border-end-start-radius',
   'border-end-end-radius',
-];
+]);
+
+let mutations = []
 
 // Make sure that any supported property that is not in the above list
 // does not affect the widget type.
 const declarations = getComputedStyle(document.documentElement);
+
 for (const prop of declarations) {
-  if (fallbackProps.includes(prop)) {
+  if (fallbackProps.has(prop)) {
     continue;
   }
   for (const el of elements) {
-    el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop));
+    mutations.push([el, prop, getComputedStyle(el).getPropertyValue(prop)]);
   }
 }
+
+// Batch all setProperty calls together (without calling gCS().getPropertyValue
+// for each mutation) to avoid excessive style recalcs.
+for (let mutation of mutations) {
+  const [el, prop, value] = mutation;
+  el.style.setProperty(prop, value);
+}
 </script>
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
index da4a845..71db14c 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-format-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/console-format-expected.txt
deleted file mode 100644
index 1b41842..0000000
--- a/third_party/blink/web_tests/http/tests/devtools/console/console-format-expected.txt
+++ /dev/null
@@ -1,784 +0,0 @@
-Tests that console logging dumps proper messages.
-
-console-format.js:34 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-console-format.js:35 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-console-format.js:36 Array(10)
-console-format.js:37 Test for zero "0" in formatter
-console-format.js:38 % self-escape1 dummy
-console-format.js:39 %s self-escape2 dummy
-console-format.js:40 %ss self-escape3 dummy
-console-format.js:41 %sdummy%s self-escape4
-console-format.js:42 %%% self-escape5 dummy
-console-format.js:43 %dummy self-escape6
-console-format.js:21 /^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
-console-format.js:22 [/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\…?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i]
-globals[0]
-/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
-console-format.js:21 /foo\\bar\sbaz/i
-console-format.js:22 [/foo\\bar\sbaz/i]
-globals[1]
-/foo\\bar\sbaz/i
-console-format.js:21 test
-console-format.js:22 ['test']
-globals[2]
-'test'
-console-format.js:21 test named "test"
-console-format.js:22 ['test named "test"']
-globals[3]
-'test named "test"'
-console-format.js:21 Error
-console-format.js:22 [Error
-]
-globals[4]
-Error
-console-format.js:21 Error: my error message
-console-format.js:22 [Error: my error message
-]
-globals[5]
-Error: my error message
-console-format.js:21 Error: my multiline
-error message
-console-format.js:22 [Error: my multiline
-error message
-]
-globals[6]
-Error: my multiline
-error message
-console-format.js:21 
-    <p id="p"></p>
-console-format.js:22 [p#p]
-globals[7]
-    <p id="p"></p>
-console-format.js:21 ƒ () { return 1; }
-console-format.js:22 [ƒ]
-globals[8]
-ƒ () { return 1; }
-console-format.js:21 ƒ () {
-          return 2;
-      }
-console-format.js:22 [ƒ]
-globals[9]
-ƒ () {
-          return 2;
-      }
-console-format.js:21 0.12
-console-format.js:22 [0.12]
-globals[10]
-0.12
-console-format.js:21 http://webkit.org/
-console-format.js:22 ['http://webkit.org/']
-globals[11]
-'http://webkit.org/'
-console-format.js:21 null
-console-format.js:22 [null]
-globals[12]
-null
-console-format.js:21 undefined
-console-format.js:22 [undefined]
-globals[13]
-undefined
-console-format.js:21 
-    attr=""
-console-format.js:22 [attr]
-globals[14]
-    attr=""
-console-format.js:21 
-    attr="value"
-console-format.js:22 [attr]
-globals[15]
-    attr="value"
-console-format.js:21 
-    id="x"
-console-format.js:22 [id]
-globals[16]
-    id="x"
-console-format.js:21 {}
-console-format.js:22 [{…}]
-globals[17]
-{}
-console-format.js:21 NaN
-console-format.js:22 [NaN]
-globals[18]
-NaN
-console-format.js:21 Infinity
-console-format.js:22 [Infinity]
-globals[19]
-Infinity
-console-format.js:21 -Infinity
-console-format.js:22 [-Infinity]
-globals[20]
--Infinity
-console-format.js:21 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-console-format.js:22 [Array(10)]
-globals[21]
-(10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-console-format.js:21 {}
-console-format.js:22 [{…}]
-globals[22]
-{}
-console-format.js:21 [ƒ]
-console-format.js:22 [Array(1)]
-globals[23]
-[ƒ]
-console-format.js:21 {bar: 'bar'}
-console-format.js:22 [{…}]
-globals[24]
-{bar: 'bar'}
-console-format.js:21 
-    <svg id="svg-node"></svg>
-console-format.js:22 [svg#svg-node]
-globals[25]
-    <svg id="svg-node"></svg>
-console-format.js:21 {enumerableProp: 4, __underscoreEnumerableProp__: 5, __underscoreNonEnumerableProp: 2, abc: 3, getFoo: ƒ, …}
-console-format.js:22 [{…}]
-globals[26]
-{enumerableProp: 4, __underscoreEnumerableProp__: 5, __underscoreNonEnumerableProp: 2, abc: 3, getFoo: ƒ, …}
-console-format.js:21 -0
-console-format.js:22 [-0]
-globals[27]
--0
-console-format.js:21 {}
-console-format.js:22 [{…}]
-globals[28]
-{}
-console-format.js:21 ƒ Object() { [native code] }
-console-format.js:22 [ƒ]
-globals[29]
-ƒ Object() { [native code] }
-console-format.js:21 {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
-console-format.js:22 [{…}]
-globals[30]
-{constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
-console-format.js:21 ƒ ( /**/ foo/**/, /*/**/bar,
-      /**/baz) {}
-console-format.js:22 [ƒ]
-globals[31]
-ƒ ( /**/ foo/**/, /*/**/bar,
-      /**/baz) {}
-console-format.js:21 Number {42}
-console-format.js:22 [Number]
-globals[32]
-Number {42}
-console-format.js:21 String {'abc'}
-console-format.js:22 [String]
-globals[33]
-String {'abc'}
-console-format.js:21 Uint16Array(3) [1, 2, 3, buffer: ArrayBuffer(6), byteLength: 6, byteOffset: 0, length: 3, Symbol(Symbol.toStringTag): 'Uint16Array']
-console-format.js:22 [Uint16Array(3)]
-globals[34]
-Uint16Array(3) [1, 2, 3, buffer: ArrayBuffer(6), byteLength: 6, byteOffset: 0, length: 3, Symbol(Symbol.toStringTag): 'Uint16Array']
-console-format.js:21 #text
-console-format.js:22 [text]
-globals[35]
-#text
-console-format.js:21 DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
-console-format.js:22 [DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of t…]
-globals[36]
-DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
-console-format.js:21 Uint8Array [3, buffer: ArrayBuffer(1), byteLength: 1, byteOffset: 0, length: 1, Symbol(Symbol.toStringTag): 'Uint8Array']
-console-format.js:22 [Uint8Array(1)]
-globals[37]
-Uint8Array [3, buffer: ArrayBuffer(1), byteLength: 1, byteOffset: 0, length: 1, Symbol(Symbol.toStringTag): 'Uint8Array']
-console-format.js:21 Uint8Array(400) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-console-format.js:22 [Uint8Array(400)]
-globals[38]
-Uint8Array(400) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-console-format.js:21 Uint8Array(400000000) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-console-format.js:22 [Uint8Array(400000000)]
-globals[39]
-Uint8Array(400000000) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-console-format.js:21 namespace.longSubNamespace.x.className {}
-console-format.js:22 [n…e.l…e.x.className]
-globals[40]
-namespace.longSubNamespace.x.className {}
-console-format.js:21 (200) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …]
-console-format.js:22 [Array(200)]
-globals[41]
-(200) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …]
-console-format.js:21 ['test']
-console-format.js:22 [Array(1)]
-globals[42]
-['test']
-console-format.js:21 Number {42, 1: 'foo', a: 'bar'}
-console-format.js:22 [Number]
-globals[43]
-Number {42, 1: 'foo', a: 'bar'}
-console-format.js:21 String {'abc', 3: 'foo', 01: 'foo', a: 'bar'}
-console-format.js:22 [String]
-globals[44]
-String {'abc', 3: 'foo', 01: 'foo', a: 'bar'}
-Expanded all messages
-console-format.js:34 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-    0: "test"
-    1: "test2"
-    4: "test4"
-    foo: {}
-    length: 10
-    [[Prototype]]: Array(0)
-console-format.js:35 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-    0: "test"
-    1: "test2"
-    4: "test4"
-    foo: {}
-    length: 10
-    [[Prototype]]: Array(0)
-console-format.js:36 Array(10)
-    0: "test"
-    1: "test2"
-    4: "test4"
-    foo: {}
-    length: 10
-    [[Prototype]]: Array(0)
-console-format.js:37 Test for zero "0" in formatter
-console-format.js:38 % self-escape1 dummy
-console-format.js:39 %s self-escape2 dummy
-console-format.js:40 %ss self-escape3 dummy
-console-format.js:41 %sdummy%s self-escape4
-console-format.js:42 %%% self-escape5 dummy
-console-format.js:43 %dummy self-escape6
-console-format.js:21 /^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
-console-format.js:22 [/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\…?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i]
-    0: /^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
-    length: 1
-    [[Prototype]]: Array(0)
-globals[0]
-/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
-console-format.js:21 /foo\\bar\sbaz/i
-console-format.js:22 [/foo\\bar\sbaz/i]
-    0: /foo\\bar\sbaz/i
-    length: 1
-    [[Prototype]]: Array(0)
-globals[1]
-/foo\\bar\sbaz/i
-console-format.js:21 test
-console-format.js:22 ['test']
-    0: "test"
-    length: 1
-    [[Prototype]]: Array(0)
-globals[2]
-'test'
-console-format.js:21 test named "test"
-console-format.js:22 ['test named "test"']
-    0: "test named \"test\""
-    length: 1
-    [[Prototype]]: Array(0)
-globals[3]
-'test named "test"'
-console-format.js:21 Error
-console-format.js:22 [Error
-]
-    0: Error
-    length: 1
-    [[Prototype]]: Array(0)
-globals[4]
-Error
-console-format.js:21 Error: my error message
-console-format.js:22 [Error: my error message
-]
-    0: Error: my error message
-    length: 1
-    [[Prototype]]: Array(0)
-globals[5]
-Error: my error message
-console-format.js:21 Error: my multiline
-error message
-console-format.js:22 [Error: my multiline
-error message
-]
-    0: Error: my multiline
-error message
-    length: 1
-    [[Prototype]]: Array(0)
-globals[6]
-Error: my multiline
-error message
-console-format.js:21 
-    <p id="p"></p>
-console-format.js:22 [p#p]
-    0: p#p
-    length: 1
-    [[Prototype]]: Array(0)
-globals[7]
-    <p id="p"></p>
-console-format.js:21 ƒ () { return 1; }
-console-format.js:22 [ƒ]
-    0: ƒ ()
-    length: 1
-    [[Prototype]]: Array(0)
-globals[8]
-ƒ () { return 1; }
-console-format.js:21 ƒ () {
-          return 2;
-      }
-console-format.js:22 [ƒ]
-    0: ƒ ()
-    length: 1
-    [[Prototype]]: Array(0)
-globals[9]
-ƒ () {
-          return 2;
-      }
-console-format.js:21 0.12
-console-format.js:22 [0.12]
-    0: 0.12
-    length: 1
-    [[Prototype]]: Array(0)
-globals[10]
-0.12
-console-format.js:21 http://webkit.org/
-console-format.js:22 ['http://webkit.org/']
-    0: "http://webkit.org/"
-    length: 1
-    [[Prototype]]: Array(0)
-globals[11]
-'http://webkit.org/'
-console-format.js:21 null
-console-format.js:22 [null]
-    0: null
-    length: 1
-    [[Prototype]]: Array(0)
-globals[12]
-null
-console-format.js:21 undefined
-console-format.js:22 [undefined]
-    0: undefined
-    length: 1
-    [[Prototype]]: Array(0)
-globals[13]
-undefined
-console-format.js:21 
-    attr=""
-console-format.js:22 [attr]
-    0: attr
-    length: 1
-    [[Prototype]]: Array(0)
-globals[14]
-    attr=""
-console-format.js:21 
-    attr="value"
-console-format.js:22 [attr]
-    0: attr
-    length: 1
-    [[Prototype]]: Array(0)
-globals[15]
-    attr="value"
-console-format.js:21 
-    id="x"
-console-format.js:22 [id]
-    0: id
-    length: 1
-    [[Prototype]]: Array(0)
-globals[16]
-    id="x"
-console-format.js:21 {}
-    length: (...)
-    get length: ƒ length()
-    [[Prototype]]: Object
-console-format.js:22 [{…}]
-    0: {}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[17]
-{}
-    length: (...)
-    get length: ƒ length()
-    [[Prototype]]: Object
-console-format.js:21 NaN
-console-format.js:22 [NaN]
-    0: NaN
-    length: 1
-    [[Prototype]]: Array(0)
-globals[18]
-NaN
-console-format.js:21 Infinity
-console-format.js:22 [Infinity]
-    0: Infinity
-    length: 1
-    [[Prototype]]: Array(0)
-globals[19]
-Infinity
-console-format.js:21 -Infinity
-console-format.js:22 [-Infinity]
-    0: -Infinity
-    length: 1
-    [[Prototype]]: Array(0)
-globals[20]
--Infinity
-console-format.js:21 (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-    0: "test"
-    1: "test2"
-    4: "test4"
-    foo: {}
-    length: 10
-    [[Prototype]]: Array(0)
-console-format.js:22 [Array(10)]
-    0: (10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-    length: 1
-    [[Prototype]]: Array(0)
-globals[21]
-(10) ['test', 'test2', empty × 2, 'test4', empty × 5, foo: {…}]
-    0: "test"
-    1: "test2"
-    4: "test4"
-    foo: {}
-    length: 10
-    [[Prototype]]: Array(0)
-console-format.js:21 {}
-    [[Prototype]]: Object
-console-format.js:22 [{…}]
-    0: {}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[22]
-{}
-    [[Prototype]]: Object
-console-format.js:21 [ƒ]
-    0: ƒ ()
-    length: 1
-    [[Prototype]]: Array(0)
-console-format.js:22 [Array(1)]
-    0: [ƒ]
-    length: 1
-    [[Prototype]]: Array(0)
-globals[23]
-[ƒ]
-    0: ƒ ()
-    length: 1
-    [[Prototype]]: Array(0)
-console-format.js:21 {bar: 'bar'}
-    bar: "bar"
-    [[Prototype]]: Object
-console-format.js:22 [{…}]
-    0: {bar: 'bar'}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[24]
-{bar: 'bar'}
-    bar: "bar"
-    [[Prototype]]: Object
-console-format.js:21 
-    <svg id="svg-node"></svg>
-console-format.js:22 [svg#svg-node]
-    0: svg#svg-node
-    length: 1
-    [[Prototype]]: Array(0)
-globals[25]
-    <svg id="svg-node"></svg>
-console-format.js:21 {enumerableProp: 4, __underscoreEnumerableProp__: 5, __underscoreNonEnumerableProp: 2, abc: 3, getFoo: ƒ, …}
-    enumerableProp: 4
-    __underscoreEnumerableProp__: 5
-    abc: 3
-    bar: (...)
-    getFoo: ƒ ()
-    __underscoreNonEnumerableProp: 2
-    get bar: ƒ ()
-    set bar: ƒ (x)
-    [[Prototype]]: Object
-console-format.js:22 [{…}]
-    0: {enumerableProp: 4, __underscoreEnumerableProp__: 5, __underscoreNonEnumerableProp: 2, abc: 3, getFoo: ƒ, …}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[26]
-{enumerableProp: 4, __underscoreEnumerableProp__: 5, __underscoreNonEnumerableProp: 2, abc: 3, getFoo: ƒ, …}
-    enumerableProp: 4
-    __underscoreEnumerableProp__: 5
-    abc: 3
-    bar: (...)
-    getFoo: ƒ ()
-    __underscoreNonEnumerableProp: 2
-    get bar: ƒ ()
-    set bar: ƒ (x)
-    [[Prototype]]: Object
-console-format.js:21 -0
-console-format.js:22 [-0]
-    0: -0
-    length: 1
-    [[Prototype]]: Array(0)
-globals[27]
--0
-console-format.js:21 {}
-    No properties
-console-format.js:22 [{…}]
-    0: {}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[28]
-{}
-    No properties
-console-format.js:21 ƒ Object() { [native code] }
-console-format.js:22 [ƒ]
-    0: ƒ Object()
-    length: 1
-    [[Prototype]]: Array(0)
-globals[29]
-ƒ Object() { [native code] }
-console-format.js:21 {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
-    constructor: ƒ Object()
-    hasOwnProperty: ƒ hasOwnProperty()
-    isPrototypeOf: ƒ isPrototypeOf()
-    propertyIsEnumerable: ƒ propertyIsEnumerable()
-    toLocaleString: ƒ toLocaleString()
-    toString: ƒ toString()
-    valueOf: ƒ valueOf()
-    __defineGetter__: ƒ __defineGetter__()
-    __defineSetter__: ƒ __defineSetter__()
-    __lookupGetter__: ƒ __lookupGetter__()
-    __lookupSetter__: ƒ __lookupSetter__()
-    __proto__: (...)
-    get __proto__: ƒ __proto__()
-    set __proto__: ƒ __proto__()
-console-format.js:22 [{…}]
-    0: {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[30]
-{constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
-    constructor: ƒ Object()
-    hasOwnProperty: ƒ hasOwnProperty()
-    isPrototypeOf: ƒ isPrototypeOf()
-    propertyIsEnumerable: ƒ propertyIsEnumerable()
-    toLocaleString: ƒ toLocaleString()
-    toString: ƒ toString()
-    valueOf: ƒ valueOf()
-    __defineGetter__: ƒ __defineGetter__()
-    __defineSetter__: ƒ __defineSetter__()
-    __lookupGetter__: ƒ __lookupGetter__()
-    __lookupSetter__: ƒ __lookupSetter__()
-    __proto__: (...)
-    get __proto__: ƒ __proto__()
-    set __proto__: ƒ __proto__()
-console-format.js:21 ƒ ( /**/ foo/**/, /*/**/bar,
-      /**/baz) {}
-console-format.js:22 [ƒ]
-    0: ƒ ( /**/ foo/**/, /*/**/bar,       /**/baz)
-    length: 1
-    [[Prototype]]: Array(0)
-globals[31]
-ƒ ( /**/ foo/**/, /*/**/bar,
-      /**/baz) {}
-console-format.js:21 Number {42}
-    [[Prototype]]: Number
-    [[PrimitiveValue]]: 42
-console-format.js:22 [Number]
-    0: Number {42}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[32]
-Number {42}
-    [[Prototype]]: Number
-    [[PrimitiveValue]]: 42
-console-format.js:21 String {'abc'}
-    0: "a"
-    1: "b"
-    2: "c"
-    length: 3
-    [[Prototype]]: String
-    [[PrimitiveValue]]: "abc"
-console-format.js:22 [String]
-    0: String {'abc'}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[33]
-String {'abc'}
-    0: "a"
-    1: "b"
-    2: "c"
-    length: 3
-    [[Prototype]]: String
-    [[PrimitiveValue]]: "abc"
-console-format.js:21 Uint16Array(3) [1, 2, 3, buffer: ArrayBuffer(6), byteLength: 6, byteOffset: 0, length: 3, Symbol(Symbol.toStringTag): 'Uint16Array']
-    0: 1
-    1: 2
-    2: 3
-    buffer: ArrayBuffer(6)  
-    byteLength: 6
-    byteOffset: 0
-    length: 3
-    Symbol(Symbol.toStringTag): "Uint16Array"
-    [[Prototype]]: TypedArray
-console-format.js:22 [Uint16Array(3)]
-    0: Uint16Array(3) [1, 2, 3, buffer: ArrayBuffer(6), byteLength: 6, byteOffset: 0, length: 3, Symbol(Symbol.toStringTag): 'Uint16Array']
-    length: 1
-    [[Prototype]]: Array(0)
-globals[34]
-Uint16Array(3) [1, 2, 3, buffer: ArrayBuffer(6), byteLength: 6, byteOffset: 0, length: 3, Symbol(Symbol.toStringTag): 'Uint16Array']
-    0: 1
-    1: 2
-    2: 3
-    buffer: ArrayBuffer(6)  
-    byteLength: 6
-    byteOffset: 0
-    length: 3
-    Symbol(Symbol.toStringTag): "Uint16Array"
-    [[Prototype]]: TypedArray
-console-format.js:21 #text
-console-format.js:22 [text]
-    0: text
-    length: 1
-    [[Prototype]]: Array(0)
-globals[35]
-#text
-console-format.js:21 DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
-console-format.js:22 [DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of t…]
-    0: DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
-    length: 1
-    [[Prototype]]: Array(0)
-globals[36]
-DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
-console-format.js:21 Uint8Array [3, buffer: ArrayBuffer(1), byteLength: 1, byteOffset: 0, length: 1, Symbol(Symbol.toStringTag): 'Uint8Array']
-    0: 3
-    buffer: ArrayBuffer(1)  
-    byteLength: 1
-    byteOffset: 0
-    length: 1
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:22 [Uint8Array(1)]
-    0: Uint8Array [3, buffer: ArrayBuffer(1), byteLength: 1, byteOffset: 0, length: 1, Symbol(Symbol.toStringTag): 'Uint8Array']
-    length: 1
-    [[Prototype]]: Array(0)
-globals[37]
-Uint8Array [3, buffer: ArrayBuffer(1), byteLength: 1, byteOffset: 0, length: 1, Symbol(Symbol.toStringTag): 'Uint8Array']
-    0: 3
-    buffer: ArrayBuffer(1)  
-    byteLength: 1
-    byteOffset: 0
-    length: 1
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:21 Uint8Array(400) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    [0 … 99]
-    [100 … 199]
-    [200 … 299]
-    [300 … 399]
-    foo: "bar"
-    buffer: ArrayBuffer(400)
-    byteLength: 400
-    byteOffset: 0
-    length: 400
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:22 [Uint8Array(400)]
-    0: Uint8Array(400) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    length: 1
-    [[Prototype]]: Array(0)
-globals[38]
-Uint8Array(400) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    [0 … 99]
-    [100 … 199]
-    [200 … 299]
-    [300 … 399]
-    foo: "bar"
-    buffer: ArrayBuffer(400)
-    byteLength: 400
-    byteOffset: 0
-    length: 400
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:21 Uint8Array(400000000) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    [0 … 99999999]
-    [100000000 … 199999999]
-    [200000000 … 299999999]
-    [300000000 … 399999999]
-    PASS: "Non-element properties should be displayed."
-    buffer: ArrayBuffer(400000000)
-    byteLength: 400000000
-    byteOffset: 0
-    length: 400000000
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:22 [Uint8Array(400000000)]
-    0: Uint8Array(400000000) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    length: 1
-    [[Prototype]]: Array(0)
-globals[39]
-Uint8Array(400000000) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …]
-    [0 … 99999999]
-    [100000000 … 199999999]
-    [200000000 … 299999999]
-    [300000000 … 399999999]
-    PASS: "Non-element properties should be displayed."
-    buffer: ArrayBuffer(400000000)
-    byteLength: 400000000
-    byteOffset: 0
-    length: 400000000
-    Symbol(Symbol.toStringTag): "Uint8Array"
-    [[Prototype]]: TypedArray
-console-format.js:21 namespace.longSubNamespace.x.className {}
-    [[Prototype]]: Object
-console-format.js:22 [n…e.l…e.x.className]
-    0: namespace.longSubNamespace.x.className {}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[40]
-namespace.longSubNamespace.x.className {}
-    [[Prototype]]: Object
-console-format.js:21 (200) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …]
-    [0 … 99]
-    [100 … 199]
-    length: 200
-    [[Prototype]]: Array(0)
-console-format.js:22 [Array(200)]
-    0: (200) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …]
-    length: 1
-    [[Prototype]]: Array(0)
-globals[41]
-(200) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …]
-    [0 … 99]
-    [100 … 199]
-    length: 200
-    [[Prototype]]: Array(0)
-console-format.js:21 ['test']
-    0: "test"
-    length: 1
-    [[Prototype]]: Array(0)
-console-format.js:22 [Array(1)]
-    0: ['test']
-    length: 1
-    [[Prototype]]: Array(0)
-globals[42]
-['test']
-    0: "test"
-    length: 1
-    [[Prototype]]: Array(0)
-console-format.js:21 Number {42, 1: 'foo', a: 'bar'}
-    1: "foo"
-    a: "bar"
-    [[Prototype]]: Number
-    [[PrimitiveValue]]: 42
-console-format.js:22 [Number]
-    0: Number {42, 1: 'foo', a: 'bar'}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[43]
-Number {42, 1: 'foo', a: 'bar'}
-    1: "foo"
-    a: "bar"
-    [[Prototype]]: Number
-    [[PrimitiveValue]]: 42
-console-format.js:21 String {'abc', 3: 'foo', 01: 'foo', a: 'bar'}
-    0: "a"
-    01: "foo"
-    1: "b"
-    2: "c"
-    3: "foo"
-    a: "bar"
-    length: 3
-    [[Prototype]]: String
-    [[PrimitiveValue]]: "abc"
-console-format.js:22 [String]
-    0: String {'abc', 3: 'foo', 01: 'foo', a: 'bar'}
-    length: 1
-    [[Prototype]]: Array(0)
-globals[44]
-String {'abc', 3: 'foo', 01: 'foo', a: 'bar'}
-    0: "a"
-    01: "foo"
-    1: "b"
-    2: "c"
-    3: "foo"
-    a: "bar"
-    length: 3
-    [[Prototype]]: String
-    [[PrimitiveValue]]: "abc"
-
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-format.js b/third_party/blink/web_tests/http/tests/devtools/console/console-format.js
deleted file mode 100644
index eeee9bc..0000000
--- a/third_party/blink/web_tests/http/tests/devtools/console/console-format.js
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-(async function() {
-  TestRunner.addResult(`Tests that console logging dumps proper messages.\n`);
-  await TestRunner.loadLegacyModule('console'); await TestRunner.loadTestModule('console_test_runner');
-  await TestRunner.showPanel('console');
-  await TestRunner.loadHTML(`
-      <div id="x"></div>
-      <p id="p"></p>
-
-      <svg id="svg-node"/>
-    `);
-  await TestRunner.evaluateInPagePromise(`
-      // Global Values
-      var globals = [];
-
-      function log(current)
-      {
-          console.log(globals[current]);
-          console.log([globals[current]]);
-      }
-
-      var foo = { foo: "foo"};
-      var bar = { bar: "bar" };
-      bar.__proto__ = foo;
-      var singleArray = ["test"];
-      var array = ["test", "test2"];array.length = 10;
-      array.foo = {};
-      array[4] = "test4";
-
-      var svg = document.getElementById("svg-node");
-      console.log(array);
-      console.log("%o", array);
-      console.log("%O", array);
-      console.log("Test for zero \\"%f\\" in formatter", 0);
-      console.log("%% self-escape1", "dummy");
-      console.log("%%s self-escape2", "dummy");
-      console.log("%%ss self-escape3", "dummy");
-      console.log("%%s%s%%s self-escape4", "dummy");
-      console.log("%%%%% self-escape5", "dummy");
-      console.log("%%%s self-escape6", "dummy");
-
-      // Populate Globals
-      var regex1 = /^url\\(\\s*(?:(?:"(?:[^\\\\\\"]|(?:\\\\[\\da-f]{1,6}\\s?|\\.))*"|'(?:[^\\\\\\']|(?:\\\\[\\da-f]{1,6}\\s?|\\.))*')|(?:[!#$%&*-~\\w]|(?:\\\\[\\da-f]{1,6}\\s?|\\.))*)\\s*\\)/i;
-      var regex2 = new RegExp("foo\\\\\\\\bar\\\\sbaz", "i");
-      var str = "test";
-      var str2 = "test named \\"test\\"";
-      var error = new Error;
-      var errorWithMessage = new Error("my error message");
-      var errorWithMultilineMessage = new Error("my multiline\\nerror message");
-      var node = document.getElementById("p");
-      var func = function() { return 1; };
-      var multilinefunc = function() {
-          return 2;
-      };
-      var num = 1.2e-1;
-      var linkify = "http://webkit.org/";
-      var valuelessAttribute = document.createAttribute("attr");
-      var valuedAttribute = document.createAttribute("attr");
-      valuedAttribute.value = "value";
-      var existingAttribute = document.getElementById("x").attributes[0];
-      var throwingLengthGetter = {get length() { throw "Length called"; }};
-      var objectWithNonEnumerables = Object.create({ foo: 1 }, {
-          __underscoreNonEnumerableProp: { value: 2, enumerable: false },
-          abc: { value: 3, enumerable: false },
-          getFoo: { value: function() { return this.foo; } },
-          bar: { get: function() { return this.bar; }, set: function(x) { this.bar = x; } }
-      });
-      objectWithNonEnumerables.enumerableProp = 4;
-      objectWithNonEnumerables.__underscoreEnumerableProp__ = 5;
-      var negZero = 1 / Number.NEGATIVE_INFINITY;
-      var textNode = document.getElementById("x").nextSibling;
-      var arrayLikeFunction = function( /**/ foo/**/, /*/**/bar,
-      /**/baz) {};
-      arrayLikeFunction.splice = function() {};
-      var tinyTypedArray = new Uint8Array([3]);
-      var smallTypedArray = new Uint8Array(new ArrayBuffer(400));
-      smallTypedArray["foo"] = "bar";
-      var bigTypedArray = new Uint8Array(new ArrayBuffer(400 * 1000 * 1000));
-      bigTypedArray.PASS = "Non-element properties should be displayed.";
-      var namespace = {};
-      namespace.longSubNamespace = {};
-      namespace.longSubNamespace.x = {};
-      namespace.longSubNamespace.x.className = function(){};
-      var instanceWithLongClassName = new namespace.longSubNamespace.x.className();
-      var bigArray = [];
-      bigArray.length = 200;
-      bigArray.fill(1);
-      var boxedNumberWithProps = new Number(42);
-      boxedNumberWithProps[1] = "foo";
-      boxedNumberWithProps["a"] = "bar";
-      var boxedStringWithProps = new String("abc");
-      boxedStringWithProps["01"] = "foo";
-      boxedStringWithProps[3] = "foo";
-      boxedStringWithProps["a"] = "bar";
-
-      globals = [
-          regex1, regex2, str, str2, error, errorWithMessage, errorWithMultilineMessage, node, func, multilinefunc,
-          num, linkify, null, undefined, valuelessAttribute, valuedAttribute, existingAttribute, throwingLengthGetter,
-          NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY, array, {}, [function() {}], bar, svg,
-          objectWithNonEnumerables, negZero, Object.create(null), Object, Object.prototype, arrayLikeFunction,
-          new Number(42), new String("abc"), new Uint16Array([1, 2, 3]), textNode, domException(),
-          tinyTypedArray, smallTypedArray, bigTypedArray, instanceWithLongClassName, bigArray, singleArray,
-          boxedNumberWithProps, boxedStringWithProps
-      ];
-      function domException()
-      {
-          var result = "FAIL";
-          try {
-              var a = document.createElement("div");
-              var b = document.createElement("div");
-              a.removeChild(b);
-          } catch(e) {
-              e.stack = "";
-              result = e;
-          }
-          return result;
-      }
-      //# sourceURL=console-format.js
-    `);
-
-  TestRunner.hideInspectorView();
-  TestRunner.evaluateInPage('globals.length', loopOverGlobals.bind(this, 0));
-
-  function loopOverGlobals(current, total) {
-    function advance() {
-      var next = current + 1;
-      if (next == total)
-        ConsoleTestRunner.waitForRemoteObjectsConsoleMessages(onRemoteObjectsLoaded);
-      else
-        loopOverGlobals(next, total);
-    }
-
-    async function onRemoteObjectsLoaded() {
-      await ConsoleTestRunner.dumpConsoleMessagesIgnoreErrorStackFrames();
-      TestRunner.addResult('Expanded all messages');
-      ConsoleTestRunner.expandConsoleMessages(
-          ConsoleTestRunner.expandConsoleMessagesErrorParameters.bind(this, finish), undefined, function(section) {
-            return section.element.firstChild.textContent !== '#text';
-          });
-    }
-
-    async function finish() {
-      await ConsoleTestRunner.dumpConsoleMessagesIgnoreErrorStackFrames();
-      TestRunner.completeTest();
-    }
-
-    TestRunner.evaluateInPage('log(' + current + ')');
-    TestRunner.deprecatedRunAfterPendingDispatches(evalInConsole);
-    function evalInConsole() {
-      ConsoleTestRunner.evaluateInConsole('globals[' + current + ']');
-      TestRunner.deprecatedRunAfterPendingDispatches(advance);
-    }
-  }
-})();
diff --git a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/cssom-shorthand-important-expected.txt b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/cssom-shorthand-important-expected.txt
index c335c60..3560036 100644
--- a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/cssom-shorthand-important-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/cssom-shorthand-important-expected.txt
@@ -6,10 +6,10 @@
 [expanded] 
 #inspected { (<style>)
     padding: 10px 50px !important;
-        padding-top: 10px;
-        padding-right: 50px;
-        padding-bottom: 10px;
-        padding-left: 50px;
+        padding-top: 10px !important;
+        padding-right: 50px !important;
+        padding-bottom: 10px !important;
+        padding-left: 50px !important;
     margin-top: 10px;
 
 [expanded] 
diff --git a/third_party/blink/web_tests/inspector-protocol/css/css-get-styles-for-node-expected.txt b/third_party/blink/web_tests/inspector-protocol/css/css-get-styles-for-node-expected.txt
index d63ad3552..2fffc62 100644
--- a/third_party/blink/web_tests/inspector-protocol/css/css-get-styles-for-node-expected.txt
+++ b/third_party/blink/web_tests/inspector-protocol/css/css-get-styles-for-node-expected.txt
@@ -175,16 +175,19 @@
 ]
 [
     [0] : {
+        important : true
         name : flex-grow
-        value : 1
+        value : 1 !important
     }
     [1] : {
+        important : true
         name : flex-shrink
-        value : 1
+        value : 1 !important
     }
     [2] : {
+        important : true
         name : flex-basis
-        value : 0%
+        value : 0% !important
     }
 ]
 
diff --git a/third_party/blink/web_tests/platform/linux/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png b/third_party/blink/web_tests/platform/linux/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
index 886de86b7..96da8c7 100644
--- a/third_party/blink/web_tests/platform/linux/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
index c7e7c5e2..7fa0fe8 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.14/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.14/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png b/third_party/blink/web_tests/platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
index 7038e0e..d94c7538 100644
--- a/third_party/blink/web_tests/platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png b/third_party/blink/web_tests/platform/win/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
index d0ff7abd..96ba19d 100644
--- a/third_party/blink/web_tests/platform/win/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter-expected.html b/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter-expected.html
index 81c68ad..d2e9c9ad 100644
--- a/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter-expected.html
+++ b/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter-expected.html
@@ -22,7 +22,17 @@
 
 <p id="test-root">
 
-<!-- SVG root element: the first three filters are valid, the rest are not. -->
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
+
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
+
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
 
 <svg viewBox="0 0 50 50">
   <rect fill="lime" x="0" y="0" height="50" width="50"/>
@@ -37,25 +47,27 @@
 </svg>
 
 <svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
-</svg>
-
-<svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
-</svg>
-
-<svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
-</svg>
-
-<svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
 </svg>
 </p>
 
 <p id="test-child">
 
-<!-- SVG child element: the first filter is valid, the rest are not. -->
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
+
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
+
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
+
+<svg viewBox="0 0 50 50">
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
+</svg>
 
 <svg viewBox="0 0 50 50">
   <rect fill="lime" x="0" y="0" height="50" width="50"/>
diff --git a/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter.html b/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter.html
index c00bb31..b9ee8b5d 100644
--- a/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter.html
+++ b/third_party/blink/web_tests/svg/filters/svg-element-invalid-filter.html
@@ -21,9 +21,6 @@
 </style>
 
 <p id="test-root">
-
-<!-- SVG root element: the first three filters are valid, the rest are not. -->
-
 <svg style="filter: url(#filter)" viewBox="0 0 50 50">
   <filter id="filter">
     <feColorMatrix type="matrix" values="0 0 0 0 0, 1 0 0 0 0, 0 0 0 0 0, 0 0 0 1 0"/>
@@ -40,26 +37,23 @@
 </svg>
 
 <svg style="filter: url(#missing)" viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
 </svg>
 
 <svg style="filter: url(invalid)" viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
 </svg>
 
 <svg style="filter: url(invalid#missing)" viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
 </svg>
 
 <svg style="filter: url(filter)" viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"/>
+  <rect fill="lime" x="0" y="0" height="50" width="50"/>
 </svg>
 </p>
 
 <p id="test-child">
-
-<!-- SVG child element: the first filter is valid, the rest are not. -->
-
 <svg viewBox="0 0 50 50">
   <rect fill="red" x="0" y="0" height="50" width="50"
        style="filter: url(#filter)"/>
@@ -76,22 +70,22 @@
 </svg>
 
 <svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"
+  <rect fill="lime" x="0" y="0" height="50" width="50"
        style="filter: url(#missing)"/>
 </svg>
 
 <svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"
+  <rect fill="lime" x="0" y="0" height="50" width="50"
        style="filter: url(invalid)"/>
 </svg>
 
 <svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"
+  <rect fill="lime" x="0" y="0" height="50" width="50"
        style="filter: url(invalid#missing)"/>
 </svg>
 
 <svg viewBox="0 0 50 50">
-  <rect fill="red" x="0" y="0" height="50" width="50"
+  <rect fill="lime" x="0" y="0" height="50" width="50"
        style="filter: url(filter)"/>
 </svg>
 </p>
diff --git a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt
index 5fb5170..a1e28a8 100644
--- a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt
@@ -1,7 +1,9 @@
 This is a testharness.js-based test.
-Found 932 tests; 7 PASS, 925 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1398 tests; 14 PASS, 1384 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS e.style['background-image'] = "linear-gradient(30deg, red, blue)" should set the property value
 PASS e.style['background-image'] = "linear-gradient(to right bottom, red, blue)" should set the property value
+PASS e.style['background-image'] = "linear-gradient(30deg, red, 50%, blue)" should set the property value
+PASS e.style['background-image'] = "linear-gradient(to right bottom, red, 50%, blue)" should set the property value
 FAIL e.style['background-image'] = "linear-gradient(30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -9,6 +11,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lab 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lab to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lab 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lab to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lab 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -19,6 +26,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklab 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklab to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklab 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklab to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklab 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -29,6 +41,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in srgb 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in srgb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -39,6 +56,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in srgb-linear 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in srgb-linear, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb-linear to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb-linear 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in srgb-linear to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in srgb-linear 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -49,6 +71,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in xyz 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -59,6 +86,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d50 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz-d50, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d50 to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d50 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d50 to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d50 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -69,6 +101,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d65 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz-d65, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d65 to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d65 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in xyz-d65 to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in xyz-d65 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -79,6 +116,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hsl 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -89,6 +131,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl shorter hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -99,6 +146,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl longer hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -109,6 +161,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl increasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -119,6 +176,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hsl decreasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -129,6 +191,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hwb 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -139,6 +206,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb shorter hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -149,6 +221,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb longer hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -159,6 +236,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb increasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -169,6 +251,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in hwb decreasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -179,6 +266,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lch 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -189,6 +281,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch shorter hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -199,6 +296,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lch longer hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch longer hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch longer hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch longer hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch longer hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -209,6 +311,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch increasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -219,6 +326,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in lch decreasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -229,6 +341,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklch 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -239,6 +356,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch shorter hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -249,6 +371,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch longer hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -259,6 +386,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch increasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -269,6 +401,11 @@
 FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue to right bottom, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(30deg in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(to right bottom in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue to right bottom, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(30deg in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "linear-gradient(in oklch decreasing hue 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -277,6 +414,9 @@
 PASS e.style['background-image'] = "radial-gradient(50px, red, blue)" should set the property value
 PASS e.style['background-image'] = "radial-gradient(ellipse 50% 40em, red, blue)" should set the property value
 PASS e.style['background-image'] = "radial-gradient(at right center, red, blue)" should set the property value
+PASS e.style['background-image'] = "radial-gradient(50px, red, 50%, blue)" should set the property value
+PASS e.style['background-image'] = "radial-gradient(ellipse 50% 40em, red, 50%, blue)" should set the property value
+PASS e.style['background-image'] = "radial-gradient(at right center, red, 50%, blue)" should set the property value
 FAIL e.style['background-image'] = "radial-gradient(50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -287,6 +427,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lab ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lab at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lab 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lab ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lab at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lab 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -301,6 +448,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklab ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklab at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklab 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklab ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklab at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklab 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -315,6 +469,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in srgb ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in srgb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -329,6 +490,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in srgb-linear ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in srgb-linear, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb-linear at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb-linear 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb-linear ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in srgb-linear at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in srgb-linear 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -343,6 +511,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in xyz ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in xyz, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -357,6 +532,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in xyz-d50, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d50 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -371,6 +553,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in xyz-d65, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in xyz-d65 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -385,6 +574,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hsl ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hsl, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -399,6 +595,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hsl shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl shorter hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -413,6 +616,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hsl longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl longer hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -427,6 +637,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hsl increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl increasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -441,6 +658,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hsl decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hsl decreasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -455,6 +679,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hwb ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hwb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -469,6 +700,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hwb shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb shorter hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -483,6 +721,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hwb longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb longer hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -497,6 +742,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hwb increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb increasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -511,6 +763,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in hwb decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in hwb decreasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -525,6 +784,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lch ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -539,6 +805,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch shorter hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -553,6 +826,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lch longer hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch longer hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch longer hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch longer hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch longer hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch longer hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -567,6 +847,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch increasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -581,6 +868,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in lch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in lch decreasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -595,6 +889,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -609,6 +910,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch shorter hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -623,6 +931,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch longer hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -637,6 +952,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch increasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -651,6 +973,13 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue ellipse 50% 40em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(at right center in oklch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue at right center, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(50px in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue 50px, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(ellipse 50% 40em in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue ellipse 50% 40em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(at right center in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue at right center, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(50px in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue 50px, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -660,6 +989,8 @@
 FAIL e.style['background-image'] = "radial-gradient(in oklch decreasing hue at right center, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 PASS e.style['background-image'] = "conic-gradient(from 30deg, red, blue)" should set the property value
 PASS e.style['background-image'] = "conic-gradient(at left 10px top 50em, red, blue)" should set the property value
+PASS e.style['background-image'] = "conic-gradient(from 30deg, red, 50%, blue)" should set the property value
+PASS e.style['background-image'] = "conic-gradient(at left 10px top 50em, red, 50%, blue)" should set the property value
 FAIL e.style['background-image'] = "conic-gradient(from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -667,6 +998,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lab from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lab at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lab from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lab at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lab from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -677,6 +1013,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklab from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklab, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklab at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklab from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklab, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklab at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklab, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklab from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -687,6 +1028,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in srgb from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in srgb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in srgb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in srgb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -697,6 +1043,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in srgb-linear from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in srgb-linear, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb-linear at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb-linear from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in srgb-linear, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in srgb-linear at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in srgb-linear, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in srgb-linear from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -707,6 +1058,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in xyz from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -717,6 +1073,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d50 from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz-d50, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d50 at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d50 from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz-d50, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d50 at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz-d50, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d50 from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -727,6 +1088,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d65 from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz-d65, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d65 at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d65 from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in xyz-d65, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in xyz-d65 at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in xyz-d65, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in xyz-d65 from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -737,6 +1103,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hsl from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -747,6 +1118,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl shorter hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -757,6 +1133,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl longer hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -767,6 +1148,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl increasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -777,6 +1163,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hsl decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hsl decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hsl decreasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -787,6 +1178,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hwb from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -797,6 +1193,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb shorter hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -807,6 +1208,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb longer hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -817,6 +1223,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb increasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -827,6 +1238,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in hwb decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in hwb decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in hwb decreasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -837,6 +1253,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lch from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -847,6 +1268,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch shorter hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -857,6 +1283,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lch longer hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch longer hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch longer hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch longer hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch longer hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -867,6 +1298,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch increasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -877,6 +1313,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in lch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in lch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in lch decreasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -887,6 +1328,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklch from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -897,6 +1343,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch shorter hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch shorter hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch shorter hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch shorter hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -907,6 +1358,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch longer hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch longer hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch longer hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch longer hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -917,6 +1373,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch increasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch increasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch increasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch increasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
@@ -927,6 +1388,11 @@
 FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue from 30deg, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch decreasing hue, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue at left 10px top 50em, red, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue from 30deg, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(at left 10px top 50em in oklch decreasing hue, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue at left 10px top 50em, red, 50%, blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(from 30deg in oklch decreasing hue, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['background-image'] = "conic-gradient(in oklch decreasing hue from 30deg, color(srgb 1 0 0), blue)" should set the property value assert_not_equals: property should be set got disallowed value ""
diff --git a/third_party/closure_compiler/externs/file_manager_private.js b/third_party/closure_compiler/externs/file_manager_private.js
index 339634d..55fc1675 100644
--- a/third_party/closure_compiler/externs/file_manager_private.js
+++ b/third_party/closure_compiler/externs/file_manager_private.js
@@ -752,6 +752,7 @@
  * @typedef {{
  *   sourceUrl: string,
  *   isDlpRestricted: boolean,
+ *   isRestrictedForDestination: boolean,
  * }}
  */
 chrome.fileManagerPrivate.DlpMetadata;
diff --git a/third_party/closure_compiler/externs/passwords_private.js b/third_party/closure_compiler/externs/passwords_private.js
index 61fbe36..5e5429e 100644
--- a/third_party/closure_compiler/externs/passwords_private.js
+++ b/third_party/closure_compiler/externs/passwords_private.js
@@ -98,6 +98,8 @@
   LONG_USERNAME: 'LONG_USERNAME',
   CONFLICT_PROFILE: 'CONFLICT_PROFILE',
   CONFLICT_ACCOUNT: 'CONFLICT_ACCOUNT',
+  LONG_NOTE: 'LONG_NOTE',
+  LONG_CONCATENATED_NOTE: 'LONG_CONCATENATED_NOTE',
 };
 
 /**
@@ -149,7 +151,6 @@
  *   isAndroidCredential: boolean,
  *   note: (string|undefined),
  *   changePasswordUrl: (string|undefined),
- *   hasStartableScript: boolean,
  *   compromisedInfo: (!chrome.passwordsPrivate.CompromisedInfo|undefined)
  * }}
  */
@@ -267,11 +268,10 @@
  * corresponding to |ids|. Note that on some operating systems, this call may
  * result in an OS-level reauthentication. Once the PasswordUiEntry has been
  * fetched, it will be returned via |callback|.
- * @param {!Array<number>} ids The id for the password entry being being
- *     retrieved.
+ * @param {!Array<number>} ids Ids for the password entries being retrieved.
  * @param {function(!Array<!chrome.passwordsPrivate.PasswordUiEntry>): void}
  *     callback The callback that gets invoked with the retrieved
- *     PasswordUiEntry.
+ *     PasswordUiEntries.
  */
 chrome.passwordsPrivate.requestCredentialsDetails = function(ids, callback) {};
 
@@ -283,11 +283,11 @@
 chrome.passwordsPrivate.getSavedPasswordList = function(callback) {};
 
 /**
- * Returns the list of Credentials groups.
+ * Returns the list of Credential groups.
  * @param {function(!Array<!chrome.passwordsPrivate.CredentialGroup>): void}
  *     callback Called with the list of groups.
  */
-chrome.passwordsPrivate.getCredentialsGroups = function(callback) {};
+chrome.passwordsPrivate.getCredentialGroups = function(callback) {};
 
 /**
  * Returns the list of password exceptions.
@@ -378,17 +378,9 @@
  * Records that a change password flow was started for |credential|.
  * @param {!chrome.passwordsPrivate.PasswordUiEntry} credential The credential
  *     for which the flow was triggered.
- * @param {boolean} isManualFlow
  * @param {function(): void=} callback
  */
-chrome.passwordsPrivate.recordChangePasswordFlowStarted = function(credential, isManualFlow, callback) {};
-
-/**
- * Refreshes the cache for automatic password change scripts if it is stale.
- * Invokes `callback` on completion.
- * @param {function(): void=} callback
- */
-chrome.passwordsPrivate.refreshScriptsIfNecessary = function(callback) {};
+chrome.passwordsPrivate.recordChangePasswordFlowStarted = function(credential, callback) {};
 
 /**
  * Starts a check for insecure passwords. Invokes |callback| on completion.
@@ -410,15 +402,6 @@
 chrome.passwordsPrivate.getPasswordCheckStatus = function(callback) {};
 
 /**
- * Starts an automated password change for |credential|. Invokes |callback| on
- * completion with a boolean parameter that signals whether the credential was
- * changed successfully.
- * @param {!chrome.passwordsPrivate.PasswordUiEntry} credential
- * @param {function(boolean): void=} callback
- */
-chrome.passwordsPrivate.startAutomatedPasswordChange = function(credential, callback) {};
-
-/**
  * Requests whether the account store is a default location for saving
  * passwords. False means the device store is a default one. Must be called when
  * the current user has already opted-in for account storage.
diff --git a/third_party/nearby/README.chromium b/third_party/nearby/README.chromium
index ee162426..735fbd0 100644
--- a/third_party/nearby/README.chromium
+++ b/third_party/nearby/README.chromium
@@ -1,7 +1,7 @@
 Name: Nearby Connections Library
 Short Name: Nearby
 URL: https://github.com/google/nearby
-Version: 6871b9d5a6c5bf74bc1e8f893a4cc4ddef1b6491
+Version: 82f35a140130c606a36e08b88a182b428e1b0fc3
 License: Apache 2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/webrtc_overrides/BUILD.gn b/third_party/webrtc_overrides/BUILD.gn
index 463e90e96..f742a92 100644
--- a/third_party/webrtc_overrides/BUILD.gn
+++ b/third_party/webrtc_overrides/BUILD.gn
@@ -14,6 +14,7 @@
 webrtc_public_configs = [ "//third_party/webrtc:common_inherited_config" ]
 
 webrtc_public_deps = [
+  ":bridge_ice_controller",
   ":init_webrtc",
   ":metrics",
   ":task_queue_factory",
@@ -256,3 +257,25 @@
   sources = [ "rtc_base/system_time.cc" ]
   deps = [ "//base" ]
 }
+
+source_set("bridge_ice_controller") {
+  visibility = [ ":*" ]
+  sources = [
+    # Tested in
+    # third_party/blink/renderer/platform/peerconnection/bridge_ice_controller_test.cc
+    "p2p/base/bridge_ice_controller.cc",
+    "p2p/base/bridge_ice_controller.h",
+    "p2p/base/bridge_ice_transport_factory.cc",
+    "p2p/base/bridge_ice_transport_factory.h",
+  ]
+  configs += [ "//third_party/webrtc:library_impl_config" ]
+  deps = [
+    "//base",
+    "//third_party/webrtc/api:ice_transport_interface",
+    "//third_party/webrtc/api:make_ref_counted",
+    "//third_party/webrtc/api:scoped_refptr",
+    "//third_party/webrtc/p2p:rtc_p2p",
+    "//third_party/webrtc/rtc_base:logging",
+    "//third_party/webrtc/rtc_base/system:rtc_export",
+  ]
+}
diff --git a/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.cc b/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.cc
new file mode 100644
index 0000000..ded05c02
--- /dev/null
+++ b/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.cc
@@ -0,0 +1,258 @@
+// 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.
+
+#include "third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h"
+
+#include <memory>
+#include <vector>
+
+#include "base/check.h"
+#include "base/functional/bind.h"
+#include "base/location.h"
+#include "base/time/time.h"
+
+#include "third_party/webrtc/p2p/base/active_ice_controller_interface.h"
+#include "third_party/webrtc/p2p/base/connection.h"
+#include "third_party/webrtc/p2p/base/ice_agent_interface.h"
+#include "third_party/webrtc/p2p/base/ice_controller_factory_interface.h"
+#include "third_party/webrtc/p2p/base/ice_controller_interface.h"
+#include "third_party/webrtc/p2p/base/ice_switch_reason.h"
+#include "third_party/webrtc/p2p/base/ice_transport_internal.h"
+#include "third_party/webrtc/p2p/base/transport_description.h"
+
+namespace {
+using cricket::Connection;
+using cricket::IceAgentInterface;
+using cricket::IceConfig;
+using cricket::IceControllerInterface;
+using cricket::IceMode;
+using cricket::IceRole;
+using cricket::IceSwitchReason;
+using cricket::NominationMode;
+}  // unnamed namespace
+
+namespace blink {
+
+BridgeIceController::BridgeIceController(
+    scoped_refptr<base::SequencedTaskRunner> network_task_runner,
+    IceAgentInterface* ice_agent,
+    std::unique_ptr<IceControllerInterface> native_controller)
+    : network_task_runner_(std::move(network_task_runner)),
+      native_controller_(std::move(native_controller)),
+      agent_(*ice_agent),
+      weak_factory_(this) {
+  DCHECK(ice_agent != nullptr);
+}
+
+BridgeIceController::~BridgeIceController() = default;
+
+void BridgeIceController::SetIceConfig(const IceConfig& config) {
+  native_controller_->SetIceConfig(config);
+}
+
+bool BridgeIceController::GetUseCandidateAttribute(
+    const Connection* connection,
+    NominationMode mode,
+    IceMode remote_ice_mode) const {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  return native_controller_->GetUseCandidateAttr(connection, mode,
+                                                 remote_ice_mode);
+}
+
+void BridgeIceController::OnConnectionAdded(const Connection* connection) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  native_controller_->AddConnection(connection);
+}
+
+void BridgeIceController::OnConnectionPinged(const Connection* connection) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  native_controller_->MarkConnectionPinged(connection);
+}
+
+void BridgeIceController::OnConnectionUpdated(const Connection* connection) {
+  RTC_LOG(LS_VERBOSE) << "Connection report for " << connection->ToString();
+  // Do nothing. Native ICE controllers have direct access to Connection, so no
+  // need to update connection state separately.
+}
+
+void BridgeIceController::OnConnectionSwitched(const Connection* connection) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  selected_connection_ = connection;
+  native_controller_->SetSelectedConnection(connection);
+}
+
+void BridgeIceController::OnConnectionDestroyed(const Connection* connection) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  native_controller_->OnConnectionDestroyed(connection);
+}
+
+void BridgeIceController::MaybeStartPinging() {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  if (started_pinging_) {
+    return;
+  }
+
+  if (native_controller_->HasPingableConnection()) {
+    // Enqueue a task to select a connection and ping.
+    // TODO(crbug.com/1369096): this can probably happen right away but retained
+    // as a PostTask from the native WebRTC ICE controller. Remove if possible.
+    network_task_runner_->PostTask(
+        FROM_HERE, base::BindOnce(&BridgeIceController::SelectAndPingConnection,
+                                  weak_factory_.GetWeakPtr()));
+    agent_.OnStartedPinging();
+    started_pinging_ = true;
+  }
+}
+
+void BridgeIceController::SelectAndPingConnection() {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  agent_.UpdateConnectionStates();
+
+  IceControllerInterface::PingResult result =
+      native_controller_->SelectConnectionToPing(agent_.GetLastPingSentMs());
+  HandlePingResult(result);
+}
+
+void BridgeIceController::HandlePingResult(
+    IceControllerInterface::PingResult result) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+
+  if (result.connection.has_value()) {
+    agent_.SendPingRequest(result.connection.value());
+  }
+
+  network_task_runner_->PostDelayedTask(
+      FROM_HERE,
+      base::BindOnce(&BridgeIceController::SelectAndPingConnection,
+                     weak_factory_.GetWeakPtr()),
+      base::Milliseconds(result.recheck_delay_ms));
+}
+
+void BridgeIceController::OnSortAndSwitchRequest(IceSwitchReason reason) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  if (!sort_pending_) {
+    // To avoid recursion, enqueue a task to sort connections and check if a
+    // better connection is available (this may lead to connection state changes
+    // that trigger this request again). It is acceptable to perform other tasks
+    // in between. In fact, tasks to send pings must be allowed to run as these
+    // may affect the result of the sort operation and, consequently, which
+    // connection is selected. It is also acceptable to perform a
+    // sort-and-switch even if another sort-and-switch occurs right away, eg. in
+    // response to a nomination from the peer.
+    network_task_runner_->PostTask(
+        FROM_HERE,
+        base::BindOnce(&BridgeIceController::SortAndSwitchToBestConnection,
+                       weak_factory_.GetWeakPtr(), reason));
+    sort_pending_ = true;
+  }
+}
+
+void BridgeIceController::SortAndSwitchToBestConnection(
+    IceSwitchReason reason) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  if (!sort_pending_) {
+    return;
+  }
+
+  // Any changes after this point will require a re-sort.
+  sort_pending_ = false;
+  DoSortAndSwitchToBestConnection(reason);
+}
+
+void BridgeIceController::OnImmediateSortAndSwitchRequest(
+    IceSwitchReason reason) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  DoSortAndSwitchToBestConnection(reason);
+}
+
+void BridgeIceController::DoSortAndSwitchToBestConnection(
+    IceSwitchReason reason) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+
+  // Make sure the connection states are up-to-date since this affects how they
+  // will be sorted.
+  agent_.UpdateConnectionStates();
+
+  IceControllerInterface::SwitchResult result =
+      native_controller_->SortAndSwitchConnection(reason);
+  HandleSwitchResult(reason, result);
+  UpdateStateOnConnectionsResorted();
+}
+
+bool BridgeIceController::OnImmediateSwitchRequest(IceSwitchReason reason,
+                                                   const Connection* selected) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  IceControllerInterface::SwitchResult result =
+      native_controller_->ShouldSwitchConnection(reason, selected);
+  HandleSwitchResult(reason, result);
+  return result.connection.has_value();
+}
+
+void BridgeIceController::HandleSwitchResult(
+    IceSwitchReason reason_for_switch,
+    IceControllerInterface::SwitchResult result) {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  if (result.connection.has_value()) {
+    RTC_LOG(LS_INFO) << "Switching selected connection due to: "
+                     << IceSwitchReasonToString(reason_for_switch);
+    agent_.SwitchSelectedConnection(result.connection.value(),
+                                    reason_for_switch);
+  }
+
+  if (result.recheck_event.has_value()) {
+    // If we do not switch to the connection because it missed the receiving
+    // threshold, the new connection is in a better receiving state than the
+    // currently selected connection. So we need to re-check whether it needs
+    // to be switched at a later time.
+    network_task_runner_->PostDelayedTask(
+        FROM_HERE,
+        base::BindOnce(&BridgeIceController::DoSortAndSwitchToBestConnection,
+                       weak_factory_.GetWeakPtr(),
+                       result.recheck_event->reason),
+        base::Milliseconds(result.recheck_event->recheck_delay_ms));
+  }
+
+  agent_.ForgetLearnedStateForConnections(
+      result.connections_to_forget_state_on);
+}
+
+void BridgeIceController::UpdateStateOnConnectionsResorted() {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  PruneConnections();
+
+  // Update the internal state of the ICE agentl.
+  agent_.UpdateState();
+
+  // Also possibly start pinging.
+  // We could start pinging if:
+  // * The first connection was created.
+  // * ICE credentials were provided.
+  // * A TCP connection became connected.
+  MaybeStartPinging();
+}
+
+void BridgeIceController::PruneConnections() {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+
+  // The controlled side can prune only if the selected connection has been
+  // nominated because otherwise it may prune the connection that will be
+  // selected by the controlling side.
+  // TODO(honghaiz): This is not enough to prevent a connection from being
+  // pruned too early because with aggressive nomination, the controlling side
+  // will nominate every connection until it becomes writable.
+  if (agent_.GetIceRole() == cricket::ICEROLE_CONTROLLING ||
+      (selected_connection_ && selected_connection_->nominated())) {
+    std::vector<const Connection*> connections_to_prune =
+        native_controller_->PruneConnections();
+    agent_.PruneConnections(connections_to_prune);
+  }
+}
+
+// Only for unit tests
+const Connection* BridgeIceController::FindNextPingableConnection() {
+  DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
+  return native_controller_->FindNextPingableConnection();
+}
+
+}  // namespace blink
diff --git a/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h b/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h
new file mode 100644
index 0000000..6d11b0f
--- /dev/null
+++ b/third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h
@@ -0,0 +1,93 @@
+// 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 THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_CONTROLLER_H_
+#define THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_CONTROLLER_H_
+
+#include <memory>
+
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/task/sequenced_task_runner.h"
+
+#include "third_party/webrtc/p2p/base/active_ice_controller_interface.h"
+#include "third_party/webrtc/p2p/base/connection.h"
+#include "third_party/webrtc/p2p/base/ice_agent_interface.h"
+#include "third_party/webrtc/p2p/base/ice_controller_interface.h"
+#include "third_party/webrtc/p2p/base/ice_switch_reason.h"
+#include "third_party/webrtc/p2p/base/ice_transport_internal.h"
+#include "third_party/webrtc/p2p/base/transport_description.h"
+#include "third_party/webrtc/rtc_base/system/rtc_export.h"
+
+namespace blink {
+
+// BridgeIceController allows criculating ICE controller requests through blink
+// before taking the necessary action. This enables blink to consult with the
+// application before manipulating the ICE transport.
+//
+// BridgeIceController is constructed and owned for the entirety of its lifetime
+// by the native ICE transport (i.e. P2PTransportChannel). It must be called on
+// the same sequence (or thread) on which the ICE agent expects to be invoked.
+class RTC_EXPORT BridgeIceController
+    : public cricket::ActiveIceControllerInterface {
+ public:
+  // Constructs an ICE controller wrapping an already constructed native webrtc
+  // ICE controller. Does not take ownership of the ICE agent, which must
+  // already exist and outlive the ICE controller. Task runner should be the
+  // sequence on which the ICE agent expects to be invoked.
+  BridgeIceController(
+      scoped_refptr<base::SequencedTaskRunner> network_task_runner,
+      cricket::IceAgentInterface* ice_agent,
+      std::unique_ptr<cricket::IceControllerInterface> native_controller);
+  ~BridgeIceController() override;
+
+  void SetIceConfig(const cricket::IceConfig& config) override;
+  bool GetUseCandidateAttribute(
+      const cricket::Connection* connection,
+      cricket::NominationMode mode,
+      cricket::IceMode remote_ice_mode) const override;
+
+  void OnConnectionAdded(const cricket::Connection* connection) override;
+  void OnConnectionPinged(const cricket::Connection* connection) override;
+  void OnConnectionUpdated(const cricket::Connection* connection) override;
+  void OnConnectionSwitched(const cricket::Connection* connection) override;
+  void OnConnectionDestroyed(const cricket::Connection* connection) override;
+
+  void OnSortAndSwitchRequest(cricket::IceSwitchReason reason) override;
+  void OnImmediateSortAndSwitchRequest(
+      cricket::IceSwitchReason reason) override;
+  bool OnImmediateSwitchRequest(cricket::IceSwitchReason reason,
+                                const cricket::Connection* selected) override;
+
+  // Only for unit tests
+  const cricket::Connection* FindNextPingableConnection() override;
+
+ private:
+  void MaybeStartPinging();
+  void SelectAndPingConnection();
+  void HandlePingResult(cricket::IceControllerInterface::PingResult result);
+
+  void SortAndSwitchToBestConnection(cricket::IceSwitchReason reason);
+  void DoSortAndSwitchToBestConnection(cricket::IceSwitchReason reason);
+  void HandleSwitchResult(cricket::IceSwitchReason reason_for_switch,
+                          cricket::IceControllerInterface::SwitchResult result);
+  void UpdateStateOnConnectionsResorted();
+
+  void PruneConnections();
+
+  const scoped_refptr<base::SequencedTaskRunner> network_task_runner_;
+
+  bool started_pinging_ = false;
+  bool sort_pending_ = false;
+  const cricket::Connection* selected_connection_ = nullptr;
+
+  const std::unique_ptr<cricket::IceControllerInterface> native_controller_;
+  cricket::IceAgentInterface& agent_;
+
+  base::WeakPtrFactory<BridgeIceController> weak_factory_;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_CONTROLLER_H_
diff --git a/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.cc b/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.cc
new file mode 100644
index 0000000..8bdd3ca
--- /dev/null
+++ b/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.cc
@@ -0,0 +1,67 @@
+// 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.
+
+#include "third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.h"
+
+#include <memory>
+
+#include "base/check.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/task/sequenced_task_runner.h"
+#include "base/task/single_thread_task_runner.h"
+
+#include "third_party/webrtc/api/make_ref_counted.h"
+#include "third_party/webrtc/p2p/base/active_ice_controller_factory_interface.h"
+#include "third_party/webrtc/p2p/base/basic_ice_controller.h"
+#include "third_party/webrtc/p2p/base/default_ice_transport_factory.h"
+#include "third_party/webrtc/p2p/base/p2p_transport_channel.h"
+#include "third_party/webrtc_overrides/p2p/base/bridge_ice_controller.h"
+
+namespace blink {
+
+namespace {
+
+// A factory that constructs a BridgeIceController wrapping over a native
+// BasicIceController.
+class BasicActiveIceControllerFactory
+    : public cricket::ActiveIceControllerFactoryInterface {
+ public:
+  explicit BasicActiveIceControllerFactory(
+      scoped_refptr<base::SequencedTaskRunner> task_runner)
+      : task_runner_(std::move(task_runner)) {}
+  ~BasicActiveIceControllerFactory() override = default;
+
+  std::unique_ptr<cricket::ActiveIceControllerInterface> Create(
+      const cricket::ActiveIceControllerFactoryArgs& args) override {
+    return std::make_unique<blink::BridgeIceController>(
+        task_runner_, args.ice_agent,
+        std::make_unique<cricket::BasicIceController>(args.legacy_args));
+  }
+
+ private:
+  const scoped_refptr<base::SequencedTaskRunner> task_runner_;
+};
+
+}  // namespace
+
+BridgeIceTransportFactory::BridgeIceTransportFactory(
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+    : network_task_runner_(std::move(task_runner)) {}
+
+rtc::scoped_refptr<webrtc::IceTransportInterface>
+BridgeIceTransportFactory::CreateIceTransport(const std::string& transport_name,
+                                              int component,
+                                              webrtc::IceTransportInit init) {
+  // Check that we're running on the WebRTC network thread before handing it
+  // over to the ICE controller factory, because P2PTransportChannel expects to
+  // be called only on the current thread.
+  DCHECK(network_task_runner_->BelongsToCurrentThread());
+  BasicActiveIceControllerFactory factory(network_task_runner_);
+  init.set_active_ice_controller_factory(&factory);
+  return rtc::make_ref_counted<webrtc::DefaultIceTransport>(
+      cricket::P2PTransportChannel::Create(transport_name, component,
+                                           std::move(init)));
+}
+
+}  // namespace blink
diff --git a/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.h b/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.h
new file mode 100644
index 0000000..60f3595
--- /dev/null
+++ b/third_party/webrtc_overrides/p2p/base/bridge_ice_transport_factory.h
@@ -0,0 +1,41 @@
+// 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 THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_TRANSPORT_FACTORY_H_
+#define THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_TRANSPORT_FACTORY_H_
+
+#include <memory>
+
+#include "base/memory/scoped_refptr.h"
+#include "base/task/single_thread_task_runner.h"
+
+#include "third_party/webrtc/api/ice_transport_interface.h"
+#include "third_party/webrtc/api/scoped_refptr.h"
+#include "third_party/webrtc/rtc_base/system/rtc_export.h"
+
+namespace blink {
+
+// An ICE transport factory to construct transports backed by
+// P2PTransportChannel and controlled by a BridgeIceController.
+class RTC_EXPORT BridgeIceTransportFactory final
+    : public webrtc::IceTransportFactory {
+ public:
+  // Task runner must be bound to the WebRTC network thread, on which
+  // P2PTransportChannel expects to be constructed and used.
+  explicit BridgeIceTransportFactory(
+      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+  ~BridgeIceTransportFactory() override = default;
+
+  rtc::scoped_refptr<webrtc::IceTransportInterface> CreateIceTransport(
+      const std::string& transport_name,
+      int component,
+      webrtc::IceTransportInit init) override;
+
+ private:
+  const scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_WEBRTC_OVERRIDES_P2P_BASE_BRIDGE_ICE_TRANSPORT_FACTORY_H_
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 7a98085f..c7065e9 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -31072,6 +31072,20 @@
   <int value="902" label="SERVICE_POLICY_NOT_FOUND"/>
 </enum>
 
+<enum name="EnterpriseDlpPolicyCrOSFanotifyError">
+  <summary>
+    Type of errors triggered by fanotify usage in the ChromeOS Data Leak
+    Prevention daemon.
+  </summary>
+  <int value="0" label="Unknown error"/>
+  <int value="1" label="fanotify_mark error"/>
+  <int value="2" label="select error"/>
+  <int value="3" label="ioctl error"/>
+  <int value="4" label="fd error"/>
+  <int value="5" label="Metadata mismatch error"/>
+  <int value="6" label="fstat error"/>
+</enum>
+
 <enum name="EnterpriseDlpPolicyFileAction">
   <summary>
     Types of restricted file actions checked by Data Leak Prevention policy.
@@ -35609,9 +35623,10 @@
   <int value="1677" label="AUTOTESTPRIVATE_ISINPUTMETHODREADYFORTESTING"/>
   <int value="1678" label="AUTOTESTPRIVATE_GETARCAPPKILLS"/>
   <int value="1679" label="FILEMANAGERPRIVATE_OPENMANAGESYNCSETTINGS"/>
-  <int value="1680" label="PASSWORDSPRIVATE_STARTAUTOMATEDPASSWORDCHANGE"/>
+  <int value="1680"
+      label="DELETED_PASSWORDSPRIVATE_STARTAUTOMATEDPASSWORDCHANGE"/>
   <int value="1681" label="OFFSCREEN_CREATEDOCUMENT"/>
-  <int value="1682" label="PASSWORDSPRIVATE_REFRESHSCRIPTSIFNECESSARY"/>
+  <int value="1682" label="DELETED_PASSWORDSPRIVATE_REFRESHSCRIPTSIFNECESSARY"/>
   <int value="1683" label="OFFSCREEN_CLOSEDOCUMENT"/>
   <int value="1684" label="WMDESKSPRIVATE_SETWINDOWPROPERTIES"/>
   <int value="1685" label="AUTOTESTPRIVATE_LAUNCHFILESAPPTOPATH"/>
@@ -41675,6 +41690,13 @@
   <int value="4401" label="SoftNavigationHeuristics"/>
   <int value="4402" label="MathMLMathElement"/>
   <int value="4403" label="MathMLMathElementInDocument"/>
+  <int value="4404" label="CSSAtRuleStylistic"/>
+  <int value="4405" label="CSSAtRuleStyleset"/>
+  <int value="4406" label="CSSAtRuleCharacterVariant"/>
+  <int value="4407" label="CSSAtRuleSwash"/>
+  <int value="4408" label="CSSAtRuleOrnaments"/>
+  <int value="4409" label="CSSAtRuleAnnotation"/>
+  <int value="4410" label="ServiceWorkerBypassFetchHandlerForMainResource"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -78023,6 +78045,8 @@
   <int value="8" label="Long username"/>
   <int value="9" label="Conflict profile"/>
   <int value="10" label="Conflict account"/>
+  <int value="11" label="Long note"/>
+  <int value="12" label="Long concatenated note"/>
 </enum>
 
 <enum name="PasswordManagerImportResultsStatus">
diff --git a/tools/metrics/histograms/metadata/chromeos/histograms.xml b/tools/metrics/histograms/metadata/chromeos/histograms.xml
index 6cfc818..ff18f778 100644
--- a/tools/metrics/histograms/metadata/chromeos/histograms.xml
+++ b/tools/metrics/histograms/metadata/chromeos/histograms.xml
@@ -1277,7 +1277,7 @@
 </histogram>
 
 <histogram name="ChromeOS.Intents.LinkCapturingEvent2"
-    enum="LinkCapturingEvent" expires_after="2023-05-27">
+    enum="LinkCapturingEvent" expires_after="2023-05-28">
   <owner>vpao@google.com</owner>
   <owner>chromeos-apps-foundation-team@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml
index f95424e..688f6015 100644
--- a/tools/metrics/histograms/metadata/enterprise/histograms.xml
+++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -25,38 +25,13 @@
 <variants name="CleanupHandler">
   <variant name="Browser"
       summary="Handler for open browser windows and browsing data"/>
-  <variant name="BrowsingData" summary="Handler for browsing data">
-    <obsolete>
-      Deprecated in M109. Instead use Browser variant which joins BrowsingData
-      and OpenWindows variants.
-    </obsolete>
-  </variant>
   <variant name="Clipboard" summary="Handler for clipboard"/>
   <variant name="Extension" summary="Handler for extensions"/>
   <variant name="Files" summary="Handler for files"/>
   <variant name="Lacros" summary="Handler which calls cleanup on Lacros"/>
   <variant name="LacrosBrowser"
       summary="Handler for open browser windows and browsing data on Lacros"/>
-  <variant name="LacrosBrowsingData" summary="Handler for files on Lacros">
-    <obsolete>
-      Deprecated in M109. Instead use LacrosBrowser variant which joins
-      LacrosBrowsingData and LacrosOpenWindows variants.
-    </obsolete>
-  </variant>
   <variant name="LacrosExtension" summary="Handler for extensions on Lacros"/>
-  <variant name="LacrosOpenWindows"
-      summary="Handler for open browser windows on Lacros">
-    <obsolete>
-      Deprecated in M109. Instead use LacrosBrowser variant which joins
-      LacrosBrowsingData and LacrosOpenWindows variants.
-    </obsolete>
-  </variant>
-  <variant name="OpenWindows" summary="Handler for open browser windows">
-    <obsolete>
-      Deprecated in M109. Instead use Browser variant which joins BrowsingData
-      and OpenWindows variants.
-    </obsolete>
-  </variant>
   <variant name="PrintJobs" summary="Handler for print jobs"/>
 </variants>
 
@@ -1147,6 +1122,16 @@
   </summary>
 </histogram>
 
+<histogram name="Enterprise.Dlp.Errors.Fanotify"
+    enum="EnterpriseDlpPolicyCrOSFanotifyError" expires_after="2023-06-01">
+  <owner>accorsi@google.com</owner>
+  <owner>chromeos-dlp@google.com</owner>
+  <summary>
+    Recorded when an error occurs during fanotify usage in the Data Leak
+    Prevention daemon.
+  </summary>
+</histogram>
+
 <histogram name="Enterprise.Dlp.Errors.FilesPolicySetup" enum="Boolean"
     expires_after="2023-06-01">
   <owner>accorsi@google.com</owner>
@@ -2031,15 +2016,17 @@
 </histogram>
 
 <histogram name="Enterprise.LoginApiCleanup.{CleanupHandler}.Success"
-    enum="BooleanSuccess" expires_after="2022-12-31">
-  <owner>hendrich@chromium.org</owner>
+    enum="BooleanSuccess" expires_after="2023-12-31">
+  <owner>mpetrisor@chromium.org</owner>
+  <owner>imprivata-eng@google.com</owner>
   <summary>ChromeOS only. Records if cleanup handler succeeded.</summary>
   <token key="CleanupHandler" variants="CleanupHandler"/>
 </histogram>
 
 <histogram name="Enterprise.LoginApiCleanup.{CleanupHandler}.Timing" units="ms"
-    expires_after="2022-12-31">
-  <owner>hendrich@chromium.org</owner>
+    expires_after="2023-12-31">
+  <owner>mpetrisor@chromium.org</owner>
+  <owner>imprivata-eng@google.com</owner>
   <summary>
     ChromeOS only. Records the duration the cleanup handler took.
   </summary>
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml
index 825f6a9..1fa75285 100644
--- a/tools/metrics/histograms/metadata/media/histograms.xml
+++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -1548,7 +1548,7 @@
 </histogram>
 
 <histogram name="Media.AudioRendererMissedDeadline" units="%"
-    expires_after="2023-05-27">
+    expires_after="2023-05-28">
   <owner>dalecurtis@chromium.org</owner>
   <owner>olka@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml
index d7ba57f..7fd5702 100644
--- a/tools/metrics/histograms/metadata/password/histograms.xml
+++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -1143,15 +1143,6 @@
   </summary>
 </histogram>
 
-<histogram name="PasswordManager.CapabilitiesService.HttpResponseCode"
-    enum="HttpResponseCode" expires_after="2023-04-16">
-  <owner>vizcay@google.com</owner>
-  <owner>battre@chromium.org</owner>
-  <summary>
-    HTTP response code of fetching domains' password change capabilities.
-  </summary>
-</histogram>
-
 <histogram name="PasswordManager.CertificateErrorsWhileSeeingForms"
     enum="PasswordCertificateError" expires_after="2023-04-16">
   <owner>battre@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/web_rtc/histograms.xml b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
index 11f9ae9..319fc6f 100644
--- a/tools/metrics/histograms/metadata/web_rtc/histograms.xml
+++ b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
@@ -1259,13 +1259,16 @@
 </histogram>
 
 <histogram name="WebRTC.PeerConnection.ConnectionState"
-    enum="IceConnectionStates" expires_after="2022-08-21">
-  <owner>qingsi@google.com</owner>
-  <owner>jeroendb@google.com</owner>
+    enum="IceConnectionStates" expires_after="2023-11-01">
+  <owner>hta@chromium.org</owner>
+  <owner>webrtc-dev@chromium.org</owner>
   <summary>
     Counters of ICE Connection states. These values are logged when the
     PeerConnection gets into that state for the first time or after the ICE
     restart.
+
+    Warning: This histogram was expired from 2022-08-21 to 2022-10-29. Data may
+    be missing.
   </summary>
 </histogram>
 
@@ -1380,11 +1383,14 @@
 </histogram>
 
 <histogram name="WebRTC.PeerConnection.IPv4Interfaces" units="units"
-    expires_after="M81">
-  <owner>qingsi@google.com</owner>
-  <owner>jeroendb@google.com</owner>
+    expires_after="2023-11-01">
+  <owner>hta@chromium.org</owner>
+  <owner>webrtc-dev@chromium.org</owner>
   <summary>
     Number of IPv4 network interfaces discovered in a PeerConnection Session.
+
+    Warning: This histogram was expired from M81 to M110 Canary (2022-10-29).
+    Data may be missing.
   </summary>
 </histogram>
 
@@ -1400,11 +1406,14 @@
 </histogram>
 
 <histogram name="WebRTC.PeerConnection.IPv6Interfaces" units="units"
-    expires_after="M81">
-  <owner>qingsi@google.com</owner>
-  <owner>jeroendb@google.com</owner>
+    expires_after="2023-11-01">
+  <owner>hta@chromium.org</owner>
+  <owner>webrtc-dev@chromium.org</owner>
   <summary>
     Number of IPv6 network interfaces discovered in a PeerConnection Session.
+
+    Warning: This histogram was expired from M81 to M110 Canary (2022-10-29).
+    Data may be missing.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/webapps/histograms.xml b/tools/metrics/histograms/metadata/webapps/histograms.xml
index 74284f5..78519140 100644
--- a/tools/metrics/histograms/metadata/webapps/histograms.xml
+++ b/tools/metrics/histograms/metadata/webapps/histograms.xml
@@ -816,6 +816,18 @@
   </summary>
 </histogram>
 
+<histogram name="WebApp.Isolated.SignatureVerificationFileLength" units="MiB"
+    expires_after="2023-11-08">
+  <owner>cmfcmf@chromium.org</owner>
+  <owner>peletskyi@chromium.org</owner>
+  <summary>
+    Records the file length of Signed Web Bundles used for Isolated Web Apps
+    every time their signatures are verified. Signatures are verified during
+    installation (all platforms) and when an Isolated Web App is first accessed
+    during a Chrome session (non-ChromeOS platforms only).
+  </summary>
+</histogram>
+
 <histogram name="WebApp.Launcher.LaunchResult"
     enum="WebAppLauncherLaunchResult" expires_after="2023-04-16">
   <owner>davidbienvenu@chromium.org</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index c5df5ca2..0fc938d 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,7 +6,7 @@
         },
         "win": {
             "hash": "7b8e642a108d95fa8aa71a91f0841d417f9fc477",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/36fb00a3c36d9c367f50ba03c9bd9c4f5f45161b/trace_processor_shell.exe"
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/600d5270680543bc0657c1371f741547604fea86/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "6373f26144aad58f230d11d6a91efda5a09c9873",
@@ -22,7 +22,7 @@
         },
         "linux": {
             "hash": "a70f8f1b2deba909d96f2fa8ef491c00dcfb8bfb",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/36fb00a3c36d9c367f50ba03c9bd9c4f5f45161b/trace_processor_shell"
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/600d5270680543bc0657c1371f741547604fea86/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/typescript/definitions/passwords_private.d.ts b/tools/typescript/definitions/passwords_private.d.ts
index fd044ace..2d9d1984 100644
--- a/tools/typescript/definitions/passwords_private.d.ts
+++ b/tools/typescript/definitions/passwords_private.d.ts
@@ -70,6 +70,8 @@
         LONG_USERNAME = 'LONG_USERNAME',
         CONFLICT_PROFILE = 'CONFLICT_PROFILE',
         CONFLICT_ACCOUNT = 'CONFLICT_ACCOUNT',
+        LONG_NOTE = 'LONG_NOTE',
+        LONG_CONCATENATED_NOTE = 'LONG_CONCATENATED_NOTE',
       }
 
       export interface ImportEntry {
@@ -108,7 +110,6 @@
         isAndroidCredential: boolean;
         note?: string;
         changePasswordUrl?: string;
-        hasStartableScript: boolean;
         compromisedInfo?: CompromisedInfo;
       }
 
@@ -179,13 +180,10 @@
       export function unmuteInsecureCredential(credential: PasswordUiEntry):
           Promise<void>;
       export function recordChangePasswordFlowStarted(
-          credential: PasswordUiEntry, isManualFlow: boolean): void;
-      export function refreshScriptsIfNecessary(): Promise<void>;
+          credential: PasswordUiEntry): void;
       export function startPasswordCheck(): Promise<void>;
       export function stopPasswordCheck(): Promise<void>;
       export function getPasswordCheckStatus(): Promise<PasswordCheckStatus>;
-      export function startAutomatedPasswordChange(credential: PasswordUiEntry):
-          Promise<boolean>;
       export function isAccountStoreDefault(): Promise<boolean>;
       export function getUrlCollection(url: string):
           Promise<UrlCollection|null>;
diff --git a/ui/base/interaction/interaction_sequence.cc b/ui/base/interaction/interaction_sequence.cc
index 4d3b1f0d..f14b1b8 100644
--- a/ui/base/interaction/interaction_sequence.cc
+++ b/ui/base/interaction/interaction_sequence.cc
@@ -263,12 +263,6 @@
   return *this;
 }
 
-InteractionSequence::StepBuilder&
-InteractionSequence::StepBuilder::SetFindElementInAnyContext(bool any_context) {
-  step_->context = any_context ? ContextMode::kAny : ContextMode::kInitial;
-  return *this;
-}
-
 InteractionSequence::StepBuilder& InteractionSequence::StepBuilder::SetType(
     StepType step_type,
     CustomElementEventType event_type) {
diff --git a/ui/base/interaction/interaction_sequence.h b/ui/base/interaction/interaction_sequence.h
index c11c456..6c639f9 100644
--- a/ui/base/interaction/interaction_sequence.h
+++ b/ui/base/interaction/interaction_sequence.h
@@ -273,12 +273,6 @@
     // timeout, user interaction, etc.)
     StepBuilder& SetTransitionOnlyOnEvent(bool transition_only_on_event);
 
-    // Specifies whether the step can refer to an element in any context.
-    // Not compatible with SetContext() or SetElementName(). Currently only
-    // supported for kShown events.
-    // Deprecated. Use SetContext() instead.
-    [[deprecated]] StepBuilder& SetFindElementInAnyContext(bool any_context);
-
     // Sets the callback called at the start of the step.
     StepBuilder& SetStartCallback(StepStartCallback start_callback);
 
diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
index 498bd2f4..43b838e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Persoon doen tai tji</translation>
 <translation id="6876155724392614295">Fiets</translation>
 <translation id="6878261347041253038">Devanagari-sleutelbord (foneties)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Slak</translation>
 <translation id="6896758677409633944">Kopieer</translation>
 <translation id="6898028766943174120">Meer subvouers …</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_am.xtb b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
index 9d05270..15d5706 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_am.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">ታይ ቺ የሚያደርግ ሰው</translation>
 <translation id="6876155724392614295">ቢስክሌት</translation>
 <translation id="6878261347041253038">የዴቫናጋሪ ቁልፍ ሰሌዳ (ፎነቲክ)</translation>
-<translation id="6881853403185175088">ኦፊስ</translation>
 <translation id="6885780034956018177">ቀንድ አውጣ</translation>
 <translation id="6896758677409633944">ቅዳ</translation>
 <translation id="6898028766943174120">ተጨማሪ ንዑሳን አቃፊዎች...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
index 1a60b38f..881bcc4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">شخص يمارس تمارين "تاي تشي"</translation>
 <translation id="6876155724392614295">دراجة</translation>
 <translation id="6878261347041253038">لوحة المفاتيح الديفانغارية (صوتية)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">حلزون</translation>
 <translation id="6896758677409633944">نسخ</translation>
 <translation id="6898028766943174120">المزيد من المجلدات الفرعية...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
index 411f76a5..4f00c3d9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">টাই চি কৰি থকা ব্যক্তিৰ ছবি</translation>
 <translation id="6876155724392614295">বাইক</translation>
 <translation id="6878261347041253038">দেৱনাগৰী কীব’ৰ্ড (উচ্চাৰণগত)</translation>
-<translation id="6881853403185175088">কাৰ্যালয়</translation>
 <translation id="6885780034956018177">শামুক</translation>
 <translation id="6896758677409633944">প্ৰতিলিপি কৰক</translation>
 <translation id="6898028766943174120">অধিক ছাব-ফ'ল্ডাৰ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
index 9f532ea8c..39e7a79 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Tay-çi ilə məşğul olan adam</translation>
 <translation id="6876155724392614295">Velosiped</translation>
 <translation id="6878261347041253038">Devanaqari klaviaturası (fonetik)</translation>
-<translation id="6881853403185175088">Ofis</translation>
 <translation id="6885780034956018177">İlbiz</translation>
 <translation id="6896758677409633944">Kopyalayın</translation>
 <translation id="6898028766943174120">Digər alt qovluqlar...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
index a30d5cd..2b29159e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Чалавек займаецца тай-чы</translation>
 <translation id="6876155724392614295">Веласіпед</translation>
 <translation id="6878261347041253038">Клавіятура дэванагары (фанетычная)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Слімак</translation>
 <translation id="6896758677409633944">Капіраваць</translation>
 <translation id="6898028766943174120">Іншыя ўкладзеныя папкі...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
index 777147f7..6b6c8dd 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Човек, който практикува тай чи</translation>
 <translation id="6876155724392614295">Колело</translation>
 <translation id="6878261347041253038">Деванагари клавиатура (фонетична)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Охлюв</translation>
 <translation id="6896758677409633944">Копиране</translation>
 <translation id="6898028766943174120">Още подпапки...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
index e4561ae..25c2f68a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">তাই চি করছে এমন ব্যক্তির ছবি</translation>
 <translation id="6876155724392614295">সাইকেল</translation>
 <translation id="6878261347041253038">দেবনাগরী কীবোর্ড (ফোনেটিক)</translation>
-<translation id="6881853403185175088">অফিস</translation>
 <translation id="6885780034956018177">শামুক</translation>
 <translation id="6896758677409633944">কপি</translation>
 <translation id="6898028766943174120">আরও সাব-ফোল্ডার...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
index 48fdca8..c9d965ac 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Osoba se bavi tai chijem</translation>
 <translation id="6876155724392614295">Bicikl</translation>
 <translation id="6878261347041253038">Devanagari tastatura (fonetska)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Puž</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898028766943174120">Više podfoldera...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
index 9adc2a7d..93e5eb3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Persona fent taitxí</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
 <translation id="6878261347041253038">Teclat devanagari (fonètic)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caragol</translation>
 <translation id="6896758677409633944">Copia</translation>
 <translation id="6898028766943174120">Més subcarpetes...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
index ee5c343..0a42b01 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Člověk cvičící taiči</translation>
 <translation id="6876155724392614295">Kolo</translation>
 <translation id="6878261347041253038">Klávesnice dévanágarí (fonetická)</translation>
-<translation id="6881853403185175088">Kancelář</translation>
 <translation id="6885780034956018177">Hlemýžď</translation>
 <translation id="6896758677409633944">Kopírovat</translation>
 <translation id="6898028766943174120">Další dílčí složky...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
index 5600cce..c8dd0344 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Person yn gwneud tai chi</translation>
 <translation id="6876155724392614295">Beic</translation>
 <translation id="6878261347041253038">Bysellfwrdd Devanagari (Seinegol)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Malwen</translation>
 <translation id="6896758677409633944">Copïo</translation>
 <translation id="6898028766943174120">Rhagor o is-ffolderi...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
index 1d0f8ac..6f3e111f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Person, der dyrker tai chi</translation>
 <translation id="6876155724392614295">Cykel</translation>
 <translation id="6878261347041253038">Devanagari-tastatur (fonetisk)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Snegl</translation>
 <translation id="6896758677409633944">Kopiér</translation>
 <translation id="6898028766943174120">Flere undermapper...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
index de0d6b1..51dd5e3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Person beim Tai-Chi</translation>
 <translation id="6876155724392614295">Fahrrad</translation>
 <translation id="6878261347041253038">Devanagari-Tastatur (phonetisch)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Schnecke</translation>
 <translation id="6896758677409633944">Kopieren</translation>
 <translation id="6898028766943174120">Weitere Unterordner…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_el.xtb b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
index 1e90b65..405be03b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_el.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
@@ -707,7 +707,6 @@
 <translation id="6874758081814639712">Άτομο που κάνει Τάι Τσι</translation>
 <translation id="6876155724392614295">Ποδήλατο</translation>
 <translation id="6878261347041253038">Πληκτρολόγιο Ντεβαναγκάρι (Φωνητικό)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Σαλιγκάρι</translation>
 <translation id="6896758677409633944">Αντιγραφή</translation>
 <translation id="6898028766943174120">Περισσότεροι υποφακέλοι…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
index fb851408..e2677cc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Person doing tai chi</translation>
 <translation id="6876155724392614295">Cycle</translation>
 <translation id="6878261347041253038">Devanagari keyboard (Phonetic)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Snail</translation>
 <translation id="6896758677409633944">Copy</translation>
 <translation id="6898028766943174120">More sub-folders…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
index 0be85c0..56e628a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Persona practicando tai chi</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
 <translation id="6878261347041253038">Teclado devanagari (fonético)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caracol</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898028766943174120">Más subcarpetas…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
index 1742c59..294c845 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Persona practicando taichí</translation>
 <translation id="6876155724392614295">Bici</translation>
 <translation id="6878261347041253038">Teclado devanagari (fonético)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caracol</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898028766943174120">Más subcarpetas…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_et.xtb b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
index d019a36..4bb0caa 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_et.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Tai chid tegev inimene</translation>
 <translation id="6876155724392614295">Jalgratas</translation>
 <translation id="6878261347041253038">Devanagari klaviatuur (foneetiline)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Tigu</translation>
 <translation id="6896758677409633944">Kopeeri</translation>
 <translation id="6898028766943174120">Rohkem alamkaustu …</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
index 323bcb4..13177edc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Tai jia egiten ari den pertsona</translation>
 <translation id="6876155724392614295">Bizikleta</translation>
 <translation id="6878261347041253038">Devanagari teklatua (fonetikoa)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Barraskiloa</translation>
 <translation id="6896758677409633944">Kopiatu</translation>
 <translation id="6898028766943174120">Azpikarpeta gehiago…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
index 37fbec3..4725cdf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">شخصی درحال تمرین تای چی</translation>
 <translation id="6876155724392614295">دوچرخه‌</translation>
 <translation id="6878261347041253038">صفحه‌کلید دواناگری (آوایی)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">حلزون</translation>
 <translation id="6896758677409633944">کپی</translation>
 <translation id="6898028766943174120">پوشه‌های فرعی بیشتر...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
index 26a69ed..13d6d7ca 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Taijia harrastava henkilö</translation>
 <translation id="6876155724392614295">Pyörä</translation>
 <translation id="6878261347041253038">Devanagari-näppäimistö (foneettinen)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Etana</translation>
 <translation id="6896758677409633944">Kopioi</translation>
 <translation id="6898028766943174120">Lisää alikansioita…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
index 7293ba3..0a42171 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Taong nagta-tai chi</translation>
 <translation id="6876155724392614295">Bisikleta</translation>
 <translation id="6878261347041253038">Devanagari keyboard (Phonetic)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Suso</translation>
 <translation id="6896758677409633944">Copy</translation>
 <translation id="6898028766943174120">Higit pang sub-folder...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
index 5dfeabf..4146fa3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -694,7 +694,6 @@
 <translation id="6874758081814639712">Personne faisant du tai-chi</translation>
 <translation id="6876155724392614295">Vélo</translation>
 <translation id="6878261347041253038">Clavier devanagari (phonétique)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Escargot</translation>
 <translation id="6896758677409633944">Copier</translation>
 <translation id="6898028766943174120">Autres sous-dossiers…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
index 5ae5c77c..bd05f1b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Personne faisant du tai-chi</translation>
 <translation id="6876155724392614295">Vélo</translation>
 <translation id="6878261347041253038">Clavier dévanâgarî (phonétique)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Escargot</translation>
 <translation id="6896758677409633944">Copier</translation>
 <translation id="6898028766943174120">Autres sous-dossiers…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
index 2a73d8dd..b9cdc55f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Persoa practicando taichí</translation>
 <translation id="6876155724392614295">Ciclismo</translation>
 <translation id="6878261347041253038">Teclado devanagari (fonético)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caracol</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898028766943174120">Máis subcartafoles…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
index a6aacce9..e9e98ca07 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">તાઈ ચી કરી રહેલી વ્યક્તિ</translation>
 <translation id="6876155724392614295">બાઇક</translation>
 <translation id="6878261347041253038">દેવનાગરી કીબોર્ડ (ધ્વન્યાત્મક)</translation>
-<translation id="6881853403185175088">ઑફિસ</translation>
 <translation id="6885780034956018177">ગોકળગાય</translation>
 <translation id="6896758677409633944">કૉપિ કરો</translation>
 <translation id="6898028766943174120">વધુ સબફોલ્ડરો...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
index 545c1e3d..2eff1b1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">ताई ची करता हुआ व्यक्ति</translation>
 <translation id="6876155724392614295">बाइक</translation>
 <translation id="6878261347041253038">देवनागरी कीबोर्ड (फ़ोनेटिक)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">घोंघा</translation>
 <translation id="6896758677409633944">कॉपी बनाएं</translation>
 <translation id="6898028766943174120">और सब-फ़़ोल्डर...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
index e964a0b..13799f6a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Osoba vježba tai chi</translation>
 <translation id="6876155724392614295">Voziti bicikl</translation>
 <translation id="6878261347041253038">tipkovnica za devanagari (fonetska)</translation>
-<translation id="6881853403185175088">Ured</translation>
 <translation id="6885780034956018177">Puž</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898028766943174120">Više podmapa...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
index 70155670..15cd3c9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Tajcsi gyakorlatot végző ember</translation>
 <translation id="6876155724392614295">Kerékpár</translation>
 <translation id="6878261347041253038">Dévanágari billentyűzet (fonetikus)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Csiga</translation>
 <translation id="6896758677409633944">Másolás</translation>
 <translation id="6898028766943174120">További almappák...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
index a42e0ce..fa4f7af 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Թայ չիով զվաղվող մարդ</translation>
 <translation id="6876155724392614295">Հեծանիվ</translation>
 <translation id="6878261347041253038">Դևանագարի ստեղնաշար (հնչյունաբանական)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Խխունջ</translation>
 <translation id="6896758677409633944">Պատճենել</translation>
 <translation id="6898028766943174120">Այլ ենթապանակներ…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
index 28d1e19..af737a62 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Orang melakukan tai chi</translation>
 <translation id="6876155724392614295">Sepeda</translation>
 <translation id="6878261347041253038">Keyboard Devanagari (Fonetik)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Siput</translation>
 <translation id="6896758677409633944">Salin</translation>
 <translation id="6898028766943174120">Lebih banyak subfolder ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
index 1b8857c..47a2639 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Einstaklingur að æfa tai chi</translation>
 <translation id="6876155724392614295">Hjól</translation>
 <translation id="6878261347041253038">Devanagari-lyklaborð (hljóðritun)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Snigill</translation>
 <translation id="6896758677409633944">Afrita</translation>
 <translation id="6898028766943174120">Fleiri undirmöppur...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_it.xtb b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
index 84bcc9b..5f9be204 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_it.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Persona che fa tai chi</translation>
 <translation id="6876155724392614295">Bicicletta</translation>
 <translation id="6878261347041253038">Tastiera Devanagari (fonetica)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Lumaca</translation>
 <translation id="6896758677409633944">Copia</translation>
 <translation id="6898028766943174120">Altre sottocartelle…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
index 9bf96b3..2d92d03 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -694,7 +694,6 @@
 <translation id="6874758081814639712">אדם מתרגל טאי צ'י</translation>
 <translation id="6876155724392614295">אופניים</translation>
 <translation id="6878261347041253038">מקלדת דוונגארי (פונטית)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">שבלול</translation>
 <translation id="6896758677409633944">העתקה</translation>
 <translation id="6898028766943174120">תיקיות משנה נוספות…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
index 4e0ac8c..fabcdad 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">太極拳をしている人</translation>
 <translation id="6876155724392614295">自転車</translation>
 <translation id="6878261347041253038">デバナーガリ語キーボード(表音)</translation>
-<translation id="6881853403185175088">オフィス</translation>
 <translation id="6885780034956018177">カタツムリ</translation>
 <translation id="6896758677409633944">コピー</translation>
 <translation id="6898028766943174120">その他のサブフォルダ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
index 7112073..0adce7a4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">პიროვნება, რომელიც დაკავებულია ტაიჩითი</translation>
 <translation id="6876155724392614295">ველოსიპედი</translation>
 <translation id="6878261347041253038">დევანაგარის კლავიატურა (ფონეტიკური)</translation>
-<translation id="6881853403185175088">ოფისი</translation>
 <translation id="6885780034956018177">ლოკოკინა</translation>
 <translation id="6896758677409633944">კოპირება</translation>
 <translation id="6898028766943174120">სხვა ქვესაქაღალდეები...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
index 22eaf3df..935ea1e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Тай-чимен айналысып жатқан адам</translation>
 <translation id="6876155724392614295">Велосипед</translation>
 <translation id="6878261347041253038">Деванагари пернетақтасы (фонетикалық)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Ұлу</translation>
 <translation id="6896758677409633944">Көшіру</translation>
 <translation id="6898028766943174120">Тағы басқа ішкі қалталар...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_km.xtb b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
index ed9809d..f622bd7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_km.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">មនុស្ស​កំពុងហាត់​ថៃជី</translation>
 <translation id="6876155724392614295">កង់</translation>
 <translation id="6878261347041253038">ក្តារចុចដេវ៉ាណាការី (Phonetic)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">ខ្យង</translation>
 <translation id="6896758677409633944">ចម្លង</translation>
 <translation id="6898028766943174120">ថតរងច្រើនទៀត...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index 219ac3e..747e80b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">ತೈ ಚಿ ಮಾಡುತ್ತಿರುವ ವ್ಯಕ್ತಿ</translation>
 <translation id="6876155724392614295">ಬೈಕ್</translation>
 <translation id="6878261347041253038">ದೇವನಾಗರಿ ಕೀಬೋರ್ಡ್ (ಫೋನೆಟಿಕ್)</translation>
-<translation id="6881853403185175088">ಕಛೇರಿ</translation>
 <translation id="6885780034956018177">ಬಸವನ ಹುಳು</translation>
 <translation id="6896758677409633944">ನಕಲಿಸು</translation>
 <translation id="6898028766943174120">ಇನ್ನಷ್ಟು ಸಬ್-ಫೋಲ್ಡರ್‌ಗಳು...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
index 9b4710e9..ef09aa98 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">태극권을 하는 사람</translation>
 <translation id="6876155724392614295">자전거</translation>
 <translation id="6878261347041253038">데바나가리 키보드(음역)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">달팽이</translation>
 <translation id="6896758677409633944">복사</translation>
 <translation id="6898028766943174120">하위 폴더 더보기...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
index 56d9ae4..3f0370fe 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Тай-чи жасап жаткан адам</translation>
 <translation id="6876155724392614295">Велосипед</translation>
 <translation id="6878261347041253038">Деванагари баскычтобу (Фонетикалык)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Үлүл</translation>
 <translation id="6896758677409633944">Көчүрүү</translation>
 <translation id="6898028766943174120">Дагы башка кошумча файлдар...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
index b3746b58..5b9253c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">ຄົນລຳໄທຊິ</translation>
 <translation id="6876155724392614295">ຖີບລົດ</translation>
 <translation id="6878261347041253038">ຄີບອດພາສາເດວັນນາກາຣີ (ການອອກສຽງ)</translation>
-<translation id="6881853403185175088">ຫ້ອງການ</translation>
 <translation id="6885780034956018177">ຫອຍທາດ</translation>
 <translation id="6896758677409633944">ກັອບປີ້</translation>
 <translation id="6898028766943174120">ໂຟນເດີຍ່ອຍເພີ່ມເຕີມ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
index 1f1c69f..b39e05f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Taidzi užsiimantis žmogus</translation>
 <translation id="6876155724392614295">Dviratis</translation>
 <translation id="6878261347041253038">Devanagari klaviatūra (fonetinė)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Sraigė</translation>
 <translation id="6896758677409633944">Kopijuoti</translation>
 <translation id="6898028766943174120">Daugiau poaplankių...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
index 928322a5..3a778d4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Persona nodarbojas ar tai-či</translation>
 <translation id="6876155724392614295">Velosipēds</translation>
 <translation id="6878261347041253038">Devanāgarī rakstības tastatūra (fonētiskā)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Gliemezis</translation>
 <translation id="6896758677409633944">Kopēt</translation>
 <translation id="6898028766943174120">Citas apakšmapes...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
index 9ba9586..e91610c5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Човек што вежба таи-чи</translation>
 <translation id="6876155724392614295">Велосипед</translation>
 <translation id="6878261347041253038">деванагари тастатура (фонетска)</translation>
-<translation id="6881853403185175088">Канцеларија</translation>
 <translation id="6885780034956018177">Полжав</translation>
 <translation id="6896758677409633944">Копирај</translation>
 <translation id="6898028766943174120">Повеќе подредени папки…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index e3f13bd..aeed2f0d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">തായ് ചി ചെയ്യുന്ന വ്യക്തി</translation>
 <translation id="6876155724392614295">ബൈക്കോടിക്കുക</translation>
 <translation id="6878261347041253038">ദേവനാഗരി കീബോർഡ് (സ്വരസൂചകം)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">ഒച്ച്</translation>
 <translation id="6896758677409633944">പകര്‍ത്തുക</translation>
 <translation id="6898028766943174120">കൂടുതൽ ഉപ ഫോൾഡറുകൾ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
index 3a730df..85f9df9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
@@ -690,7 +690,6 @@
 <translation id="6874758081814639712">Тай чи хийж буй хүн</translation>
 <translation id="6876155724392614295">Дугуй</translation>
 <translation id="6878261347041253038">Деванагари хэлний гар (дуудлагын)</translation>
-<translation id="6881853403185175088">Оффис</translation>
 <translation id="6885780034956018177">Эмгэн хумс</translation>
 <translation id="6896758677409633944">Хуулах</translation>
 <translation id="6898028766943174120">Бусад дэд фолдер...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
index f762c21..8cacbdf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">ताई ची करत असलेली व्यक्ती</translation>
 <translation id="6876155724392614295">सायकल</translation>
 <translation id="6878261347041253038">देवनागरी कीबोर्ड (Phonetic)</translation>
-<translation id="6881853403185175088">ऑफिस</translation>
 <translation id="6885780034956018177">गोगलगाय</translation>
 <translation id="6896758677409633944">कॉपी करा</translation>
 <translation id="6898028766943174120">आणखी सब-फोल्डर...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
index 6ef884f..83ba4e96 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Orang sedang melakukan tai chi</translation>
 <translation id="6876155724392614295">Basikal</translation>
 <translation id="6878261347041253038">Papan kekunci Devanagari (Fonetik)</translation>
-<translation id="6881853403185175088">Pejabat</translation>
 <translation id="6885780034956018177">Siput</translation>
 <translation id="6896758677409633944">Salin</translation>
 <translation id="6898028766943174120">Lagi subfolder...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_my.xtb b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
index 8bee2b0..9cf17e6 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_my.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">ထိုက်ချိကစားနေသူ</translation>
 <translation id="6876155724392614295">စက်ဘီး</translation>
 <translation id="6878261347041253038">ဒေဝနာဂရီ ကီးဘုတ် (Phonetic)</translation>
-<translation id="6881853403185175088">ရုံးခန်း</translation>
 <translation id="6885780034956018177">ခရု</translation>
 <translation id="6896758677409633944">ကူးယူရန်</translation>
 <translation id="6898028766943174120">အောက်ရှိ နောက်ထပ်ဖိုင်တွဲများ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
index 6e04710..d3f461c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">ताइ ची गरिरहेका व्यक्ति</translation>
 <translation id="6876155724392614295">साइकल</translation>
 <translation id="6878261347041253038">देवनागरी किबोर्ड (ध्वन्यात्मक)</translation>
-<translation id="6881853403185175088">कार्यालय</translation>
 <translation id="6885780034956018177">चिप्लेकिरो</translation>
 <translation id="6896758677409633944">प्रतिलिपि गर्नुहोस्</translation>
 <translation id="6898028766943174120">थप उप फोल्डरहरू...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
index efe1c8fa..29db3b0d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
@@ -694,7 +694,6 @@
 <translation id="6874758081814639712">Persoon die tai chi doet</translation>
 <translation id="6876155724392614295">Fiets</translation>
 <translation id="6878261347041253038">Devanagari toetsenbord (fonetisch)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Slak</translation>
 <translation id="6896758677409633944">Kopiëren</translation>
 <translation id="6898028766943174120">Meer submappen…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_no.xtb b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
index 20457e9..44d3db3e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_no.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Person som driver med tai chi</translation>
 <translation id="6876155724392614295">Sykkel</translation>
 <translation id="6878261347041253038">Devanagari-tastatur (fonetisk)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Snegle</translation>
 <translation id="6896758677409633944">Kopiér</translation>
 <translation id="6898028766943174120">Flere undermapper</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_or.xtb b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
index 271b37f3..a7daa541 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_or.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
@@ -687,7 +687,6 @@
 <translation id="6874758081814639712">ଟାଇ ଚି କରୁଥିବା ଜଣେ ବ୍ୟକ୍ତି</translation>
 <translation id="6876155724392614295">ବାଇକ୍</translation>
 <translation id="6878261347041253038">ଦେବନାଗରୀ କୀବୋର୍ଡ (ଫୋନେଟିକ୍)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">ଗେଣ୍ଡା</translation>
 <translation id="6896758677409633944">କପି କରନ୍ତୁ</translation>
 <translation id="6898028766943174120">ଅଧିକ ସବ୍-ଫୋଲ୍ଡର୍...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
index f789abb1..6d412e7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">ਤਾਈ ਚੀ ਕਰਦਾ ਹੋਇਆ ਵਿਅਕਤੀ</translation>
 <translation id="6876155724392614295">ਸਾਈਕਲ</translation>
 <translation id="6878261347041253038">ਦੇਵਨਾਗਰੀ ਕੀ-ਬੋਰਡ (ਧੁਨੀਆਤਮਿਕ)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">ਘੋਗਾ</translation>
 <translation id="6896758677409633944">ਕਾਪੀ ਕਰੋ</translation>
 <translation id="6898028766943174120">ਹੋਰ ਉਪ-ਫੋਲਡਰ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
index 7a354c2..b06c307 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Osoba ćwicząca tai chi</translation>
 <translation id="6876155724392614295">Rower</translation>
 <translation id="6878261347041253038">klawiatura dewanagari (fonetyczna)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Ślimak</translation>
 <translation id="6896758677409633944">Kopiuj</translation>
 <translation id="6898028766943174120">Więcej podfolderów…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index 7113188..5acb1443 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Pessoa fazendo tai chi</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
 <translation id="6878261347041253038">Teclado devanágari (fonético)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caracol</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898028766943174120">Mais subpastas…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
index 560e594..822c692 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Pessoa a fazer tai chi</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
 <translation id="6878261347041253038">Teclado devanagari (fonético)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Caracol</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898028766943174120">Mais subpastas…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
index d1911d3..9dd312a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Persoană care practică tai chi</translation>
 <translation id="6876155724392614295">Bicicletă</translation>
 <translation id="6878261347041253038">Tastatură devanagari (Fonetică)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Melc</translation>
 <translation id="6896758677409633944">Copiază</translation>
 <translation id="6898028766943174120">Mai multe subdosare...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
index 5daec60..3300325b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Человек занимается тай-чи</translation>
 <translation id="6876155724392614295">Велосипед</translation>
 <translation id="6878261347041253038">Раскладка деванагари (фонетическая)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Улитка</translation>
 <translation id="6896758677409633944">Копировать</translation>
 <translation id="6898028766943174120">Другие вложенные папки…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_si.xtb b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
index 968d497..67083201 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_si.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">තායි චි කරන පුද්ගලයා</translation>
 <translation id="6876155724392614295">පාපැදිය</translation>
 <translation id="6878261347041253038">දේවනාගරි යතුරු පුවරුව (ශබ්දිම)</translation>
-<translation id="6881853403185175088">කාර්යාලය</translation>
 <translation id="6885780034956018177">ගොළුබෙල්ලා</translation>
 <translation id="6896758677409633944">පිටපත්</translation>
 <translation id="6898028766943174120">තවත් උප ෆෝල්ඩර...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
index 296fcf7..f41ba606 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Osoba cvičiaca taiči</translation>
 <translation id="6876155724392614295">Bicykel</translation>
 <translation id="6878261347041253038">Klávesnica dévanágarí (fonetický prepis)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Slimák</translation>
 <translation id="6896758677409633944">Kopírovať</translation>
 <translation id="6898028766943174120">Ďalšie podpriečinky…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
index aa05834..ed917ba 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Oseba, ki izvaja tai chi</translation>
 <translation id="6876155724392614295">Kolo</translation>
 <translation id="6878261347041253038">Tipkovnica za devanagarščino (fonetična)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Polž</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898028766943174120">Več podmap …</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
index 18dc056..a17a5dc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Person duke bërë tai-çi</translation>
 <translation id="6876155724392614295">Biçikletë</translation>
 <translation id="6878261347041253038">Tastierë Devanagari (fonetike)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Kërmill</translation>
 <translation id="6896758677409633944">Kopjo</translation>
 <translation id="6898028766943174120">Më shumë nëndosje...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
index 511cc09..88dc957 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Osoba vežba tai-či</translation>
 <translation id="6876155724392614295">Bicikl</translation>
 <translation id="6878261347041253038">Devanagari tastatura (fonetska)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Puž</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898028766943174120">Još poddirektorijuma...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
index 808fc108..b301ad7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Особа вежба таи-чи</translation>
 <translation id="6876155724392614295">Бицикл</translation>
 <translation id="6878261347041253038">Деванагари тастатура (фонетска)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Пуж</translation>
 <translation id="6896758677409633944">Копирај</translation>
 <translation id="6898028766943174120">Још поддиректоријума...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index 1c7a4cf2f..f15d2272 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Taijiutövare</translation>
 <translation id="6876155724392614295">Cykel</translation>
 <translation id="6878261347041253038">Tangentbord för devanagari (fonetiskt)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Snigel</translation>
 <translation id="6896758677409633944">Kopiera</translation>
 <translation id="6898028766943174120">Fler undermappar …</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
index a489d7c..b1d8512 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Mtu anayefanya 'tai chi'</translation>
 <translation id="6876155724392614295">Baiskeli</translation>
 <translation id="6878261347041253038">Kibodi ya Kidevanagari (Fonetiki)</translation>
-<translation id="6881853403185175088">Ofisi</translation>
 <translation id="6885780034956018177">Konokono</translation>
 <translation id="6896758677409633944">Nakili</translation>
 <translation id="6898028766943174120">Folda nyingine ndogo...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index 9f995f7..eb37caf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">டாய் ச்சீ செய்யும் நபர்</translation>
 <translation id="6876155724392614295">பைக்</translation>
 <translation id="6878261347041253038">தேவநாகரி கீபோர்டு (ஒலிப்புமுறை)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">நத்தை</translation>
 <translation id="6896758677409633944">நகலெடு</translation>
 <translation id="6898028766943174120">மேலும் துணை ஃபோல்டர்கள்...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index f772a109..ab891e67 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">తాయ్ చి చేస్తున్న వ్యక్తి</translation>
 <translation id="6876155724392614295">బైక్</translation>
 <translation id="6878261347041253038">దేవనగరీ కీబోర్డ్ (ఫొనెటిక్)</translation>
-<translation id="6881853403185175088">ఆఫీస్</translation>
 <translation id="6885780034956018177">నత్త</translation>
 <translation id="6896758677409633944">కాపీ చేయి</translation>
 <translation id="6898028766943174120">మరిన్ని ఉప-ఫోల్డర్‌లు...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_th.xtb b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
index 3623d94..28af4dd9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_th.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">คนกำลังรำไทชิ</translation>
 <translation id="6876155724392614295">จักรยาน</translation>
 <translation id="6878261347041253038">แป้นพิมพ์ภาษาเทวานาครี (คำที่ใช้ออกเสียง)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">หอยทาก</translation>
 <translation id="6896758677409633944">คัดลอก</translation>
 <translation id="6898028766943174120">โฟลเดอร์ย่อยเพิ่มเติม...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
index ad6695e..87541fb 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Tai chi yapan bir kişi</translation>
 <translation id="6876155724392614295">Bisiklet</translation>
 <translation id="6878261347041253038">Devanagarca klavye (Fonetik)</translation>
-<translation id="6881853403185175088">Ofis</translation>
 <translation id="6885780034956018177">Salyangoz</translation>
 <translation id="6896758677409633944">Kopyala</translation>
 <translation id="6898028766943174120">Diğer alt klasörler...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
index a40e9c7..5e02b920 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Людина, яка займається тайцзицюань</translation>
 <translation id="6876155724392614295">Велосипед</translation>
 <translation id="6878261347041253038">Клавіатура деванагарі (фонетична)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Равлик</translation>
 <translation id="6896758677409633944">Копіювати</translation>
 <translation id="6898028766943174120">Інші підпапки…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
index 1795f420..570405e1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">تائی چی کی مشق کرتا ہوا شخص</translation>
 <translation id="6876155724392614295">بائیک</translation>
 <translation id="6878261347041253038">دیوناگری کی بورڈ (فونیٹک)</translation>
-<translation id="6881853403185175088">آفس</translation>
 <translation id="6885780034956018177">گھونگھا</translation>
 <translation id="6896758677409633944">کاپی کریں</translation>
 <translation id="6898028766943174120">مزید ذیلی فولڈرز...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
index 3578df35..d69e0d8 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Tay chi bilan shugʻullanuvchi odam</translation>
 <translation id="6876155724392614295">Velosiped</translation>
 <translation id="6878261347041253038">Devanagari klaviaturasi (Fonetik)</translation>
-<translation id="6881853403185175088">Ofis</translation>
 <translation id="6885780034956018177">Shilliq qurt</translation>
 <translation id="6896758677409633944">Nusxa olish</translation>
 <translation id="6898028766943174120">Boshqa quyi jildlar...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
index ff19b34..3ca1c6ed3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">Người tập thái cực quyền</translation>
 <translation id="6876155724392614295">Xe đạp</translation>
 <translation id="6878261347041253038">Bàn phím Devanagari (Ngữ âm)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">Ốc sên</translation>
 <translation id="6896758677409633944">Sao chép</translation>
 <translation id="6898028766943174120">Các thư mục con khác...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
index 9852697..c8604530 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -688,7 +688,6 @@
 <translation id="6874758081814639712">一个人在打太极</translation>
 <translation id="6876155724392614295">自行车</translation>
 <translation id="6878261347041253038">梵语键盘(注音)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">蜗牛</translation>
 <translation id="6896758677409633944">复制</translation>
 <translation id="6898028766943174120">更多子文件夹…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
index e180e5d..ac7815f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">打太極的人</translation>
 <translation id="6876155724392614295">單車</translation>
 <translation id="6878261347041253038">梵文鍵盤 (拼音)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">蝸牛</translation>
 <translation id="6896758677409633944">複製</translation>
 <translation id="6898028766943174120">更多子資料夾…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
index d91187d..975159f5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -693,7 +693,6 @@
 <translation id="6874758081814639712">打太極拳的人</translation>
 <translation id="6876155724392614295">自行車</translation>
 <translation id="6878261347041253038">梵文鍵盤 (拼音)</translation>
-<translation id="6881853403185175088">Office</translation>
 <translation id="6885780034956018177">蝸牛</translation>
 <translation id="6896758677409633944">複製</translation>
 <translation id="6898028766943174120">更多子資料夾…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
index 684d4aed..7f90179 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -692,7 +692,6 @@
 <translation id="6874758081814639712">Umuntu owenza i-tai chi</translation>
 <translation id="6876155724392614295">Ibhayisikili</translation>
 <translation id="6878261347041253038">Ikhibhodi ye-Devanagari (Ifonetiki)</translation>
-<translation id="6881853403185175088">Ihhovisi</translation>
 <translation id="6885780034956018177">Umnenke</translation>
 <translation id="6896758677409633944">Kopisha</translation>
 <translation id="6898028766943174120">Amafolda aphakathi engeziwe...</translation>
diff --git a/ui/file_manager/file_manager/foreground/js/constants.js b/ui/file_manager/file_manager/foreground/js/constants.js
index 8dc9103..0098911 100644
--- a/ui/file_manager/file_manager/foreground/js/constants.js
+++ b/ui/file_manager/file_manager/foreground/js/constants.js
@@ -82,6 +82,7 @@
 constants.DLP_METADATA_PREFETCH_PROPERTY_NAMES = [
   'isDlpRestricted',
   'sourceUrl',
+  'isRestrictedForDestination',
 ];
 
 /**
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider.js b/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider.js
index 0a7a8cd..b64bd115 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider.js
@@ -54,6 +54,8 @@
         if (!util.isFakeEntry(requests[i].entry)) {
           item.isDlpRestricted = dlpMetadataList[j].isDlpRestricted;
           item.sourceUrl = dlpMetadataList[j].sourceUrl;
+          item.isRestrictedForDestination =
+              dlpMetadataList[j].isRestrictedForDestination;
           j++;
         }
         results.push(item);
@@ -70,4 +72,5 @@
 DlpMetadataProvider.PROPERTY_NAMES = [
   'isDlpRestricted',
   'sourceUrl',
+  'isRestrictedForDestination',
 ];
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider_unittest.ts b/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider_unittest.ts
index 4ad16a6..9c54d43 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider_unittest.ts
+++ b/ui/file_manager/file_manager/foreground/js/metadata/dlp_metadata_provider_unittest.ts
@@ -36,6 +36,7 @@
           {
             isDlpRestricted: true,
             sourceUrl: 'https://example.com',
+            isRestrictedForDestination: false,
           },
         ]);
       },
@@ -68,17 +69,19 @@
   const results = await provider.get([
     new MetadataRequest(
         fakeEntry as unknown as FileSystemEntry,
-        ['sourceUrl', 'isDlpRestricted']),
+        ['sourceUrl', 'isDlpRestricted', 'isRestrictedForDestination']),
     new MetadataRequest(
         realEntry as unknown as FileSystemEntry,
-        ['sourceUrl', 'isDlpRestricted']),
+        ['sourceUrl', 'isDlpRestricted', 'isRestrictedForDestination']),
   ]);
 
   assertEquals(2, results.length);
   assertEquals(results[0].isDlpRestricted, undefined);
   assertEquals(results[0].sourceUrl, undefined);
+  assertEquals(results[0].isRestrictedForDestination, undefined);
   assertEquals(results[1].isDlpRestricted, true);
   assertEquals(results[1].sourceUrl, 'https://example.com');
+  assertEquals(results[1].isRestrictedForDestination, false);
 
   done();
 }
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js
index d94dd04..93428ca0 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js
@@ -230,6 +230,15 @@
     this.sourceUrl;
 
     /**
+     * Only applicable in file picker dialogs.
+     * Whether the entry is blocked by DataLeakPrevention policy from being
+     * uploaded to/opened by a specific destination, defined by the caller of
+     * the dialog.
+     * @type {boolean|undefined}
+     */
+    this.isRestrictedForDestination;
+
+    /**
      * Status indicating the current syncing behaviour for this item.
      * @type {string|undefined}
      */
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js
index 6831b0e1..27dbca56 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js
@@ -733,15 +733,20 @@
         this.querySelectorAll('.img-container'));
     for (let i = 0; i < boxes.length; i++) {
       const box = boxes[i];
-      const listItem = this.getListItemAncestor(box);
+      let listItem = this.getListItemAncestor(box);
       const entry = listItem && this.dataModel.item(listItem.listIndex);
       if (!entry || urls.indexOf(entry.toURL()) === -1) {
         continue;
       }
 
-      this.decorateThumbnailBox_(assert(listItem), entry);
-      this.updateSharedStatus_(assert(listItem), entry);
-      this.updateInlineSyncStatus_(assert(listItem), entry);
+      listItem = /** @type {!FileGrid.Item} */ (listItem);
+      this.decorateThumbnailBox_(listItem, entry);
+      this.updateSharedStatus_(listItem, entry);
+      this.updateInlineSyncStatus_(listItem, entry);
+      listItem.toggleAttribute(
+          'disabled',
+          filelist.isDlpBlocked(
+              entry, assert(this.metadataModel_), assert(this.volumeManager_)));
     }
     this.updateGroupHeading_();
   }
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table.js b/ui/file_manager/file_manager/foreground/js/ui/file_table.js
index dad0ffa..50500cb 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/file_table.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/file_table.js
@@ -1000,6 +1000,11 @@
                   'syncStatus',
                 ])[0],
             util.isTeamDriveRoot(entry));
+        listItem.toggleAttribute(
+            'disabled',
+            filelist.isDlpBlocked(
+                entry, assert(this.metadataModel_),
+                assert(this.volumeManager_)));
       });
     }
   }
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js
index e6be367..fa6a391 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js
@@ -371,7 +371,8 @@
   // Overriding the default role 'list' to 'listbox' for better
   // accessibility on ChromeOS.
   li.setAttribute('role', 'option');
-  li.toggleAttribute('disabled', filelist.isDlpBlocked_(entry, volumeManager));
+  li.toggleAttribute(
+      'disabled', filelist.isDlpBlocked(entry, metadataModel, volumeManager));
 
   Object.defineProperty(li, 'selected', {
     /**
@@ -396,27 +397,35 @@
 };
 
 /**
- * Returns true if `entry` is blocked by DLP.
+ * Returns whether `entry` is blocked by DLP.
+ *
+ * Relies on the fact that volumeManager.isDisabled() can only be true for dirs
+ * in file-saveas dialogs, while metadata.isRestrictedForDestination can only be
+ * true for files in other types of select dialogs.
  * @param {Entry|FilesAppEntry} entry The entry.
- * @param {!VolumeManager} volumeManager Used to retrieve VolumeInfo.
- * @return {boolean}
+ * @param {!MetadataModel} metadataModel Used to retrieve
+ *     isRestrictedForDestination value.
+ * @param {!VolumeManager} volumeManager Used to retrieve VolumeInfo and check
+ *     if it's disabled.
+ * @return {boolean} If `entry` is DLP blocked.
  */
-filelist.isDlpBlocked_ = (entry, volumeManager) => {
-  if (!entry.isDirectory) {
-    // TODO(b/259183224): Add proper checks; files are blocked if their source
-    // is not allowed to be opened by the files app dialog caller.
+filelist.isDlpBlocked = (entry, metadataModel, volumeManager) => {
+  if (!util.isDlpEnabled()) {
     return false;
   }
-  // The entry is a directory, which can only be blocked if it's a
-  // disabled volume/DLP component.
   // TODO(b/259184588): Properly handle case when VolumeInfo is not
   // available. E.g. for Crostini we might not have VolumeInfo before it's
   // mounted.
   const volumeInfo = volumeManager.getVolumeInfo(assert(entry));
-  if (!volumeInfo) {
-    return false;
+  if (volumeInfo && volumeManager.isDisabled(volumeInfo.volumeType)) {
+    return true;
   }
-  return volumeManager.isDisabled(volumeInfo.volumeType);
+  const metadata =
+      metadataModel.getCache([entry], ['isRestrictedForDestination'])[0];
+  if (metadata && !!metadata.isRestrictedForDestination) {
+    return true;
+  }
+  return false;
 };
 
 /**
diff --git a/ui/file_manager/integration_tests/file_manager/dlp.js b/ui/file_manager/integration_tests/file_manager/dlp.js
index 5bf6068..2af816a 100644
--- a/ui/file_manager/integration_tests/file_manager/dlp.js
+++ b/ui/file_manager/integration_tests/file_manager/dlp.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 {addEntries, ENTRIES, RootPath, sendTestMessage} from '../test_util.js';
+import {addEntries, ENTRIES, RootPath, sendTestMessage, TestEntryInfo} from '../test_util.js';
 import {testcase} from '../testcase.js';
 
 import {navigateWithDirectoryTree, openAndWaitForClosingDialog, remoteCall, setupAndWaitUntilReady} from './background.js';
@@ -222,3 +222,42 @@
       await openAndWaitForClosingDialog(
           {type: 'saveFile'}, 'android_files', [ENTRIES.hello], blockedCloser));
 };
+
+/**
+ * Tests the open file dialogs properly show DLP blocked files. If a file cannot
+ * be opened by the caller of the dialog, it should be marked as disabled in the
+ * details list.
+ */
+testcase.openDlpRestrictedFile = async () => {
+  // Setup the restrictions.
+  await sendTestMessage({name: 'setIsRestrictedByAnyRuleBlocked'});
+  await sendTestMessage({name: 'setIsRestrictedDestinationRestriction'});
+
+  // Add entries to Downloads.
+  await addEntries(['local'], [ENTRIES.hello]);
+
+  const cancelButton = '.button-panel button.cancel';
+
+  const closer = async (dialog) => {
+    // Wait for the file list to appear.
+    await remoteCall.waitForElement(dialog, '#file-list');
+    await remoteCall.waitForFiles(
+        dialog, TestEntryInfo.getExpectedRows([ENTRIES.hello]));
+    // Wait for the DLP managed icon to be shown - this means that metadata has
+    // been fetched and we can check the disabled status as well.
+    await remoteCall.waitForElementsCount(
+        dialog, ['#file-list .dlp-managed-icon'], 1);
+    await remoteCall.waitForElementsCount(
+        dialog, ['#file-list .file[disabled]'], 1);
+
+    // Click the close button to dismiss the dialog.
+    await remoteCall.waitForElement(dialog, cancelButton);
+    const event = [cancelButton, 'click'];
+    await remoteCall.callRemoteTestUtil('fakeEvent', dialog, event);
+  };
+
+  chrome.test.assertEq(
+      undefined,
+      await openAndWaitForClosingDialog(
+          {type: 'openFile'}, 'downloads', [ENTRIES.hello], closer));
+};
diff --git a/ui/gl/direct_composition_surface_win_unittest.cc b/ui/gl/direct_composition_surface_win_unittest.cc
index bf0c7ec..25b146b 100644
--- a/ui/gl/direct_composition_surface_win_unittest.cc
+++ b/ui/gl/direct_composition_surface_win_unittest.cc
@@ -43,10 +43,10 @@
 namespace gl {
 namespace {
 
-class GLImageRefCountedMemory : public GLImageMemory {
+class GLImageRefCountedMemory : public GLImageMemoryForTesting {
  public:
   explicit GLImageRefCountedMemory(const gfx::Size& size)
-      : GLImageMemory(size) {}
+      : GLImageMemoryForTesting(size) {}
 
   GLImageRefCountedMemory(const GLImageRefCountedMemory&) = delete;
   GLImageRefCountedMemory& operator=(const GLImageRefCountedMemory&) = delete;
diff --git a/ui/gl/gl_image_memory.cc b/ui/gl/gl_image_memory.cc
index 87999c2b..8bff9c9 100644
--- a/ui/gl/gl_image_memory.cc
+++ b/ui/gl/gl_image_memory.cc
@@ -494,4 +494,9 @@
   return false;
 }
 
+GLImageMemoryForTesting::GLImageMemoryForTesting(const gfx::Size& size)
+    : GLImageMemory(size) {}
+
+GLImageMemoryForTesting::~GLImageMemoryForTesting() = default;
+
 }  // namespace gl
diff --git a/ui/gl/gl_image_memory.h b/ui/gl/gl_image_memory.h
index 88d9da2..f7bf906 100644
--- a/ui/gl/gl_image_memory.h
+++ b/ui/gl/gl_image_memory.h
@@ -14,14 +14,17 @@
 #include "ui/gfx/buffer_types.h"
 #include "ui/gl/gl_export.h"
 
+namespace gpu {
+class SharedMemoryImageBacking;
+}
+
 namespace gl {
 class GLContext;
+class GLImageMemoryForTesting;
 class GLSurface;
 
 class GL_EXPORT GLImageMemory : public GLImage {
  public:
-  explicit GLImageMemory(const gfx::Size& size);
-
   GLImageMemory(const GLImageMemory&) = delete;
   GLImageMemory& operator=(const GLImageMemory&) = delete;
 
@@ -55,6 +58,16 @@
   ~GLImageMemory() override;
 
  private:
+  // Make constructor private to ensure that only specified friend classes can
+  // create GLImageMemory instances.
+  explicit GLImageMemory(const gfx::Size& size);
+
+  // GLImageMemory should be created in production only by
+  // SharedMemoryImageBacking. Some tests need to subclass GLImageMemory in
+  // anonymous namespaces, for which GLImageMemoryForTesting exists.
+  friend class gpu::SharedMemoryImageBacking;
+  friend class GLImageMemoryForTesting;
+
   static bool ValidFormat(gfx::BufferFormat format);
 
   const gfx::Size size_;
@@ -70,6 +83,17 @@
   int memcpy_tasks_ = 0;
 };
 
+// GLImageMemoryForTesting supports test use cases for subclassing
+// GLImageMemory in anonymous namespaces. This class should never be used in
+// production.
+class GL_EXPORT GLImageMemoryForTesting : public GLImageMemory {
+ protected:
+  explicit GLImageMemoryForTesting(const gfx::Size& size);
+
+ protected:
+  ~GLImageMemoryForTesting() override;
+};
+
 }  // namespace gl
 
 #endif  // UI_GL_GL_IMAGE_MEMORY_H_
diff --git a/ui/webui/resources/cr_elements/cr_elements.gni b/ui/webui/resources/cr_elements/cr_elements.gni
index 8e2a53ad..5cbbb41 100644
--- a/ui/webui/resources/cr_elements/cr_elements.gni
+++ b/ui/webui/resources/cr_elements/cr_elements.gni
@@ -42,6 +42,7 @@
     "cr_input/cr_input.ts",
     "cr_link_row/cr_link_row.ts",
     "cr_lottie/cr_lottie.ts",
+    "cr_textarea/cr_textarea.ts",
     "cr_profile_avatar_selector/cr_profile_avatar_selector_grid.ts",
     "cr_profile_avatar_selector/cr_profile_avatar_selector.ts",
     "cr_radio_button/cr_card_radio_button.ts",
diff --git a/chrome/browser/resources/settings/controls/settings_textarea.html b/ui/webui/resources/cr_elements/cr_textarea/cr_textarea.html
similarity index 97%
rename from chrome/browser/resources/settings/controls/settings_textarea.html
rename to ui/webui/resources/cr_elements/cr_textarea/cr_textarea.html
index 879eb5f..e88101e 100644
--- a/chrome/browser/resources/settings/controls/settings_textarea.html
+++ b/ui/webui/resources/cr_elements/cr_textarea/cr_textarea.html
@@ -15,7 +15,7 @@
   #footerContainer {
     border-top: 0;
     /* Components that use the footer should set this to "flex". */
-    display: var(--settings-textarea-footer-display, none);
+    display: var(--cr-textarea-footer-display, none);
     font-size: var(--cr-form-field-label-font-size);
     height: var(--cr-form-field-label-height);
     justify-content: space-between;
diff --git a/chrome/browser/resources/settings/controls/settings_textarea.ts b/ui/webui/resources/cr_elements/cr_textarea/cr_textarea.ts
similarity index 87%
rename from chrome/browser/resources/settings/controls/settings_textarea.ts
rename to ui/webui/resources/cr_elements/cr_textarea/cr_textarea.ts
index fb0b65fa..a63d6a26 100644
--- a/chrome/browser/resources/settings/controls/settings_textarea.ts
+++ b/ui/webui/resources/cr_elements/cr_textarea/cr_textarea.ts
@@ -3,18 +3,18 @@
 // found in the LICENSE file.
 
 /**
- * @fileoverview 'settings-textarea' is a component similar to native textarea,
+ * @fileoverview 'cr-textarea' is a component similar to native textarea,
  * and inherits styling from cr-input.
  */
-import '//resources/cr_elements/cr_hidden_style.css.js';
-import '//resources/cr_elements/cr_shared_style.css.js';
-import '//resources/cr_elements/cr_input/cr_input_style.css.js';
+import '../cr_hidden_style.css.js';
+import '../cr_shared_style.css.js';
+import '../cr_input/cr_input_style.css.js';
 
 import {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {getTemplate} from './settings_textarea.html.js';
+import {getTemplate} from './cr_textarea.html.js';
 
-export interface SettingsTextareaElement {
+export interface CrTextareaElement {
   $: {
     firstFooter: HTMLElement,
     footerContainer: HTMLElement,
@@ -26,9 +26,9 @@
   };
 }
 
-export class SettingsTextareaElement extends PolymerElement {
+export class CrTextareaElement extends PolymerElement {
   static get is() {
-    return 'settings-textarea';
+    return 'cr-textarea';
   }
 
   static get template() {
@@ -187,8 +187,8 @@
 
 declare global {
   interface HTMLElementTagNameMap {
-    'settings-textarea': SettingsTextareaElement;
+    'cr-textarea': CrTextareaElement;
   }
 }
 
-customElements.define(SettingsTextareaElement.is, SettingsTextareaElement);
+customElements.define(CrTextareaElement.is, CrTextareaElement);