diff --git a/AUTHORS b/AUTHORS
index 6008db6..686cc00 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1650,6 +1650,7 @@
 迷渡 <justjavac@gmail.com>
 郑苏波 (Super Zheng) <superzheng@tencent.com>
 一丝 (Yisi) <yiorsi@gmail.com>
+林训杰 (XunJie Lin) <wick.linxunjie@gmail.com>
 # Please DO NOT APPEND here. See comments at the top of the file.
 # END individuals section.
 
diff --git a/DEPS b/DEPS
index 8240292..39a028c 100644
--- a/DEPS
+++ b/DEPS
@@ -280,15 +280,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'dac808134f758c75b52cd53a4c93f84dea22803a',
+  'skia_revision': '7f19d763e013561599c7f8eb3b866660c0680bd2',
   # 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': '4bd0d4731ea90ff9460eeb6d5cfc6cc1127363d3',
+  'v8_revision': '6a3f340a7a16560ac01d3fea3db3e0af7046f26c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '0dabfe5a6ac5377854a3f5ee673d56315c175e71',
+  'angle_revision': 'ed511a9c22c77166a1a9fc251c149816f641fdea',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -328,7 +328,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
-  'freetype_revision': 'e3a3b39dd0cf0a01ec8998cc760d01b9f0b1bac7',
+  'freetype_revision': 'a059b237bb01eb3e4f9f8b1618dda8c117498bab',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
@@ -356,7 +356,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling CrossBench
   # and whatever else without interference from each other.
-  'crossbench_revision': '1c8bcfd1d85892781103fa1d6497a1ffad01c9db',
+  'crossbench_revision': 'd0cdca0efd6c6042043beaf5b35930457c9f056e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -372,7 +372,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': 'c6bb3b2ce900d42eefac9c72600ea69e74d40943',
+  'devtools_frontend_revision': '87be7c12133947828466773b7f181d534df37526',
   # 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.
@@ -396,7 +396,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '4585c9495dd4c1958890921fa2abacd8546d088d',
+  'dawn_revision': '5f1e7e33cbd81dbd4a63d91228fe0aa59d060211',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -1439,7 +1439,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '82f68d0ac4e31a5198d219842a3873b82b3ab1cd',
+    'a423f96e879d02cfbce529ee154c165cd5677071',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -1669,7 +1669,7 @@
       'packages': [
           {
                'package': 'chromium/third_party/android_build_tools/error_prone',
-               'version': '7c91BXn6VPvSmr-dFRYaNVkfHjRN1jdMIN4EcrPem9cC',
+               'version': 'Q3oiuVxuq1jkWhjfnfCSviXK8BbbB9n6_4jz3x_Mo3kC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -1691,7 +1691,7 @@
       'packages': [
           {
                'package': 'chromium/third_party/android_build_tools/lint',
-               'version': '_77LT8DN3c2A3RPC4ctJk-kOk2K_QEuS3_aQty7g384C',
+               'version': 'Tg-Mjqa6mWRSbiUa675M1IqGLmr236y3smiJ-Qdz5gkC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -1702,7 +1702,7 @@
       'packages': [
           {
                'package': 'chromium/third_party/android_build_tools/manifest_merger',
-               'version': 'osgd04hyZB3eu5L7oiL6irk9AqRBX9lOxNLsaCmUCowC',
+               'version': 'yd6w2zQr48NAkrzrzEj2OmMzI-kANsmD6lvKhfXluAsC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2176,7 +2176,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/kotlin_stdlib',
-              'version': 'rR6d6Pj-PTodfgswJ661KwgKAuHXYKAhifnuXpoo748C',
+              'version': 'z7NenFzvjmGieRhzC5IhUKe-nO3U6xA5VwUilO3GZLgC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2301,7 +2301,7 @@
     Var('chromium_git') + '/webm/libwebp.git' + '@' +  '2af6c034ac871c967e04c8c9f8bf2dbc2e271b18',
 
   'src/third_party/libyuv':
-    Var('chromium_git') + '/libyuv/libyuv.git' + '@' + '47ddac2996378c34aab9318f0d218303b1d282e7',
+    Var('chromium_git') + '/libyuv/libyuv.git' + '@' + '10592b60c0b2c33210b7752454253dc2625b4305',
 
   'src/third_party/lighttpd': {
       'url': Var('chromium_git') + '/chromium/deps/lighttpd.git' + '@' + Var('lighttpd_revision'),
@@ -2436,7 +2436,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '943a0d89925e7f9a898c2e49c41feb9bf5dab71e',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'a0c2bc7919f7467cf4a8287c8389c3f96a3fcbac',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -2618,7 +2618,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'PO3aHSPf_6XsPQhr5ej6sRCj8EXUTKutmhlFCLBeak4C',
+              'version': 'DJU_YH-xmuJ4kRnli6eXC-q9Q21-GPFj4YVZyAqKSWoC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2748,7 +2748,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/turbine',
-              'version': 'dz8pRLjwNlToJ0tS14T-TDQJNikmFXEDByMo-OzBbl0C',
+              'version': 'qNNUfaj7w4cSHTjVawVaZpq0pABVec9LcFebN19wm4EC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2809,7 +2809,7 @@
     Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'),
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '9aeeb6123d2a4fc868626a9ee8f45b268d223c03',
+    Var('webrtc_git') + '/src.git' + '@' + 'd48113627a5ee53aa7eef4cffcba0a10b8e95ca7',
 
   # 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.
@@ -2883,7 +2883,7 @@
       'packages': [
         {
           'package': 'skia/tools/goldctl/mac-amd64',
-          'version': 'i1pCGOButmwiJERJNRCcVJvvq5eJVXmgn6naqj5pIUwC',
+          'version': 'aGSV8FRvSVFoQndmtzdgxKhvRR5fHzqV4Out1xJ8IdQC',
         },
       ],
       'dep_type': 'cipd',
@@ -2935,7 +2935,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/boca_app/app',
-        'version': '6R5Pblx4L4vGVWyax4eNIC23E6-IdIHj10pEX5MunrAC',
+        'version': 'HLx95FmliWdD09Y28e8fId9NaE9l4YjX1kNLSEch7TUC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -2946,7 +2946,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'uMy7vOfonOvlppmthaEbPS0Hk5Fu-VCTlEycHHlHY6IC',
+        'version': 'yQ2K1KGvl_S7mLJ7r_k3g2LwKCu-UK10n0oQ33F_T-gC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -2990,7 +2990,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'I6qYL1WbVeH_3Cp8TM4r42OxK6gcYxPqjIS2IkvTFdwC',
+        'version': 'V0ot4EQZNF94y5lBLUyv3tu0Cwe4jkCDrJxmRjPwePAC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4538,7 +4538,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '67d2600839370d13a8f8f962d74803d2d129b267',
+        '4854855152ebd389e7302ae7b499b6e9ba613a4c',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
index 6fe5fef8..32994e2 100644
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -268,6 +268,9 @@
                 AutofillFeatures.AUTOFILL_DETECT_REMOVED_FORM_CONTROLS,
                 "Enables Autofill to detect if form controls are removed from the DOM"),
         Flag.baseFeature(
+                AutofillFeatures.AUTOFILL_OPTIMIZE_FORM_EXTRACTION,
+                "Makes Autofill spend less time on extracting forms."),
+        Flag.baseFeature(
                 AutofillFeatures.AUTOFILL_PAGE_LANGUAGE_DETECTION,
                 "Enables Autofill to retrieve the page language for form parsing."),
         Flag.baseFeature(
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index ebe14c4..e61f559 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">የአውታረ መረብ ዝርዝርን አሳይ። <ph name="STATE_TEXT" />።</translation>
 <translation id="1419738280318246476">የማሳወቅ እርምጃውን ለማከናወን መሣሪያን ይክፈቱ</translation>
 <translation id="1420408895951708260">የምሽት ብርሃንን ቀያይር። <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">የተጠቆመ ቡድን</translation>
 <translation id="1426410128494586442">አዎ</translation>
 <translation id="1435537621343861112">በቃል ማስጻፍ መጀመር አልተቻለም። ማይክሮፎንዎ ጠፍቷል።</translation>
 <translation id="1445031758921122223">የመልክ መቆጣጠሪያ ፋይሎች ወርደዋል</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">የሒሳብ ስሌቶች</translation>
 <translation id="1774796056689732716">ቀን መቁጠሪያ፣ <ph name="CURRENT_MONTH_YEAR" />፣ በአሁኑ ጊዜ <ph name="DATE" /> ተመርጧል።</translation>
 <translation id="178347895271755507">የስልክዎን የቅርብ ጊዜ ፎቶዎች፣ ሚዲያ እና ማሳወቂያዎች ዕይታን ያዋቅሩ</translation>
+<translation id="1785317913592722944">ንጥልን ከተጠቆመ ቡድን ላይ አስወግድ</translation>
 <translation id="1786487376942610288">የሥዕል-ላይ-ሥዕል መስኮቱ በፍተኛው ወይም በአሁኑ መጠን መካከል ይቀያይሩ</translation>
 <translation id="1787955149152357925">አጥፋ</translation>
 <translation id="1796561540704213354">የጎበኟቸውን ገፆች እና የተከፈቱ ገፆችን የሚያካትቱ ድር ጣቢያዎች</translation>
 <translation id="179842970735685253">የGoogle የአገልግሎት ውል</translation>
 <translation id="1805407494113167797">የትኩረት ድምፆችን ማጫወት አልተቻለም</translation>
 <translation id="181103072419391116">የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />፣ በየእርስዎ አስተዳዳሪ የሚተዳደር</translation>
+<translation id="1815039896005206046">ደባሪ ነው ይህን የተጠቆመ ቡድን እንዳልወደዱ ግብረመልስ ያስገባል</translation>
 <translation id="1816896987747843206">ይህ የካሜራ ፈቃድ ላላቸው ሁሉም መተግበሪያዎች እና ድር ጣቢያዎች የካሜራ መዳረሻ ይፈቅዳል</translation>
 <translation id="1823873187264960516">ኤተርኔት፦ <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">የመገኛ አካባቢ መዳረሻን አብራ</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">«Hello» በቻይንኛ</translation>
 <translation id="2370971919968699910">ይህ የውሂብ ወጪን ሊያስከትል ይችላል።
 <ph name="DEVICECOUNT" /> መሣሪያዎች ተገናኝተዋል።</translation>
+<translation id="2383521554963939360">የመተግበሪያ እና ትር ቡድኖች</translation>
 <translation id="2386292613071805067">በገጹ ላይ ሁሉንም ይምረጡ</translation>
 <translation id="2389423187722941333">Geminiን ይቀያይሩ</translation>
 <translation id="2392659840443812875">ምንም መገናኛ ነጥብ የለም። ስልከዎ በአቅራቢያ መሆኑን እና ብሉቱዝ መብራቱን ያረጋግጡ።</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">የቁም ፎቶ ማሳመሪያ</translation>
 <translation id="4156293514828496577"><ph name="PERCENTAGE" />% ባትሪ ይቀራል (<ph name="TIME_LEFT" /> አካባቢ)።
 የባትሪ ዕድሜን ለመጨመር አንዳንድ ባህሪዎች ተገድበዋል።</translation>
+<translation id="4158003972857765638">በአዲስ ዴስክ ውስጥ አደራጅ</translation>
 <translation id="4160919062868802509">በርካታ የኦዲዮ ምንጮች ተገኝተዋል</translation>
 <translation id="416245495747357243">አልቋል እና ተጠናቅቋል!</translation>
 <translation id="4165275524535002941">ገመድ ማሳያዎችን ላይደግፍ ይችላል</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">የCtrl + Alt + የላይ ቀስት ቁልፍ ሰሌዳ አቋራጭ ተለውጧል። የመነሻ ቁልፍ ለመጠቀም የ<ph name="LAUNCHER_KEY_NAME" /> ቁልፍ + የግራ ቀስት ይጫኑ።</translation>
 <translation id="4324840740119394760">ይህ የካሜራ ፈቃድ ላላቸው ለ<ph name="APP_NAME" /> እና ሁሉም መተግበሪያዎች እና ድር ጣቢያዎች የካሜራ መዳረሻ ይፈቅዳል</translation>
 <translation id="4327147325944669226">ጨዋታን ቅረጽ</translation>
+<translation id="4329076911374908740">ከፍተኛ የተቀመጡ ቡድኖች ብዛት ላይ ተደርሷል።</translation>
 <translation id="4338109981321384717">ማጉያ መነጽር</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />፣ ድምፀ-ከል ተደርጓል</translation>
 <translation id="4351244548802238354">መገናኛ ዝጋ</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">ትራንስክሪፕት መፍጠር አልተቻለም</translation>
 <translation id="5251174953851719648">ይዘትን አድስ</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> ከተሰኘ መሣሪያ ጋር ተገናኝቷል፣ <ph name="BATTERY_PERCENTAGE" />% ባትሪ</translation>
+<translation id="5256939106029293271">ማይክሮፎንዎን ይፈትሹ</translation>
 <translation id="5258528442992323769">ምንም የተቀመጡ ዴስኮች የሉም</translation>
 <translation id="5260676007519551770">ዴስክ 4</translation>
 <translation id="5265391159779542051">ውጤቶች ተጭነዋል</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">የሌሊት ብርሃን በፀሐይ መጥለቅ ጊዜ በራስሰር ይበራል</translation>
 <translation id="5750765938512549687">ብሉቱዝ ጠፍቷል</translation>
 <translation id="5758114525425072423">ትኩረት ጀምር። ሰዓት ቆጣሪ ወደ <ph name="FOCUS_DURATION" /> ተቀናብሯል።</translation>
+<translation id="5759522586053040964">የእርስዎ ድምፅ ለሌሎች እንዴት እንደሚሰማ ይስሙ። ለማቆም፣ የፈትሽ አዶን ጠቅ ያድርጉ ወይም የቪድዮ ጥሪ ፓነሉን ይዝጉ።</translation>
 <translation id="5760866832697883462">የእርስዎን <ph name="NAME" /> ያገናኙ</translation>
 <translation id="5762420912707163638">ምልክት ማድረጊያን ይቀያይሩ። <ph name="STATE_TEXT" /> ማገ ገፅ ላይ ለመሳል የመከታተያ ፓድን፣ መነካት የሚችል ማያን ወይም ብሮስፌ ይጠቀሙ።</translation>
 <translation id="576341972084747908">አደገኛ <ph name="FILENAME" /> አውርድ</translation>
@@ -1940,6 +1948,7 @@
 <translation id="7524043547948122239">Google ተግባሮች</translation>
 <translation id="7525067979554623046">ፍጠር</translation>
 <translation id="7526573455193969409">አውታረ መረብ ክትትል የሚደረግበት ሊሆን ይችላል</translation>
+<translation id="7534543072325030705">አሪፍ ይህን የተጠቆመ ቡድን እንደወደዱ ግብረመልስ ያስገባል</translation>
 <translation id="7536035074519304529">የአይፒ አድራሻ፦ <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">የግራ መስኮቱን ያዘምኑ</translation>
 <translation id="7543399541175347147">የሊኑክስ መተግበሪያዎች እና ማንነት የማያሳውቁ መስኮቶች በአሁኑ ጊዜ አይደገፉም። ሌሎች መተግበሪያዎች ይቀመጣሉ።</translation>
@@ -2104,6 +2113,7 @@
 <translation id="8004512796067398576">ጭማሬ</translation>
 <translation id="8005527720597583355">የትኩረት ክፍለ ጊዜን አስጀምር</translation>
 <translation id="8015361438441228492">ተግባርን ማርትዕ አልተቻለም።</translation>
+<translation id="8027187124910699148">የተጠቆመ ቡድንን ከቆመበት ቀጥል</translation>
 <translation id="802782383769312836">ቀዳሚው ዴስክ፦ <ph name="DESK_NAME" />። <ph name="DESK_INDEX" /> ዴስክ ከ<ph name="DESK_COUNT" />።</translation>
 <translation id="8029247720646289474">የመገናኛ ነጥብ ግንኙነት አልተሳካም</translation>
 <translation id="8029629653277878342">ለበለጠ ደህንነት ፒን ወይም የይለፍ ቃል ያስፈልጋል</translation>
@@ -2212,6 +2222,7 @@
 <translation id="8426708595819210923">ደህን አመሹ <ph name="GIVEN_NAME" />፣</translation>
 <translation id="8428213095426709021">ቅንብሮች</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> በ<ph name="KEY_TWO" /> በኩል</translation>
+<translation id="8429547770382807369">ቡድንን ለበኋላ አስቀምጥ</translation>
 <translation id="8433186206711564395">የአውታረ መረብ ቅንብሮች</translation>
 <translation id="8433977262951327081">በመደርደሪያው ውስጥ የግቤት አማራጮች ምናሌ አረፋን ለማሳየት የሚሆነው አቋራጭ ተለውጧል። እባክዎ በ<ph name="OLD_SHORTCUT" /> ምትክ <ph name="NEW_SHORTCUT" />ን ይጠቀሙ።</translation>
 <translation id="8437311513256731931">የግብረመልስ መሣሪያን ክፈት</translation>
@@ -2220,6 +2231,7 @@
 <translation id="8446884382197647889">ተጨማሪ ለመረዳት</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">ለመናገር ምረጥን ይዝጉ</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" /> ውስጥ ያሉ ንጥሎችን አሳይ</translation>
 <translation id="8468806060683421065">የሚገባበት ቀን <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">የልኬት ቅንብሮችን አሳይ</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> <ph name="FEATURE_STATE" /> <ph name="FEATURE_NAME" /> አለው።</translation>
@@ -2242,6 +2254,7 @@
 <translation id="8551588720239073785">የቀን እና የጊዜ ቅንብሮች</translation>
 <translation id="8553395910833293175">ለሁሉም ዴስኮች ቀድሞውኑ ተመድቧል።</translation>
 <translation id="8555757996376137129">የአሁኑን ዴስክ አስወግድ</translation>
+<translation id="8558521694042102707">ሰው ሠራሽ አስተውሎት አመንጪ ስሕተቶችን ሊሠራ ይችላል፣ ስለዚህ በድጋሚ ያረጋግጡት።</translation>
 <translation id="8559845965695780508"><ph name="USER" /> አርትዖት አድርገዋል</translation>
 <translation id="8569146227972631631">°ፋ</translation>
 <translation id="8569751806372591456">የመሞከሪያ ጥቂት ጥቆማዎች እነሆ</translation>
@@ -2264,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />፣ በአስተዳዳሪዎ የሚቀናበር</translation>
 <translation id="8638637208069328956">ማይክሮፎንን አብራ/አጥፋ</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> ይቀራል</translation>
+<translation id="8640470573049727749">ሁሉንም የቡድን ጥቆማዎች ደብቅ</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> መረጃ በማሳየት ላይ</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> ሰዓት ቆጣሪ</translation>
 <translation id="8647931990447795414">ሰው ለማከል የእርስዎን Family Link የወላጅ መዳረሻ ኮድ ያስገቡ</translation>
@@ -2347,6 +2361,7 @@
 <translation id="8905919797434099235">(ርዕስ የለም)</translation>
 <translation id="890616557918890486">ምንጭ ይለውጡ</translation>
 <translation id="8909138438987180327">ባትሪ <ph name="PERCENTAGE" /> መቶኛ ላይ።</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" /> ውስጥ ያሉ ንጥሎችን ደብቅ</translation>
 <translation id="8921554779039049422">ኤች+</translation>
 <translation id="8921624153894383499">የGoogle ረዳቱ ይህን ቋንቋ አይናገርም።</translation>
 <translation id="8926951137623668982">መደርደሪያ ሁልጊዜ ይደበቃል</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 224c0c7..a7d4d25 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -1268,6 +1268,7 @@
 <translation id="5245201184978705914">يتعذّر إنشاء النص المحوَّل إلى صوت.</translation>
 <translation id="5251174953851719648">إعادة تحميل المحتوى</translation>
 <translation id="5253783950165989294">تم الربط بجهاز يحمل الاسم <ph name="DEVICE_NAME" />، مستوى شحن البطارية <ph name="BATTERY_PERCENTAGE" />%.</translation>
+<translation id="5256939106029293271">اختبار الميكروفون</translation>
 <translation id="5258528442992323769">ما مِن أسطح مكتب محفوظة.</translation>
 <translation id="5260676007519551770">مكتب 4</translation>
 <translation id="5265391159779542051">تم تحميل النتائج</translation>
@@ -1425,6 +1426,7 @@
 <translation id="5745612484876805746">تفعيل ميزة "الإضاءة الليلية" تلقائيًا عند غروب الشمس</translation>
 <translation id="5750765938512549687">تم إيقاف البلوتوث</translation>
 <translation id="5758114525425072423">بدء "وضع التركيز". تمّ ضبط الموقّت على <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">يمكنك الاستماع إلى صوتك كما سيسمعه الآخرون. لإيقاف الاختبار، يجب النقر على رمز الاختبار أو إغلاق لوحة مكالمة الفيديو.</translation>
 <translation id="5760866832697883462">توصيل جهاز <ph name="NAME" /></translation>
 <translation id="5762420912707163638">حالة إيقاف/تفعيل أداة التحديد: <ph name="STATE_TEXT" />. يمكنك استخدام لوحة اللمس أو شاشة تعمل باللمس أو قلم الشاشة للرسم على الشاشة.</translation>
 <translation id="576341972084747908">تنزيل الملف <ph name="FILENAME" /> الضار</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 5ba742c..00f7612e 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Показване на списъка с мрежи. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Отключете устройството, за да се изпълни действието от известието</translation>
 <translation id="1420408895951708260">Превключване на функцията за нощно осветление. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Предложена група</translation>
 <translation id="1426410128494586442">Да</translation>
 <translation id="1435537621343861112">Функцията за диктуване не може да стартира. Микрофонът ви е изключен.</translation>
 <translation id="1445031758921122223">Файловете за контролиране с лице бяха изтеглени</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Изчисления</translation>
 <translation id="1774796056689732716">Календар, текущата дата е <ph name="CURRENT_MONTH_YEAR" />, а понастоящем е избрана <ph name="DATE" />.</translation>
 <translation id="178347895271755507">Настройване на прегледа на скорошните снимки, мултимедийни файлове и известия на телефона ви</translation>
+<translation id="1785317913592722944">Премахване на елемента от предложената група</translation>
 <translation id="1786487376942610288">Превключване между максималния и текущия размер на прозореца в режим „Картина в картината“</translation>
 <translation id="1787955149152357925">Изкл.</translation>
 <translation id="1796561540704213354">Уебсайтове, включително посетените от вас и отворените страници</translation>
 <translation id="179842970735685253">Общите условия на Google</translation>
 <translation id="1805407494113167797">Звуците за „Концентрация“ не бяха възпроизведени</translation>
 <translation id="181103072419391116">Сила на сигнала <ph name="SIGNAL_STRENGTH" />, управлява се от администратора ви</translation>
+<translation id="1815039896005206046">Чрез бутона „Не ми харесва“ отбелязвате, че не харесвате тази предложена група</translation>
 <translation id="1816896987747843206">Това разрешава достъп до камерата за всички приложения и уебсайтове, които имат съответното разрешение</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Включване на достъпа до местоположението</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">„Hello“ in Chinese</translation>
 <translation id="2370971919968699910">Това може да доведе до разходи за данни.
 <ph name="DEVICECOUNT" /> устройства са свързани.</translation>
+<translation id="2383521554963939360">Групи приложения и раздели</translation>
 <translation id="2386292613071805067">Избиране на всичко на страницата</translation>
 <translation id="2389423187722941333">Превключване на Gemini</translation>
 <translation id="2392659840443812875">Няма точки за достъп. Уверете се, че устройството ви е в близост и функцията за Bluetooth е включена.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Ретуширане на лицето</translation>
 <translation id="4156293514828496577">Оставащият заряд на батерията е <ph name="PERCENTAGE" />% (около <ph name="TIME_LEFT" />).
 Някои функции са ограничени с цел удължаване на живота ѝ.</translation>
+<translation id="4158003972857765638">Организиране в нов работен кът</translation>
 <translation id="4160919062868802509">Открити са няколко аудиоизточника</translation>
 <translation id="416245495747357243">Готово!</translation>
 <translation id="4165275524535002941">Кабелът не поддържа видеосигнал</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Клавишната комбинация Ctrl + Alt + стрелка нагоре се промени. За да използвате клавиша Home, натиснете клавиша „<ph name="LAUNCHER_KEY_NAME" />“ + стрелката наляво.</translation>
 <translation id="4324840740119394760">Това разрешава достъп до камерата за <ph name="APP_NAME" /> и всички приложения и уебсайтове, които имат съответното разрешение</translation>
 <translation id="4327147325944669226">Записване на играта</translation>
+<translation id="4329076911374908740">Достигнат е максималният брой запазени групи.</translation>
 <translation id="4338109981321384717">Лупа</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, звукът е спрян</translation>
 <translation id="4351244548802238354">Затваряне на диалоговия прозорец</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">Преписът не може да се генерира</translation>
 <translation id="5251174953851719648">Опресняване на съдържанието</translation>
 <translation id="5253783950165989294">Установена е връзка с устройство на име <ph name="DEVICE_NAME" />. Ниво на батерията: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">Тестване на микрофона ви</translation>
 <translation id="5258528442992323769">Няма запазени работни кътове</translation>
 <translation id="5260676007519551770">Работен кът 4</translation>
 <translation id="5265391159779542051">Резултатите са заредени</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">Функцията за нощно осветление се включва автоматично при залез</translation>
 <translation id="5750765938512549687">Функцията за Bluetooth е изключена</translation>
 <translation id="5758114525425072423">Стартиране на сесия за концентрация. Таймерът е зададен на <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Чуйте как ще звучи гласът ви за другите хора. За да спрете възпроизвеждането, кликнете върху иконата за тест или затворете панела за видеообаждане.</translation>
 <translation id="5760866832697883462">Свържете устройството си <ph name="NAME" /></translation>
 <translation id="5762420912707163638">Превключване на маркера. <ph name="STATE_TEXT" /> Използвайте тракпада, сензорния екран или писалката, за да рисувате на екрана.</translation>
 <translation id="576341972084747908">Изтегляне на опасен файл <ph name="FILENAME" /></translation>
@@ -1939,6 +1947,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Създаване</translation>
 <translation id="7526573455193969409">Мрежата може да е под наблюдение</translation>
+<translation id="7534543072325030705">Чрез бутона „Харесва ми“ отбелязвате, че харесвате тази предложена група</translation>
 <translation id="7536035074519304529">IP адрес: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Актуализиране на левия прозорец</translation>
 <translation id="7543399541175347147">Понастоящем не се поддържат приложения за Linux и прозорци в режим „инкогнито“. Другите приложения ще бъдат запазени.</translation>
@@ -2103,6 +2112,7 @@
 <translation id="8004512796067398576">Увеличаване</translation>
 <translation id="8005527720597583355">Стартиране на сесия за концентрация</translation>
 <translation id="8015361438441228492">Задачата не бе редактирана.</translation>
+<translation id="8027187124910699148">Възобновяване на предложената група</translation>
 <translation id="802782383769312836">Предишен работен кът: <ph name="DESK_NAME" />. Работен кът <ph name="DESK_INDEX" /> от <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Не бе установена връзка с точката за достъп</translation>
 <translation id="8029629653277878342">За по-висока сигурност се изисква парола или ПИН</translation>
@@ -2211,6 +2221,7 @@
 <translation id="8426708595819210923">Добър вечер, <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /> + <ph name="MODIFIER_TWO" /> <ph name="DELIMITER" /> <ph name="KEY_ONE" /> до <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Запазване на групата за по-късно</translation>
 <translation id="8433186206711564395">Настройки на мрежата</translation>
 <translation id="8433977262951327081">Комбинацията за показване в лавицата на балончето с менюто за опциите за въвеждане е променена. Моля, използвайте <ph name="NEW_SHORTCUT" /> вместо <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Отваряне на инструмента за отзиви</translation>
@@ -2219,6 +2230,7 @@
 <translation id="8446884382197647889">Научете повече</translation>
 <translation id="8456543082656546101">„<ph name="SHORTCUT_KEY_NAME" />“ + V</translation>
 <translation id="8462305545768648477">Затваряне на функцията „Прочитане на глас“</translation>
+<translation id="8466665972451889002">Показване на елементите в(ъв) „<ph name="GROUP_NAME" />“</translation>
 <translation id="8468806060683421065">Краен срок: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Настройки за мащаба на показване</translation>
 <translation id="8473301994082929012">Функцията „<ph name="FEATURE_NAME" />“ е <ph name="FEATURE_STATE" /> от <ph name="ORGANIZATION_NAME" />.</translation>
@@ -2241,6 +2253,7 @@
 <translation id="8551588720239073785">Настройки за дата и час</translation>
 <translation id="8553395910833293175">Вече е прехвърлено във всички работни кътове.</translation>
 <translation id="8555757996376137129">Премахване на текущия работен кът</translation>
+<translation id="8558521694042102707">Генеративният AI може да допуска грешки, включително за хора, затова проверявайте отговорите.</translation>
 <translation id="8559845965695780508">Редактирано от <ph name="USER" /></translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Ето няколко предложения, които да изпробвате</translation>
@@ -2263,6 +2276,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />, управлява се от администратора ви</translation>
 <translation id="8638637208069328956">Включване/изключване на микрофона</translation>
 <translation id="8639760480004882931">Батерия: <ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">Скриване на всички предложения за групи</translation>
 <translation id="8641510901370802679">Показана е информация за <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480">Таймер за <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">За да добавите човек, въведете кода си за достъп на родител от Family Link</translation>
@@ -2345,6 +2359,7 @@
 <translation id="8905919797434099235">(Без заглавие)</translation>
 <translation id="890616557918890486">Промяна на източника</translation>
 <translation id="8909138438987180327">Батерията е на <ph name="PERCENTAGE" /> процента.</translation>
+<translation id="8916866375277139011">Скриване на елементите в(ъв) „<ph name="GROUP_NAME" />“</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google Асистент не поддържа този език.</translation>
 <translation id="8926951137623668982">Лавицата е винаги скрита</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index d6da3d1..48a6ac57 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -973,6 +973,7 @@
 <translation id="4285498937028063278">Otkači</translation>
 <translation id="428715201724021596">Povezivanje s profilom. To može potrajati nekoliko minuta.</translation>
 <translation id="4287250812980588583">Prozor Chromea</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{Glasnoćom mikrofona upravlja aplikacija <ph name="APP_NAME" />}one{Glasnoćom mikrofona upravlja # aplikacija}few{Glasnoćom mikrofona upravljaju # aplikacije}other{Glasnoćom mikrofona upravlja # aplikacija}}</translation>
 <translation id="4294319844246081198">Dobro jutro <ph name="GIVEN_NAME" />,</translation>
 <translation id="4296136865091727875">Obrišite sva obavještenja, njih <ph name="COUNT" /></translation>
 <translation id="4300272766492248925">Otvori aplikaciju</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb
index 21483df..fb00dd7 100644
--- a/ash/strings/ash_strings_cy.xtb
+++ b/ash/strings/ash_strings_cy.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Dangos rhestr rhwydwaith. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Datglowch y ddyfais i gyflawni'r weithred hysbysu</translation>
 <translation id="1420408895951708260">Toglo Golau Nos. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Grŵp a awgrymir</translation>
 <translation id="1426410128494586442">Iawn</translation>
 <translation id="1435537621343861112">Methu â dechrau arddweud. Mae'ch meic wedi'i ddiffodd.</translation>
 <translation id="1445031758921122223">Wedi lawrlwytho ffeiliau rheoli wyneb</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Cyfrifiadau</translation>
 <translation id="1774796056689732716">Calendr, <ph name="CURRENT_MONTH_YEAR" />, mae <ph name="DATE" /> wedi'i ddewis ar hyn o bryd.</translation>
 <translation id="178347895271755507">Gosod gweld lluniau, cyfryngau a hysbysiadau diweddar eich ffôn</translation>
+<translation id="1785317913592722944">Tynnu eitemau o'r grŵp a awgrymir</translation>
 <translation id="1786487376942610288">Newid rhwng maint mwyaf neu faint presennol y ffenestr llun-mewn-llun</translation>
 <translation id="1787955149152357925">Diffodd</translation>
 <translation id="1796561540704213354">Gwefannau gan gynnwys tudalennau rydych wedi ymweld â nhw a thudalennau agored</translation>
 <translation id="179842970735685253">Telerau Gwasanaeth Google</translation>
 <translation id="1805407494113167797">Methu â chwarae synau Canolbwyntio</translation>
 <translation id="181103072419391116">Cryfder Signal <ph name="SIGNAL_STRENGTH" />, Rheolir gan eich Gweinyddwr</translation>
+<translation id="1815039896005206046">Byddai bodiau i lawr yn cyflwyno'r adborth nad ydych yn hoffi'r grŵp hwn a awgrymir</translation>
 <translation id="1816896987747843206">Mae hyn yn caniatáu mynediad camera i bob ap a gwefan gyda chaniatâd y camera</translation>
 <translation id="1823873187264960516">Ether-rwyd: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Troi mynediad lleoliad ymlaen</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">"Helo" yn Tsieinëeg</translation>
 <translation id="2370971919968699910">Gall hyn arwain at gost data.
 Mae <ph name="DEVICECOUNT" /> o ddyfeisiau yn gysylltiedig.</translation>
+<translation id="2383521554963939360">Grwpiau ap a thabiau</translation>
 <translation id="2386292613071805067">Dewis popeth ar y dudalen</translation>
 <translation id="2389423187722941333">Toglo Gemini</translation>
 <translation id="2392659840443812875">Dim poethfan ar gael. Sicrhewch fod eich dyfais gerllaw a bod Bluetooth wedi'i droi ymlaen.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Harddu eich portread</translation>
 <translation id="4156293514828496577"><ph name="PERCENTAGE" />% o fatri ar ôl (tua <ph name="TIME_LEFT" />).
 Mae rhai nodweddion wedi'u cyfyngu i gynyddu oes y batri.</translation>
+<translation id="4158003972857765638">Trefnu mewn desg newydd</translation>
 <translation id="4160919062868802509">Wedi canfod mwy nag un ffynhonnell sain</translation>
 <translation id="416245495747357243">Gorffen!</translation>
 <translation id="4165275524535002941">Mae'n bosib na fydd cebl yn cefnogi sgriniau</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Mae'r llwybr byr bysellfwrdd Ctrl + Alt + Saeth i fyny wedi newid. I ddefnyddio'r fysell Home, pwyswch y fysell <ph name="LAUNCHER_KEY_NAME" /> + Saeth Chwith.</translation>
 <translation id="4324840740119394760">Mae hyn yn caniatáu mynediad camera ar gyfer <ph name="APP_NAME" /> a phob ap a gwefan gyda chaniatâd y camera</translation>
 <translation id="4327147325944669226">Recordio gêm</translation>
+<translation id="4329076911374908740">Cyrhaeddwyd y nifer uchaf o grwpiau sydd wedi'u cadw.</translation>
 <translation id="4338109981321384717">Chwyddwydr</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, Wedi'i ddistewi</translation>
 <translation id="4351244548802238354">Cau deialog</translation>
@@ -1939,6 +1945,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Creu</translation>
 <translation id="7526573455193969409">Mae'n bosib bod y rhwydwaith yn cael ei fonitro</translation>
+<translation id="7534543072325030705">Byddai bodiau i fyny yn cyflwyno'r adborth eich bod yn hoffi'r grŵp hwn a awgrymir</translation>
 <translation id="7536035074519304529">Cyfeiriad IP: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Diweddaru'r ffenestr ar y chwith</translation>
 <translation id="7543399541175347147">Ni chefnogir apiau Linux a ffenestri anhysbys ar hyn o bryd. Bydd apiau eraill yn cael eu cadw.</translation>
@@ -2103,6 +2110,7 @@
 <translation id="8004512796067398576">Cynyddiad</translation>
 <translation id="8005527720597583355">Dechrau sesiwn Ffocysu</translation>
 <translation id="8015361438441228492">Methu â golygu tasg.</translation>
+<translation id="8027187124910699148">Ailddechrau grŵp a awgrymir</translation>
 <translation id="802782383769312836">Desg flaenorol: <ph name="DESK_NAME" />. Desg <ph name="DESK_INDEX" /> o <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Methwyd y cysylltiad â'r poethfan</translation>
 <translation id="8029629653277878342">Mae angen PIN neu gyfrinair ar gyfer rhagor o ddiogelwch</translation>
@@ -2211,6 +2219,7 @@
 <translation id="8426708595819210923">Noswaith dda <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">Gosodiadau</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> hyd at <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Cadw'r grŵp ar gyfer nes ymlaen</translation>
 <translation id="8433186206711564395">Gosodiadau rhwydwaith</translation>
 <translation id="8433977262951327081">Mae'r llwybr byr i ddangos swigen y ddewislen dewisiadau mewnbynnu yn y silff wedi newid. Defnyddiwch <ph name="NEW_SHORTCUT" /> yn lle <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Agor yr offeryn adborth</translation>
@@ -2219,6 +2228,7 @@
 <translation id="8446884382197647889">Dysgu rhagor</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Cau Dewis i siarad</translation>
+<translation id="8466665972451889002">Dangos eitemau yn <ph name="GROUP_NAME" /></translation>
 <translation id="8468806060683421065">yn ddyledus ar <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Gosodiadau graddfa sgrîn</translation>
 <translation id="8473301994082929012">Mae gan <ph name="ORGANIZATION_NAME" /> <ph name="FEATURE_STATE" /> <ph name="FEATURE_NAME" />.</translation>
@@ -2241,6 +2251,7 @@
 <translation id="8551588720239073785">Gosodiadau dyddiad ac amser</translation>
 <translation id="8553395910833293175">Wedi'i haseinio i bob desg yn barod.</translation>
 <translation id="8555757996376137129">Tynnu'r ddesg bresennol</translation>
+<translation id="8558521694042102707">Gall AI cynhyrchiol wneud camgymeriadau, gan gynnwys am bobl, felly gwiriwch ef ddwywaith.</translation>
 <translation id="8559845965695780508">Gwnaeth <ph name="USER" /> olygu</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Dyma ychydig o awgrymiadau i roi cynnig arnynt</translation>
@@ -2263,6 +2274,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, Cryfder Signal <ph name="SIGNAL_STRENGTH" />, Rheolir gan eich Gweinyddwr</translation>
 <translation id="8638637208069328956">Troi'r meicroffon ymlaen/ei ddiffodd</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> ar ôl</translation>
+<translation id="8640470573049727749">Cuddio pob awgrym grŵp</translation>
 <translation id="8641510901370802679">Yn dangos gwybodaeth <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480">Amserydd <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">I ychwanegu person, rhowch eich cod mynediad rhiant Family Link</translation>
@@ -2345,6 +2357,7 @@
 <translation id="8905919797434099235">(Dim teitl)</translation>
 <translation id="890616557918890486">Newid ffynhonnell</translation>
 <translation id="8909138438987180327">Mae <ph name="PERCENTAGE" /> y cant o'r batri'n weddill.</translation>
+<translation id="8916866375277139011">Cuddio eitemau yn <ph name="GROUP_NAME" /></translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Nid yw Google Assistant yn siarad yr iaith hon.</translation>
 <translation id="8926951137623668982">Silff yn cael ei guddio bob amser</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index d7b848f..8c2ef39 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -1265,6 +1265,7 @@
 <translation id="5245201184978705914">No se puede generar la transcripción</translation>
 <translation id="5251174953851719648">Actualizar contenido</translation>
 <translation id="5253783950165989294">Conectado a un dispositivo llamado <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" /> % de batería</translation>
+<translation id="5256939106029293271">Prueba tu micrófono</translation>
 <translation id="5258528442992323769">No hay escritorios guardados</translation>
 <translation id="5260676007519551770">Escritorio 4</translation>
 <translation id="5265391159779542051">Resultados cargados</translation>
@@ -1422,6 +1423,7 @@
 <translation id="5745612484876805746">La luz nocturna se activa automáticamente al anochecer</translation>
 <translation id="5750765938512549687">El Bluetooth está desactivado</translation>
 <translation id="5758114525425072423">Iniciar modo Sin distracciones. Se ha añadido un temporizador de <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Escucha cómo te oirán los demás. Para detener la prueba, haz clic en el icono de prueba o cierra el panel de la videollamada.</translation>
 <translation id="5760866832697883462">Conecta <ph name="NAME" /></translation>
 <translation id="5762420912707163638">Activar/Desactivar marcador. <ph name="STATE_TEXT" /> Usa el panel táctil, la pantalla táctil o el lápiz óptico para dibujar en la pantalla.</translation>
 <translation id="576341972084747908">Descargando archivo peligroso <ph name="FILENAME" /></translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index cef74226..a26c838 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Erakutsi sareen zerrenda. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Desblokeatu gailua jakinarazpen-ekintza gauzatzeko</translation>
 <translation id="1420408895951708260">Aktibatu/Desaktibatu Gaueko argia. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Iradokitako taldea</translation>
 <translation id="1426410128494586442">Bai</translation>
 <translation id="1435537621343861112">Ezin da hasi diktaketa. Mikrofonoa desaktibatuta daukazu.</translation>
 <translation id="1445031758921122223">Deskargatu dira aurpegi-keinuen bidez kontrolatzeko eginbidearen fitxategiak</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Kalkuluak</translation>
 <translation id="1774796056689732716">Egutegia, <ph name="CURRENT_MONTH_YEAR" />, une honetan <ph name="DATE" /> dago hautatuta.</translation>
 <translation id="178347895271755507">Konfiguratu telefonoko azkenaldiko argazkiak, multimedia-elementuak eta jakinarazpenak ikusteko aukera</translation>
+<translation id="1785317913592722944">Kendu elementua iradokitako taldetik</translation>
 <translation id="1786487376942610288">Aldatu pantaila txiki gainjarriaren gehieneko tamainaren eta oraingoaren artean</translation>
 <translation id="1787955149152357925">Desaktibatuta</translation>
 <translation id="1796561540704213354">Bisitatu dituzun orrialdeak eta irekitako orriak dituzten webguneak</translation>
 <translation id="179842970735685253">Google-ren Zerbitzu-baldintzak</translation>
 <translation id="1805407494113167797">Ezin izan dira erreproduzitu kontzentratzeko eginbidearen soinuak</translation>
 <translation id="181103072419391116">Seinalearen indarra: <ph name="SIGNAL_STRENGTH" />. Administratzaileak kudeatua.</translation>
+<translation id="1815039896005206046">"Ez zait gustatu" sakatuta, iradokitako talde hau gustatu ez zaizula esaten duen ohar bat bidaliko da</translation>
 <translation id="1816896987747843206">Kamera erabiltzeko baimena daukaten aplikazio eta webgune guztiek kamera atzitu ahal izango dute</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Aktibatu kokapenerako sarbidea</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">Nola esaten da "Kaixo" txineraz</translation>
 <translation id="2370971919968699910">Baliteke datu-konexioari dagozkion kostuak ordaindu behar izatea.
 <ph name="DEVICECOUNT" /> gailu daude konektatuta.</translation>
+<translation id="2383521554963939360">Aplikazio eta fitxa taldeak</translation>
 <translation id="2386292613071805067">Hautatu orriko eduki guztia</translation>
 <translation id="2389423187722941333">Aktibatu/Desaktibatu Gemini</translation>
 <translation id="2392659840443812875">Ez dago wifi-gunerik erabilgarri. Ziurtatu gailua inguruan dagoela eta Bluetootha aktibatuta daukala.</translation>
@@ -921,6 +925,7 @@
 <translation id="4151054805501931758">Erretratu-ukituak</translation>
 <translation id="4156293514828496577">Bateriari % <ph name="PERCENTAGE" /> geratzen zaio (<ph name="TIME_LEFT" /> inguru).
 Bateriaren iraupena luzatzeko, eginbide batzuk mugatu dira.</translation>
+<translation id="4158003972857765638">Antolatu lan-eremu berri batean</translation>
 <translation id="4160919062868802509">Audio-sarrera bat baino gehiago hauteman dira</translation>
 <translation id="416245495747357243">Dena eginda!</translation>
 <translation id="4165275524535002941">Baliteke kablea pantailekin bateragarria ez izatea</translation>
@@ -985,6 +990,7 @@
 <translation id="4322742403972824594">Ktrl + Alt + gora egiteko gezi-tekla lasterbidea aldatu egin da. Hasiera tekla erabiltzeko, sakatu <ph name="LAUNCHER_KEY_NAME" /> tekla + ezkerrera egiteko gezi-tekla.</translation>
 <translation id="4324840740119394760"><ph name="APP_NAME" /> aplikazioak eta kamera erabiltzeko baimena daukaten beste aplikazio eta webgune guztiek kamera atzitu ahal izango dute</translation>
 <translation id="4327147325944669226">Grabatu jokoa</translation>
+<translation id="4329076911374908740">Gordetako gehieneko talde kopurura iritsi zara.</translation>
 <translation id="4338109981321384717">Lupa</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, audioa desaktibatuta</translation>
 <translation id="4351244548802238354">Itxi leihoa</translation>
@@ -1940,6 +1946,7 @@
 <translation id="7524043547948122239">Google Zereginak</translation>
 <translation id="7525067979554623046">Sortu</translation>
 <translation id="7526573455193969409">Baliteke sarea gainbegiratuta egotea</translation>
+<translation id="7534543072325030705">"Gustatu zait" sakatuta, iradokitako talde hau gustatu zaizula esaten duen ohar bat bidaliko da</translation>
 <translation id="7536035074519304529">IP helbidea: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Eguneratu ezkerreko leihoa</translation>
 <translation id="7543399541175347147">Une honetan ez dira onartzen Linux-eko aplikazioak eta ezkutuko moduko leihoak. Gainerako aplikazioak gorde egingo dira.</translation>
@@ -2104,6 +2111,7 @@
 <translation id="8004512796067398576">Gehikuntza</translation>
 <translation id="8005527720597583355">Hasi kontzentratzeko saio bat</translation>
 <translation id="8015361438441228492">Ezin izan da editatu zeregina.</translation>
+<translation id="8027187124910699148">Berrekin iradokitako taldea erabiltzeari</translation>
 <translation id="802782383769312836">Aurreko lan-eremua: <ph name="DESK_NAME" />. <ph name="DESK_INDEX" />/<ph name="DESK_COUNT" /> lan-eremua.</translation>
 <translation id="8029247720646289474">Ezin izan da konektatu wifi-gunera</translation>
 <translation id="8029629653277878342">PINa edo pasahitza behar da gailua babestuago edukitzeko</translation>
@@ -2212,6 +2220,7 @@
 <translation id="8426708595819210923">Arratsalde on, <ph name="GIVEN_NAME" />:</translation>
 <translation id="8428213095426709021">Ezarpenak</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />-<ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Gorde taldea geroko</translation>
 <translation id="8433186206711564395">Sarearen ezarpenak</translation>
 <translation id="8433977262951327081">Aldatu egin da idazketa-aukeren burbuila apalean erakusteko lasterbidea. Aurrerantzean, erabili <ph name="NEW_SHORTCUT" />, eta ez <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Ireki iritzia emateko tresna</translation>
@@ -2220,6 +2229,7 @@
 <translation id="8446884382197647889">Lortu informazio gehiago</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Itxi Hautatu ozen irakurtzeko</translation>
+<translation id="8466665972451889002">Erakutsi <ph name="GROUP_NAME" /> taldeko elementuak</translation>
 <translation id="8468806060683421065">epemuga: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Bistaratu eskala-ezarpenak</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> erakundeak <ph name="FEATURE_STATE" /> dauka <ph name="FEATURE_NAME" />.</translation>
@@ -2242,6 +2252,7 @@
 <translation id="8551588720239073785">Data- eta ordu-ezarpenak</translation>
 <translation id="8553395910833293175">Lan-eremu guztiei esleitu zaie dagoeneko.</translation>
 <translation id="8555757996376137129">Kendu lan-eremu hau</translation>
+<translation id="8558521694042102707">Baliteke AA generatiboak akatsak egitea (jendeari buruzkoak barne); beraz, egiaztatu informazioa.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> erabiltzaileak editatu du</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Hona hemen proba ditzakezun gauza batzuk:</translation>
@@ -2264,6 +2275,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />. Seinalearen indarra: <ph name="SIGNAL_STRENGTH" />. Administratzaileak kudeatua.</translation>
 <translation id="8638637208069328956">Aktibatu edo desaktibatu mikrofonoa</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> geratzen da</translation>
+<translation id="8640470573049727749">Ezkutatu taldeen iradokizun guztiak</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> kategoriako informazioa ikusgai</translation>
 <translation id="8646417893960517480">Tenporizadorea: <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">Pertsona bat gehitzeko, idatzi Family Link-eko gurasoen sarbide-kodea</translation>
@@ -2346,6 +2358,7 @@
 <translation id="8905919797434099235">(Izengabea)</translation>
 <translation id="890616557918890486">Aldatu iturburua</translation>
 <translation id="8909138438987180327">Bateriaren % <ph name="PERCENTAGE" /> geratzen zaizu.</translation>
+<translation id="8916866375277139011">Ezkutatu <ph name="GROUP_NAME" /> taldeko elementuak</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google-ren Laguntzailea zerbitzuak ezin du erabili hizkuntza hori.</translation>
 <translation id="8926951137623668982">Apala beti dago ezkutatuta</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 681136d..6b4eb80 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -1270,6 +1270,7 @@
 <translation id="5245201184978705914">ترانویسی ایجاد نشد</translation>
 <translation id="5251174953851719648">بازآوری محتوا</translation>
 <translation id="5253783950165989294">متصل به دستگاهی با نام <ph name="DEVICE_NAME" />، شارژ باتری <ph name="BATTERY_PERCENTAGE" />٪</translation>
+<translation id="5256939106029293271">میکروفون را آزمایش کنید</translation>
 <translation id="5258528442992323769">میز کار ذخیره‌شده‌ای ندارید</translation>
 <translation id="5260676007519551770">میز ۴</translation>
 <translation id="5265391159779542051">نتایج بار شدند</translation>
@@ -1427,6 +1428,7 @@
 <translation id="5745612484876805746">«نور شب» هنگام غروب آفتاب به‌طور خودکار روشن می‌شود</translation>
 <translation id="5750765938512549687">بلوتوث خاموش است</translation>
 <translation id="5758114525425072423">شروع «تمرکز». زمان‌سنج روی <ph name="FOCUS_DURATION" /> تنظیم شده است.</translation>
+<translation id="5759522586053040964">ببینید دیگران صدای شما را چگونه می‌شنوند. برای متوقف کردن، روی نماد آزمایش کلیک کنید یا پانل تماس تصویری را ببندید.</translation>
 <translation id="5760866832697883462">متصل کردن <ph name="NAME" /></translation>
 <translation id="5762420912707163638">روشن/ خاموش کردن نشانگر. <ph name="STATE_TEXT" /> برای کشیدن طرح روی صفحه از پد لمسی، صفحه لمسی، یا قلم استفاده کنید.</translation>
 <translation id="576341972084747908">بارگیری <ph name="FILENAME" /> خطرناک</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 64b5bb8..969dc03d 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -1265,6 +1265,7 @@
 <translation id="5245201184978705914">ट्रांसक्रिप्ट को जनरेट नहीं किया जा सका</translation>
 <translation id="5251174953851719648">कॉन्टेंट को रीफ़्रेश करें</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> नाम वाले ब्लूटूथ डिवाइस से कनेक्ट किया गया है. इसकी बैटरी <ph name="BATTERY_PERCENTAGE" />% है</translation>
+<translation id="5256939106029293271">माइक की जांच करें</translation>
 <translation id="5258528442992323769">कोई डेस्क सेव नहीं किया गया है</translation>
 <translation id="5260676007519551770">डेस्क 4</translation>
 <translation id="5265391159779542051">नतीजे लोड हो गए हैं</translation>
@@ -1422,6 +1423,7 @@
 <translation id="5745612484876805746">सूरज ढलने पर 'नाइट लाइट' अपने-आप चालू हो जाती है</translation>
 <translation id="5750765938512549687">ब्लूटूथ बंद है</translation>
 <translation id="5758114525425072423">फ़ोकस मोड चालू करें. <ph name="FOCUS_DURATION" /> का टाइमर सेट है.</translation>
+<translation id="5759522586053040964">माइक की जांच करें और जानें कि आपकी आवाज़ दूसरों को कैसी सुनाई देगी. जांच रोकने के लिए, 'जांच करें' आइकॉन पर क्लिक करें या वीडियो कॉल वाला पैनल बंद करें.</translation>
 <translation id="5760866832697883462">अपना <ph name="NAME" /> कनेक्ट करें</translation>
 <translation id="5762420912707163638">मार्कर को टॉगल करें. <ph name="STATE_TEXT" /> स्क्रीन पर ड्रा करने के लिए ट्रैकपैड, टचस्क्रीन या स्टाइलस इस्तेमाल करें.</translation>
 <translation id="576341972084747908"><ph name="FILENAME" /> डाउनलोड हो रही है जिसमें खतरनाक कॉन्टेंट मौजूद है</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index d74cd765..a56edae7 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -973,6 +973,7 @@
 <translation id="4285498937028063278">Otkvači</translation>
 <translation id="428715201724021596">Uređaj se povezuje s profilom. To može potrajati nekoliko minuta.</translation>
 <translation id="4287250812980588583">Chromeov prozor</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{Glasnoćom mikrofona upravlja aplikacija <ph name="APP_NAME" />}one{Glasnoćom mikrofona upravlja # aplikacija}few{Glasnoćom mikrofona upravljaju # aplikacije}other{Glasnoćom mikrofona upravlja # aplikacija}}</translation>
 <translation id="4294319844246081198">Dobro jutro, <ph name="GIVEN_NAME" /></translation>
 <translation id="4296136865091727875">Brisanje svih obavijesti (<ph name="COUNT" />)</translation>
 <translation id="4300272766492248925">Otvori aplikaciju</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 9305170f..95b4cb1 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">A hálózatok listájának megjelenítése. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Az eszköz zárolásának feloldása az értesítési művelet végrehajtásához</translation>
 <translation id="1420408895951708260">Éjszakai fény be-/kikapcsolása. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Javasolt csoport</translation>
 <translation id="1426410128494586442">Igen</translation>
 <translation id="1435537621343861112">Nem sikerült elindítani a diktálást. A mikrofon ki van kapcsolva.</translation>
 <translation id="1445031758921122223">Arcvezérlési fájlok letöltve</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Számítások</translation>
 <translation id="1774796056689732716">Naptár, <ph name="CURRENT_MONTH_YEAR" />, jelenleg kijelölt dátum: <ph name="DATE" /></translation>
 <translation id="178347895271755507">A telefonján lévő legutóbbi fotók, médiatartalmak és értesítések megtekintésének beállítása</translation>
+<translation id="1785317913592722944">Elem eltávolítása a javasolt csoportból</translation>
 <translation id="1786487376942610288">Váltás a „kép a képben” ablak maximális és aktuális mérete között</translation>
 <translation id="1787955149152357925">Ki</translation>
 <translation id="1796561540704213354">Webhelyek, például a felkeresett oldalak és a megnyitott oldalak</translation>
 <translation id="179842970735685253">A Google Általános Szerződési Feltételei</translation>
 <translation id="1805407494113167797">Nem sikerült lejátszani az összpontosítást segítő hangokat</translation>
 <translation id="181103072419391116">Jelerősség: <ph name="SIGNAL_STRENGTH" />, a rendszergazdája kezeli</translation>
+<translation id="1815039896005206046">A „Nem tetszik” értékeléssel azt a visszajelzést küldi, hogy nem tetszik Önnek ez a javasolt csoport</translation>
 <translation id="1816896987747843206">Ezzel engedélyezi a kamerához való hozzáférést a kamerahasználati engedéllyel rendelkező összes alkalmazás és webhely számára</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Helyhozzáférés bekapcsolása</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">„Helló” kínai nyelven</translation>
 <translation id="2370971919968699910">Ez adatforgalmi költségekkel járhat.
 <ph name="DEVICECOUNT" /> eszköz van csatlakoztatva.</translation>
+<translation id="2383521554963939360">Alkalmazás- és lapcsoportok</translation>
 <translation id="2386292613071805067">Az oldalon lévő összes elem kijelölése</translation>
 <translation id="2389423187722941333">A Gemini be- vagy kikapcsolása</translation>
 <translation id="2392659840443812875">Nincs rendelkezésre álló hotspot. Győződjön meg arról, hogy az eszköze a közelben van, és be van kapcsolva rajta a Bluetooth.</translation>
@@ -921,6 +925,7 @@
 <translation id="4151054805501931758">Portré retusálása</translation>
 <translation id="4156293514828496577">Az akkumulátor töltöttségi szintje: <ph name="PERCENTAGE" />% (körülbelül <ph name="TIME_LEFT" />).
 Az akkumulátor-élettartam növelése érdekében egyes funkciók korlátozottan használhatók.</translation>
+<translation id="4158003972857765638">Rendezés új asztalon</translation>
 <translation id="4160919062868802509">Több hangforrás észlelve</translation>
 <translation id="416245495747357243">Kész!</translation>
 <translation id="4165275524535002941">Előfordulhat, hogy a kábel nem támogatja a kijelzőket</translation>
@@ -985,6 +990,7 @@
 <translation id="4322742403972824594">A Ctrl + Alt + Felfelé nyíl billentyűparancs módosult. A Home billentyű használatához nyomja le a következő billentyűparancsot: <ph name="LAUNCHER_KEY_NAME" /> + Balra nyíl.</translation>
 <translation id="4324840740119394760">Ezzel engedélyezi a kamerához való hozzáférést a(z) <ph name="APP_NAME" />, valamint a kamerahasználati engedéllyel rendelkező összes alkalmazás és webhely számára</translation>
 <translation id="4327147325944669226">Játék felvétele</translation>
+<translation id="4329076911374908740">Elérte a mentett csoportok maximális számát.</translation>
 <translation id="4338109981321384717">Nagyító</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, némítva</translation>
 <translation id="4351244548802238354">Párbeszédablak bezárása</translation>
@@ -1942,6 +1948,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Létrehozás</translation>
 <translation id="7526573455193969409">Elképzelhető, hogy figyelik a hálózatot</translation>
+<translation id="7534543072325030705">A „Tetszik” értékeléssel azt a visszajelzést küldi, hogy tetszik Önnek ez a javasolt csoport</translation>
 <translation id="7536035074519304529">IP-cím: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">A bal oldali ablak frissítése</translation>
 <translation id="7543399541175347147">A Linux-alkalmazások és az inkognitó ablakok jelenleg nem támogatottak. Az egyéb alkalmazásokat menti a rendszer.</translation>
@@ -2106,6 +2113,7 @@
 <translation id="8004512796067398576">Növelés</translation>
 <translation id="8005527720597583355">Összpontosítási üzemmód indítása</translation>
 <translation id="8015361438441228492">Nem sikerült szerkeszteni a feladatot.</translation>
+<translation id="8027187124910699148">Javasolt csoport folytatása</translation>
 <translation id="802782383769312836">Előző asztal: <ph name="DESK_NAME" />. <ph name="DESK_COUNT" />/<ph name="DESK_INDEX" />. asztal.</translation>
 <translation id="8029247720646289474">Sikertelen hotspotkapcsolat</translation>
 <translation id="8029629653277878342">A nagyobb biztonság érdekében PIN-kód vagy jelszó szükséges</translation>
@@ -2214,6 +2222,7 @@
 <translation id="8426708595819210923">Jó estét, <ph name="GIVEN_NAME" />!</translation>
 <translation id="8428213095426709021">Beállítások</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />–<ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Csoport mentése későbbre</translation>
 <translation id="8433186206711564395">Hálózati beállítások</translation>
 <translation id="8433977262951327081">Megváltozott a beviteli lehetőségek menüjének buborékját a polcon megjelenítő gyorsparancs. A(z) <ph name="OLD_SHORTCUT" /> helyett használja a(z) <ph name="NEW_SHORTCUT" /> billentyűkombinációt.</translation>
 <translation id="8437311513256731931">Visszajelzési eszköz megnyitása</translation>
@@ -2222,6 +2231,7 @@
 <translation id="8446884382197647889">További információ</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Felolvasás bezárása</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" /> elemeinek megjelenítése</translation>
 <translation id="8468806060683421065">határidő: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">A megjelenítési méret beállításai</translation>
 <translation id="8473301994082929012">A(z) <ph name="ORGANIZATION_NAME" /> szervezetnél <ph name="FEATURE_STATE" /> van a(z) <ph name="FEATURE_NAME" />.</translation>
@@ -2244,6 +2254,7 @@
 <translation id="8551588720239073785">Dátum- és időbeállítások</translation>
 <translation id="8553395910833293175">Már minden asztalhoz hozzá van rendelve.</translation>
 <translation id="8555757996376137129">Jelenlegi asztal eltávolítása</translation>
+<translation id="8558521694042102707">A generatív AI hibázhat (többek között személyekkel kapcsolatban is), ezért ellenőrizze a válaszait.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> szerkesztve</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Íme néhány javaslat, amelyet érdemes kipróbálni</translation>
@@ -2266,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, jelerősség: <ph name="SIGNAL_STRENGTH" />, a rendszergazdája kezeli</translation>
 <translation id="8638637208069328956">A mikrofon be- vagy kikapcsolása</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> maradt</translation>
+<translation id="8640470573049727749">Az összes csoportjavaslat elrejtése</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> típusú információk megjelenítése</translation>
 <translation id="8646417893960517480">Időzítő a következő időtartamra: <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">Személy hozzáadásához adja meg a Family Link szülői hozzáférési kódot</translation>
@@ -2348,6 +2360,7 @@
 <translation id="8905919797434099235">(Nincs cím)</translation>
 <translation id="890616557918890486">Forrás módosítása</translation>
 <translation id="8909138438987180327">Az akkumulátor töltöttsége <ph name="PERCENTAGE" /> százalék.</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" /> elemeinek elrejtése</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">A Google Segéd nem beszél ezen a nyelven.</translation>
 <translation id="8926951137623668982">A polc mindig rejtve lesz</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index bb7e1f4..81c97b27 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -1264,6 +1264,7 @@
 <translation id="5245201184978705914">Tidak dapat membuat transkrip</translation>
 <translation id="5251174953851719648">Muat ulang konten</translation>
 <translation id="5253783950165989294">Terhubung ke perangkat bernama <ph name="DEVICE_NAME" />, baterai <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">Uji mikrofon Anda</translation>
 <translation id="5258528442992323769">Tidak ada desktop tersimpan</translation>
 <translation id="5260676007519551770">Halaman kerja 4</translation>
 <translation id="5265391159779542051">Hasil dimuat</translation>
@@ -1421,6 +1422,7 @@
 <translation id="5745612484876805746">Fitur Cahaya Malam akan otomatis aktif saat matahari terbenam</translation>
 <translation id="5750765938512549687">Bluetooth nonaktif</translation>
 <translation id="5758114525425072423">Mulai Fokus. Timer disetel ke <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Dengarkan suara Anda di telinga orang lain. Untuk berhenti, klik ikon pengujian atau tutup panel panggilan video.</translation>
 <translation id="5760866832697883462">Hubungkan <ph name="NAME" /> Anda</translation>
 <translation id="5762420912707163638">Aktifkan/nonaktifkan penanda. <ph name="STATE_TEXT" /> Gunakan trackpad, layar sentuh, atau stilus untuk menggambar pada layar.</translation>
 <translation id="576341972084747908">Download <ph name="FILENAME" /> berbahaya</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 7d5be9f..601c0e4 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Sýna lista yfir netkerfi. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Opnaðu tækið til að framkvæma aðgerð tilkynningarinnar</translation>
 <translation id="1420408895951708260">Kveikja/slökkva á næturljósi. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Hópur sem stungið er upp á</translation>
 <translation id="1426410128494586442">Já</translation>
 <translation id="1435537621343861112">Ekki er hægt að hefja raddinnslátt. Slökkt er á hljóðnemanum.</translation>
 <translation id="1445031758921122223">Andlitsstýringarskrár voru sóttar</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Útreikningar</translation>
 <translation id="1774796056689732716">Dagatal, <ph name="CURRENT_MONTH_YEAR" />, núverandi val er <ph name="DATE" />.</translation>
 <translation id="178347895271755507">Setja upp skoðun nýlegra mynda, efnis og tilkynninga í símanum</translation>
+<translation id="1785317913592722944">Fjarlægja atriði úr hópi sem stungið er upp á</translation>
 <translation id="1786487376942610288">Skiptu á milli hámarksstærð eða núverandi stærðar af mynd í mynd-glugganum</translation>
 <translation id="1787955149152357925">Slökkt</translation>
 <translation id="1796561540704213354">Vefsvæði að meðtöldum síðum sem þú hefur heimsótt og opnar síður</translation>
 <translation id="179842970735685253">Þjónustuskilmálar Google</translation>
 <translation id="1805407494113167797">Ekki tókst að spila einbeitingarhljóð</translation>
 <translation id="181103072419391116"><ph name="SIGNAL_STRENGTH" /> sendistyrkur, stjórnað af kerfisstjóra</translation>
+<translation id="1815039896005206046">„Þumall niður“ myndi senda inn þau viðbrögð að þér líki ekki við hópinn sem stungið er upp á</translation>
 <translation id="1816896987747843206">Þetta veitir öllum forritum og vefsvæðum með myndavélarheimild aðgang að myndavél</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Kveikja á aðgangi að staðsetningu</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">„Halló“ á kínversku</translation>
 <translation id="2370971919968699910">Þetta gæti haft í för með sér gagnakostnað.
 <ph name="DEVICECOUNT" /> tæki tengd.</translation>
+<translation id="2383521554963939360">Forrita- og flipahópar</translation>
 <translation id="2386292613071805067">Velja allt á síðu</translation>
 <translation id="2389423187722941333">Velja/afvelja Gemini</translation>
 <translation id="2392659840443812875">Enginn tiltækur heitur reitur. Gakktu úr skugga um að tækið sé nálægt og að kveikt sé á Bluetooth.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Lagfæring á andlitsmynd</translation>
 <translation id="4156293514828496577"><ph name="PERCENTAGE" />% eftir af rafhlöðu (u.þ.b. <ph name="TIME_LEFT" />).
 Tilteknir eiginleikar verða takmarkaðir til að lengja rafhlöðuendingu.</translation>
+<translation id="4158003972857765638">Skipuleggja á nýju skrifborði</translation>
 <translation id="4160919062868802509">Margir hljóðgjafar greindir</translation>
 <translation id="416245495747357243">Allt komið!</translation>
 <translation id="4165275524535002941">Ekki er víst að snúran styðji skjái</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Flýtilyklinum „Ctrl + Alt + ör upp“ hefur verið breytt. Ýttu á <ph name="LAUNCHER_KEY_NAME" />-lykilinn + ör til vinstri til að nota Home-lykilinn.</translation>
 <translation id="4324840740119394760">Þetta veitir <ph name="APP_NAME" /> og öllum forritum og vefsvæðum með myndavélarheimild aðgang að myndavél</translation>
 <translation id="4327147325944669226">Taka upp leik</translation>
+<translation id="4329076911374908740">Hámarksfjölda vistaðra hópa náð.</translation>
 <translation id="4338109981321384717">Stækkunargler</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, slökkt á hljóði</translation>
 <translation id="4351244548802238354">Loka glugga</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">Ekki tókst að búa til textauppskrift</translation>
 <translation id="5251174953851719648">Endurnýja efni</translation>
 <translation id="5253783950165989294">Tengdist tækinu <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% rafhleðsla</translation>
+<translation id="5256939106029293271">Prófaðu hljóðnemann</translation>
 <translation id="5258528442992323769">Engin vistuð skrifborð</translation>
 <translation id="5260676007519551770">Skrifborð 4</translation>
 <translation id="5265391159779542051">Niðurstöðum hlaðið</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">Sjálfkrafa kviknar á næturljósi við sólsetur</translation>
 <translation id="5750765938512549687">Slökkt er á Bluetooth</translation>
 <translation id="5758114525425072423">Hefja einbeitingarlotu. Teljari stilltur á <ph name="FOCUS_DURATION" /></translation>
+<translation id="5759522586053040964">Heyrðu hvernig þú hljómar í eyrum annarra. Til að hætta skaltu smella á prófunartáknið eða loka myndsímtalssvæðinu.</translation>
 <translation id="5760866832697883462">Tengdu <ph name="NAME" /></translation>
 <translation id="5762420912707163638">Sýna/fela merkipenna. <ph name="STATE_TEXT" /> Notaðu snertiflötinn, snertiskjáinn eða pennann til að teikna á skjánum.</translation>
 <translation id="576341972084747908">Hættulegt niðurhal <ph name="FILENAME" /></translation>
@@ -1939,6 +1947,7 @@
 <translation id="7524043547948122239">Google-verkefni</translation>
 <translation id="7525067979554623046">Búa til</translation>
 <translation id="7526573455193969409">Hugsanlega er fylgst með netinu</translation>
+<translation id="7534543072325030705">„Þumall upp“ myndi senda inn þau viðbrögð að þér líki við hópinn sem stungið er upp á</translation>
 <translation id="7536035074519304529">IP-tala: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Uppfæra vinstri glugga</translation>
 <translation id="7543399541175347147">Linux forrit og huliðsgluggar eru ekki studdir eins og er. Önnur forrit verða vistuð.</translation>
@@ -2103,6 +2112,7 @@
 <translation id="8004512796067398576">Auka</translation>
 <translation id="8005527720597583355">Hefja einbeitingarlotu</translation>
 <translation id="8015361438441228492">Tókst ekki að breyta verkefni.</translation>
+<translation id="8027187124910699148">Halda áfram með hóp sem stungið er upp á</translation>
 <translation id="802782383769312836">Fyrra skrifborð: <ph name="DESK_NAME" />. Skrifborð <ph name="DESK_INDEX" /> af <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Tenging við heitan reit mistókst</translation>
 <translation id="8029629653277878342">Krafa er um PIN-númer eða aðgangsorð fyrir aukið öryggi</translation>
@@ -2211,6 +2221,7 @@
 <translation id="8426708595819210923">Gott kvöld <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">Stillingar</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> til <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Vista hóp til síðari nota</translation>
 <translation id="8433186206711564395">Netstillingar</translation>
 <translation id="8433977262951327081">Flýtileiðin til að sýna valmyndarblöðru fyrir innsláttarvalkosti í hillunni hefur breyst. Notaðu <ph name="NEW_SHORTCUT" /> í staðinn fyrir <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Opna ábendingaverkfæri</translation>
@@ -2219,6 +2230,7 @@
 <translation id="8446884382197647889">Frekari upplýsingar</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Loka Textaupplestri</translation>
+<translation id="8466665972451889002">Sýna atriði í <ph name="GROUP_NAME" /></translation>
 <translation id="8468806060683421065">skilafrestur: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Stillingarar skjástærðar</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> hefur <ph name="FEATURE_STATE" /> <ph name="FEATURE_NAME" />.</translation>
@@ -2241,6 +2253,7 @@
 <translation id="8551588720239073785">Dagsetningar- og tímastillingar</translation>
 <translation id="8553395910833293175">Þegar úthlutað til allra skrifborða</translation>
 <translation id="8555757996376137129">Fjarlægja núverandi skrifborð</translation>
+<translation id="8558521694042102707">Skapandi gervigreind getur gert mistök, þar á meðal varðandi fólk, svo að þú skalt gæta þess að fara yfir öll svör sem þú færð.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> breytti</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Hér eru nokkrar tillögur sem þú getur prófað</translation>
@@ -2263,6 +2276,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, sendistyrkur <ph name="SIGNAL_STRENGTH" />, stjórnað af kerfisstjóra</translation>
 <translation id="8638637208069328956">Kveikja/slökkva á hljóðnema</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> eftir</translation>
+<translation id="8640470573049727749">Fela allar hópatillögur</translation>
 <translation id="8641510901370802679">Sýnir upplýsingar um <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> teljari</translation>
 <translation id="8647931990447795414">Til að bæta við einstaklingi skaltu slá inn aðgangskóða foreldris fyrir Family Link</translation>
@@ -2345,6 +2359,7 @@
 <translation id="8905919797434099235">(Ekkert heiti)</translation>
 <translation id="890616557918890486">Breyta uppruna</translation>
 <translation id="8909138438987180327">Rafhlaða í <ph name="PERCENTAGE" />%.</translation>
+<translation id="8916866375277139011">Fela atriði í <ph name="GROUP_NAME" /></translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google-hjálparinn talar ekki þetta tungumál</translation>
 <translation id="8926951137623668982">Hilla alltaf falin</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index c2543ae8..ce39861 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -968,6 +968,7 @@
 <translation id="4285498937028063278">ביטול ההצמדה</translation>
 <translation id="428715201724021596">מתבצע חיבור לפרופיל. הפעולה עשויה להימשך מספר דקות.</translation>
 <translation id="4287250812980588583">‏חלון Chrome</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{עוצמת הקול של המיקרופון נשלטת על ידי <ph name="APP_NAME" />}one{עוצמת הקול של המיקרופון נשלטת על ידי # אפליקציות}two{עוצמת הקול של המיקרופון נשלטת על ידי # אפליקציות}other{עוצמת הקול של המיקרופון נשלטת על ידי # אפליקציות}}</translation>
 <translation id="4294319844246081198">בוקר טוב <ph name="GIVEN_NAME" />,</translation>
 <translation id="4296136865091727875">ניקוי כל <ph name="COUNT" /> ההתראות</translation>
 <translation id="4300272766492248925">פתיחת האפליקציה</translation>
@@ -1264,6 +1265,7 @@
 <translation id="5245201184978705914">לא ניתן ליצור תמליל</translation>
 <translation id="5251174953851719648">רענון התוכן</translation>
 <translation id="5253783950165989294">המכשיר <ph name="DEVICE_NAME" /> מחובר, <ph name="BATTERY_PERCENTAGE" />% סוללה</translation>
+<translation id="5256939106029293271">בדיקת המיקרופון</translation>
 <translation id="5258528442992323769">אין שולחנות עבודה וירטואליים שמורים</translation>
 <translation id="5260676007519551770">שולחן עבודה 4</translation>
 <translation id="5265391159779542051">טעינת התוצאות הסתיימה</translation>
@@ -1421,6 +1423,7 @@
 <translation id="5745612484876805746">תאורת לילה נדלקת באופן אוטומטי בשעת השקיעה</translation>
 <translation id="5750765938512549687">‏Bluetooth כבוי</translation>
 <translation id="5758114525425072423">הפעלת מצב הריכוז. הוגדר טיימר ל-<ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">ככה הקול שלך נשמע כדי להפסיק, לוחצים על סמל הבדיקה או סוגרים את החלונית של שיחת הווידאו.</translation>
 <translation id="5760866832697883462">חיבור של <ph name="NAME" /></translation>
 <translation id="5762420912707163638">החלפת המצב של כלי הסימון. <ph name="STATE_TEXT" /> אפשר להשתמש במשטח המגע, במסך המגע או בסטיילוס כדי לשרטט במסך.</translation>
 <translation id="576341972084747908">הורדת קובץ (<ph name="FILENAME" />) מסוכן</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 8fa8a240..be852a3 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">ネットワーク リストを表示します。<ph name="STATE_TEXT" />。</translation>
 <translation id="1419738280318246476">通知に関する操作を行うには、デバイスのロックを解除してください</translation>
 <translation id="1420408895951708260">夜間モードのオンとオフを切り替えます。<ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">提案グループ</translation>
 <translation id="1426410128494586442">はい</translation>
 <translation id="1435537621343861112">音声入力を開始できません。マイクがオフになっています。</translation>
 <translation id="1445031758921122223">フェイス コントロール ファイルをダウンロードしました</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">計算</translation>
 <translation id="1774796056689732716">カレンダー、<ph name="CURRENT_MONTH_YEAR" />、現在 <ph name="DATE" /> が選択されています。</translation>
 <translation id="178347895271755507">スマートフォンの最近の写真、メディア、通知の表示を設定</translation>
+<translation id="1785317913592722944">提案グループから項目を削除</translation>
 <translation id="1786487376942610288">ピクチャー イン ピクチャー ウィンドウの最大サイズと現在のサイズを切り替えます</translation>
 <translation id="1787955149152357925">オフ</translation>
 <translation id="1796561540704213354">アクセスしたページ、開いているページなどのウェブサイト</translation>
 <translation id="179842970735685253">Google 利用規約</translation>
 <translation id="1805407494113167797">フォーカス モード用のサウンドを再生できませんでした</translation>
 <translation id="181103072419391116">信号強度 <ph name="SIGNAL_STRENGTH" />、管理者によって管理</translation>
+<translation id="1815039896005206046">低く評価すると、この提案グループが気に入らなかったというフィードバックが送信されます</translation>
 <translation id="1816896987747843206">カメラへのアクセス権を持つすべてのアプリとウェブサイトに対して、カメラへのアクセスを許可します</translation>
 <translation id="1823873187264960516">イーサネット: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">位置情報へのアクセスをオンにする</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">中国語で「こんにちは」ってどう言うの</translation>
 <translation id="2370971919968699910">データ料金が発生する場合があります。
 <ph name="DEVICECOUNT" /> 台のデバイスが接続されています。</translation>
+<translation id="2383521554963939360">アプリとタブグループ</translation>
 <translation id="2386292613071805067">ページ上のすべてを選択する</translation>
 <translation id="2389423187722941333">Gemini を切り替える</translation>
 <translation id="2392659840443812875">利用できるアクセス ポイントはありません。デバイスが近くにあり、Bluetooth がオンになっていることを確認してください。</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">ポートレート レタッチ</translation>
 <translation id="4156293514828496577">バッテリー残量が <ph name="PERCENTAGE" />% です(約 <ph name="TIME_LEFT" />)。
 バッテリー駆動時間を延ばすため、一部の機能が制限されています。</translation>
+<translation id="4158003972857765638">新しいデスクで整理する</translation>
 <translation id="4160919062868802509">複数のオーディオ ソースが検出されました</translation>
 <translation id="416245495747357243">作業は進みましたか?</translation>
 <translation id="4165275524535002941">ケーブルはディスプレイに対応していない可能性があります</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">キーボード ショートカット「Ctrl+Alt+上矢印」が変更されました。Home キーを使用するには、<ph name="LAUNCHER_KEY_NAME" />+左矢印キーを押してください。</translation>
 <translation id="4324840740119394760">カメラへのアクセス権を持つ <ph name="APP_NAME" /> およびすべてのアプリとウェブサイトに対して、カメラへのアクセスを許可します</translation>
 <translation id="4327147325944669226">ゲームを録画</translation>
+<translation id="4329076911374908740">保存できるグループ数の上限に達しました。</translation>
 <translation id="4338109981321384717">虫メガネ</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />、ミュートされています</translation>
 <translation id="4351244548802238354">ダイアログを閉じる</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">文字起こしを生成できません</translation>
 <translation id="5251174953851719648">コンテンツを更新</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> という名前のデバイスに接続しています、電池残量 <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">マイクのテスト</translation>
 <translation id="5258528442992323769">保存したデスクはありません</translation>
 <translation id="5260676007519551770">デスク 4</translation>
 <translation id="5265391159779542051">結果を読み込みました</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">夜間モードは日の入り時刻に自動的にオンになります</translation>
 <translation id="5750765938512549687">Bluetooth はオフです</translation>
 <translation id="5758114525425072423">フォーカス モードを開始します。タイマーを <ph name="FOCUS_DURATION" /> に設定しました。</translation>
+<translation id="5759522586053040964">相手に声がどう聞こえているかを確認できます。停止するには、テストアイコンをクリックするか、ビデオ通話パネルを閉じてください。</translation>
 <translation id="5760866832697883462"><ph name="NAME" /> を接続</translation>
 <translation id="5762420912707163638">マーカーを切り替えます。<ph name="STATE_TEXT" />トラックパッド、タッチスクリーン、またはタッチペンを使用して画面に描画できます。</translation>
 <translation id="576341972084747908">危険な <ph name="FILENAME" /> をダウンロードしています</translation>
@@ -1940,6 +1948,7 @@
 <translation id="7524043547948122239">Google ToDo リスト</translation>
 <translation id="7525067979554623046">作成</translation>
 <translation id="7526573455193969409">ネットワークが監視されている可能性があります</translation>
+<translation id="7534543072325030705">高く評価すると、この提案グループが気に入ったというフィードバックが送信されます</translation>
 <translation id="7536035074519304529">IP アドレス: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">左側のウィンドウを更新する</translation>
 <translation id="7543399541175347147">Linux アプリとシークレット ウィンドウは現在サポートされていません。他のアプリは保存されます。</translation>
@@ -2104,6 +2113,7 @@
 <translation id="8004512796067398576">増やす</translation>
 <translation id="8005527720597583355">フォーカス モード セッションを開始</translation>
 <translation id="8015361438441228492">タスクを編集できませんでした。</translation>
+<translation id="8027187124910699148">提案グループを再開</translation>
 <translation id="802782383769312836">前のデスク: <ph name="DESK_NAME" />。デスク <ph name="DESK_INDEX" />/<ph name="DESK_COUNT" />。</translation>
 <translation id="8029247720646289474">アクセス ポイント接続エラー</translation>
 <translation id="8029629653277878342">セキュリティ強化のため PIN またはパスワードが必要です</translation>
@@ -2212,6 +2222,7 @@
 <translation id="8426708595819210923">こんばんは、<ph name="GIVEN_NAME" /> さん</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" />+<ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />~<ph name="KEY_TWO" /> キーを押す</translation>
+<translation id="8429547770382807369">グループを後で使用できるように保存</translation>
 <translation id="8433186206711564395">ネットワーク設定</translation>
 <translation id="8433977262951327081">シェルフに入力オプション メニューのふきだしを表示するためのショートカットが変わりました。今後は <ph name="OLD_SHORTCUT" /> ではなく <ph name="NEW_SHORTCUT" /> を使用してください。</translation>
 <translation id="8437311513256731931">フィードバック ツールを開く</translation>
@@ -2220,6 +2231,7 @@
 <translation id="8446884382197647889">詳細</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" />+V</translation>
 <translation id="8462305545768648477">「選択して読み上げ」を閉じる</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" /> の項目を表示</translation>
 <translation id="8468806060683421065">期限 <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">表示スケールの設定</translation>
 <translation id="8473301994082929012"><ph name="FEATURE_NAME" />は <ph name="ORGANIZATION_NAME" /> により<ph name="FEATURE_STATE" />に設定されています。</translation>
@@ -2242,6 +2254,7 @@
 <translation id="8551588720239073785">日時の設定</translation>
 <translation id="8553395910833293175">すべてのデスクに割り当て済みです。</translation>
 <translation id="8555757996376137129">現在のデスクを削除する</translation>
+<translation id="8558521694042102707">生成 AI は間違った情報(人物に関する情報など)を表示することがあるため、生成された回答は再確認するようにしてください。</translation>
 <translation id="8559845965695780508"><ph name="USER" /> さんが編集</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">新しい検索候補をお試しください</translation>
@@ -2264,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />、信号強度 <ph name="SIGNAL_STRENGTH" />、管理者によって管理</translation>
 <translation id="8638637208069328956">マイクのオン / オフを切り替える</translation>
 <translation id="8639760480004882931">バッテリー残量: <ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">すべての提案グループを非表示にする</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> に関する情報を表示しています</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> タイマー</translation>
 <translation id="8647931990447795414">ユーザーを追加するには、ファミリー リンクの保護者のアクセスコードを入力してください</translation>
@@ -2345,6 +2359,7 @@
 <translation id="8905919797434099235">(タイトルなし)</translation>
 <translation id="890616557918890486">ソースを変更</translation>
 <translation id="8909138438987180327">電池残量は <ph name="PERCENTAGE" />% です。</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" /> の項目を非表示にする</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google アシスタントはこの言語に対応していません。</translation>
 <translation id="8926951137623668982">シェルフは常に非表示です</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 35e7551..1f8d611 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">ქსელების სიის ჩვენება. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">შეტყობინების ქმედების შესასრულებლად განბლოკეთ მოწყობილობა</translation>
 <translation id="1420408895951708260">ღამის განათების გადართვა. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">შემოთავაზებული ჯგუფი</translation>
 <translation id="1426410128494586442">დიახ</translation>
 <translation id="1435537621343861112">კარნახის დაწყება ვერ მოხერხდა. მიკროფონი გამორთულია.</translation>
 <translation id="1445031758921122223">სახის კონტროლის ფაილები ჩამოიტვირთა</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">გამოთვლები</translation>
 <translation id="1774796056689732716">კალენდარი, <ph name="CURRENT_MONTH_YEAR" />, ამჟამად არჩეულია <ph name="DATE" />.</translation>
 <translation id="178347895271755507">თქვენი ტელეფონის ბოლოდროინდელი ფოტოების, მედიაფაილებისა და შეტყობინებების ნახვის დაყენება</translation>
+<translation id="1785317913592722944">ერთეულის ამოშლა შემოთავაზებული ჯგუფიდან</translation>
 <translation id="1786487376942610288">ეკრანი ეკრანში ფანჯრის მაქსიმალურ და მიმდინარე ზომებს შორის გადართვა</translation>
 <translation id="1787955149152357925">გამორთვა</translation>
 <translation id="1796561540704213354">ვებსაიტები, მათ შორის, თქვენ მიერ მონახულებული გვერდები და გახსნილი გვერდები</translation>
 <translation id="179842970735685253">Google-ის მომსახურების პირობები</translation>
 <translation id="1805407494113167797">ფოკუსის ხმების დაკვრა ვერ მოხერხდა</translation>
 <translation id="181103072419391116">სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />, მართავს თქვენი ადმინისტრატორი</translation>
+<translation id="1815039896005206046">ქვევით დაწეული ცერის ღილაკზე დაჭერით გაგზავნით გამოხმაურებას, რომ ეს შემოთავაზებული ჯგუფი არ მოგწონთ</translation>
 <translation id="1816896987747843206">ყველა აპსა და ვებსაიტს, რომლებსაც აქვს კამერის გამოყენების ნებართვა, მიენიჭება კამერაზე წვდომა</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">მდებარეობაზე წვდომის ჩართვა</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">„გამარჯობა“ ჩინურად</translation>
 <translation id="2370971919968699910">ამის გამო, შესაძლოა, მობილური ინტერნეტის საფასურის გადახდა მოგიწიოთ.
 დაკავშირებულია <ph name="DEVICECOUNT" /> მოწყობილობა.</translation>
+<translation id="2383521554963939360">აპები და ჩანართების ჯგუფები</translation>
 <translation id="2386292613071805067">ყველაფრის არჩევა გვერდზე</translation>
 <translation id="2389423187722941333">Gemini-ს გადართვა</translation>
 <translation id="2392659840443812875">ხელმისაწვდომი უსადენო ქსელი არ არის. დარწმუნდით, რომ თქვენი მოწყობილობა ახლოს არის და მასზე ჩართულია Bluetooth.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">პორტრეტის რეტუში</translation>
 <translation id="4156293514828496577">დარჩენილია ბატარეის <ph name="PERCENTAGE" />% (დაახლოებით <ph name="TIME_LEFT" />).
 ზოგიერთი ფუნქცია შეზღუდულია, ბატარეის მუშაობის ხანგრძლივობა რომ გაიზარდოს.</translation>
+<translation id="4158003972857765638">ახალ სამუშაო მაგიდაზე ორგანიზება</translation>
 <translation id="4160919062868802509">აღმოჩენილია რამდენიმე აუდიო წყარო</translation>
 <translation id="416245495747357243">მზადაა!</translation>
 <translation id="4165275524535002941">კაბელს შეიძლება არ ჰქონდეს ეკრანების მხარდაჭერა</translation>
@@ -968,6 +973,7 @@
 <translation id="4285498937028063278">ჩამაგრების მოხსნა</translation>
 <translation id="428715201724021596">მიმდინარეობს პროფილთან დაკავშირება. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation>
 <translation id="4287250812980588583">Chrome-ის ფანჯარა</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{მიკროფონის ხმას მართავს <ph name="APP_NAME" />}other{მიკროფონის ხმას მართავს # აპი}}</translation>
 <translation id="4294319844246081198">დილა მშვიდობის, <ph name="GIVEN_NAME" />!</translation>
 <translation id="4296136865091727875"><ph name="COUNT" />-ვე შეტყობინების გასუფთავება</translation>
 <translation id="4300272766492248925">აპის გახსნა</translation>
@@ -984,6 +990,7 @@
 <translation id="4322742403972824594">კლავიატურის მალსახმობი „Ctrl + Alt + ზემოთ მიმართული ისარი“ შეიცვალა. Home კლავიშით სარგებლობისთვის დააჭირეთ კლავიშს <ph name="LAUNCHER_KEY_NAME" /> + მარცხნივ მიმართულ ისარს.</translation>
 <translation id="4324840740119394760"><ph name="APP_NAME" />-ს, ასევე, ყველა აპსა და ვებსაიტს, რომლებსაც აქვს კამერის გამოყენების ნებართვა, მიენიჭება კამერაზე წვდომა</translation>
 <translation id="4327147325944669226">თამაშის ჩაწერა</translation>
+<translation id="4329076911374908740">მიღწეულია შენახული ჯგუფების მაქსიმალური ლიმიტი.</translation>
 <translation id="4338109981321384717">გამადიდებელი შუშა</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, დადუმებული</translation>
 <translation id="4351244548802238354">დიალოგის დახურვა</translation>
@@ -1264,6 +1271,7 @@
 <translation id="5245201184978705914">ტრანსკრიპტის შექმნა ვერ მოხერხდა</translation>
 <translation id="5251174953851719648">კონტენტის განახლება</translation>
 <translation id="5253783950165989294">დაკავშირებულია მოწყობილობასთან, სახელად <ph name="DEVICE_NAME" />, ბატარეის დონეა <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">შეამოწმეთ თქვენი მიკროფონი</translation>
 <translation id="5258528442992323769">სამუშაო მაგიდები არ არის შენახული</translation>
 <translation id="5260676007519551770">დესკტოპი 4</translation>
 <translation id="5265391159779542051">შედეგები ჩაიტვირთა</translation>
@@ -1421,6 +1429,7 @@
 <translation id="5745612484876805746">ღამის განათება ავტომატურად ირთვება მზის ჩასვლისას</translation>
 <translation id="5750765938512549687">Bluetooth გამორთულია</translation>
 <translation id="5758114525425072423">ფოკუსირების რეჟიმის დაწყება. ტაიმერი დაყენებულია: <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">შეამოწმეთ, როგორ გაიგონებენ თქვენს ხმას სხვები. შესაწყვეტად დააწკაპუნეთ შემოწმების ხატულას ან დახურეთ ვიდეოზარის არე.</translation>
 <translation id="5760866832697883462">დააკავშირეთ თქვენი <ph name="NAME" /></translation>
 <translation id="5762420912707163638">მარკერის გადართვა. <ph name="STATE_TEXT" /> ეკრანზე მოხაზვისთვის გამოიყენეთ ტრეკპედი, სენსორული ეკრანი ან სტილუსი.</translation>
 <translation id="576341972084747908">ჩამოიტვირთოს სახიფათო <ph name="FILENAME" /></translation>
@@ -1939,6 +1948,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">შექმნა</translation>
 <translation id="7526573455193969409">ქსელზე შესაძლოა ხორციელდებოდეს მონიტორინგი</translation>
+<translation id="7534543072325030705">ზევით აწეული ცერის ღილაკზე დაჭერით გაგზავნით გამოხმაურებას, რომ ეს შემოთავაზებული ჯგუფი მოგწონთ</translation>
 <translation id="7536035074519304529">IP მისამართი: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">მარცხენა ფანჯრის განახლება</translation>
 <translation id="7543399541175347147">Linux აპები და ინკოგნიტო ფანჯრები ამჟამად მხარდაუჭერელია. სხვა აპები შეინახება.</translation>
@@ -2103,6 +2113,7 @@
 <translation id="8004512796067398576">ზრდა</translation>
 <translation id="8005527720597583355">ფოკუსირების სესიის დაწყება</translation>
 <translation id="8015361438441228492">ამოცანის რედაქტირება ვერ მოხერხდა.</translation>
+<translation id="8027187124910699148">შემოთავაზებული ჯგუფის განახლება</translation>
 <translation id="802782383769312836">წინა სამუშაო მაგიდა: <ph name="DESK_NAME" />. სამუშაო მაგიდა <ph name="DESK_INDEX" /> / <ph name="DESK_COUNT" />-დან.</translation>
 <translation id="8029247720646289474">უსადენო ქსელმა ვერ მოახერხა კავშირის დამყარება</translation>
 <translation id="8029629653277878342">დამატებითი უსაფრთხოებისთვის საჭიროა PIN-კოდის ან პაროლის შეყვანა</translation>
@@ -2211,6 +2222,7 @@
 <translation id="8426708595819210923">საღამო მშვიდობის, <ph name="GIVEN_NAME" />!</translation>
 <translation id="8428213095426709021">პარამეტრები</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />-დან <ph name="KEY_TWO" />-მდე</translation>
+<translation id="8429547770382807369">ჯგუფის შენახვა მოგვიანებით სანახავად</translation>
 <translation id="8433186206711564395">ქსელის პარამეტრები</translation>
 <translation id="8433977262951327081">თაროზე შეყვანის ვარიანტების მენიუს ბუშტის გამოჩენის მალსახმობი შეიცვალა. გთხოვთ, გამოიყენოთ <ph name="NEW_SHORTCUT" /> და არა — <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">გამოხმაურების ხელსაწყოს გახსნა</translation>
@@ -2219,6 +2231,7 @@
 <translation id="8446884382197647889">შეიტყვეთ მეტი</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">წარმოსათქმელად მონიშვნის დახურვა</translation>
+<translation id="8466665972451889002">ერთეულების ჩვენება „<ph name="GROUP_NAME" />“-ში</translation>
 <translation id="8468806060683421065">შესრულების ვადა: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">ჩვენების მასშტაბის პარამეტრები</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" />-ს აქვს <ph name="FEATURE_STATE" /> <ph name="FEATURE_NAME" />.</translation>
@@ -2241,6 +2254,7 @@
 <translation id="8551588720239073785">თარიღისა და დროის პარამეტრები</translation>
 <translation id="8553395910833293175">უკვე მიმაგრებულია ყველა სამუშაო მაგიდაზე.</translation>
 <translation id="8555757996376137129">ამჟამინდელი სამუშაო მაგიდის წაშლა</translation>
+<translation id="8558521694042102707">გენერაციული ხელოვნური ინტელექტი შეიძლება შეცდეს, მათ შორის, ხალხის შესახებ, ამიტომ გადაამოწმეთ მისი ინფორმაცია.</translation>
 <translation id="8559845965695780508"><ph name="USER" />-მა დაარედაქტირა</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">აი, რამდენიმე საცდელი შემოთავაზება</translation>
@@ -2263,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />, მართავს თქვენი ადმინისტრატორი</translation>
 <translation id="8638637208069328956">მიკროფონის ჩართვა/გამორთვა</translation>
 <translation id="8639760480004882931">დარჩენილია <ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">ჯგუფების ყველა შემოთავაზების დამალვა</translation>
 <translation id="8641510901370802679">ნაჩვენებია ინფორმაცია თემაზე <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" />-იანი ტაიმერი</translation>
 <translation id="8647931990447795414">ადამიანის დასამატებლად შეიყვანეთ Family Link-ის წვდომის კოდი მშობლებისთვის</translation>
@@ -2345,6 +2360,7 @@
 <translation id="8905919797434099235">(უსათაურო)</translation>
 <translation id="890616557918890486">წყაროს შეცვლა</translation>
 <translation id="8909138438987180327">ბატარეის დონე <ph name="PERCENTAGE" /> პროცენტზეა.</translation>
+<translation id="8916866375277139011">ერთეულების დამალვა „<ph name="GROUP_NAME" />“-ში</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google ასისტენტი არ საუბრობს ამ ენაზე.</translation>
 <translation id="8926951137623668982">თარო ყოველთვის დამალულია</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 60b29e6..27f1ce5 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">네트워크 목록을 표시합니다. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">알림 작업을 실행하려면 기기의 잠금을 해제하세요.</translation>
 <translation id="1420408895951708260">야간 조명을 전환합니다. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">추천 그룹</translation>
 <translation id="1426410128494586442">예</translation>
 <translation id="1435537621343861112">음성기록을 시작할 수 없습니다. 마이크가 꺼져 있습니다.</translation>
 <translation id="1445031758921122223">얼굴 인식 파일 다운로드됨</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">계산</translation>
 <translation id="1774796056689732716">현재 캘린더에서 <ph name="CURRENT_MONTH_YEAR" />을 표시 중이며 선택된 날짜는 <ph name="DATE" />입니다.</translation>
 <translation id="178347895271755507">휴대전화의 최근 사진, 미디어, 알림 보기 설정</translation>
+<translation id="1785317913592722944">추천 그룹에서 항목 삭제</translation>
 <translation id="1786487376942610288">PIP 모드 창의 최대 크기 또는 현재 크기 간에 전환</translation>
 <translation id="1787955149152357925">꺼짐</translation>
 <translation id="1796561540704213354">방문한 페이지 및 열린 페이지를 포함한 웹사이트</translation>
 <translation id="179842970735685253">Google 서비스 약관</translation>
 <translation id="1805407494113167797">집중 모드 사운드를 재생할 수 없음</translation>
 <translation id="181103072419391116">신호 강도 <ph name="SIGNAL_STRENGTH" />, 관리자가 관리함</translation>
+<translation id="1815039896005206046">싫어요를 누르면 이 추천 그룹이 마음에 들지 않는다는 의견이 제출됩니다.</translation>
 <translation id="1816896987747843206">카메라 액세스 권한이 있는 모든 앱 및 웹사이트에서 카메라에 액세스할 수 있게 됩니다.</translation>
 <translation id="1823873187264960516">이더넷: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">위치 액세스 사용 설정</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">중국어로 '안녕'</translation>
 <translation id="2370971919968699910">데이터 요금이 발생할 수 있습니다.
 기기 <ph name="DEVICECOUNT" />대가 연결되었습니다.</translation>
+<translation id="2383521554963939360">앱 및 탭 그룹</translation>
 <translation id="2386292613071805067">페이지의 모든 항목 선택</translation>
 <translation id="2389423187722941333">Gemini 전환</translation>
 <translation id="2392659840443812875">사용 가능한 핫스팟이 없습니다. 기기가 근처에 있고 블루투스가 켜져 있어야 합니다.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">인물 보정</translation>
 <translation id="4156293514828496577">배터리가 <ph name="PERCENTAGE" />% 남았습니다(약 <ph name="TIME_LEFT" />).
 배터리 수명을 늘리기 위해 일부 기능이 제한됩니다.</translation>
+<translation id="4158003972857765638">새 데스크에서 정리</translation>
 <translation id="4160919062868802509">여러 오디오 소스가 감지되었습니다</translation>
 <translation id="416245495747357243">훌륭합니다.</translation>
 <translation id="4165275524535002941">케이블이 디스플레이를 지원하지 않을 수 있습니다</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Ctrl + Alt + 위쪽 화살표 단축키가 변경되었습니다. Home 키를 사용하려면 <ph name="LAUNCHER_KEY_NAME" /> 키 + 왼쪽 화살표 키를 누르세요.</translation>
 <translation id="4324840740119394760">카메라 액세스 권한이 있는 <ph name="APP_NAME" /> 앱을 포함한 모든 앱 및 웹사이트에서 카메라에 액세스할 수 있게 됩니다.</translation>
 <translation id="4327147325944669226">게임 녹화</translation>
+<translation id="4329076911374908740">저장된 그룹의 최대 수에 도달했습니다.</translation>
 <translation id="4338109981321384717">돋보기</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, 음소거됨</translation>
 <translation id="4351244548802238354">대화상자 닫기</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">스크립트를 생성할 수 없음</translation>
 <translation id="5251174953851719648">콘텐츠 새로고침</translation>
 <translation id="5253783950165989294">이름이 <ph name="DEVICE_NAME" />인 기기에 연결됨(배터리 <ph name="BATTERY_PERCENTAGE" />%)</translation>
+<translation id="5256939106029293271">마이크 테스트</translation>
 <translation id="5258528442992323769">저장된 데스크 없음</translation>
 <translation id="5260676007519551770">데스크 4</translation>
 <translation id="5265391159779542051">결과 로드됨</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">일몰 시 야간 조명이 자동으로 켜짐</translation>
 <translation id="5750765938512549687">블루투스가 사용 중지됨</translation>
 <translation id="5758114525425072423">집중 모드를 시작합니다. 타이머가 <ph name="FOCUS_DURATION" />(으)로 설정되었습니다.</translation>
+<translation id="5759522586053040964">다른 사람에게 내 목소리가 어떻게 들리는지 들어보세요. 중지하려면 테스트 아이콘을 클릭하거나 영상 통화 패널을 닫으세요.</translation>
 <translation id="5760866832697883462"><ph name="NAME" />에 연결</translation>
 <translation id="5762420912707163638">마커를 전환합니다. <ph name="STATE_TEXT" /> 화면에 그리려면 트랙패드, 터치스크린 또는 스타일러스를 사용하세요.</translation>
 <translation id="576341972084747908">위험한 <ph name="FILENAME" /> 파일을 다운로드합니다</translation>
@@ -1939,6 +1947,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">만들기</translation>
 <translation id="7526573455193969409">네트워크가 모니터링될 수 있음</translation>
+<translation id="7534543072325030705">좋아요를 누르면 이 추천 그룹이 마음에 든다는 의견이 제출됩니다.</translation>
 <translation id="7536035074519304529">IP 주소: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">왼쪽 창 업데이트</translation>
 <translation id="7543399541175347147">Linux 앱 및 시크릿 창은 현재 지원되지 않습니다. 다른 앱은 저장됩니다.</translation>
@@ -2103,6 +2112,7 @@
 <translation id="8004512796067398576">올리기</translation>
 <translation id="8005527720597583355">집중 모드 세션 시작</translation>
 <translation id="8015361438441228492">할 일을 수정할 수 없습니다.</translation>
+<translation id="8027187124910699148">추천 그룹 재개</translation>
 <translation id="802782383769312836">이전 데스크는 <ph name="DESK_NAME" />입니다. 데스크 <ph name="DESK_COUNT" />개 중 <ph name="DESK_INDEX" />번째입니다.</translation>
 <translation id="8029247720646289474">핫스팟에 연결할 수 없음</translation>
 <translation id="8029629653277878342">보안 강화를 위해 PIN 또는 비밀번호가 필요합니다.</translation>
@@ -2211,6 +2221,7 @@
 <translation id="8426708595819210923">편안한 저녁 보내세요, <ph name="GIVEN_NAME" />님</translation>
 <translation id="8428213095426709021">설정</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />~<ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">나중을 위해 그룹 저장</translation>
 <translation id="8433186206711564395">네트워크 설정</translation>
 <translation id="8433977262951327081">앱 표시줄에서 입력 옵션 메뉴 도움말 풍선을 표시하는 단축키가 변경되었습니다. <ph name="OLD_SHORTCUT" /> 대신 <ph name="NEW_SHORTCUT" />을(를) 사용하세요.</translation>
 <translation id="8437311513256731931">의견 도구 열기</translation>
@@ -2219,6 +2230,7 @@
 <translation id="8446884382197647889">자세히 알아보기</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">텍스트 읽어주기 닫기</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" />의 항목 표시</translation>
 <translation id="8468806060683421065">마감일: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">배율 설정 표시</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" />에서 <ph name="FEATURE_NAME" /> 기능을 <ph name="FEATURE_STATE" /> 상태로 설정했습니다.</translation>
@@ -2241,6 +2253,7 @@
 <translation id="8551588720239073785">날짜 및 시간 설정</translation>
 <translation id="8553395910833293175">이미 모든 데스크에 할당되어 있습니다.</translation>
 <translation id="8555757996376137129">현재 데스크를 삭제합니다.</translation>
+<translation id="8558521694042102707">생성형 AI는 인물 등에 관한 정보 제공 시 실수를 할 수 있으니 다시 한번 확인하세요.</translation>
 <translation id="8559845965695780508"><ph name="USER" />님이 수정함</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">다음은 몇 가지 제안사항입니다.</translation>
@@ -2263,6 +2276,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, 신호 강도 <ph name="SIGNAL_STRENGTH" />, 관리자가 관리함</translation>
 <translation id="8638637208069328956">마이크 켜기/끄기</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> 남음</translation>
+<translation id="8640470573049727749">모든 그룹 추천 숨기기</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> 정보 표시</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> 타이머</translation>
 <translation id="8647931990447795414">사용자를 추가하려면 Family Link 부모 액세스 코드를 입력하세요</translation>
@@ -2345,6 +2359,7 @@
 <translation id="8905919797434099235">(제목 없음)</translation>
 <translation id="890616557918890486">소스 변경</translation>
 <translation id="8909138438987180327">남은 배터리는 <ph name="PERCENTAGE" />%입니다.</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" />의 항목 숨기기</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google 어시스턴트가 이 언어를 지원하지 않음</translation>
 <translation id="8926951137623668982">앱 표시줄 항상 숨김</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index 67a5d5b..33d35837 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Тармактардын тизмесин көрсөтүү. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Билдирмедеги аракетти аткаруу үчүн түзмөктүн кулпусун ачыңыз</translation>
 <translation id="1420408895951708260">Түнкү жарыкты күйгүзүү же өчүрүү. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Сунушталган топ</translation>
 <translation id="1426410128494586442">Ооба</translation>
 <translation id="1435537621343861112">Текстти айтып терүү башталган жок. Микрофонуңуз өчүрүлгөн.</translation>
 <translation id="1445031758921122223">Жүз көзөмөлдөө файлдары жүктөлүп алынды</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Эсептөөлөр</translation>
 <translation id="1774796056689732716">Жылнаама, <ph name="CURRENT_MONTH_YEAR" />, учурда <ph name="DATE" /> тандалып турат.</translation>
 <translation id="178347895271755507">Телефонуңуздагы соңку сүрөттөрдү, медиа файлдарды жана билдирмелерди көрүү параметрин тууралоо</translation>
+<translation id="1785317913592722944">Нерсени сунушталган топтон өчүрүү</translation>
 <translation id="1786487376942610288">Сүрөттөгү сүрөт терезесинин максималдуу жана учурдагы өлчөмдөрүнүн ортосунда которулуу</translation>
 <translation id="1787955149152357925">Өчүк</translation>
 <translation id="1796561540704213354">Вебсайттар, анын ичинде сиз баш баккан жана ачык барактар</translation>
 <translation id="179842970735685253">Google’дун Тейлөө шарттары</translation>
 <translation id="1805407494113167797">Focus добуштары ойнотулган жок</translation>
 <translation id="181103072419391116">Сигналдын күчү <ph name="SIGNAL_STRENGTH" />, Администраторуңуз башкарат</translation>
+<translation id="1815039896005206046">Жаккан жок баскычы бул сунушталган топту жактырбаганыңызды билдирет</translation>
 <translation id="1816896987747843206">Камерага уруксаты бар колдонмолордун жана вебсайттардын баарына камераны пайдалануу мүмкүнчүлүгү берилет</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Жайгашкан жерди аныктоону күйгүзүү</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">Кытайча "Салам"</translation>
 <translation id="2370971919968699910">Дайындарды өткөрүү үчүн акы алынышы мүмкүн.
 <ph name="DEVICECOUNT" /> түзмөк туташты.</translation>
+<translation id="2383521554963939360">Колдонмолор жана өтмөктөр тобу</translation>
 <translation id="2386292613071805067">Баракчанын баарын тандоо</translation>
 <translation id="2389423187722941333">Gemini'ды өчүрүү/күйгүзүү</translation>
 <translation id="2392659840443812875">Жеткиликтүү хотспот жок. Түзмөгүңүз жаныңызда экенин жана Bluetooth күйгүзүлгөнүн текшериңиз.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Портретти ретуштоо</translation>
 <translation id="4156293514828496577">Батареянын кубаты <ph name="PERCENTAGE" />% калды (болжол менен <ph name="TIME_LEFT" />).
 Батареяны көбүрөөк убакытка жеткирүү үчүн айрым функциялар чектелди.</translation>
+<translation id="4158003972857765638">Жаңы иш тактада иреттөө</translation>
 <translation id="4160919062868802509">Бир нече аудио булак табылды</translation>
 <translation id="416245495747357243">Бүттү!</translation>
 <translation id="4165275524535002941">Кабель дисплейлерди колдоого албашы мүмкүн</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Ctrl + Alt + өйдө жебе ыкчам баскычы өзгөртүлдү. Башкы бет баскычын колдонуу үчүн <ph name="LAUNCHER_KEY_NAME" /> баскычын + солго жебени басыңыз.</translation>
 <translation id="4324840740119394760">Камерага уруксаты бар колдонмолордун жана вебсайттардын баарына жана <ph name="APP_NAME" /> колдонмосуна камераны пайдалануу мүмкүнчүлүгү берилет</translation>
 <translation id="4327147325944669226">Оюнду жаздыруу</translation>
+<translation id="4329076911374908740">Сакталган топтордун эң жогорку чегине жеттиңиз.</translation>
 <translation id="4338109981321384717">Лупа</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, Үнү басылды</translation>
 <translation id="4351244548802238354">Диалогду жабуу</translation>
@@ -1939,6 +1945,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Түзүү</translation>
 <translation id="7526573455193969409">Тармак көзөмөлдөнүшү мүмкүн</translation>
+<translation id="7534543072325030705">Жакты баскычы бул сунушталган топту жактырганыңызды билдирет</translation>
 <translation id="7536035074519304529">IP дареги: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Сол жактагы терезени жаңыртуу</translation>
 <translation id="7543399541175347147">Linux колдонмолору жана жашыруун терезелер учурда колдоого алынбайт. Башка колдонмолор сакталат.</translation>
@@ -2103,6 +2110,7 @@
 <translation id="8004512796067398576">Инкремент</translation>
 <translation id="8005527720597583355">Ынтаа коюу режимин иштетүү</translation>
 <translation id="8015361438441228492">Жасалчу иш түзөтүлгөн жок.</translation>
+<translation id="8027187124910699148">Сунушталган топту улантуу</translation>
 <translation id="802782383769312836">Мурунку иш такта: <ph name="DESK_NAME" />. <ph name="DESK_COUNT" /> иш тактанын ичинен <ph name="DESK_INDEX" />-иш такта.</translation>
 <translation id="8029247720646289474">Байланыш түйүнүнө туташуу мүмкүн болгон жок</translation>
 <translation id="8029629653277878342">Коопсуздукту бекемдөө үчүн PIN код же сырсөз талап кылынат</translation>
@@ -2211,6 +2219,7 @@
 <translation id="8426708595819210923">Кутмандуу кечиңиз менен, <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">Параметрлер</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" />—<ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Топту кийинкиге сактоо</translation>
 <translation id="8433186206711564395">Тармак параметрлери</translation>
 <translation id="8433977262951327081">Баштоо панелиндеги киргизүү параметрлеринин менюсунун көбүгүн ача турган ыкчам баскычтар өзгөргөн. <ph name="OLD_SHORTCUT" /> ордуна <ph name="NEW_SHORTCUT" /> баскычтарын колдонуңуз.</translation>
 <translation id="8437311513256731931">Пикир билдирүү куралын ачуу</translation>
@@ -2219,6 +2228,7 @@
 <translation id="8446884382197647889">Көбүрөөк билүү</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">"Басып туруп угуңуз" функциясын жабуу</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" /> тобундагы нерселерди көрсөтүү</translation>
 <translation id="8468806060683421065">аткаруу мөөнөтү: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Дисплей шкаласынын параметрлери</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> уюмунун <ph name="FEATURE_NAME" /> функциясы <ph name="FEATURE_STATE" /> абалда.</translation>
@@ -2241,6 +2251,7 @@
 <translation id="8551588720239073785">Күн менен убакыт параметрлери</translation>
 <translation id="8553395910833293175">Бардык иш такталар дайындалган.</translation>
 <translation id="8555757996376137129">Учурдагы иш тактаны өчүрүү</translation>
+<translation id="8558521694042102707">Генеративдик жасалма интеллект адамдар, ошондой эле башка нерселер тууралуу так эмес маалыматты көрсөтүшү мүмкүн, андыктан анын жоопторун эки жолу текшериңиз.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> түзөттү</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Төмөнкү сунуштарды байкап көрүңүз:</translation>
@@ -2263,6 +2274,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, Сигналдын күчү <ph name="SIGNAL_STRENGTH" />, Администраторуңуз башкарат</translation>
 <translation id="8638637208069328956">Микрофонду күйгүзүү/өчүрүү</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> калды</translation>
+<translation id="8640470573049727749">Бардык сунушталган топторду жашыруу</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> жөнүндө маалымат көрсөтүлүүдө</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> таймер</translation>
 <translation id="8647931990447795414">Бирөөнү кошуу үчүн, Family Link'теги ата-эненин кирүү кодун териңиз</translation>
@@ -2345,6 +2357,7 @@
 <translation id="8905919797434099235">(Аталышы жок)</translation>
 <translation id="890616557918890486">Булагын өзгөртүү</translation>
 <translation id="8909138438987180327">Батареянын кубаты – <ph name="PERCENTAGE" /> пайыз.</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" /> тобундагы нерселерди жашыруу</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google Жардамчы бул тилде иштебейт.</translation>
 <translation id="8926951137623668982">Текче ар дайым жашырылат</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 1a585dab8f..88a224a 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -1270,6 +1270,7 @@
 <translation id="5245201184978705914">ບໍ່ສາມາດສ້າງການຖອດຂໍ້ຄວາມຈາກສຽງໄດ້</translation>
 <translation id="5251174953851719648">ໂຫຼດເນື້ອຫາຄືນໃໝ່</translation>
 <translation id="5253783950165989294">ເຊື່ອມຕໍ່ຫາອຸປະກອນຊື່ <ph name="DEVICE_NAME" /> ແລ້ວ, ແບັດເຕີຣີ <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">ທົດສອບໄມຂອງທ່ານ</translation>
 <translation id="5258528442992323769">ບໍ່ມີໂຕະທີ່ບັນທຶກໄວ້</translation>
 <translation id="5260676007519551770">ໂຕະ 4</translation>
 <translation id="5265391159779542051">ໂຫຼດຜົນການຊອກຫາແລ້ວ</translation>
@@ -1427,6 +1428,7 @@
 <translation id="5745612484876805746">ແສງກາງຄືນເປີດໂດຍອັດຕະໂນມັດເມື່ອຕາເວັນຕົກ</translation>
 <translation id="5750765938512549687">Bluetooth ປິດຢູ່</translation>
 <translation id="5758114525425072423">ເລີ່ມໂໝດໂຟກັສ. ຕັ້ງໂມງນັບຖອຍຫຼັງ <ph name="FOCUS_DURATION" /> ແລ້ວ.</translation>
+<translation id="5759522586053040964">ຟັງເບິ່ງວ່າຄົນອື່ນໄດ້ຍິນສຽງທ່ານແນວໃດ. ເພື່ອຢຸດ, ໃຫ້ຄລິກໄອຄອນທົດສອບ ຫຼື ປິດແຜງໂທວິດີໂອ.</translation>
 <translation id="5760866832697883462">ເຊື່ອມ​ຕໍ່ <ph name="NAME" /> ຂອງ​ທ່ານ</translation>
 <translation id="5762420912707163638">ສະຫຼັບຕົວໝາຍ. <ph name="STATE_TEXT" /> ໃຊ້ແທຣັກແຜດ, ໜ້າຈໍສຳຜັດ ຫຼື ປາກກາເພື່ອແຕ້ມຢູ່ໜ້າຈໍ.</translation>
 <translation id="576341972084747908">ດາວໂຫຼດ <ph name="FILENAME" /> ທີ່ເປັນອັນຕະລາຍ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 2f329dd..56e44d6 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -973,6 +973,7 @@
 <translation id="4285498937028063278">Atsegti</translation>
 <translation id="428715201724021596">Prisijungiama prie profilio. Tai gali užtrukti kelias minutes.</translation>
 <translation id="4287250812980588583">„Chrome“ langas</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{Mikrofono garsumą valdo „<ph name="APP_NAME" />“}one{Mikrofono garsumą valdo # programa}few{Mikrofono garsumą valdo # programos}many{Mikrofono garsumą valdo # programos}other{Mikrofono garsumą valdo # programų}}</translation>
 <translation id="4294319844246081198">Labas rytas, <ph name="GIVEN_NAME" />,</translation>
 <translation id="4296136865091727875">Išvalykite visus pranešimus (<ph name="COUNT" />)</translation>
 <translation id="4300272766492248925">Atidaryti programą</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 6645c0f9..47db91b 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -1271,6 +1271,7 @@
 <translation id="5245201184978705914">Сийрүүлгийг үүсгэх боломжгүй</translation>
 <translation id="5251174953851719648">Контентыг сэргээх</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> нэртэй төхөөрөмжид холбогдсон, <ph name="BATTERY_PERCENTAGE" />% батарей</translation>
+<translation id="5256939106029293271">Микрофоноо шалгах</translation>
 <translation id="5258528442992323769">Хадгалсан дэлгэц байхгүй</translation>
 <translation id="5260676007519551770">Дэлгэц 4</translation>
 <translation id="5265391159779542051">Илэрцүүдийг ачаалсан</translation>
@@ -1428,6 +1429,7 @@
 <translation id="5745612484876805746">Шөнийн гэрэл нь нар жаргахад автоматаар асдаг</translation>
 <translation id="5750765938512549687">Bluetooth унтраалттай байна</translation>
 <translation id="5758114525425072423">Төвлөрөх горимыг эхлүүлнэ үү. Цаг хэмжигчийг <ph name="FOCUS_DURATION" /> болгож тохируулсан.</translation>
+<translation id="5759522586053040964">Та бусад хүнд хэрхэн сонсогдохоо сонсоно уу. Зогсоохын тулд шалгах дүрс тэмдэг дээр товших эсвэл видео дуудлагын түр зуурын самбарыг хаана уу.</translation>
 <translation id="5760866832697883462">Өөрийн <ph name="NAME" />-г холбоно уу</translation>
 <translation id="5762420912707163638">Тэмдэглэгчийг асаана уу/унтраана уу. <ph name="STATE_TEXT" /> Дэлгэц дээр зурахын тулд мэдрэгч самбар, мэдрэмтгий дэлгэц эсвэл мэдрэгч үзгийг ашиглана уу.</translation>
 <translation id="576341972084747908">Аюултай <ph name="FILENAME" />-г татах</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 92578c06..7c10515 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -1264,6 +1264,7 @@
 <translation id="5245201184978705914">စာသားမှတ်တမ်း ထုတ်ယူ၍မရပါ</translation>
 <translation id="5251174953851719648">အကြောင်းအရာကို ပြန်လည်စတင်ရန်</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> စက်သို့ ချိတ်ဆက်ထားသည်၊ ဘက်ထရီအား <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">မိုက်စမ်းသပ်ခြင်း</translation>
 <translation id="5258528442992323769">သိမ်းထားသည့် မျက်နှာပြင်များ မရှိပါ</translation>
 <translation id="5260676007519551770">စာရေးခုံ ၄</translation>
 <translation id="5265391159779542051">ရလဒ်များ ဖွင့်လိုက်ပါပြီ</translation>
@@ -1421,6 +1422,7 @@
 <translation id="5745612484876805746">နေဝင်ချိန်တွင် 'ညအလင်းရောင်' အလိုအလျောက် ပွင့်လာပါမည်</translation>
 <translation id="5750765938512549687">ဘလူးတုသ်ကို ပိတ်ထားသည်</translation>
 <translation id="5758114525425072423">အထူးပြသမှု စတင်ရန်။ တိုင်မာကို <ph name="FOCUS_DURATION" /> သို့ သတ်မှတ်ထားသည်။</translation>
+<translation id="5759522586053040964">အခြားသူများက သင့်အသံကြားရမည့်ပုံစံကို နားထောင်နိုင်သည်။ ရပ်ရန်အတွက် စမ်းသပ်မှုသင်္ကေတကို နှိပ်ပါ (သို့) ဗီဒီယိုခေါ်ဆိုမှုအကန့်ကို ပိတ်ပါ။</translation>
 <translation id="5760866832697883462">သင့် <ph name="NAME" /> နှင့် ချိတ်ဆက်ရန်</translation>
 <translation id="5762420912707163638">ညွှန်မှတ် ပြောင်းရန်ခလုတ်။ <ph name="STATE_TEXT" /> ဖန်သားပြင်ပေါ်တွင် ပုံဆွဲရန် တာ့ချ်ပက်၊ တို့ထိမျက်နှာပြင် (သို့) စတိုင်လပ်စ် သုံးနိုင်သည်။</translation>
 <translation id="576341972084747908">အန္တရာယ်ရှိသော <ph name="FILENAME" /> ကို ဒေါင်းလုဒ်လုပ်ခြင်း</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index b4592e4..3a6982e8 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -1265,6 +1265,7 @@
 <translation id="5245201184978705914">ਪ੍ਰਤੀਲਿਪੀਕਰਨ ਨੂੰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ</translation>
 <translation id="5251174953851719648">ਸਮੱਗਰੀ ਰਿਫ੍ਰੈਸ਼ ਕਰੋ</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> ਨਾਮ ਵਾਲੇ ਕਿਸੇ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ ਹੈ, <ph name="BATTERY_PERCENTAGE" />% ਬੈਟਰੀ</translation>
+<translation id="5256939106029293271">ਆਪਣੇ ਮਾਈਕ ਦੀ ਜਾਂਚ ਕਰੋ</translation>
 <translation id="5258528442992323769">ਕੋਈ ਰੱਖਿਅਤ ਕੀਤੀ ਡਿਸਕ ਨਹੀਂ</translation>
 <translation id="5260676007519551770">ਡੈਸਕ 4</translation>
 <translation id="5265391159779542051">ਨਤੀਜੇ ਲੋਡ ਕੀਤੇ ਗਏ</translation>
@@ -1422,6 +1423,7 @@
 <translation id="5745612484876805746">ਸੂਰਜ ਡੁੱਬਣ ਸਮੇਂ ਨਾਈਟ ਲਾਈਟ ਆਪਣੇ ਆਪ ਚਾਲੂ ਹੋ ਜਾਂਦੀ ਹੈ</translation>
 <translation id="5750765938512549687">ਬਲੂਟੁੱਥ ਬੰਦ ਹੈ</translation>
 <translation id="5758114525425072423">ਫੋਕਸ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰੋ। ਟਾਈਮਰ <ph name="FOCUS_DURATION" /> 'ਤੇ ਸੈੱਟ ਹੈ।</translation>
+<translation id="5759522586053040964">ਸੁਣੋ ਕਿ ਇਹ ਹੋਰਾਂ ਨੂੰ ਕਿਵੇਂ ਸੁਣਾਈ ਦੇਵੇਗਾ। ਰੋਕਣ ਲਈ, ਜਾਂਚ ਪ੍ਰਤੀਕ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਜਾਂ ਵੀਡੀਓ ਕਾਲ ਪੈਨਲ ਬੰਦ ਕਰੋ।</translation>
 <translation id="5760866832697883462">ਆਪਣਾ <ph name="NAME" /> ਕਨੈਕਟ ਕਰੋ</translation>
 <translation id="5762420912707163638">ਮਾਰਕਰ ਨੂੰ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /> ਸਕ੍ਰੀਨ ਉੱਤੇ ਕੁਝ ਬਣਾਉਣ ਲਈ ਟਰੈਕਪੈਡ, ਟੱਚਸਕ੍ਰੀਨ, ਜਾਂ ਸਟਾਈਲਸ ਦੀ ਵਰਤੋਂ ਕਰੋ।</translation>
 <translation id="576341972084747908">ਖਤਰਨਾਕ <ph name="FILENAME" /> ਡਾਊਨਲੋਡ ਕਰੋ</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 1bb40e9..afec3b2a 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Afișează lista de rețele. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Deblochează dispozitivul pentru efectuarea acțiunii de notificare</translation>
 <translation id="1420408895951708260">Comută Lumina de noapte. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Grup recomandat</translation>
 <translation id="1426410128494586442">Da</translation>
 <translation id="1435537621343861112">Nu se poate începe dictarea. Microfonul este dezactivat.</translation>
 <translation id="1445031758921122223">S-au descărcat fișierele de control facial</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Calcule</translation>
 <translation id="1774796056689732716">Calendar, <ph name="CURRENT_MONTH_YEAR" />, momentan s-a selectat <ph name="DATE" />.</translation>
 <translation id="178347895271755507">Configurează afișarea fotografiilor, a elementelor media și a notificărilor recente ale telefonului</translation>
+<translation id="1785317913592722944">Elimină elementul din grupul sugerat</translation>
 <translation id="1786487376942610288">Comută între dimensiunea maximă și cea actuală a ferestrei picture-in-picture</translation>
 <translation id="1787955149152357925">Dezactivată</translation>
 <translation id="1796561540704213354">Site-urile, inclusiv paginile pe care le-ai accesat și paginile deschise</translation>
 <translation id="179842970735685253">Termenii și condițiile Google</translation>
 <translation id="1805407494113167797">Nu se pot reda sunetele pentru Focus</translation>
 <translation id="181103072419391116">Puterea semnalului: <ph name="SIGNAL_STRENGTH" />, gestionată de administratorul tău</translation>
+<translation id="1815039896005206046">Dacă alegi Nu îmi place, trimiți ca feedback faptul că nu îți place acest grup sugerat</translation>
 <translation id="1816896987747843206">Astfel, accesul la cameră este permis pentru toate aplicațiile și site-urile care au permisiunea adecvată</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Activează accesul la locație</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">„Bună” în chineză</translation>
 <translation id="2370971919968699910">Această opțiune poate genera costuri pentru date.
 <ph name="DEVICECOUNT" /> dispozitive conectate.</translation>
+<translation id="2383521554963939360">Grupuri de aplicații și file</translation>
 <translation id="2386292613071805067">Selectează tot conținutul paginii</translation>
 <translation id="2389423187722941333">Activează sau dezactivează Gemini</translation>
 <translation id="2392659840443812875">Niciun hotspot disponibil. Asigură-te că dispozitivul este în apropiere și că funcția Bluetooth este activată.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Retușarea portretului</translation>
 <translation id="4156293514828496577">Baterie rămasă: <ph name="PERCENTAGE" /> % (aproximativ <ph name="TIME_LEFT" />).
 Unele funcții sunt limitate pentru a crește autonomia.</translation>
+<translation id="4158003972857765638">Organizează într-un nou desktop</translation>
 <translation id="4160919062868802509">S-au detectat mai multe surse audio</translation>
 <translation id="416245495747357243">Gata!</translation>
 <translation id="4165275524535002941">Cablul poate să nu fie compatibil cu ecranele</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Comanda rapidă de la tastatură Ctrl + Alt + săgeată în sus s-a schimbat. Pentru a folosi tasta Home, apasă tasta <ph name="LAUNCHER_KEY_NAME" /> + săgeata spre stânga.</translation>
 <translation id="4324840740119394760">Astfel, accesul la cameră este permis pentru <ph name="APP_NAME" /> și toate aplicațiile și site-urile care au permisiunea adecvată</translation>
 <translation id="4327147325944669226">Înregistrează jocul</translation>
+<translation id="4329076911374908740">Ai atins numărul maxim de grupuri salvate.</translation>
 <translation id="4338109981321384717">Lupă</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, sunet dezactivat</translation>
 <translation id="4351244548802238354">Închide caseta de dialog</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">Nu se poate genera transcrierea</translation>
 <translation id="5251174953851719648">Actualizează conținutul</translation>
 <translation id="5253783950165989294">S-a conectat la dispozitivul <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% baterie</translation>
+<translation id="5256939106029293271">Testează microfonul</translation>
 <translation id="5258528442992323769">Nu există desktopuri salvate</translation>
 <translation id="5260676007519551770">Desktop 4</translation>
 <translation id="5265391159779542051">Rezultatele s-au încărcat</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">Lumina de noapte se activează automat la apus</translation>
 <translation id="5750765938512549687">Bluetooth este dezactivat</translation>
 <translation id="5758114525425072423">Activează modul Focus. Temporizatorul este setat la <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Auzi cum vei suna pentru ceilalți. Pentru a opri, dă clic pe pictograma de testare sau închide panoul apelului video.</translation>
 <translation id="5760866832697883462">Conectează <ph name="NAME" /></translation>
 <translation id="5762420912707163638">Comută marcatorul. <ph name="STATE_TEXT" /> Folosește un trackpad, un ecran tactil sau un creion ca să desenezi pe ecran.</translation>
 <translation id="576341972084747908">Se descarcă fișierul periculos <ph name="FILENAME" /></translation>
@@ -1939,6 +1947,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Creați</translation>
 <translation id="7526573455193969409">Este posibil ca rețeaua să fie monitorizată</translation>
+<translation id="7534543072325030705">Dacă alegi Îmi place, trimiți ca feedback faptul că îți place acest grup sugerat</translation>
 <translation id="7536035074519304529">Adresă IP: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Actualizează fereastra din stânga</translation>
 <translation id="7543399541175347147">Aplicațiile Linux și ferestrele incognito nu sunt acceptate. Alte aplicații se vor salva.</translation>
@@ -2103,6 +2112,7 @@
 <translation id="8004512796067398576">Incrementează</translation>
 <translation id="8005527720597583355">Începe sesiunea de Focus</translation>
 <translation id="8015361438441228492">Activitatea nu a putut fi editată.</translation>
+<translation id="8027187124910699148">Reia grupul sugerat</translation>
 <translation id="802782383769312836">Desktopul anterior: <ph name="DESK_NAME" />. Desktopul <ph name="DESK_INDEX" /> din <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Conectarea la hotspot nu a reușit</translation>
 <translation id="8029629653277878342">Este necesar codul PIN sau parola pentru mai multă siguranță</translation>
@@ -2211,6 +2221,7 @@
 <translation id="8426708595819210923">Bună seara, <ph name="GIVEN_NAME" />!</translation>
 <translation id="8428213095426709021">Setări</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> până la <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Salvează grupul pentru mai târziu</translation>
 <translation id="8433186206711564395">Setări de rețea</translation>
 <translation id="8433977262951327081">Comanda rapidă pentru afișarea în raft a balonului meniului cu opțiunile de introducere a textului a fost modificată. Folosește <ph name="NEW_SHORTCUT" /> în loc de <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Deschide instrumentul de feedback</translation>
@@ -2219,6 +2230,7 @@
 <translation id="8446884382197647889">Află mai multe</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Închide funcția „Selectați și ascultați”</translation>
+<translation id="8466665972451889002">Afișează articolele din <ph name="GROUP_NAME" /></translation>
 <translation id="8468806060683421065">de predat <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Setările pentru scara afișajului</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> are <ph name="FEATURE_NAME" /> <ph name="FEATURE_STATE" />.</translation>
@@ -2241,6 +2253,7 @@
 <translation id="8551588720239073785">Setări de dată și oră</translation>
 <translation id="8553395910833293175">A fost deja atribuită tuturor desktopurilor.</translation>
 <translation id="8555757996376137129">Elimină desktopul actual</translation>
+<translation id="8558521694042102707">AI-ul generativ poate să facă greșeli, inclusiv în legătură cu persoane, așadar verifică încă o dată răspunsurile.</translation>
 <translation id="8559845965695780508">Editat de <ph name="USER" /></translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Iată câteva sugestii de încercat</translation>
@@ -2263,6 +2276,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" />, gestionată de administratorul tău</translation>
 <translation id="8638637208069328956">Activează / dezactivează microfonul</translation>
 <translation id="8639760480004882931">Nivelul bateriei: <ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">Ascunde toate sugestiile de grupuri</translation>
 <translation id="8641510901370802679">Se afișează informații despre <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480">Temporizator de <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">Pentru a adăuga o persoană, introdu codul de acces pentru părinte Family Link</translation>
@@ -2345,6 +2359,7 @@
 <translation id="8905919797434099235">(Fără titlu)</translation>
 <translation id="890616557918890486">Schimbă sursa</translation>
 <translation id="8909138438987180327">Nivelul bateriei este <ph name="PERCENTAGE" /> %.</translation>
+<translation id="8916866375277139011">Ascunde elementele din <ph name="GROUP_NAME" /></translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Asistentul Google nu vorbește în această limbă.</translation>
 <translation id="8926951137623668982">Raftul este ascuns mereu</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 45113d1..5dd0969 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Показать список сетей. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Чтобы выполнить действие, предложенное в уведомлении, разблокируйте устройство.</translation>
 <translation id="1420408895951708260">Включить или отключить ночную подсветку (<ph name="STATE_TEXT" />)</translation>
+<translation id="1421166164855200062">Предлагаемая группа</translation>
 <translation id="1426410128494586442">Да</translation>
 <translation id="1435537621343861112">Невозможно начать голосовой ввод. Микрофон отключен.</translation>
 <translation id="1445031758921122223">Файлы для функции отслеживания лица скачаны</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Вычисления</translation>
 <translation id="1774796056689732716">Календарь, <ph name="CURRENT_MONTH_YEAR" />, сейчас выбрано <ph name="DATE" />.</translation>
 <translation id="178347895271755507">Настроить просмотр недавних фотографий, медиафайлов и уведомлений с телефона</translation>
+<translation id="1785317913592722944">Удалить элемент из предлагаемой группы</translation>
 <translation id="1786487376942610288">Переключиться между максимальным и текущим размером окна "картинка в картинке"</translation>
 <translation id="1787955149152357925">Отключено</translation>
 <translation id="1796561540704213354">Сайты, включая открытые и посещенные вами страницы</translation>
 <translation id="179842970735685253">Условиями использования Google</translation>
 <translation id="1805407494113167797">Не удалось воспроизвести звуки режима "Концентрация".</translation>
 <translation id="181103072419391116">Уровень сигнала – <ph name="SIGNAL_STRENGTH" />, под управлением администратора</translation>
+<translation id="1815039896005206046">Поставить предлагаемой группе отметку "Не нравится"</translation>
 <translation id="1816896987747843206">Доступ к камере получат все приложения и сайты с разрешением "Камера".</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Открыть доступ к геоданным</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">"Привет" по-китайски</translation>
 <translation id="2370971919968699910">Может взиматься плата за передачу данных.
 Подключено несколько устройств (<ph name="DEVICECOUNT" />).</translation>
+<translation id="2383521554963939360">Группы приложений и вкладок</translation>
 <translation id="2386292613071805067">Выделить все содержимое страницы</translation>
 <translation id="2389423187722941333">Включить или отключить Gemini</translation>
 <translation id="2392659840443812875">Точки доступа не найдены. Убедитесь, что устройство находится рядом и Bluetooth включен.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Ретушь лица</translation>
 <translation id="4156293514828496577">Уровень заряда батареи: <ph name="PERCENTAGE" /> %. Приблизительное оставшееся время работы: <ph name="TIME_LEFT" />.
 Чтобы увеличить это время, использование некоторых функций было ограничено.</translation>
+<translation id="4158003972857765638">Открыть на новом рабочем столе</translation>
 <translation id="4160919062868802509">Обнаружено несколько источников звука</translation>
 <translation id="416245495747357243">Готово!</translation>
 <translation id="4165275524535002941">Кабель несовместим с экраном</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Функция сочетания клавиш Ctrl + Alt + Стрелка вверх изменилась. Чтобы выполнить действие клавиши Home, нажмите <ph name="LAUNCHER_KEY_NAME" /> + Стрелка влево.</translation>
 <translation id="4324840740119394760">Доступ к камере получит приложение "<ph name="APP_NAME" />", а также все приложения и сайты с разрешением "Камера".</translation>
 <translation id="4327147325944669226">Записать игру</translation>
+<translation id="4329076911374908740">Достигнуто максимально допустимое количество групп.</translation>
 <translation id="4338109981321384717">Лупа</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, звук отключен</translation>
 <translation id="4351244548802238354">Закрыть</translation>
@@ -1941,6 +1947,7 @@
 <translation id="7524043547948122239">Google Задачи</translation>
 <translation id="7525067979554623046">Создать</translation>
 <translation id="7526573455193969409">Сеть может отслеживаться</translation>
+<translation id="7534543072325030705">Поставить предлагаемой группе отметку "Нравится"</translation>
 <translation id="7536035074519304529">IP-адрес: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Обновить окно слева</translation>
 <translation id="7543399541175347147">Приложения для Linux и окна в режиме инкогнито пока не поддерживаются. Остальные приложения будут сохранены.</translation>
@@ -2105,6 +2112,7 @@
 <translation id="8004512796067398576">Увеличить</translation>
 <translation id="8005527720597583355">Перейти в режим концентрации внимания</translation>
 <translation id="8015361438441228492">Не удалось сохранить изменения.</translation>
+<translation id="8027187124910699148">Восстановить предлагаемую группу</translation>
 <translation id="802782383769312836">Предыдущий рабочий стол: <ph name="DESK_NAME" />. Номер рабочего стола: <ph name="DESK_INDEX" /> из <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Не удалось подключиться к точке доступа</translation>
 <translation id="8029629653277878342">В качестве дополнительной меры безопасности введите PIN-код или пароль.</translation>
@@ -2213,6 +2221,7 @@
 <translation id="8426708595819210923">Добрый вечер, <ph name="GIVEN_NAME" />!</translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /> клавиши от <ph name="KEY_ONE" /> до <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Сохранить группу</translation>
 <translation id="8433186206711564395">Настройки сети</translation>
 <translation id="8433977262951327081">Быстрые клавиши для вызова всплывающего окна с параметрами ввода на панели запуска изменились. Используйте <ph name="NEW_SHORTCUT" /> вместо <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Открыть инструмент для отзывов</translation>
@@ -2221,6 +2230,7 @@
 <translation id="8446884382197647889">Подробнее...</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Остановить озвучивание при нажатии</translation>
+<translation id="8466665972451889002">Показать элементы группы "<ph name="GROUP_NAME" />"</translation>
 <translation id="8468806060683421065">срок сдачи: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Настройки масштаба экрана</translation>
 <translation id="8473301994082929012">Организация <ph name="ORGANIZATION_NAME" /> <ph name="FEATURE_STATE" /> функцию "<ph name="FEATURE_NAME" />".</translation>
@@ -2243,6 +2253,7 @@
 <translation id="8551588720239073785">Настройки даты и времени</translation>
 <translation id="8553395910833293175">Уже доступно на всех рабочих столах.</translation>
 <translation id="8555757996376137129">Удалить текущий рабочий стол</translation>
+<translation id="8558521694042102707">Генеративный искусственный интеллект может допускать ошибки, в том числе в сведениях о людях, поэтому перепроверяйте его ответы.</translation>
 <translation id="8559845965695780508">Пользователь <ph name="USER" /> изменил файл</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Вот несколько идей:</translation>
@@ -2265,6 +2276,7 @@
 <translation id="8637598503828012618">Статус подключения – "<ph name="CONNECTION_STATUS" />", уровень сигнала – <ph name="SIGNAL_STRENGTH" />, под управлением администратора</translation>
 <translation id="8638637208069328956">Включить/отключить микрофон</translation>
 <translation id="8639760480004882931">Батарея заряжена на <ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">Скрыть все предлагаемые группы</translation>
 <translation id="8641510901370802679">Информация о компоненте: <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480">Таймер на <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">Чтобы добавить пользователя, введите родительский код доступа Family Link.</translation>
@@ -2347,6 +2359,7 @@
 <translation id="8905919797434099235">Без названия</translation>
 <translation id="890616557918890486">Изменить источник</translation>
 <translation id="8909138438987180327">Уровень заряда батареи: <ph name="PERCENTAGE" />.</translation>
+<translation id="8916866375277139011">Скрыть элементы группы "<ph name="GROUP_NAME" />"</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google Ассистент не говорит на этом языке</translation>
 <translation id="8926951137623668982">Временное хранилище будет всегда скрыто</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 59bc079..5e32e94 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -1264,6 +1264,7 @@
 <translation id="5245201184978705914">Prepisa ni mogoče ustvariti</translation>
 <translation id="5251174953851719648">Osvežitev vsebine</translation>
 <translation id="5253783950165989294">Vzpostavljena je povezava z napravo <ph name="DEVICE_NAME" />, napolnjenost baterije: <ph name="BATTERY_PERCENTAGE" /> %</translation>
+<translation id="5256939106029293271">Preizkusite mikrofon</translation>
 <translation id="5258528442992323769">Ni shranjenih namizij</translation>
 <translation id="5260676007519551770">Namizje 4</translation>
 <translation id="5265391159779542051">Rezultati so naloženi</translation>
@@ -1421,6 +1422,7 @@
 <translation id="5745612484876805746">Nočna svetloba se samodejno vklopi ob sončnem zahodu</translation>
 <translation id="5750765938512549687">Bluetooth je izklopljen</translation>
 <translation id="5758114525425072423">Začetek Osredotočenosti. Časovnik je nastavljen na <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Poslušajte, kako boste zveneli drugim. Če želite ustaviti, kliknite ikono za preizkus ali zaprite podokno za videoklic.</translation>
 <translation id="5760866832697883462">Povežite napravo <ph name="NAME" /></translation>
 <translation id="5762420912707163638">Preklopite označevalnik. <ph name="STATE_TEXT" /> Uporabite sledilno ploščico, zaslon na dotik ali pisalo za risanje po zaslonu.</translation>
 <translation id="576341972084747908">Nevaren prenos <ph name="FILENAME" /></translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index 8e18148..1fca244 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -974,6 +974,7 @@
 <translation id="4285498937028063278">Otkači</translation>
 <translation id="428715201724021596">Povezuje se sa profilom. To može da potraje nekoliko minuta.</translation>
 <translation id="4287250812980588583">Chrome prozor</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{Jačinu zvuka mikrofona kontroliše <ph name="APP_NAME" />}one{Jačinu zvuka mikrofona kontroliše # aplikacija}few{Jačinu zvuka mikrofona kontrolišu # aplikacije}other{Jačinu zvuka mikrofona kontroliše # aplikacija}}</translation>
 <translation id="4294319844246081198">Dobro jutro, <ph name="GIVEN_NAME" />,</translation>
 <translation id="4296136865091727875">Obrišite sva obaveštenja (<ph name="COUNT" />)</translation>
 <translation id="4300272766492248925">Otvori aplikaciju</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index e31e753..b00368cf 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -974,6 +974,7 @@
 <translation id="4285498937028063278">Откачи</translation>
 <translation id="428715201724021596">Повезује се са профилом. То може да потраје неколико минута.</translation>
 <translation id="4287250812980588583">Chrome прозор</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{Јачину звука микрофона контролише <ph name="APP_NAME" />}one{Јачину звука микрофона контролише # апликација}few{Јачину звука микрофона контролишу # апликације}other{Јачину звука микрофона контролише # апликација}}</translation>
 <translation id="4294319844246081198">Добро јутро, <ph name="GIVEN_NAME" />,</translation>
 <translation id="4296136865091727875">Обришите сва обавештења (<ph name="COUNT" />)</translation>
 <translation id="4300272766492248925">Отвори апликацију</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 0105128..65e673f 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Onyesha orodha ya mitandao. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Fungua kifaa ili utekeleza kitendo cha arifa</translation>
 <translation id="1420408895951708260">Swichi ya Mwanga wa Usiku. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Kikundi kilichopendekezwa</translation>
 <translation id="1426410128494586442">Ndiyo</translation>
 <translation id="1435537621343861112">Imeshindwa kuanza kuandika kwa kutamka. Maikrofoni yako imezimwa.</translation>
 <translation id="1445031758921122223">Imepakua faili za udhibiti wa uso</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Ukokotoaji</translation>
 <translation id="1774796056689732716">Kalenda, <ph name="CURRENT_MONTH_YEAR" />, kwa sasa umechagua <ph name="DATE" />.</translation>
 <translation id="178347895271755507">Weka mipangilio ya kuangalia picha, maudhui na arifa za hivi karibuni za simu yako</translation>
+<translation id="1785317913592722944">Ondoa kipengee katika kikundi kilichopendekezwa</translation>
 <translation id="1786487376942610288">Badilisha kati ya ukubwa wa sasa na wa juu zaidi unaoruhusiwa wa dirisha la kupachika picha ndani ya picha nyingine</translation>
 <translation id="1787955149152357925">Yamezimwa</translation>
 <translation id="1796561540704213354">Tovuti zinajumuisha kurasa ulizotembelea na kurasa zilizofunguliwa</translation>
 <translation id="179842970735685253">Sheria na Masharti ya Google</translation>
 <translation id="1805407494113167797">Imeshindwa kucheza sauti za hali ya Kumakinika</translation>
 <translation id="181103072419391116">Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />, Unadhibitiwa na Msimamizi wako</translation>
+<translation id="1815039896005206046">Kubonyeza Sijakipenda kutatuma maoni kuwa hujapenda kikundi hiki kilichopendekezwa</translation>
 <translation id="1816896987747843206">Hatua hii huruhusu ufikiaji wa kamera katika programu na tovuti zote zilizo na ruhusa ya kufikia kamera</translation>
 <translation id="1823873187264960516">Ethaneti: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Washa kipengele cha kufikia data ya mahali</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">"Hujambo" kwa Kichina</translation>
 <translation id="2370971919968699910">Huenda ukatozwa gharama za data.
 Vifaa <ph name="DEVICECOUNT" /> vimeunganishwa.</translation>
+<translation id="2383521554963939360">Vikundi vya vichupo na programu</translation>
 <translation id="2386292613071805067">Chagua kila kitu kwenye ukurasa</translation>
 <translation id="2389423187722941333">Funga au ufungue Gemini</translation>
 <translation id="2392659840443812875">Hakuna mtandao pepe unaopatikana. Hakikisha kuwa kifaa chako kiko karibu na umewasha Bluetooth.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Kuboresha picha wima</translation>
 <translation id="4156293514828496577">Zimesalia asilimia <ph name="PERCENTAGE" /> za chaji ya betri (takribani <ph name="TIME_LEFT" />).
 Baadhi ya vipengele vimedhibitiwa ili kuongeza muda wa matumizi ya betri.</translation>
+<translation id="4158003972857765638">Panga katika eneokazi jipya</translation>
 <translation id="4160919062868802509">Vyanzo vingi vya sauti vimetambuliwa</translation>
 <translation id="416245495747357243">Umemaliza!</translation>
 <translation id="4165275524535002941">Huenda kebo haijaoana na skrini</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">Mikato ya kibodi ya Ctrl + Alt + Kishale cha Juu imebadilika. Ili utumie kitufe cha Home, bonyeza kitufe cha <ph name="LAUNCHER_KEY_NAME" /> pamoja na Kishale cha Kushoto.</translation>
 <translation id="4324840740119394760">Hatua hii huruhusu ufikiaji wa kamera katika <ph name="APP_NAME" /> na programu pamoja na tovuti zote zilizo na ruhusa ya kufikia kamera</translation>
 <translation id="4327147325944669226">Rekodi mchezo</translation>
+<translation id="4329076911374908740">Umefikia idadi ya juu zaidi ya vikundi vilivyohifadhiwa.</translation>
 <translation id="4338109981321384717">Lenzi</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, Sauti imezimwa</translation>
 <translation id="4351244548802238354">Funga kidirisha</translation>
@@ -1264,6 +1270,7 @@
 <translation id="5245201184978705914">Imeshindwa kuzalisha manukuu</translation>
 <translation id="5251174953851719648">Onyesha maudhui upya</translation>
 <translation id="5253783950165989294">Imeunganishwa kwenye kifaa kiitwacho <ph name="DEVICE_NAME" />, chaji ya betri ni <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">Jaribu maikrofoni yako</translation>
 <translation id="5258528442992323769">Hakuna maeneokazi yaliyohifadhiwa</translation>
 <translation id="5260676007519551770">Eneokazi la 4</translation>
 <translation id="5265391159779542051">Imepakia matokeo</translation>
@@ -1421,6 +1428,7 @@
 <translation id="5745612484876805746">Kipengele cha Mwanga wa Usiku kitawaka kiotomatiki wakati wa machweo</translation>
 <translation id="5750765938512549687">Bluetooth imezimwa</translation>
 <translation id="5758114525425072423">Anza Kumakinika. Kipima muda kimewekwa kuwa <ph name="FOCUS_DURATION" />.</translation>
+<translation id="5759522586053040964">Sikia unavyosikika kwa wengine. Ili usimamishe, bofya aikoni ya kujaribu au ufunge kidirisha cha simu ya video.</translation>
 <translation id="5760866832697883462">Unganisha <ph name="NAME" /> yako</translation>
 <translation id="5762420912707163638">Geuza kitia alama. <ph name="STATE_TEXT" /> Tumia padi ya kusogeza, skrini ya kugusa au stylus ili uchore kwenye skrini.</translation>
 <translation id="576341972084747908">Pakua <ph name="FILENAME" /> hatari</translation>
@@ -1939,6 +1947,7 @@
 <translation id="7524043547948122239">Majukumu kwenye Google</translation>
 <translation id="7525067979554623046">Unda</translation>
 <translation id="7526573455193969409">Huenda mtandao unafuatiliwa</translation>
+<translation id="7534543072325030705">Kubonyeza Nimekipenda kutatuma maoni kuwa umependa kikundi hiki kilichopendekezwa</translation>
 <translation id="7536035074519304529">Anwani ya IP: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Sasisha dirisha la kushoto</translation>
 <translation id="7543399541175347147">Programu za Linux pamoja na madirisha fiche hayawezi kutumika kwa sasa. Programu nyingine zitahifadhiwa.</translation>
@@ -2104,6 +2113,7 @@
 <translation id="8004512796067398576">Ongezeko</translation>
 <translation id="8005527720597583355">Anzisha kipindi cha Kuangazia</translation>
 <translation id="8015361438441228492">Imeshindwa kubadilisha jukumu.</translation>
+<translation id="8027187124910699148">Endelea na kikundi kilichopendekezwa</translation>
 <translation id="802782383769312836">Eneokazi lililotangulia: <ph name="DESK_NAME" />. Eneokazi la <ph name="DESK_INDEX" /> kati ya <ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Imeshindwa kuunganisha kwenye mtandao pepe</translation>
 <translation id="8029629653277878342">PIN au nenosiri linahitajika kwa usalama zaidi</translation>
@@ -2212,6 +2222,7 @@
 <translation id="8426708595819210923">Habari za jioni <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">Mipangilio</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> hadi <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">Hifadhi kikundi ili ukirejelee baadaye</translation>
 <translation id="8433186206711564395">Mipangilio ya mtandao</translation>
 <translation id="8433977262951327081">Njia ya mkato ya kuonyesha kiputo cha menyu ya chaguo za kuingiza data katika rafu imebadilika. Tafadhali tumia <ph name="NEW_SHORTCUT" /> badala ya <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="8437311513256731931">Fungua zana ya maoni</translation>
@@ -2220,6 +2231,7 @@
 <translation id="8446884382197647889">Pata Maelezo Zaidi</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> na herufi V</translation>
 <translation id="8462305545768648477">Funga kipengele cha Kuchagua ili izungumze</translation>
+<translation id="8466665972451889002">Onyesha vipengee katika <ph name="GROUP_NAME" /></translation>
 <translation id="8468806060683421065">linafaa kuwasilishwa <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Onyesha mipangilio ya vipimo</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> ina <ph name="FEATURE_STATE" /> <ph name="FEATURE_NAME" />.</translation>
@@ -2242,6 +2254,7 @@
 <translation id="8551588720239073785">Mipangilio ya saa na tarehe</translation>
 <translation id="8553395910833293175">Tayari limewekwa kwenye maeneokazi yote.</translation>
 <translation id="8555757996376137129">Ondoa eneokazi la sasa</translation>
+<translation id="8558521694042102707">AI zalishi inaweza kukosea, yakiwemo makosa kuhusu watu, kwa hivyo kagua majibu yake.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> amebadilisha</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Yafuatayo ni baadhi ya mapendekezo unayoweza kujaribu</translation>
@@ -2264,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />, Unadhibitiwa na Msimamizi wako</translation>
 <translation id="8638637208069328956">Washa au uzime maikrofoni</translation>
 <translation id="8639760480004882931">Imebaki <ph name="PERCENTAGE" />%</translation>
+<translation id="8640470573049727749">Ficha mapendekezo yote ya kikundi</translation>
 <translation id="8641510901370802679">Inaonyesha taarifa ya <ph name="ANSWER_TYPE" /></translation>
 <translation id="8646417893960517480">Kipima muda cha <ph name="TOTAL_TIME" /></translation>
 <translation id="8647931990447795414">Ili uongeze mtu, weka msimbo wako wa mzazi wa kufikia Family Link</translation>
@@ -2346,6 +2360,7 @@
 <translation id="8905919797434099235">(Hakuna mada)</translation>
 <translation id="890616557918890486">Badilisha chanzo</translation>
 <translation id="8909138438987180327">Chaji ya betri imefika <ph name="PERCENTAGE" />.</translation>
+<translation id="8916866375277139011">Ficha vipengee katika <ph name="GROUP_NAME" /></translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Programu ya Mratibu wa Google haina huduma ya lugha hii.</translation>
 <translation id="8926951137623668982">Rafu inafichwa kila wakati</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index bdcea7d..a54f0335d 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">నెట్‌వర్క్ లిస్ట్‌ను చూడండి. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">నోటిఫికేషన్ చర్యను మేనేజ్ చేయడానికి పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="1420408895951708260">రాత్రి కాంతిని టోగుల్ చేయి. <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">సూచించిన గ్రూప్</translation>
 <translation id="1426410128494586442">అవును</translation>
 <translation id="1435537621343861112">డిక్టేషన్ ప్రారంభించడం సాధ్యం కాదు. మీ మైక్ ఆఫ్‌లో ఉంది.</translation>
 <translation id="1445031758921122223">ఫేస్ కంట్రోల్ ఫైళ్లు డౌన్‌లోడ్ అయ్యాయి</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">లెక్కింపులు</translation>
 <translation id="1774796056689732716">క్యాలెండర్, <ph name="CURRENT_MONTH_YEAR" />, ప్రస్తుతం <ph name="DATE" /> తేదీ ఎంపిక చేయబడింది.</translation>
 <translation id="178347895271755507">మీ ఫోన్‌లోని తాజా ఫోటోలను, మీడియాను, నోటిఫికేషన్‌లను చూసే సదుపాయాన్ని సెటప్ చేయండి</translation>
+<translation id="1785317913592722944">సూచించిన గ్రూప్ నుండి ఐటెమ్‌ను తీసివేయండి</translation>
 <translation id="1786487376942610288">పిక్చర్-ఇన్-పిక్చర్ విండో గరిష్ఠ సైజ్ లేదా ప్రస్తుతం ఉన్న సైజ్ మధ్య మారండి</translation>
 <translation id="1787955149152357925">ఆఫ్ చేయి</translation>
 <translation id="1796561540704213354">వెబ్‌సైట్‌లలో మీరు బ్రౌజ్ చేసిన, తెరిచిన పేజీలు ఉంటాయి</translation>
 <translation id="179842970735685253">Google సర్వీస్ నియమాలు</translation>
 <translation id="1805407494113167797">ఫోకస్ సౌండ్‌లను ప్లే చేయడం సాధ్యం కాలేదు</translation>
 <translation id="181103072419391116">సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />, మీ అడ్మినిస్ట్రేటర్ ద్వారా నిర్వహించబడుతుంది</translation>
+<translation id="1815039896005206046">సూచించిన గ్రూప్‌ను మీరు డిస్‌లైక్ చేస్తున్నారు అనే ఫీడ్‌బ్యాక్‌ను 'బాగా లేదు' ఆప్షన్ సబ్మిట్ చేస్తుంది</translation>
 <translation id="1816896987747843206">ఇది కెమెరా అనుమతితో అన్ని యాప్‌లు, వెబ్‌సైట్‌ల కోసం కెమెరా యాక్సెస్‌ను అనుమతిస్తుంది</translation>
 <translation id="1823873187264960516">ఈథర్‌నెట్: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">లొకేషన్ యాక్సెస్‌ను ఆన్ చేయండి</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">చైనీస్‌లో "హలో"</translation>
 <translation id="2370971919968699910">దీనికి డేటా ఖర్చు అవ్వచ్చు.
 <ph name="DEVICECOUNT" /> పరికరాలు కనెక్ట్ అయ్యాయి.</translation>
+<translation id="2383521554963939360">యాప్, ట్యాబ్ గ్రూప్‌లు</translation>
 <translation id="2386292613071805067">పేజీలో ఉన్న మొత్తాన్ని ఎంచుకోండి</translation>
 <translation id="2389423187722941333">Geminiని టోగుల్ చేయండి</translation>
 <translation id="2392659840443812875">అందుబాటులో ఉన్న హాట్‌స్పాట్ ఏదీ లేదు. మీ పరికరం సమీపంలో ఉందని, బ్లూటూత్ ఆన్ చేసి ఉందని నిర్ధారించుకోండి.</translation>
@@ -921,6 +925,7 @@
 <translation id="4151054805501931758">పోర్ట్రెయిట్ టచ్-అప్</translation>
 <translation id="4156293514828496577">బ్యాటరీ <ph name="PERCENTAGE" />% మిగిలి ఉంది (<ph name="TIME_LEFT" /> సమయం మిగిలి ఉంది).
 కొన్ని ఫీచర్‌లు బ్యాటరీ లైఫ్‌ను పొడిగించడానికి పరిమితం చేయబడ్డాయి.</translation>
+<translation id="4158003972857765638">కొత్త డెస్క్‌లో ఆర్గనైజ్ చేయండి</translation>
 <translation id="4160919062868802509">పలు ఆడియో సోర్స్‌లు గుర్తించబడ్డాయి</translation>
 <translation id="416245495747357243">పూర్తయింది!</translation>
 <translation id="4165275524535002941">డిస్‌ప్లేలను కేబుల్ సపోర్ట్ చేయకపోవచ్చు</translation>
@@ -985,6 +990,7 @@
 <translation id="4322742403972824594">Ctrl + Alt +పై వైపు బాణం కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. హోమ్ కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + ఎడమ వైపు బాణం కీను నొక్కండి.</translation>
 <translation id="4324840740119394760">ఇది కెమెరా అనుమతితో <ph name="APP_NAME" />, అన్ని యాప్‌లు ఇంకా వెబ్‌సైట్‌ల కోసం కెమెరా యాక్సెస్‌ను అనుమతిస్తుంది</translation>
 <translation id="4327147325944669226">గేమ్‌ను రికార్డ్ చేయండి</translation>
+<translation id="4329076911374908740">సేవ్ చేయబడిన గ్రూప్‌ల గరిష్ఠ స్థాయికి చేరుకున్నారు.</translation>
 <translation id="4338109981321384717">భూతద్దం</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, మ్యూట్ చేయబడింది</translation>
 <translation id="4351244548802238354">డైలాగ్‌ను మూసివేయండి</translation>
@@ -1942,6 +1948,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">క్రియేట్ చేయండి</translation>
 <translation id="7526573455193969409">నెట్‌వ‌ర్క్‌పై ప‌ర్య‌వేక్ష‌ణ ఉండ‌వ‌చ్చు</translation>
+<translation id="7534543072325030705">మీకు ఈ సూచించిన గ్రూప్ నచ్చింది అనే ఫీడ్‌బ్యాక్‌ను 'బాగుంది' అనే ఆప్షన్ సబ్మిట్ చేస్తుంది</translation>
 <translation id="7536035074519304529">IP అడ్రస్‌: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">ఎడమ వైపు విండోను అప్‌డేట్ చేయండి</translation>
 <translation id="7543399541175347147">Linux యాప్‌లు, అజ్ఞాత విండోలు ప్రస్తుత సపోర్ట్ చేయవు. ఇతర యాప్‌లు సేవ్ చేయబడతాయి.</translation>
@@ -2106,6 +2113,7 @@
 <translation id="8004512796067398576">పెరుగుదల</translation>
 <translation id="8005527720597583355">ఫోకస్ సెషన్‌ను ప్రారంభించండి</translation>
 <translation id="8015361438441228492">టాస్క్‌ను ఎడిట్ చేయడం సాధ్యం కాలేదు.</translation>
+<translation id="8027187124910699148">సూచించిన గ్రూప్‌తో కొనసాగించండి</translation>
 <translation id="802782383769312836">మునుపటి డెస్క్: <ph name="DESK_NAME" />. <ph name="DESK_COUNT" /> డెస్క్‌లలో <ph name="DESK_INDEX" />‌వది.</translation>
 <translation id="8029247720646289474">హాట్‌స్పాట్ కనెక్షన్ విఫలమైంది</translation>
 <translation id="8029629653277878342">మరింత సెక్యూరిటీ కోసం పిన్ లేదా పాస్‌వర్డ్‌ కావాలి</translation>
@@ -2214,6 +2222,7 @@
 <translation id="8426708595819210923">గుడ్ ఈవెనింగ్ <ph name="GIVEN_NAME" />,</translation>
 <translation id="8428213095426709021">సెట్టింగ్‌లు</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> నుండి <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">తర్వాతి కోసం గ్రూప్‌ను సేవ్ చేయండి</translation>
 <translation id="8433186206711564395">నెట్‌వర్క్ సెట్టింగ్‌లు</translation>
 <translation id="8433977262951327081">అరలో ఇన్‌పుట్ ఎంపికల మెనూ బబుల్‌ను చూపడానికి ఉపయోగించే షార్ట్‌కట్ మార్చబడింది. దయచేసి <ph name="OLD_SHORTCUT" />కు బదులుగా <ph name="NEW_SHORTCUT" />ను ఉపయోగించండి.</translation>
 <translation id="8437311513256731931">ఫీడ్‌బ్యాక్ టూల్‌ను తెరవండి</translation>
@@ -2222,6 +2231,7 @@
 <translation id="8446884382197647889">మరింత తెలుసుకోండి</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">'వినడానికి ఎంచుకోండి'ను మూసివేయండి</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" />‌లో ఐటెమ్‌లను చూడండి</translation>
 <translation id="8468806060683421065">గడువు తేదీ <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">స్కేల్ సెట్టింగ్‌లను ప్రదర్శించండి</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> <ph name="FEATURE_NAME" />ను <ph name="FEATURE_STATE" />.</translation>
@@ -2244,6 +2254,7 @@
 <translation id="8551588720239073785">తేదీ, సమయం సెట్టింగ్‌లు</translation>
 <translation id="8553395910833293175">ఇప్పటికే అన్ని డెస్క్‌లకు కేటాయింపు జరిగిపోయింది.</translation>
 <translation id="8555757996376137129">ప్రస్తుత డెస్క్‌ను తీసివేయండి</translation>
+<translation id="8558521694042102707">జెనరేటివ్ AI ఇచ్చే సమాధానాలు కరెక్ట్‌గా ఉండకపోవచ్చు, వ్యక్తులకు సంబంధించిన సమాచారం విషయంలో కూడా ఇదే వర్తిస్తుంది, కాబట్టి దాన్ని డబుల్-చెక్ చేయండి.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> ఎడిట్ చేసినది</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">ట్రై చేయడానికి ఇక్కడ కొన్ని సూచనలు ఉన్నాయి</translation>
@@ -2266,6 +2277,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />, మీ అడ్మినిస్ట్రేటర్ ద్వారా నిర్వహించబడుతోంది</translation>
 <translation id="8638637208069328956">మైక్రోఫోన్‌ను ఆన్/ఆఫ్ చేయండి</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> మిగిలి ఉంది</translation>
+<translation id="8640470573049727749">గ్రూప్ సూచనలన్నింటినీ దాచండి</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> సమాచారం ప్రదర్శించబడుతోంది</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> టైమర్</translation>
 <translation id="8647931990447795414">వ్యక్తిని యాడ్ చేయడానికి, మీ Family Link తల్లిదండ్రుల యాక్సెస్ కోడ్‌ను ఎంటర్ చేయండి</translation>
@@ -2348,6 +2360,7 @@
 <translation id="8905919797434099235">(టైటిల్ లేదు)</translation>
 <translation id="890616557918890486">మూలాధారాన్ని మార్చు</translation>
 <translation id="8909138438987180327">బ్యాటరీ ఛార్జ్ <ph name="PERCENTAGE" /> శాతం ఉంది.</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" />‌లో ఐటెమ్‌లను దాచండి</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google సహాయకం ఈ భాషను మాట్లాడదు.</translation>
 <translation id="8926951137623668982">అర ఎల్లప్పుడూ దాచబడుతుంది</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 07b7375..2a742c1 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -968,6 +968,7 @@
 <translation id="4285498937028063278">เลิกปักหมุด</translation>
 <translation id="428715201724021596">กำลังเชื่อมต่อโปรไฟล์ การดำเนินการนี้อาจใช้เวลาสักครู่</translation>
 <translation id="4287250812980588583">หน้าต่าง Chrome</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{ระดับเสียงของไมค์ควบคุมโดย <ph name="APP_NAME" />}other{ระดับเสียงของไมค์ควบคุมโดย # แอป}}</translation>
 <translation id="4294319844246081198">สวัสดียามเช้า <ph name="GIVEN_NAME" /></translation>
 <translation id="4296136865091727875">ล้างการแจ้งเตือนทั้งหมด <ph name="COUNT" /> รายการ</translation>
 <translation id="4300272766492248925">เปิดแอป</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index abb76b7..a0118e87 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">Tarmoq roʻyxatini ochish. <ph name="STATE_TEXT" />.</translation>
 <translation id="1419738280318246476">Bildirishnomani amalga oshirish uchun qurilmani qulfdan chiqaring</translation>
 <translation id="1420408895951708260">Tungi rejim: <ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">Taklif etilgan guruh</translation>
 <translation id="1426410128494586442">Ha</translation>
 <translation id="1435537621343861112">Diktovka boshlanmadi. Mikrofon yoqilmagan.</translation>
 <translation id="1445031758921122223">Yuz nazorati fayllari yuklab olindi</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">Hisoblashlar</translation>
 <translation id="1774796056689732716">Taqvim, <ph name="CURRENT_MONTH_YEAR" />, hozir <ph name="DATE" /> tanlangan.</translation>
 <translation id="178347895271755507">Telefondagi oxirgi suratlar, media fayllar va bildirishnomalarni koʻrishni sozlash</translation>
+<translation id="1785317913592722944">Taklif etilgan guruhdan elementni olib tashlash</translation>
 <translation id="1786487376942610288">Tasvir ustida tasvir oynasining joriy va maksimal oʻlchamini almashtirish</translation>
 <translation id="1787955149152357925">Oʻchiq</translation>
 <translation id="1796561540704213354">Saytlar, jumladan siz tashrif buyurgan va ochilgan sahifalar</translation>
 <translation id="179842970735685253">Google xizmat shartlari</translation>
 <translation id="1805407494113167797">Fokus tovushlari ijro etilmadi</translation>
 <translation id="181103072419391116">Signal darajasi: <ph name="SIGNAL_STRENGTH" />, Administrator boshqaruvida</translation>
+<translation id="1815039896005206046">Salbiy baho – bu taklif etilgan guruh yoqmaganini anglatadi</translation>
 <translation id="1816896987747843206">Bunda kameraga ruxsat beriladi. Barcha ilovalar va saytlar kameradan foydalana oladi</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">Joylashuv axborotiga ruxsatni yoqish</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">Xitoy tilida “Salom”</translation>
 <translation id="2370971919968699910">Trafik uchun haq olinishi mumkin.
 <ph name="DEVICECOUNT" /> ta qurilma ulangan.</translation>
+<translation id="2383521554963939360">Ilova va varaqlar guruhlari</translation>
 <translation id="2386292613071805067">Sahifadagi barcha kontentni tanlash</translation>
 <translation id="2389423187722941333">Gemini tugmasi</translation>
 <translation id="2392659840443812875">Hech qanday hotspot topilmadi. Qurilma yoningizda va Bluetooth sozlamasi yoniqligini tekshiring.</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">Yuzni retushlash</translation>
 <translation id="4156293514828496577">Batareyada <ph name="PERCENTAGE" />% quvvat qoldi (taxminan: <ph name="TIME_LEFT" />).
 Quvvatni tejash uchun ayrim funksiyalar ishlashi cheklandi.</translation>
+<translation id="4158003972857765638">Yangi ish stolida tartiblash</translation>
 <translation id="4160919062868802509">Bir nechta audio manba aniqlandi</translation>
 <translation id="416245495747357243">Rostdan tugadi.</translation>
 <translation id="4165275524535002941">Kabel displeylar bilan ishlamasligi mumkin</translation>
@@ -985,6 +990,7 @@
 <translation id="4322742403972824594">Ctrl + Alt + Tepaga strelka tezkor tugmasi oʻzgardi. Home tugmasidan foydalanish uchun <ph name="LAUNCHER_KEY_NAME" /> tugmasi + Chapga strelkani bosing.</translation>
 <translation id="4324840740119394760">Bunda kameraga ruxsat beriladi. <ph name="APP_NAME" /> va barcha ilovalar va saytlar kameradan foydalana oladi</translation>
 <translation id="4327147325944669226">Oʻyinni yozib olish</translation>
+<translation id="4329076911374908740">Saqlangan guruhlar soni maksimal miqdorga yetdi.</translation>
 <translation id="4338109981321384717">Lupa</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />, ovozsiz</translation>
 <translation id="4351244548802238354">Oynani yopish</translation>
@@ -1942,6 +1948,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">Yaratish</translation>
 <translation id="7526573455193969409">Tarmoq kuzatilishi mumkin</translation>
+<translation id="7534543072325030705">Ijobiy baho – bu taklif etilgan guruh yoqqanini anglatadi</translation>
 <translation id="7536035074519304529">IP manzil: <ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">Chap oynani yangilash</translation>
 <translation id="7543399541175347147">Linux ilovalari va inkognito oynalarida ishlamaydi. Boshqa ilovalar saqlanadi.</translation>
@@ -2106,6 +2113,7 @@
 <translation id="8004512796067398576">Oshirish</translation>
 <translation id="8005527720597583355">Fokus seansini boshlash</translation>
 <translation id="8015361438441228492">Vazifa tahrirlanmadi.</translation>
+<translation id="8027187124910699148">Tavsiya etilgan guruhni davom ettirish</translation>
 <translation id="802782383769312836">Avvalgi ish stoli: <ph name="DESK_NAME" />. Ish stoli: <ph name="DESK_INDEX" />/<ph name="DESK_COUNT" />.</translation>
 <translation id="8029247720646289474">Hotspot aloqasi uzildi</translation>
 <translation id="8029629653277878342">Xavfsizlikni oshirish uchun PIN kod yoki parol kiriting</translation>
@@ -2214,6 +2222,7 @@
 <translation id="8426708595819210923">Xayrli kech, <ph name="GIVEN_NAME" /></translation>
 <translation id="8428213095426709021">Sozlamalar</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> <ph name="KEY_TWO" /> orqali</translation>
+<translation id="8429547770382807369">Guruhni keyinroqqa saqlash</translation>
 <translation id="8433186206711564395">Tarmoq sozlamalari</translation>
 <translation id="8433977262951327081">Matn kiritish usuli parametrlarini qalqib chiquvchi oynada ko‘rish uchun tugmalar birikmasi o‘zgardi. Endi <ph name="OLD_SHORTCUT" /> o‘rniga <ph name="NEW_SHORTCUT" /> birikmasidan foydalaning.</translation>
 <translation id="8437311513256731931">Fikr-mulohaza vositasini ochish</translation>
@@ -2222,6 +2231,7 @@
 <translation id="8446884382197647889">Batafsil</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">Teginib tinglash oynasini yopish</translation>
+<translation id="8466665972451889002"><ph name="GROUP_NAME" /> ichidagi elementlarni chiqarish</translation>
 <translation id="8468806060683421065">muddati: <ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">Ekran ko‘lami sozlamalari</translation>
 <translation id="8473301994082929012"><ph name="FEATURE_NAME" /> funksiyasi <ph name="ORGANIZATION_NAME" /> tomonidan <ph name="FEATURE_STATE" />.</translation>
@@ -2244,6 +2254,7 @@
 <translation id="8551588720239073785">Sana va vaqt sozlamalari</translation>
 <translation id="8553395910833293175">Allaqachon barcha ish stollarida mavjud</translation>
 <translation id="8555757996376137129">Joriy ish stolini olib tashlash</translation>
+<translation id="8558521694042102707">Generativ AI odamlar haqida ham xato maʼlumotlarni berishi mumkin, shuning uchun javoblarini qayta tekshiring.</translation>
 <translation id="8559845965695780508"><ph name="USER" /> tahrirlagan</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">Quyidagi takliflarni sinang</translation>
@@ -2266,6 +2277,7 @@
 <translation id="8637598503828012618">Himoya: <ph name="CONNECTION_STATUS" />, Signal darajasi: <ph name="SIGNAL_STRENGTH" />, Administrator boshqaruvida</translation>
 <translation id="8638637208069328956">Mikrofonni yoqish/oʻchirish</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> qoldi</translation>
+<translation id="8640470573049727749">Barcha guruh takliflarini berkitish</translation>
 <translation id="8641510901370802679"><ph name="ANSWER_TYPE" /> axboroti chiqarilgan</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> taymer</translation>
 <translation id="8647931990447795414">Odam kiritish uchun Family Link ota-ona ruxsat kodini tering</translation>
@@ -2348,6 +2360,7 @@
 <translation id="8905919797434099235">(Nomsiz)</translation>
 <translation id="890616557918890486">Manbani almashtirish</translation>
 <translation id="8909138438987180327">Batareya quvvati: <ph name="PERCENTAGE" />%.</translation>
+<translation id="8916866375277139011"><ph name="GROUP_NAME" /> ichidagi elementlarni berkitish</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google Assistent hozircha bu tilda gapirmaydi.</translation>
 <translation id="8926951137623668982">Javon doim berk</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 0c52925..bccbab4 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">显示网络列表。<ph name="STATE_TEXT" />。</translation>
 <translation id="1419738280318246476">解锁设备即可执行通知操作</translation>
 <translation id="1420408895951708260">开启/关闭护眼模式。<ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">建议的分组</translation>
 <translation id="1426410128494586442">是</translation>
 <translation id="1435537621343861112">无法启动语音输入。因为您的麦克风处于关闭状态。</translation>
 <translation id="1445031758921122223">已下载面部控制文件</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">计算</translation>
 <translation id="1774796056689732716">日历,<ph name="CURRENT_MONTH_YEAR" />,目前所选日期为 <ph name="DATE" />。</translation>
 <translation id="178347895271755507">设置查看手机中的近期照片、媒体内容和通知</translation>
+<translation id="1785317913592722944">从建议的分组中移除内容</translation>
 <translation id="1786487376942610288">将画中画窗口最大化或还原为当前大小</translation>
 <translation id="1787955149152357925">关闭</translation>
 <translation id="1796561540704213354">一系列网站,包含您访问过的网页和打开的网页</translation>
 <translation id="179842970735685253">Google 的服务条款</translation>
 <translation id="1805407494113167797">无法播放专注模式音乐</translation>
 <translation id="181103072419391116">信号强度为 <ph name="SIGNAL_STRENGTH" />,由您的管理员管理</translation>
+<translation id="1815039896005206046">选择“不喜欢”将提交您不喜欢这条分组建议的反馈</translation>
 <translation id="1816896987747843206">如果您开启摄像头,即意味着允许所有具有摄像头使用权限的应用和网站使用摄像头</translation>
 <translation id="1823873187264960516">以太网:<ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">开启位置信息访问权限</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">“你好”用英文怎么说</translation>
 <translation id="2370971919968699910">这可能会产生流量费用。
 已连接 <ph name="DEVICECOUNT" /> 部设备。</translation>
+<translation id="2383521554963939360">应用和标签页分组</translation>
 <translation id="2386292613071805067">选择网页上的全部内容</translation>
 <translation id="2389423187722941333">切换 Gemini</translation>
 <translation id="2392659840443812875">没有可用的热点。确保您的设备就在附近且已开启蓝牙。</translation>
@@ -919,6 +923,7 @@
 <translation id="4150201353443180367">显示</translation>
 <translation id="4151054805501931758">人像美化</translation>
 <translation id="4156293514828496577">电量剩余 <ph name="PERCENTAGE" />%(大约能维持 <ph name="TIME_LEFT" />)。为了延长电池续航时间,部分功能会受到限制。</translation>
+<translation id="4158003972857765638">在新桌面中整理</translation>
 <translation id="4160919062868802509">检测到多个音频源</translation>
 <translation id="416245495747357243">大功告成!</translation>
 <translation id="4165275524535002941">数据线可能不支持显示屏</translation>
@@ -967,6 +972,7 @@
 <translation id="4285498937028063278">取消固定</translation>
 <translation id="428715201724021596">正在连接到配置文件。这可能需要几分钟的时间。</translation>
 <translation id="4287250812980588583">Chrome 窗口</translation>
+<translation id="4291322857434980285">{NUM_APPS,plural, =1{麦克风音量由“<ph name="APP_NAME" />”控制}other{麦克风音量由 # 个应用控制}}</translation>
 <translation id="4294319844246081198"><ph name="GIVEN_NAME" />,上午好!</translation>
 <translation id="4296136865091727875">清除所有 <ph name="COUNT" /> 条通知</translation>
 <translation id="4300272766492248925">打开应用</translation>
@@ -983,6 +989,7 @@
 <translation id="4322742403972824594">键盘快捷键“Ctrl + Alt + 向上键”已更改。若要使用 Home 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 向左键。</translation>
 <translation id="4324840740119394760">如果您开启摄像头,即意味着允许“<ph name="APP_NAME" />”以及所有具有摄像头使用权限的应用和网站使用摄像头</translation>
 <translation id="4327147325944669226">录制游戏</translation>
+<translation id="4329076911374908740">已达到可保存分组的数量上限。</translation>
 <translation id="4338109981321384717">放大镜</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />,已设为静音</translation>
 <translation id="4351244548802238354">关闭对话框</translation>
@@ -1263,6 +1270,7 @@
 <translation id="5245201184978705914">无法生成转录内容</translation>
 <translation id="5251174953851719648">刷新内容</translation>
 <translation id="5253783950165989294">已连接到一部名为“<ph name="DEVICE_NAME" />”的设备,它的电池电量为 <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">测试麦克风</translation>
 <translation id="5258528442992323769">尚未保存任何桌面</translation>
 <translation id="5260676007519551770">桌面 4</translation>
 <translation id="5265391159779542051">已加载结果</translation>
@@ -1419,6 +1427,7 @@
 <translation id="5745612484876805746">护眼模式会于日落时自动开启</translation>
 <translation id="5750765938512549687">蓝牙已关闭</translation>
 <translation id="5758114525425072423">开启专注模式。定时器已设为 <ph name="FOCUS_DURATION" />。</translation>
+<translation id="5759522586053040964">听听自己的声音听起来如何。如需停止测试,请点击测试图标或关闭视频通话面板。</translation>
 <translation id="5760866832697883462">连接您的“<ph name="NAME" />”</translation>
 <translation id="5762420912707163638">开启/关闭标记工具。<ph name="STATE_TEXT" />您可以使用触控板、触摸屏或触控笔在屏幕上绘画。</translation>
 <translation id="576341972084747908">正在下载有风险的文件 <ph name="FILENAME" /></translation>
@@ -1937,6 +1946,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">创建</translation>
 <translation id="7526573455193969409">网络可能受到了监控</translation>
+<translation id="7534543072325030705">选择“我喜欢”将提交您喜欢这条分组建议的反馈</translation>
 <translation id="7536035074519304529">IP 地址:<ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">更新左侧窗口</translation>
 <translation id="7543399541175347147">目前不支持 Linux 应用和无痕式窗口。其他应用会被保存。</translation>
@@ -2101,6 +2111,7 @@
 <translation id="8004512796067398576">增加</translation>
 <translation id="8005527720597583355">开启专注模式</translation>
 <translation id="8015361438441228492">无法修改任务。</translation>
+<translation id="8027187124910699148">恢复建议的分组</translation>
 <translation id="802782383769312836">上一个桌面:<ph name="DESK_NAME" />。第 <ph name="DESK_INDEX" /> 个桌面(共 <ph name="DESK_COUNT" /> 个)。</translation>
 <translation id="8029247720646289474">热点连接失败</translation>
 <translation id="8029629653277878342">需要输入 PIN 码或密码以增强安全性</translation>
@@ -2209,6 +2220,7 @@
 <translation id="8426708595819210923"><ph name="GIVEN_NAME" />,晚上好!</translation>
 <translation id="8428213095426709021">设置</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> 至 <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">保存分组以供日后使用</translation>
 <translation id="8433186206711564395">网络设置</translation>
 <translation id="8433977262951327081">用于在任务栏中显示输入法选项菜单气泡的快捷键已更改。请使用<ph name="NEW_SHORTCUT" />(而不是 <ph name="OLD_SHORTCUT" />)。</translation>
 <translation id="8437311513256731931">打开反馈工具</translation>
@@ -2217,6 +2229,7 @@
 <translation id="8446884382197647889">了解详情</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">关闭“随选朗读”功能</translation>
+<translation id="8466665972451889002">显示“<ph name="GROUP_NAME" />”中的内容</translation>
 <translation id="8468806060683421065"><ph name="DUE_DATE_AND_TIME" />到期</translation>
 <translation id="847056008324733326">显示比例设置</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" />已<ph name="FEATURE_STATE" /><ph name="FEATURE_NAME" />。</translation>
@@ -2239,6 +2252,7 @@
 <translation id="8551588720239073785">日期和时间设置</translation>
 <translation id="8553395910833293175">此前就已分配至所有桌面。</translation>
 <translation id="8555757996376137129">移除当前桌面</translation>
+<translation id="8558521694042102707">生成式 AI 可能会输出错误信息,包括与人有关的信息,因此请务必核查回答内容。</translation>
 <translation id="8559845965695780508"><ph name="USER" />编辑过</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">不妨尝试以下搜索建议</translation>
@@ -2261,6 +2275,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />,信号强度为 <ph name="SIGNAL_STRENGTH" />,由您的管理员管理</translation>
 <translation id="8638637208069328956">开启/关闭麦克风</translation>
 <translation id="8639760480004882931">剩余电量:<ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">隐藏所有分组建议</translation>
 <translation id="8641510901370802679">当前显示的是<ph name="ANSWER_TYPE" />信息</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" />定时器</translation>
 <translation id="8647931990447795414">若要添加人员,请输入您的 Family Link 家长访问码</translation>
@@ -2343,6 +2358,7 @@
 <translation id="8905919797434099235">(无标题)</translation>
 <translation id="890616557918890486">更改来源</translation>
 <translation id="8909138438987180327">剩余的电池电量为 <ph name="PERCENTAGE" />%。</translation>
+<translation id="8916866375277139011">隐藏“<ph name="GROUP_NAME" />”中的内容</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google 助理不支持此语言。</translation>
 <translation id="8926951137623668982">任务栏始终处于隐藏状态</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index d2b3fa1..da7654f 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -140,6 +140,7 @@
 <translation id="1415846719612499304">顯示網絡清單。<ph name="STATE_TEXT" />。</translation>
 <translation id="1419738280318246476">解鎖裝置即可執行有關通知的動作</translation>
 <translation id="1420408895951708260">切換「夜燈模式」。<ph name="STATE_TEXT" /></translation>
+<translation id="1421166164855200062">建議群組</translation>
 <translation id="1426410128494586442">是</translation>
 <translation id="1435537621343861112">無法啟動語音聽寫功能,因為麥克風已關閉。</translation>
 <translation id="1445031758921122223">已下載面部控制檔案</translation>
@@ -243,12 +244,14 @@
 <translation id="17722141032474077">計算</translation>
 <translation id="1774796056689732716">日曆,<ph name="CURRENT_MONTH_YEAR" />,目前揀咗 <ph name="DATE" />。</translation>
 <translation id="178347895271755507">設定睇手機最近嘅相、媒體同通知</translation>
+<translation id="1785317913592722944">從建議群組移除項目</translation>
 <translation id="1786487376942610288">將畫中畫視窗最大化或還原為目前大小</translation>
 <translation id="1787955149152357925">關閉</translation>
 <translation id="1796561540704213354">網站,包括你瀏覽過的網頁和目前開啟的頁面</translation>
 <translation id="179842970735685253">Google 服務條款</translation>
 <translation id="1805407494113167797">無法播放「專注模式」音效</translation>
 <translation id="181103072419391116">訊號強度係 <ph name="SIGNAL_STRENGTH" />,由管理員管理</translation>
+<translation id="1815039896005206046">按一下不喜歡就可以給負評予這個建議群組</translation>
 <translation id="1816896987747843206">此操作會允許具備相機權限的所有應用程式和網站存取相機</translation>
 <translation id="1823873187264960516">以太網:<ph name="ADDRESS" /></translation>
 <translation id="1824922790784036530">開啟位置資料存取權</translation>
@@ -390,6 +393,7 @@
 <translation id="2369165858548251131">「你好」嘅英文</translation>
 <translation id="2370971919968699910">這種情況可能需要支付數據費用。
 已連接 <ph name="DEVICECOUNT" /> 部裝置。</translation>
+<translation id="2383521554963939360">應用程式和分頁群組</translation>
 <translation id="2386292613071805067">選取頁面上所有內容</translation>
 <translation id="2389423187722941333">切換 Gemini</translation>
 <translation id="2392659840443812875">沒有可用的熱點。請確認裝置在附近且已開啟藍牙。</translation>
@@ -920,6 +924,7 @@
 <translation id="4151054805501931758">人像修飾</translation>
 <translation id="4156293514828496577">剩餘電量:<ph name="PERCENTAGE" />% (大約 <ph name="TIME_LEFT" />)。
 為延長電池壽命,部分功能會受限制。</translation>
+<translation id="4158003972857765638">以新桌面整理</translation>
 <translation id="4160919062868802509">偵測到多個音訊來源</translation>
 <translation id="416245495747357243">順利完成!</translation>
 <translation id="4165275524535002941">連接線可能不支援顯示屏</translation>
@@ -984,6 +989,7 @@
 <translation id="4322742403972824594">「Ctrl + Alt + 向上箭咀」的鍵盤快速鍵已變更。如要使用 Home 鍵,請按下<ph name="LAUNCHER_KEY_NAME" />鍵 + 向左箭咀。</translation>
 <translation id="4324840740119394760">此操作會允許 <ph name="APP_NAME" /> 以及具備相機權限的所有應用程式和網站存取相機</translation>
 <translation id="4327147325944669226">錄製遊戲</translation>
+<translation id="4329076911374908740">儲存的群組數目已達上限。</translation>
 <translation id="4338109981321384717">放大鏡</translation>
 <translation id="4348580496249286403"><ph name="VOLUME_LEVEL" />,靜咗音</translation>
 <translation id="4351244548802238354">關閉對話方塊</translation>
@@ -1263,6 +1269,7 @@
 <translation id="5245201184978705914">無法產生轉錄文字</translation>
 <translation id="5251174953851719648">重新整理內容</translation>
 <translation id="5253783950165989294">已連接名為「<ph name="DEVICE_NAME" />」的裝置,電量為 <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">測試麥克風</translation>
 <translation id="5258528442992323769">沒有已儲存的桌面</translation>
 <translation id="5260676007519551770">桌面 4</translation>
 <translation id="5265391159779542051">已載入結果</translation>
@@ -1420,6 +1427,7 @@
 <translation id="5745612484876805746">「夜燈模式」會在日落時自動開啟</translation>
 <translation id="5750765938512549687">藍牙已關閉</translation>
 <translation id="5758114525425072423">啟動「專注模式」。計時器校咗做 <ph name="FOCUS_DURATION" />。</translation>
+<translation id="5759522586053040964">聽聽自己的聲音聽起來如何。如要停止,請按一下測試圖示或關閉視像通話面板。</translation>
 <translation id="5760866832697883462">連接 <ph name="NAME" /></translation>
 <translation id="5762420912707163638">轉換標記。<ph name="STATE_TEXT" />你可以用觸控板、觸控螢幕或者觸控筆喺螢幕上面繪圖。</translation>
 <translation id="576341972084747908">下載危險檔案 <ph name="FILENAME" /></translation>
@@ -1937,6 +1945,7 @@
 <translation id="7524043547948122239">Google Tasks</translation>
 <translation id="7525067979554623046">建立</translation>
 <translation id="7526573455193969409">網絡可能會受到監控</translation>
+<translation id="7534543072325030705">按一下喜歡就可以給正評予這個建議群組</translation>
 <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation>
 <translation id="7536832381700852123">更新左邊視窗</translation>
 <translation id="7543399541175347147">目前不支援 Linux 應用程式和無痕式視窗。系統將儲存其他應用程式。</translation>
@@ -2101,6 +2110,7 @@
 <translation id="8004512796067398576">增加</translation>
 <translation id="8005527720597583355">啟動「專注模式」</translation>
 <translation id="8015361438441228492">無法編輯工作。</translation>
+<translation id="8027187124910699148">恢復建議群組</translation>
 <translation id="802782383769312836">上一個桌面:<ph name="DESK_NAME" />。第 <ph name="DESK_INDEX" /> 個桌面,共 <ph name="DESK_COUNT" /> 個。</translation>
 <translation id="8029247720646289474">熱點連線失敗</translation>
 <translation id="8029629653277878342">為安全起見,請輸入 PIN 或密碼</translation>
@@ -2209,6 +2219,7 @@
 <translation id="8426708595819210923"><ph name="GIVEN_NAME" />,晚安:</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428810263141909179"><ph name="MODIFIER_ONE" /><ph name="MODIFIER_TWO" /><ph name="DELIMITER" /><ph name="KEY_ONE" /> 到 <ph name="KEY_TWO" /></translation>
+<translation id="8429547770382807369">儲存群組以便日後使用</translation>
 <translation id="8433186206711564395">網絡設定</translation>
 <translation id="8433977262951327081">在捷徑列中顯示輸入選項選單小視窗的快速鍵已變更,請改用 <ph name="NEW_SHORTCUT" /> 以取代原有的 <ph name="OLD_SHORTCUT" />。</translation>
 <translation id="8437311513256731931">開啟意見反映工具</translation>
@@ -2217,6 +2228,7 @@
 <translation id="8446884382197647889">瞭解詳情</translation>
 <translation id="8456543082656546101"><ph name="SHORTCUT_KEY_NAME" /> + V</translation>
 <translation id="8462305545768648477">關閉「揀選朗讀內容」</translation>
+<translation id="8466665972451889002">顯示「<ph name="GROUP_NAME" />」中的項目</translation>
 <translation id="8468806060683421065">繳交期限:<ph name="DUE_DATE_AND_TIME" /></translation>
 <translation id="847056008324733326">顯示比例設定</translation>
 <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> 已 <ph name="FEATURE_STATE" /><ph name="FEATURE_NAME" />。</translation>
@@ -2239,6 +2251,7 @@
 <translation id="8551588720239073785">日期和時間設定</translation>
 <translation id="8553395910833293175">已指派給所有桌面。</translation>
 <translation id="8555757996376137129">移除目前的桌面</translation>
+<translation id="8558521694042102707">生成式 AI 可能會出錯 (包括人物資料),請加以複查。</translation>
 <translation id="8559845965695780508"><ph name="USER" />已編輯</translation>
 <translation id="8569146227972631631">°F</translation>
 <translation id="8569751806372591456">試試以下幾項建議</translation>
@@ -2261,6 +2274,7 @@
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />,訊號強度係 <ph name="SIGNAL_STRENGTH" />,由管理員管理</translation>
 <translation id="8638637208069328956">開啟/關閉麥克風</translation>
 <translation id="8639760480004882931">剩餘電量:<ph name="PERCENTAGE" /></translation>
+<translation id="8640470573049727749">隱藏所有群組建議</translation>
 <translation id="8641510901370802679">顯示緊<ph name="ANSWER_TYPE" />資料</translation>
 <translation id="8646417893960517480"><ph name="TOTAL_TIME" /> 計時器</translation>
 <translation id="8647931990447795414">如要新增使用者,請輸入 Family Link 家長存取碼</translation>
@@ -2343,6 +2357,7 @@
 <translation id="8905919797434099235">(無標題)</translation>
 <translation id="890616557918890486">變更來源</translation>
 <translation id="8909138438987180327">電量剩番 <ph name="PERCENTAGE" />%。</translation>
+<translation id="8916866375277139011">隱藏「<ph name="GROUP_NAME" />」中的項目</translation>
 <translation id="8921554779039049422">H+</translation>
 <translation id="8921624153894383499">Google 助理不支援這種語言。</translation>
 <translation id="8926951137623668982">一律隱藏捷徑列</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 22671e6..19b68ac 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -1261,6 +1261,7 @@
 <translation id="5245201184978705914">無法產生轉錄稿</translation>
 <translation id="5251174953851719648">重新整理內容</translation>
 <translation id="5253783950165989294">已連線至名為「<ph name="DEVICE_NAME" />」的裝置,電池電力:<ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5256939106029293271">測試麥克風</translation>
 <translation id="5258528442992323769">沒有已儲存的桌面</translation>
 <translation id="5260676007519551770">桌面 4</translation>
 <translation id="5265391159779542051">已載入結果</translation>
@@ -1418,6 +1419,7 @@
 <translation id="5745612484876805746">夜燈功能會在日落時自動開啟</translation>
 <translation id="5750765938512549687">藍牙已關閉</translation>
 <translation id="5758114525425072423">啟動專注模式,計時器已設為 <ph name="FOCUS_DURATION" />。</translation>
+<translation id="5759522586053040964">聽聽自己的聲音聽起來如何。如要停止,請按一下測試圖示或關閉視訊通話面板。</translation>
 <translation id="5760866832697883462">連結 <ph name="NAME" /></translation>
 <translation id="5762420912707163638">切換標記。<ph name="STATE_TEXT" /> 你可以使用觸控板、觸控螢幕或觸控筆在螢幕上繪圖。</translation>
 <translation id="576341972084747908">下載危險檔案 <ph name="FILENAME" /></translation>
diff --git a/ash/webui/common/resources/keyboard_diagram.html b/ash/webui/common/resources/keyboard_diagram.html
index 9fb26b2..8ba80a4b 100644
--- a/ash/webui/common/resources/keyboard_diagram.html
+++ b/ash/webui/common/resources/keyboard_diagram.html
@@ -103,6 +103,13 @@
     grid-column: span 3;
   }
 
+  [data-bottom-right-layout='3keys'] #spacebar {
+    grid-column: span 8;
+  }
+
+  [data-bottom-right-layout='4keys'] #spacebar{
+    grid-column: span 6;
+  }
 
   /*
    * On ISO and JIS, the Enter key is L-shaped (with the backslash key moved
diff --git a/ash/webui/recorder_app_ui/resources/components/cra/cra-icon-button.ts b/ash/webui/recorder_app_ui/resources/components/cra/cra-icon-button.ts
index 33e8f37a..39ca6a4 100644
--- a/ash/webui/recorder_app_ui/resources/components/cra/cra-icon-button.ts
+++ b/ash/webui/recorder_app_ui/resources/components/cra/cra-icon-button.ts
@@ -19,6 +19,15 @@
     css`
       :host {
         /*
+         * cros-icon-button has inline-block display, which resizes depending
+         * on any applicable line-height. Set line-height to 0 for tightly
+         * wrapping the underlying md-icon-button.
+         *
+         * TODO: b/390536688 - Remove this after we upstream cros-icon-button.
+         */
+        line-height: 0;
+
+        /*
          * A margin is added since in the original md-button, the touch region
          * has a minimal size of 48x48, but the element size is still 40x40.
          * In cros-button the design is changed to having touch region always
diff --git a/ash/wm/pip/pip_window_resizer_unittest.cc b/ash/wm/pip/pip_window_resizer_unittest.cc
index a54646d0..6d43778 100644
--- a/ash/wm/pip/pip_window_resizer_unittest.cc
+++ b/ash/wm/pip/pip_window_resizer_unittest.cc
@@ -44,7 +44,7 @@
 namespace ash {
 
 using ::chromeos::WindowStateType;
-using Sample = base::HistogramBase::Sample;
+using Sample32 = base::HistogramBase::Sample32;
 
 class PipWindowResizerTest : public AshTestBase,
                              public ::testing::WithParamInterface<
@@ -663,7 +663,7 @@
   ASSERT_TRUE(resizer.get());
 
   EXPECT_EQ(1, histograms().GetBucketCount(kAshPipEventsHistogramName,
-                                           Sample(AshPipEvents::FREE_RESIZE)));
+                                           Sample32(AshPipEvents::FREE_RESIZE)));
   histograms().ExpectTotalCount(kAshPipEventsHistogramName, 1);
 
   resizer->Drag(CalculateDragPoint(*resizer, 100, 0), 0);
@@ -686,7 +686,7 @@
   Shell::Get()->toplevel_window_event_handler()->OnGestureEvent(&event);
 
   EXPECT_EQ(1, histograms().GetBucketCount(kAshPipEventsHistogramName,
-                                           Sample(AshPipEvents::FREE_RESIZE)));
+                                           Sample32(AshPipEvents::FREE_RESIZE)));
   histograms().ExpectTotalCount(kAshPipEventsHistogramName, 1);
 }
 
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc
index 8c1106e..ec9335d 100644
--- a/ash/wm/window_state_unittest.cc
+++ b/ash/wm/window_state_unittest.cc
@@ -87,7 +87,7 @@
 
 using WindowStateTest = AshTestBase;
 
-using Sample = base::HistogramBase::Sample;
+using Sample32 = base::HistogramBase::Sample32;
 
 // Test that a window gets properly snapped to the display's edges in a
 // multi monitor environment.
@@ -318,19 +318,19 @@
   window_state->OnWMEvent(&enter_pip);
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_START)));
+                                         Sample32(AshPipEvents::PIP_START)));
   EXPECT_EQ(1,
             histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                      Sample(AshPipEvents::CHROME_PIP_START)));
+                                      Sample32(AshPipEvents::CHROME_PIP_START)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 2);
 
   const WMEvent enter_normal(WM_EVENT_NORMAL);
   window_state->OnWMEvent(&enter_normal);
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_END)));
+                                         Sample32(AshPipEvents::PIP_END)));
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::CHROME_PIP_END)));
+                                         Sample32(AshPipEvents::CHROME_PIP_END)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 4);
 }
 
@@ -345,20 +345,20 @@
   window_state->OnWMEvent(&enter_pip);
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_START)));
+                                         Sample32(AshPipEvents::PIP_START)));
   EXPECT_EQ(1,
             histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                      Sample(AshPipEvents::ANDROID_PIP_START)));
+                                      Sample32(AshPipEvents::ANDROID_PIP_START)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 2);
 
   const WMEvent enter_normal(WM_EVENT_NORMAL);
   window_state->OnWMEvent(&enter_normal);
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_END)));
+                                         Sample32(AshPipEvents::PIP_END)));
   EXPECT_EQ(1,
             histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                      Sample(AshPipEvents::ANDROID_PIP_END)));
+                                      Sample32(AshPipEvents::ANDROID_PIP_END)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 4);
 
   // Check time count:
@@ -378,9 +378,9 @@
   window.reset();
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_END)));
+                                         Sample32(AshPipEvents::PIP_END)));
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::CHROME_PIP_END)));
+                                         Sample32(AshPipEvents::CHROME_PIP_END)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 4);
 }
 
@@ -398,10 +398,10 @@
   window.reset();
 
   EXPECT_EQ(1, histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                         Sample(AshPipEvents::PIP_END)));
+                                         Sample32(AshPipEvents::PIP_END)));
   EXPECT_EQ(1,
             histograms.GetBucketCount(kAshPipEventsHistogramName,
-                                      Sample(AshPipEvents::ANDROID_PIP_END)));
+                                      Sample32(AshPipEvents::ANDROID_PIP_END)));
   histograms.ExpectTotalCount(kAshPipEventsHistogramName, 4);
 }
 
diff --git a/base/metrics/dummy_histogram.cc b/base/metrics/dummy_histogram.cc
index 04d52dc..149105a1 100644
--- a/base/metrics/dummy_histogram.cc
+++ b/base/metrics/dummy_histogram.cc
@@ -79,8 +79,8 @@
 }
 
 bool DummyHistogram::HasConstructionArguments(
-    Sample expected_minimum,
-    Sample expected_maximum,
+    Sample32 expected_minimum,
+    Sample32 expected_maximum,
     size_t expected_bucket_count) const {
   return true;
 }
diff --git a/base/metrics/dummy_histogram.h b/base/metrics/dummy_histogram.h
index 74910e4..6433376 100644
--- a/base/metrics/dummy_histogram.h
+++ b/base/metrics/dummy_histogram.h
@@ -27,15 +27,15 @@
   DummyHistogram(const DummyHistogram&) = delete;
   DummyHistogram& operator=(const DummyHistogram&) = delete;
 
-  // HistogramBase:
+  // HistogramBase
   void CheckName(std::string_view name) const override {}
   uint64_t name_hash() const override;
   HistogramType GetHistogramType() const override;
-  bool HasConstructionArguments(Sample expected_minimum,
-                                Sample expected_maximum,
+  bool HasConstructionArguments(Sample32 expected_minimum,
+                                Sample32 expected_maximum,
                                 size_t expected_bucket_count) const override;
-  void Add(Sample value) override {}
-  void AddCount(Sample value, int count) override {}
+  void Add(Sample32 value) override {}
+  void AddCount(Sample32 value, int count) override {}
   bool AddSamples(const HistogramSamples& samples) override;
   bool AddSamplesFromPickle(PickleIterator* iter) override;
   std::unique_ptr<HistogramSamples> SnapshotSamples() const override;
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc
index ec41eca9..b3e51c4 100644
--- a/base/metrics/histogram.cc
+++ b/base/metrics/histogram.cc
@@ -438,8 +438,8 @@
 
 // static
 bool Histogram::InspectConstructionArguments(std::string_view name,
-                                             Sample* minimum,
-                                             Sample* maximum,
+                                             Sample32* minimum,
+                                             Sample32* maximum,
                                              size_t* bucket_count) {
   bool check_okay = true;
 
@@ -465,7 +465,7 @@
   }
   if (*bucket_count > kBucketCount_MAX) {
     UmaHistogramSparse("Histogram.TooManyBuckets.1000",
-                       static_cast<Sample>(HashMetricName(name)));
+                       static_cast<Sample32>(HashMetricName(name)));
 
     // Blink.UseCounter legitimately has more than 1000 entries in its enum.
     if (!StartsWith(name, "Blink.UseCounter")) {
@@ -500,7 +500,7 @@
 
   if (!check_okay) {
     UmaHistogramSparse("Histogram.BadConstructionArguments",
-                       static_cast<Sample>(HashMetricName(name)));
+                       static_cast<Sample32>(HashMetricName(name)));
   }
 
   return check_okay;
@@ -514,8 +514,8 @@
   return HISTOGRAM;
 }
 
-bool Histogram::HasConstructionArguments(Sample expected_minimum,
-                                         Sample expected_maximum,
+bool Histogram::HasConstructionArguments(Sample32 expected_minimum,
+                                         Sample32 expected_maximum,
                                          size_t expected_bucket_count) const {
   return (expected_bucket_count == bucket_count() &&
           expected_minimum == declared_min() &&
@@ -687,8 +687,8 @@
 
 // static
 HistogramBase* Histogram::FactoryGetInternal(std::string_view name,
-                                             Sample minimum,
-                                             Sample maximum,
+                                             Sample32 minimum,
+                                             Sample32 maximum,
                                              size_t bucket_count,
                                              int32_t flags) {
   bool valid_arguments =
@@ -708,10 +708,10 @@
                                                  TimeDelta maximum,
                                                  size_t bucket_count,
                                                  int32_t flags) {
-  DCHECK_LT(minimum.InMilliseconds(), std::numeric_limits<Sample>::max());
-  DCHECK_LT(maximum.InMilliseconds(), std::numeric_limits<Sample>::max());
-  return FactoryGetInternal(name, static_cast<Sample>(minimum.InMilliseconds()),
-                            static_cast<Sample>(maximum.InMilliseconds()),
+  DCHECK_LT(minimum.InMilliseconds(), std::numeric_limits<Sample32>::max());
+  DCHECK_LT(maximum.InMilliseconds(), std::numeric_limits<Sample32>::max());
+  return FactoryGetInternal(name, static_cast<Sample32>(minimum.InMilliseconds()),
+                            static_cast<Sample32>(maximum.InMilliseconds()),
                             bucket_count, flags);
 }
 
@@ -722,10 +722,10 @@
     TimeDelta maximum,
     size_t bucket_count,
     int32_t flags) {
-  DCHECK_LT(minimum.InMicroseconds(), std::numeric_limits<Sample>::max());
-  DCHECK_LT(maximum.InMicroseconds(), std::numeric_limits<Sample>::max());
-  return FactoryGetInternal(name, static_cast<Sample>(minimum.InMicroseconds()),
-                            static_cast<Sample>(maximum.InMicroseconds()),
+  DCHECK_LT(minimum.InMicroseconds(), std::numeric_limits<Sample32>::max());
+  DCHECK_LT(maximum.InMicroseconds(), std::numeric_limits<Sample32>::max());
+  return FactoryGetInternal(name, static_cast<Sample32>(minimum.InMicroseconds()),
+                            static_cast<Sample32>(maximum.InMicroseconds()),
                             bucket_count, flags);
 }
 
@@ -813,8 +813,8 @@
 LinearHistogram::~LinearHistogram() = default;
 
 HistogramBase* LinearHistogram::FactoryGet(std::string_view name,
-                                           Sample minimum,
-                                           Sample maximum,
+                                           Sample32 minimum,
+                                           Sample32 maximum,
                                            size_t bucket_count,
                                            int32_t flags) {
   return FactoryGetInternal(name, minimum, maximum, bucket_count, flags);
@@ -829,8 +829,8 @@
 }
 
 HistogramBase* LinearHistogram::FactoryGet(const std::string& name,
-                                           Sample minimum,
-                                           Sample maximum,
+                                           Sample32 minimum,
+                                           Sample32 maximum,
                                            size_t bucket_count,
                                            int32_t flags) {
   return FactoryGetInternal(name, minimum, maximum, bucket_count, flags);
@@ -845,8 +845,8 @@
 }
 
 HistogramBase* LinearHistogram::FactoryGet(const char* name,
-                                           Sample minimum,
-                                           Sample maximum,
+                                           Sample32 minimum,
+                                           Sample32 maximum,
                                            size_t bucket_count,
                                            int32_t flags) {
   return FactoryGetInternal(name, minimum, maximum, bucket_count, flags);
@@ -873,8 +873,8 @@
 
 HistogramBase* LinearHistogram::FactoryGetWithRangeDescription(
     std::string_view name,
-    Sample minimum,
-    Sample maximum,
+    Sample32 minimum,
+    Sample32 maximum,
     size_t bucket_count,
     int32_t flags,
     const DescriptionPair descriptions[]) {
@@ -928,8 +928,8 @@
 }
 
 // static
-void LinearHistogram::InitializeBucketRanges(Sample minimum,
-                                             Sample maximum,
+void LinearHistogram::InitializeBucketRanges(Sample32 minimum,
+                                             Sample32 maximum,
                                              BucketRanges* ranges) {
   double min = minimum;
   double max = maximum;
@@ -938,7 +938,7 @@
   for (size_t i = 1; i < bucket_count; ++i) {
     double linear_range =
         (min * (bucket_count - 1 - i) + max * (i - 1)) / (bucket_count - 2);
-    auto range = static_cast<Sample>(linear_range + 0.5);
+    auto range = static_cast<Sample32>(linear_range + 0.5);
     ranges->set_range(i, range);
   }
   ranges->set_range(ranges->bucket_count(), HistogramBase::kSampleType_MAX);
@@ -947,8 +947,8 @@
 
 // static
 HistogramBase* LinearHistogram::FactoryGetInternal(std::string_view name,
-                                                   Sample minimum,
-                                                   Sample maximum,
+                                                   Sample32 minimum,
+                                                   Sample32 maximum,
                                                    size_t bucket_count,
                                                    int32_t flags) {
   return FactoryGetWithRangeDescription(name, minimum, maximum, bucket_count,
@@ -961,10 +961,10 @@
                                                        TimeDelta maximum,
                                                        size_t bucket_count,
                                                        int32_t flags) {
-  DCHECK_LT(minimum.InMilliseconds(), std::numeric_limits<Sample>::max());
-  DCHECK_LT(maximum.InMilliseconds(), std::numeric_limits<Sample>::max());
-  return FactoryGetInternal(name, static_cast<Sample>(minimum.InMilliseconds()),
-                            static_cast<Sample>(maximum.InMilliseconds()),
+  DCHECK_LT(minimum.InMilliseconds(), std::numeric_limits<Sample32>::max());
+  DCHECK_LT(maximum.InMilliseconds(), std::numeric_limits<Sample32>::max());
+  return FactoryGetInternal(name, static_cast<Sample32>(minimum.InMilliseconds()),
+                            static_cast<Sample32>(maximum.InMilliseconds()),
                             bucket_count, flags);
 }
 
@@ -1207,7 +1207,7 @@
 class CustomHistogram::Factory : public Histogram::Factory {
  public:
   Factory(std::string_view name,
-          const std::vector<Sample>* custom_ranges,
+          const std::vector<Sample32>* custom_ranges,
           int32_t flags)
       : Histogram::Factory(name, CUSTOM_HISTOGRAM, 0, 0, 0, flags) {
     custom_ranges_ = custom_ranges;
@@ -1240,26 +1240,26 @@
   }
 
  private:
-  raw_ptr<const std::vector<Sample>> custom_ranges_;
+  raw_ptr<const std::vector<Sample32>> custom_ranges_;
 };
 
 HistogramBase* CustomHistogram::FactoryGet(
     std::string_view name,
-    const std::vector<Sample>& custom_ranges,
+    const std::vector<Sample32>& custom_ranges,
     int32_t flags) {
   return FactoryGetInternal(name, custom_ranges, flags);
 }
 
 HistogramBase* CustomHistogram::FactoryGet(
     const std::string& name,
-    const std::vector<Sample>& custom_ranges,
+    const std::vector<Sample32>& custom_ranges,
     int32_t flags) {
   return FactoryGetInternal(name, custom_ranges, flags);
 }
 
 HistogramBase* CustomHistogram::FactoryGet(
     const char* name,
-    const std::vector<Sample>& custom_ranges,
+    const std::vector<Sample32>& custom_ranges,
     int32_t flags) {
   return FactoryGetInternal(name, custom_ranges, flags);
 }
@@ -1281,9 +1281,9 @@
 
 // static
 std::vector<Sample32> CustomHistogram::ArrayToCustomEnumRanges(
-    base::span<const Sample> values) {
-  std::vector<Sample> all_values;
-  for (Sample value : values) {
+    base::span<const Sample32> values) {
+  std::vector<Sample32> all_values;
+  for (Sample32 value : values) {
     all_values.push_back(value);
 
     // Ensure that a guard bucket is added. If we end up with duplicate
@@ -1330,9 +1330,9 @@
   }
 
   // First and last ranges are not serialized.
-  std::vector<Sample> sample_ranges(bucket_count - 1);
+  std::vector<Sample32> sample_ranges(bucket_count - 1);
 
-  for (Sample& sample : sample_ranges) {
+  for (Sample32& sample : sample_ranges) {
     if (!iter->ReadInt(&sample)) {
       return nullptr;
     }
@@ -1354,7 +1354,7 @@
 // static
 HistogramBase* CustomHistogram::FactoryGetInternal(
     std::string_view name,
-    const std::vector<Sample>& custom_ranges,
+    const std::vector<Sample32>& custom_ranges,
     int32_t flags) {
   CHECK(ValidateCustomRanges(custom_ranges));
 
@@ -1363,9 +1363,9 @@
 
 // static
 bool CustomHistogram::ValidateCustomRanges(
-    const std::vector<Sample>& custom_ranges) {
+    const std::vector<Sample32>& custom_ranges) {
   bool has_valid_range = false;
-  for (Sample sample : custom_ranges) {
+  for (Sample32 sample : custom_ranges) {
     if (sample < 0 || sample > HistogramBase::kSampleType_MAX - 1) {
       return false;
     }
diff --git a/base/metrics/histogram.h b/base/metrics/histogram.h
index ea409778..d197cb60 100644
--- a/base/metrics/histogram.h
+++ b/base/metrics/histogram.h
@@ -465,7 +465,7 @@
 // cause overflows of the 31-bit counters, usually with an enum as the value.
 class BASE_EXPORT ScaledLinearHistogram {
   using AtomicCount = Histogram::AtomicCount;
-  using Sample32 = Histogram::Sample;
+  using Sample32 = Histogram::Sample32;
 
  public:
   // Currently only works with "exact" linear histograms: minimum=1, maximum=N,
diff --git a/base/metrics/histogram_base.cc b/base/metrics/histogram_base.cc
index e24201f..9b19f5e 100644
--- a/base/metrics/histogram_base.cc
+++ b/base/metrics/histogram_base.cc
@@ -137,7 +137,7 @@
 }
 
 void HistogramBase::AddTimeMillisecondsGranularity(const TimeDelta& time) {
-  Add(saturated_cast<Sample>(time.InMilliseconds()));
+  Add(saturated_cast<Sample32>(time.InMilliseconds()));
 }
 
 void HistogramBase::AddTimeMicrosecondsGranularity(const TimeDelta& time) {
@@ -145,7 +145,7 @@
   // clocks. High-resolution metrics cannot make use of low-resolution data and
   // reporting it merely adds noise to the metric. https://crbug.com/807615#c16
   if (TimeTicks::IsHighResolution()) {
-    Add(saturated_cast<Sample>(time.InMicroseconds()));
+    Add(saturated_cast<Sample32>(time.InMicroseconds()));
   }
 }
 
diff --git a/base/metrics/histogram_base.h b/base/metrics/histogram_base.h
index 94a5fb19..6aac61a 100644
--- a/base/metrics/histogram_base.h
+++ b/base/metrics/histogram_base.h
@@ -95,9 +95,6 @@
 class BASE_EXPORT HistogramBase {
  public:
   typedef int32_t Sample32;  // Used for samples.
-  // Temporary alias for backward compatibility.
-  // TODO(crbug.com/40899968): Remove this alias.
-  typedef Sample32 Sample;
   typedef subtle::Atomic32 AtomicCount;  // Used to count samples.
   typedef int32_t Count;  // Used to manipulate counts in temporaries.
 
diff --git a/base/metrics/histogram_base_unittest.cc b/base/metrics/histogram_base_unittest.cc
index 99bebd68..9430fcc 100644
--- a/base/metrics/histogram_base_unittest.cc
+++ b/base/metrics/histogram_base_unittest.cc
@@ -218,7 +218,7 @@
                                           1, sample_max, 100, 0);
   int64_t large_negative = std::numeric_limits<int64_t>::min();
   add_count = 0;
-  while (large_negative < std::numeric_limits<HistogramBase::Sample>::min()) {
+  while (large_negative < std::numeric_limits<HistogramBase::Sample32>::min()) {
     histogram->AddTimeMillisecondsGranularity(Milliseconds(large_negative));
     ++add_count;
     large_negative /= 7;
diff --git a/base/metrics/histogram_samples.h b/base/metrics/histogram_samples.h
index a38c12b..739542c 100644
--- a/base/metrics/histogram_samples.h
+++ b/base/metrics/histogram_samples.h
@@ -297,7 +297,7 @@
                    HistogramBase::Count* count) = 0;
   static_assert(std::numeric_limits<HistogramBase::Sample32>::max() <
                     std::numeric_limits<int64_t>::max(),
-                "Get() |max| must be able to hold Histogram::Sample max + 1");
+                "Get() |max| must be able to hold Histogram::Sample32 max + 1");
 
   // Get the index of current histogram bucket.
   // For histograms that don't use predefined buckets, it returns false.
diff --git a/base/metrics/histogram_threadsafe_unittest.cc b/base/metrics/histogram_threadsafe_unittest.cc
index 2731047..51cae2a 100644
--- a/base/metrics/histogram_threadsafe_unittest.cc
+++ b/base/metrics/histogram_threadsafe_unittest.cc
@@ -82,7 +82,7 @@
         // but the randomness does not really matter as thread-safety is what is
         // being tested here and there is already a lot of non-determinism
         // surrounding scheduling.
-        Histogram::Sample sample = rand() % histogram_max_;
+        Histogram::Sample32 sample = rand() % histogram_max_;
         histogram->Add(sample);
 
         // Take a snapshot of the histogram. Because of the multithreading
@@ -102,7 +102,7 @@
  private:
   // Stores an actual |sample| that was emitted for |histogram|. This is done
   // to compare what was found in histogram snapshots (see StoreSnapshot()).
-  void StoreActualSample(HistogramBase* histogram, Histogram::Sample sample) {
+  void StoreActualSample(HistogramBase* histogram, Histogram::Sample32 sample) {
     subtle::NoBarrier_AtomicIncrement(real_total_samples_count_, 1);
     switch (histogram->GetHistogramType()) {
       case HISTOGRAM: {
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc
index 77b14c2..e0c19e7d 100644
--- a/base/metrics/persistent_histogram_allocator.cc
+++ b/base/metrics/persistent_histogram_allocator.cc
@@ -410,7 +410,7 @@
         bucket_ranges->persistent_reference();
     if (!ranges_ref) {
       size_t ranges_count = bucket_count + 1;
-      size_t ranges_bytes = ranges_count * sizeof(HistogramBase::Sample);
+      size_t ranges_bytes = ranges_count * sizeof(HistogramBase::Sample32);
       ranges_ref =
           memory_allocator_->Allocate(ranges_bytes, kTypeIdRangesArray);
       if (ranges_ref) {
diff --git a/base/metrics/persistent_sample_map.h b/base/metrics/persistent_sample_map.h
index 106d4ff..23e15cd 100644
--- a/base/metrics/persistent_sample_map.h
+++ b/base/metrics/persistent_sample_map.h
@@ -76,12 +76,12 @@
   // Gets a pointer to a "count" corresponding to a given |value|. Returns NULL
   // if sample does not exist.
   std::atomic<HistogramBase::Count>* GetSampleCountStorage(
-      HistogramBase::Sample value) const;
+      HistogramBase::Sample32 value) const;
 
   // Gets a pointer to a "count" corresponding to a given |value|, creating
   // the sample (initialized to zero) if it does not already exist.
   std::atomic<HistogramBase::Count>* GetOrCreateSampleCountStorage(
-      HistogramBase::Sample value);
+      HistogramBase::Sample32 value);
 
  private:
   // Gets the object that manages persistent records. This returns the
diff --git a/base/metrics/sample_map_iterator.h b/base/metrics/sample_map_iterator.h
index 1da0ea5..c4c20f39 100644
--- a/base/metrics/sample_map_iterator.h
+++ b/base/metrics/sample_map_iterator.h
@@ -51,7 +51,7 @@
     SkipEmptyBuckets();
   }
 
-  void Get(HistogramBase::Sample* min,
+  void Get(HistogramBase::Sample32* min,
            int64_t* max,
            HistogramBase::Count* count) override {
     DCHECK(!Done());
diff --git a/base/metrics/single_sample_metrics.cc b/base/metrics/single_sample_metrics.cc
index 595d962..28b60a6 100644
--- a/base/metrics/single_sample_metrics.cc
+++ b/base/metrics/single_sample_metrics.cc
@@ -71,7 +71,7 @@
   histogram_->Add(sample_);
 }
 
-void DefaultSingleSampleMetric::SetSample(HistogramBase::Sample sample) {
+void DefaultSingleSampleMetric::SetSample(HistogramBase::Sample32 sample) {
   DCHECK_GE(sample, 0);
   sample_ = sample;
 }
diff --git a/base/metrics/sparse_histogram.h b/base/metrics/sparse_histogram.h
index ccefc25..a01f1553 100644
--- a/base/metrics/sparse_histogram.h
+++ b/base/metrics/sparse_histogram.h
@@ -47,11 +47,11 @@
   // HistogramBase:
   uint64_t name_hash() const override;
   HistogramType GetHistogramType() const override;
-  bool HasConstructionArguments(Sample expected_minimum,
-                                Sample expected_maximum,
+  bool HasConstructionArguments(Sample32 expected_minimum,
+                                Sample32 expected_maximum,
                                 size_t expected_bucket_count) const override;
-  void Add(Sample value) override;
-  void AddCount(Sample value, int count) override;
+  void Add(Sample32 value) override;
+  void AddCount(Sample32 value, int count) override;
   bool AddSamples(const HistogramSamples& samples) override;
   bool AddSamplesFromPickle(base::PickleIterator* iter) override;
   std::unique_ptr<HistogramSamples> SnapshotSamples() const override;
diff --git a/base/metrics/sparse_histogram_unittest.cc b/base/metrics/sparse_histogram_unittest.cc
index 84bb6c3c..0b4bf1b 100644
--- a/base/metrics/sparse_histogram_unittest.cc
+++ b/base/metrics/sparse_histogram_unittest.cc
@@ -430,7 +430,7 @@
 
 TEST_P(SparseHistogramTest, ExtremeValues) {
   struct Cases {
-    Histogram::Sample sample;
+    HistogramBase::Sample32 sample;
     int64_t expected_max;
   };
   static const auto cases = std::to_array<Cases>({
@@ -452,7 +452,7 @@
     std::unique_ptr<SampleCountIterator> it = snapshot->Iterator();
     ASSERT_FALSE(it->Done());
 
-    base::Histogram::Sample min;
+    base::HistogramBase::Sample32 min;
     int64_t max;
     base::Histogram::Count count;
     it->Get(&min, &max, &count);
diff --git a/base/test/metrics/histogram_tester_unittest.cc b/base/test/metrics/histogram_tester_unittest.cc
index e7b84bd..78d3a33 100644
--- a/base/test/metrics/histogram_tester_unittest.cc
+++ b/base/test/metrics/histogram_tester_unittest.cc
@@ -224,7 +224,7 @@
 TEST_F(HistogramTesterTest, BucketsAre) {
   // Auxiliary functions for keeping the lines short.
   auto a = [](std::vector<Bucket> b) { return b; };
-  auto b = [](base::Histogram::Sample min, base::Histogram::Count count) {
+  auto b = [](base::Histogram::Sample32 min, base::Histogram::Count count) {
     return Bucket(min, count);
   };
   using ::testing::Not;
@@ -263,7 +263,7 @@
 TEST_F(HistogramTesterTest, BucketsInclude) {
   // Auxiliary function for the "actual" values to shorten lines.
   auto a = [](std::vector<Bucket> b) { return b; };
-  auto b = [](base::Histogram::Sample min, base::Histogram::Count count) {
+  auto b = [](base::Histogram::Sample32 min, base::Histogram::Count count) {
     return Bucket(min, count);
   };
   using ::testing::Not;
diff --git a/cc/base/histograms.cc b/cc/base/histograms.cc
index cfa3397..42a9eb52 100644
--- a/cc/base/histograms.cc
+++ b/cc/base/histograms.cc
@@ -62,8 +62,8 @@
 ScopedUMAHistogramAreaTimerBase::~ScopedUMAHistogramAreaTimerBase() = default;
 
 bool ScopedUMAHistogramAreaTimerBase::GetHistogramValues(
-    Sample* time_microseconds,
-    Sample* pixels_per_ms) const {
+    Sample32* time_microseconds,
+    Sample32* pixels_per_ms) const {
   return GetHistogramValues(
       timer_.Elapsed(), area_.ValueOrDefault(std::numeric_limits<int>::max()),
       time_microseconds, pixels_per_ms);
@@ -73,16 +73,16 @@
 bool ScopedUMAHistogramAreaTimerBase::GetHistogramValues(
     base::TimeDelta elapsed,
     int area,
-    Sample* time_microseconds,
-    Sample* pixels_per_ms) {
+    Sample32* time_microseconds,
+    Sample32* pixels_per_ms) {
   elapsed = std::max(elapsed, base::Microseconds(kMinimumTimeMicroseconds));
   double area_per_time = area / elapsed.InMillisecondsF();
   // It is not clear how NaN can get here, but we've gotten crashes from
   // saturated_cast. http://crbug.com/486214
   if (std::isnan(area_per_time))
     return false;
-  *time_microseconds = base::saturated_cast<Sample>(elapsed.InMicroseconds());
-  *pixels_per_ms = base::saturated_cast<Sample>(area_per_time);
+  *time_microseconds = base::saturated_cast<Sample32>(elapsed.InMicroseconds());
+  *pixels_per_ms = base::saturated_cast<Sample32>(area_per_time);
   return true;
 }
 
diff --git a/cc/base/histograms.h b/cc/base/histograms.h
index eff7505..a0c7842 100644
--- a/cc/base/histograms.h
+++ b/cc/base/histograms.h
@@ -100,20 +100,20 @@
   void SetArea(const base::CheckedNumeric<int>& area) { area_ = area; }
 
  protected:
-  using Sample = base::HistogramBase::Sample;
+  using Sample32 = base::HistogramBase::Sample32;
 
   ScopedUMAHistogramAreaTimerBase();
   ~ScopedUMAHistogramAreaTimerBase();
 
   // Returns true if histograms should be recorded (i.e. values are valid).
-  bool GetHistogramValues(Sample* time_microseconds,
-                          Sample* pixels_per_ms) const;
+  bool GetHistogramValues(Sample32* time_microseconds,
+                          Sample32* pixels_per_ms) const;
 
  private:
   static bool GetHistogramValues(base::TimeDelta elapsed,
                                  int area,
-                                 Sample* time_microseconds,
-                                 Sample* pixels_per_ms);
+                                 Sample32* time_microseconds,
+                                 Sample32* pixels_per_ms);
 
   base::ElapsedTimer timer_;
   base::CheckedNumeric<int> area_;
diff --git a/cc/base/histograms_unittest.cc b/cc/base/histograms_unittest.cc
index 1b2cecdd..ea34645 100644
--- a/cc/base/histograms_unittest.cc
+++ b/cc/base/histograms_unittest.cc
@@ -8,7 +8,7 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 
-using Sample = base::HistogramBase::Sample;
+using Sample32 = base::HistogramBase::Sample32;
 
 namespace cc {
 
@@ -16,10 +16,10 @@
  protected:
   void ExpectValidHistogramValues(base::TimeDelta elapsed,
                                   int area,
-                                  Sample expected_time_microseconds,
-                                  Sample expected_pixels_per_ms) {
-    Sample time_microseconds;
-    Sample pixels_per_ms;
+                                  Sample32 expected_time_microseconds,
+                                  Sample32 expected_pixels_per_ms) {
+    Sample32 time_microseconds;
+    Sample32 pixels_per_ms;
     ScopedUMAHistogramAreaTimerBase::GetHistogramValues(
         elapsed, area, &time_microseconds, &pixels_per_ms);
     EXPECT_EQ(expected_time_microseconds, time_microseconds);
@@ -49,7 +49,7 @@
 
 TEST_F(ScopedUMAHistogramAreaTimerBaseTest, VeryLargeTime) {
   ExpectValidHistogramValues(base::Hours(24), 1000,
-                             std::numeric_limits<Sample>::max(), 0);
+                             std::numeric_limits<Sample32>::max(), 0);
 }
 
 TEST_F(ScopedUMAHistogramAreaTimerBaseTest, VeryLargeArea) {
@@ -57,7 +57,7 @@
                              2000000000);
   ExpectValidHistogramValues(base::Microseconds(1000),
                              std::numeric_limits<int>::max(), 1000,
-                             std::numeric_limits<Sample>::max());
+                             std::numeric_limits<Sample32>::max());
 }
 
 }  // namespace
diff --git a/cc/metrics/compositor_frame_reporter_unittest.cc b/cc/metrics/compositor_frame_reporter_unittest.cc
index f552b89..a4f72c1 100644
--- a/cc/metrics/compositor_frame_reporter_unittest.cc
+++ b/cc/metrics/compositor_frame_reporter_unittest.cc
@@ -450,25 +450,25 @@
 
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.TouchPressed.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
@@ -571,34 +571,34 @@
       viz_breakdown.presentation_feedback.timestamp;
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.GestureScrollBegin.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.FirstGestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.InertialGestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[3]).InMicroseconds())},
       {"EventLatency.GestureScrollBegin.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[4]).InMicroseconds())},
       {"EventLatency.FirstGestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[5]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[6]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[6]).InMicroseconds())},
       {"EventLatency.InertialGestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[7]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
@@ -674,19 +674,19 @@
       viz_breakdown.presentation_feedback.timestamp;
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.GesturePinchBegin.Touchpad.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.GesturePinchUpdate.Touchpad.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.GesturePinchBegin.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.GesturePinchUpdate.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[3]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
diff --git a/cc/metrics/compositor_frame_reporting_controller_unittest.cc b/cc/metrics/compositor_frame_reporting_controller_unittest.cc
index 5b6fc372..455d896 100644
--- a/cc/metrics/compositor_frame_reporting_controller_unittest.cc
+++ b/cc/metrics/compositor_frame_reporting_controller_unittest.cc
@@ -1260,25 +1260,25 @@
 
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.TouchPressed.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
@@ -1369,34 +1369,34 @@
       details.presentation_feedback.timestamp;
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.GestureScrollBegin.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.FirstGestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.InertialGestureScrollUpdate.Wheel.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[3]).InMicroseconds())},
       {"EventLatency.GestureScrollBegin.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[4]).InMicroseconds())},
       {"EventLatency.FirstGestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[5]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[6]).InMicroseconds())},
       {"EventLatency.GestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[6]).InMicroseconds())},
       {"EventLatency.InertialGestureScrollUpdate.Touchscreen.TotalLatency2",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[7]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
@@ -1530,19 +1530,19 @@
       details.presentation_feedback.timestamp;
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.GesturePinchBegin.Touchpad.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.GesturePinchUpdate.Touchpad.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.GesturePinchBegin.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.GesturePinchUpdate.Touchscreen.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[3]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
@@ -1599,25 +1599,25 @@
 
   struct {
     const char* name;
-    const base::HistogramBase::Sample latency_ms;
+    const base::HistogramBase::Sample32 latency_ms;
   } expected_latencies[] = {
       {"EventLatency.TouchPressed.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TouchMoved.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[0]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[1]).InMicroseconds())},
       {"EventLatency.TotalLatency",
-       static_cast<base::HistogramBase::Sample>(
+       static_cast<base::HistogramBase::Sample32>(
            (presentation_time - event_times[2]).InMicroseconds())},
   };
   for (const auto& expected_latency : expected_latencies) {
diff --git a/cc/test/layer_tree_pixel_test.cc b/cc/test/layer_tree_pixel_test.cc
index 9bd09fd..7cf5e20 100644
--- a/cc/test/layer_tree_pixel_test.cc
+++ b/cc/test/layer_tree_pixel_test.cc
@@ -165,13 +165,6 @@
 
 void LayerTreePixelTest::InitializeSettings(LayerTreeSettings* settings) {
   LayerTreeTest::InitializeSettings(settings);
-
-  if (settings->UseLayerContextForDisplay()) {
-    SkipTest();
-    GTEST_SKIP() << "TODO(crbug.com/389148369) TreesInViz: Implement copy "
-                    "output requests";
-  }
-
   settings->gpu_rasterization_disabled = !use_accelerated_raster();
   settings->use_zero_copy = raster_type() == TestRasterType::kZeroCopy;
 }
diff --git a/cc/test/layer_tree_test.cc b/cc/test/layer_tree_test.cc
index 7b80889..21909dd 100644
--- a/cc/test/layer_tree_test.cc
+++ b/cc/test/layer_tree_test.cc
@@ -1184,11 +1184,6 @@
   }
   InitializeSettings(&settings_);
 
-  // Tests may be skipped at this point for unsupported setting combinations.
-  if (skip_test_) {
-    return;
-  }
-
   if (mode_ == CompositorMode::SINGLE_THREADED &&
       settings_.UseLayerContextForDisplay()) {
     GTEST_SKIP() << "TODO(crbug.com/389147356) TreesInViz: Implement single "
diff --git a/cc/test/layer_tree_test.h b/cc/test/layer_tree_test.h
index 52611b7..039ff3f 100644
--- a/cc/test/layer_tree_test.h
+++ b/cc/test/layer_tree_test.h
@@ -140,8 +140,6 @@
 
   void RealEndTest();
 
-  void SkipTest() { skip_test_ = true; }
-
   std::unique_ptr<LayerTreeFrameSink>
   ReleaseLayerTreeFrameSinkOnLayerTreeHost();
   void SetVisibleOnLayerTreeHost(bool visible);
@@ -286,8 +284,6 @@
   mutable base::Lock test_ended_lock_;
   bool ended_ = false;
 
-  bool skip_test_ = false;
-
   int timeout_seconds_ = 0;
 
   raw_ptr<viz::BeginFrameSource> begin_frame_source_ = nullptr;  // NOT OWNED.
diff --git a/chrome/VERSION b/chrome/VERSION
index 6519d631..8b99c6c 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=134
 MINOR=0
-BUILD=6969
+BUILD=6970
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index ea19fe39..983184d 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -454,6 +454,7 @@
       "//chrome/browser/recent_tabs:factory_java",
       "//chrome/browser/recent_tabs:helper_java",
       "//chrome/browser/recent_tabs:java",
+      "//chrome/browser/regional_capabilities/android:java",
       "//chrome/browser/safe_browsing/android:java",
       "//chrome/browser/safety_check/android:java",
       "//chrome/browser/safety_hub/android:java",
@@ -650,7 +651,6 @@
       "//components/prefs/android:java",
       "//components/privacy_sandbox/android:java",
       "//components/profile_metrics:browser_profile_type_enum_java",
-      "//components/regional_capabilities/android:java",
       "//components/safe_browsing/android:safe_browsing_java",
       "//components/saved_tab_groups/public:java",
       "//components/schema_org/common:mojom_java",
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
index de4f98c..a778f92 100644
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -359,6 +359,7 @@
   "java/res/drawable/ic_open_in_browser.xml",
   "java/res/drawable/ic_open_in_new.xml",
   "java/res/drawable/ic_open_webapk.xml",
+  "java/res/drawable/ic_password_manager_key_off.xml",
   "java/res/drawable/ic_person_add_40dp.xml",
   "java/res/drawable/ic_pip_24dp.xml",
   "java/res/drawable/ic_play_circle.xml",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 175a34e..4d5abd0 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -330,6 +330,7 @@
   "java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl.java",
   "java/src/org/chromium/chrome/browser/compositor/CompositorView.java",
   "java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java",
+  "java/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegate.java",
   "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java",
   "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java",
   "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation.java",
diff --git a/chrome/android/features/keyboard_accessory/internal/BUILD.gn b/chrome/android/features/keyboard_accessory/internal/BUILD.gn
index a4d8813..0b9bf66 100644
--- a/chrome/android/features/keyboard_accessory/internal/BUILD.gn
+++ b/chrome/android/features/keyboard_accessory/internal/BUILD.gn
@@ -133,7 +133,6 @@
 
 android_resources("java_resources") {
   sources = [
-    "java/res/drawable/ic_password_manager_key_off.xml",
     "java/res/layout/accessory_sheet_header.xml",
     "java/res/layout/address_accessory_sheet.xml",
     "java/res/layout/all_passwords_bottom_sheet.xml",
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPane.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPane.java
index 69191b200..061d3b7 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPane.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPane.java
@@ -11,7 +11,6 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
-import org.chromium.base.Callback;
 import org.chromium.base.CallbackController;
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.base.supplier.OneshotSupplier;
@@ -37,7 +36,6 @@
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.components.sensitive_content.SensitiveContentFeatures;
 
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.DoubleConsumer;
 
 /** A {@link Pane} representing the incognito tab switcher. */
@@ -51,50 +49,14 @@
 
                 @Override
                 public void didBecomeEmpty() {
-                    TabSwitcherPaneCoordinator paneCoordinator = getTabSwitcherPaneCoordinator();
-                    assert paneCoordinator != null;
-
-                    ObservableSupplier<Boolean> isAnimatingSupplier =
-                            paneCoordinator.getIsRecyclerViewAnimatorRunning();
-
-                    AtomicBoolean startedAnimating = new AtomicBoolean(false);
-
-                    // Create Callback object to allow us to pass a reference to said callback
-                    // inside the onResult method.
-                    Callback<Boolean> onAnimationStatusChange =
-                            new Callback<>() {
-                                @Override
-                                public void onResult(Boolean isAnimating) {
-                                    // This ensures that:
-                                    // a) The RecyclerView has started any final
-                                    //        animation prior to changing tab switcher panes.
-                                    // b) The animation only runs when the tab grid dialog is not
-                                    // visible.
-                                    Supplier<Boolean> dialogShowingOrAnimationSupplier =
-                                            paneCoordinator
-                                                    .getTabGridDialogShowingOrAnimationSupplier();
-                                    boolean isTabGridDialogVisible =
-                                            dialogShowingOrAnimationSupplier != null
-                                                    && dialogShowingOrAnimationSupplier.get();
-                                    if (!isTabGridDialogVisible
-                                            && (isAnimating || !startedAnimating.get())) {
-                                        startedAnimating.set(isAnimating);
-                                        return;
-                                    }
-                                    mReferenceButtonDataSupplier.set(null);
-                                    if (isFocused()) {
-                                        @Nullable
-                                        PaneHubController controller = getPaneHubController();
-                                        assert controller != null
-                                                : "isFocused requires a non-null"
-                                                        + " PaneHubController.";
-                                        controller.focusPane(PaneId.TAB_SWITCHER);
-                                    }
-                                    destroyTabSwitcherPaneCoordinator();
-                                    isAnimatingSupplier.removeObserver(this);
-                                }
-                            };
-                    isAnimatingSupplier.addObserver(onAnimationStatusChange);
+                    mReferenceButtonDataSupplier.set(null);
+                    if (isFocused()) {
+                        @Nullable PaneHubController controller = getPaneHubController();
+                        assert controller != null
+                                : "isFocused requires a non-null PaneHubController.";
+                        controller.focusPane(PaneId.TAB_SWITCHER);
+                    }
+                    destroyTabSwitcherPaneCoordinator();
                 }
             };
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPaneUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPaneUnitTest.java
index 4bca061..b0fb910 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPaneUnitTest.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoTabSwitcherPaneUnitTest.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.tasks.tab_management;
 
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -88,8 +87,6 @@
             mIncognitoReauthControllerSupplier = new OneshotSupplierImpl<>();
     private final ObservableSupplierImpl<EdgeToEdgeController> mEdgeToEdgeSupplier =
             new ObservableSupplierImpl<>();
-    private final ObservableSupplierImpl<Boolean> mIsRecyclerViewAnimatorRunningSupplier =
-            new ObservableSupplierImpl<>(false);
 
     private Context mContext;
     private IncognitoTabSwitcherPane mIncognitoTabSwitcherPane;
@@ -118,8 +115,6 @@
 
         when(mTabGroupModelFilter.getTabModel()).thenReturn(mIncognitoTabModel);
         when(mTabGroupModelFilter.isTabModelRestored()).thenReturn(true);
-        when(mTabSwitcherPaneCoordinator.getIsRecyclerViewAnimatorRunning())
-                .thenReturn(mIsRecyclerViewAnimatorRunningSupplier);
 
         mIncognitoTabSwitcherPane =
                 new IncognitoTabSwitcherPane(
@@ -405,10 +400,6 @@
         IncognitoTabModelObserver observer = mIncognitoTabModelObserverCaptor.getValue();
 
         observer.didBecomeEmpty();
-        mIsRecyclerViewAnimatorRunningSupplier.set(true);
-        mIsRecyclerViewAnimatorRunningSupplier.set(false);
-        ShadowLooper.runUiThreadTasks();
-
         assertNull(mIncognitoTabSwitcherPane.getReferenceButtonDataSupplier().get());
         verify(mPaneHubController).focusPane(PaneId.TAB_SWITCHER);
         assertNull(mIncognitoTabSwitcherPane.getTabSwitcherPaneCoordinator());
@@ -425,12 +416,7 @@
                 buttonData.resolveContentDescription(mContext));
         assertNotNull(buttonData.resolveIcon(mContext));
 
-        mIncognitoTabSwitcherPane.createTabSwitcherPaneCoordinator();
         observer.didBecomeEmpty();
-        mIsRecyclerViewAnimatorRunningSupplier.set(true);
-        mIsRecyclerViewAnimatorRunningSupplier.set(false);
-        ShadowLooper.runUiThreadTasks();
-
         assertNull(mIncognitoTabSwitcherPane.getReferenceButtonDataSupplier().get());
         verify(mPaneHubController, times(2)).focusPane(PaneId.TAB_SWITCHER);
         assertNull(mIncognitoTabSwitcherPane.getTabSwitcherPaneCoordinator());
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimator.java
index e9c962f..a82665e 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimator.java
@@ -16,13 +16,10 @@
 import android.view.View;
 import android.view.animation.Interpolator;
 
-import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 import androidx.recyclerview.widget.SimpleItemAnimator;
 
-import org.chromium.base.supplier.ObservableSupplier;
-import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.ui.interpolators.Interpolators;
 import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter;
 
@@ -136,20 +133,13 @@
         }
     }
 
-    private final AnimatorHolder mAdds = new AnimatorHolder("Add");
-    private final AnimatorHolder mChanges = new AnimatorHolder("Change");
-    private final AnimatorHolder mMoves = new AnimatorHolder("Move");
-    private final AnimatorHolder mRemovals = new AnimatorHolder("Removal");
-    private final @NonNull ObservableSupplierImpl<Boolean> mIsAnimatorRunningSupplier;
+    private AnimatorHolder mAdds = new AnimatorHolder("Add");
+    private AnimatorHolder mChanges = new AnimatorHolder("Change");
+    private AnimatorHolder mMoves = new AnimatorHolder("Move");
+    private AnimatorHolder mRemovals = new AnimatorHolder("Removal");
 
     TabListItemAnimator() {
-        this(new ObservableSupplierImpl<>(false));
-    }
-
-    @VisibleForTesting
-    TabListItemAnimator(@NonNull ObservableSupplierImpl<Boolean> isAnimatorRunningSupplier) {
         setRemoveDuration(DEFAULT_REMOVE_DURATION);
-        mIsAnimatorRunningSupplier = isAnimatorRunningSupplier;
     }
 
     @Override
@@ -237,7 +227,6 @@
                     @Override
                     public void onAnimationStart(Animator animator) {
                         dispatchAddStarting(holder);
-                        mIsAnimatorRunningSupplier.set(true);
                     }
 
                     @Override
@@ -321,7 +310,6 @@
                     @Override
                     public void onAnimationStart(Animator animator) {
                         dispatchChangeStarting(oldHolder, true);
-                        mIsAnimatorRunningSupplier.set(true);
                     }
 
                     @Override
@@ -358,7 +346,6 @@
                         @Override
                         public void onAnimationStart(Animator animator) {
                             dispatchChangeStarting(newHolder, false);
-                            mIsAnimatorRunningSupplier.set(true);
                         }
 
                         @Override
@@ -410,7 +397,6 @@
                     @Override
                     public void onAnimationStart(Animator animator) {
                         dispatchMoveStarting(holder);
-                        mIsAnimatorRunningSupplier.set(true);
                     }
 
                     @Override
@@ -468,7 +454,6 @@
                     @Override
                     public void onAnimationStart(Animator animator) {
                         dispatchRemoveStarting(holder);
-                        mIsAnimatorRunningSupplier.set(true);
                     }
 
                     @Override
@@ -512,7 +497,6 @@
                     @Override
                     public void onAnimationStart(Animator animator) {
                         dispatchRemoveStarting(holder);
-                        mIsAnimatorRunningSupplier.set(true);
                     }
 
                     @Override
@@ -533,14 +517,9 @@
     void dispatchFinishedWhenAllAnimationsDone() {
         if (!isRunning()) {
             dispatchAnimationsFinished();
-            mIsAnimatorRunningSupplier.set(false);
         }
     }
 
-    public ObservableSupplier<Boolean> getIsAnimatorRunningSupplier() {
-        return mIsAnimatorRunningSupplier;
-    }
-
     private Interpolator getRearrangeInterpolator() {
         return Interpolators.STANDARD_INTERPOLATOR;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimatorUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimatorUnitTest.java
index a397ad0..f4f1895 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimatorUnitTest.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimatorUnitTest.java
@@ -32,13 +32,11 @@
 import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.shadows.ShadowLooper;
 
 import org.chromium.base.Callback;
-import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.chrome.browser.tasks.tab_management.TabListModel.CardProperties.ModelType;
 import org.chromium.ui.modelutil.PropertyKey;
@@ -51,16 +49,12 @@
 public class TabListItemAnimatorUnitTest {
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
-    @Spy
-    private ObservableSupplierImpl<Boolean> mIsAnimatorRunningSupplier =
-            new ObservableSupplierImpl<>(false);
-
     @Mock private SimpleRecyclerViewAdapter mAdapter;
     private TabListItemAnimator mItemAnimator;
 
     @Before
     public void setUp() {
-        mItemAnimator = spy(new TabListItemAnimator(mIsAnimatorRunningSupplier));
+        mItemAnimator = spy(new TabListItemAnimator());
     }
 
     private static void emptyBind(PropertyModel model, View view, PropertyKey key) {}
@@ -448,32 +442,4 @@
         verify(mItemAnimator, times(4)).dispatchFinishedWhenAllAnimationsDone();
         assertFalse(mItemAnimator.isRunning());
     }
-
-    @Test
-    public void animatorRunningSupplier_RunAnimations() {
-        var removedHolder = buildViewHolder(TAB, /* useShrinkCloseAnimation= */ true);
-        mItemAnimator.animateAdd(removedHolder);
-
-        mItemAnimator.runPendingAnimations();
-        ShadowLooper.shadowMainLooper().idle();
-
-        InOrder inOrder = Mockito.inOrder(mIsAnimatorRunningSupplier);
-        inOrder.verify(mIsAnimatorRunningSupplier).set(true);
-        inOrder.verify(mIsAnimatorRunningSupplier).set(false);
-        assertFalse(mIsAnimatorRunningSupplier.get());
-    }
-
-    @Test
-    public void animatorRunningSupplier_EndAnimations() {
-        var removedHolder = buildViewHolder(TAB, /* useShrinkCloseAnimation= */ true);
-        mItemAnimator.animateAdd(removedHolder);
-
-        mItemAnimator.endAnimations();
-        ShadowLooper.shadowMainLooper().idle();
-
-        InOrder inOrder = Mockito.inOrder(mIsAnimatorRunningSupplier);
-        inOrder.verify(mIsAnimatorRunningSupplier).set(true);
-        inOrder.verify(mIsAnimatorRunningSupplier).set(false);
-        assertFalse(mIsAnimatorRunningSupplier.get());
-    }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
index f2c90a882..13e01d4 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
@@ -20,7 +20,6 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
-import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition;
 import org.chromium.chrome.browser.tabmodel.TabModel;
 import org.chromium.chrome.tab_ui.R;
@@ -105,14 +104,6 @@
     }
 
     /**
-     * Returns a boolean indicating whether any animator in {@link TabListItemAnimator} is running.
-     */
-    @NonNull
-    ObservableSupplier<Boolean> getIsAnimatorRunningSupplier() {
-        return mTabListItemAnimator.getIsAnimatorRunningSupplier();
-    }
-
-    /**
      * @param tabIndex The index in the RecyclerView of the tab.
      * @param tabId The tab ID of the tab.
      * @return The {@link Rect} of the thumbnail of the tab in global coordinates.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
index d13dfd5de..58d50098 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
@@ -478,24 +478,12 @@
         return mTabGridDialogVisibilitySupplier;
     }
 
-    /** Provides information on whether the tab grid dialog is showing or animating. */
-    public @Nullable ObservableSupplier<Boolean> getTabGridDialogShowingOrAnimationSupplier() {
-        return mTabGridDialogCoordinator != null
-                ? mTabGridDialogCoordinator.getShowingOrAnimationSupplier()
-                : null;
-    }
-
     /** Returns a {@link TabSwitcherCustomViewManager.Delegate} for supplying custom views. */
     public @Nullable TabSwitcherCustomViewManager.Delegate
             getTabSwitcherCustomViewManagerDelegate() {
         return mMediator;
     }
 
-    /** Indicates whether any animator for the {@link TabListRecyclerView} is running. */
-    public ObservableSupplier<Boolean> getIsRecyclerViewAnimatorRunning() {
-        return mTabListCoordinator.getContainerView().getIsAnimatorRunningSupplier();
-    }
-
     /** Returns the number of elements in the tab switcher's tab list model. */
     public int getTabSwitcherTabListModelSize() {
         return mTabListCoordinator.getTabListModelSize();
diff --git a/chrome/android/features/keyboard_accessory/internal/java/res/drawable/ic_password_manager_key_off.xml b/chrome/android/java/res/drawable/ic_password_manager_key_off.xml
similarity index 100%
rename from chrome/android/features/keyboard_accessory/internal/java/res/drawable/ic_password_manager_key_off.xml
rename to chrome/android/java/res/drawable/ic_password_manager_key_off.xml
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 0918136..8538f6a7 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -110,7 +110,6 @@
     <dimen name="compositor_tab_title_favicon_bubble_offset">6dp</dimen>
 
     <!-- First Run Experience dimensions -->
-    <dimen name="fre_tos_image_height">110dp</dimen>
     <dimen name="fre_loading_spinner_size">48dp</dimen>
     <dimen name="fre_policy_privacy_disclaimer_icon_size">18dp</dimen>
     <dimen name="fre_policy_privacy_disclaimer_icon_padding">8dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
index acbcf9a9..d029301 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -792,6 +792,10 @@
         // outside the UI thread. This call should fully initialize the CompositorView if it hasn't
         // been yet.
         mCompositorViewHolderSupplier.get().setRootView(rootView);
+        mCompositorViewHolderSupplier
+                .get()
+                .getCompositorView()
+                .setActivityTabProvider(getActivityTabProvider());
 
         super.onInitialLayoutInflationComplete();
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
index 42cfd18..1ccec34 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
@@ -27,6 +27,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.TraceEvent;
+import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.compositor.layouts.Layout;
 import org.chromium.chrome.browser.compositor.layouts.LayoutProvider;
 import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost;
@@ -68,6 +69,7 @@
     private long mNativeCompositorView;
     private final LayoutRenderHost mRenderHost;
     private int mPreviousWindowTop = -1;
+    private ActivityTabProvider mActivityTabProvider;
 
     // Resource Management
     private ResourceManager mResourceManager;
@@ -192,6 +194,10 @@
         mRootView = view;
     }
 
+    public void setActivityTabProvider(ActivityTabProvider provider) {
+        mActivityTabProvider = provider;
+    }
+
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         if (mRootView != null) {
@@ -477,7 +483,12 @@
         if (InputUtils.isTransferInputToVizSupported()
                 && surfaceId != null
                 && browserInputToken != null) {
-            InputTransferHandler handler = new InputTransferHandler(browserInputToken);
+
+            InputTransferHandlerDelegate delegate =
+                    new InputTransferHandlerDelegate(mActivityTabProvider);
+            InputTransferHandler handler =
+                    new InputTransferHandler(browserInputToken, delegate, mWindowAndroid);
+
             assert mSurfaceId == null;
             mSurfaceId = surfaceId;
             SurfaceInputTransferHandlerMap.getMap().put(mSurfaceId, handler);
@@ -515,7 +526,7 @@
             mScreenStateReceiver.maybeResetCompositorSurfaceManager();
         }
         if (InputUtils.isTransferInputToVizSupported() && mSurfaceId != null) {
-            SurfaceInputTransferHandlerMap.getMap().remove(mSurfaceId);
+            SurfaceInputTransferHandlerMap.remove(mSurfaceId);
             mSurfaceId = null;
         }
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegate.java
new file mode 100644
index 0000000..baea232a
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegate.java
@@ -0,0 +1,64 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.compositor;
+
+import androidx.annotation.VisibleForTesting;
+
+import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.content_public.browser.GestureListenerManager;
+import org.chromium.content_public.browser.GestureStateListener;
+import org.chromium.content_public.browser.InputTransferHandler;
+import org.chromium.content_public.browser.WebContents;
+
+public class InputTransferHandlerDelegate extends ActivityTabTabObserver
+        implements InputTransferHandler.Delegate {
+    private Tab mCurrentTab;
+    @VisibleForTesting public int mScrollOffsetY;
+    private final GestureStateListener mGestureStateListener;
+
+    public InputTransferHandlerDelegate(ActivityTabProvider provider) {
+        super(provider);
+        mGestureStateListener =
+                new GestureStateListener() {
+                    @Override
+                    public void onScrollOffsetOrExtentChanged(
+                            int scrollOffsetY, int scrollExtentY) {
+                        mScrollOffsetY = scrollOffsetY;
+                    }
+                };
+    }
+
+    @Override
+    protected void onObservingDifferentTab(Tab tab) {
+        if (mCurrentTab != null) {
+            WebContents webContents = mCurrentTab.getWebContents();
+            if (webContents != null) {
+                GestureListenerManager manager =
+                        GestureListenerManager.fromWebContents(webContents);
+                manager.removeListener(mGestureStateListener);
+            }
+        }
+
+        if (tab != null) {
+            WebContents webContents = tab.getWebContents();
+            if (webContents != null) {
+                GestureListenerManager manager =
+                        GestureListenerManager.fromWebContents(webContents);
+                manager.addListener(mGestureStateListener);
+            }
+        }
+
+        mCurrentTab = tab;
+    }
+
+    @Override
+    public boolean canTransferInputToViz() {
+        // Do not transfer input when on top since overscroll controller might start a refresh
+        // effect, which is not yet fixed to work with InputOnViz.
+        return mScrollOffsetY != 0;
+    }
+}
diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
index 09b69f2..3299929a 100644
--- a/chrome/android/javatests/BUILD.gn
+++ b/chrome/android/javatests/BUILD.gn
@@ -726,6 +726,7 @@
 
   sources = [
     "src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java",
+    "src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegateTest.java",
     "src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java",
     "src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManagerTest.java",
     "src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripGroupContextMenuTest.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegateTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegateTest.java
new file mode 100644
index 0000000..73e1891
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/InputTransferHandlerDelegateTest.java
@@ -0,0 +1,128 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.compositor;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.hamcrest.Matchers;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.Criteria;
+import org.chromium.base.test.util.CriteriaHelper;
+import org.chromium.base.test.util.DoNotBatch;
+import org.chromium.base.test.util.UrlUtils;
+import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
+import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
+import org.chromium.chrome.test.util.ChromeTabUtils;
+import org.chromium.components.embedder_support.view.ContentView;
+import org.chromium.content_public.browser.RenderCoordinates;
+import org.chromium.content_public.browser.WebContents;
+import org.chromium.content_public.browser.test.util.WebContentsUtils;
+
+import java.util.concurrent.TimeoutException;
+
+@RunWith(ChromeJUnit4ClassRunner.class)
+@DoNotBatch(reason = "The test opens new tabs")
+@MediumTest
+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
+public class InputTransferHandlerDelegateTest {
+
+    private final String mLongHtmlTestPage =
+            UrlUtils.encodeHtmlDataUri("<html><body style='height:100000px;'></body></html>");
+
+    @Rule
+    public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
+
+    private ActivityTabProvider mProvider;
+    private InputTransferHandlerDelegate mDelegate;
+    private RenderCoordinates mCoordinates;
+
+    @Before
+    public void setUp() {
+        mActivityTestRule.startMainActivityOnBlankPage();
+        mActivityTestRule.loadUrl(mLongHtmlTestPage);
+        WebContents webContents = mActivityTestRule.getActivity().getActivityTab().getWebContents();
+        mCoordinates = RenderCoordinates.fromWebContents(webContents);
+        WebContentsUtils.reportAllFrameSubmissions(webContents, true);
+        waitForViewportInitialization();
+
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    mProvider = mActivityTestRule.getActivity().getActivityTabProvider();
+                    mDelegate = new InputTransferHandlerDelegate(mProvider);
+                });
+    }
+
+    private void waitForViewportInitialization() {
+        CriteriaHelper.pollInstrumentationThread(
+                () -> {
+                    Criteria.checkThat(
+                            mCoordinates.getContentHeightPixInt(), Matchers.greaterThan(10000));
+                });
+    }
+
+    private void scrollPage() throws TimeoutException {
+        ContentView contentView = mActivityTestRule.getActivity().getActivityTab().getContentView();
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    contentView.scrollBy(/* dx= */ 0, /* dy= */ 400);
+                });
+        CriteriaHelper.pollUiThread(
+                () -> {
+                    Criteria.checkThat(mDelegate.mScrollOffsetY, Matchers.greaterThan(0));
+                });
+    }
+
+    @Test
+    public void transfersInputAfterScroll() throws TimeoutException {
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    assertFalse(mDelegate.canTransferInputToViz());
+                });
+
+        scrollPage();
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    assertTrue(mDelegate.canTransferInputToViz());
+                });
+    }
+
+    @Test
+    public void canObserveNewTabs() throws TimeoutException {
+        scrollPage();
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    assertTrue(mDelegate.canTransferInputToViz());
+                });
+
+        ChromeTabUtils.fullyLoadUrlInNewTab(
+                InstrumentationRegistry.getInstrumentation(),
+                mActivityTestRule.getActivity(),
+                mLongHtmlTestPage,
+                /* incognito= */ false);
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    assertFalse(mDelegate.canTransferInputToViz());
+                });
+
+        ChromeTabUtils.switchTabInCurrentTabModel(
+                mActivityTestRule.getActivity(), /* tabIndex= */ 0);
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    assertTrue(mDelegate.canTransferInputToViz());
+                });
+    }
+}
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
index f8530b82..c750a4cc 100644
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -32,6 +32,7 @@
 #include "base/process/memory.h"
 #include "base/process/process.h"
 #include "base/process/process_handle.h"
+#include "base/profiler/thread_group_profiler.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
@@ -62,6 +63,7 @@
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/crash_keys.h"
 #include "chrome/common/logging_chrome.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/core_unwinders.h"
 #include "chrome/common/profiler/main_thread_stack_sampling_profiler.h"
@@ -1028,6 +1030,9 @@
 }
 
 void ChromeMainDelegate::CreateThreadPool(std::string_view name) {
+  // The ThreadGroupProfiler client must be set before thread pool is created.
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
   base::ThreadPoolInstance::Create(name);
 
   // The ThreadProfiler client must be set before main thread profiling is
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index c5079c7fd..2b062e39 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -18722,6 +18722,13 @@
       </message>
     </if>
 
+    <!-- Smart Card Readers -->
+    <if expr="is_chromeos">
+      <message name="IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE" desc="String describing a smart card reader permission granted by permission policy to a site for all devices.">
+        Any smart card reader
+      </message>
+    </if>
+
 
   <message name="IDS_CHROME_NO_LONGER_SHOW_WARNINGS_NOTIFICATION_TITLE" desc="The title for the notification sent by Chrome informing the user that their decision to never show warnings for the url has been applied.">
     Chrome will stop flagging notifications from <ph name="URL">$1<ex>https://www.example-url.com/</ex></ph> as spam
diff --git a/chrome/app/generated_resources_grd/IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE.png.sha1 b/chrome/app/generated_resources_grd/IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE.png.sha1
new file mode 100644
index 0000000..7d64bca
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE.png.sha1
@@ -0,0 +1 @@
+33b74ec08c90dbb5c960f2a4f9df4027da6081f7
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb
index b0f163a..f85cac5 100644
--- a/chrome/app/resources/chromium_strings_bs.xtb
+++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -529,6 +529,7 @@
 <translation id="813913629614996137">Pokretanje…</translation>
 <translation id="8166782796394721554">Uključite dodatnu zaštitu za Chromiumov pokretač programskih jezika JavaScript i WebAssembly</translation>
 <translation id="81770708095080097">Ovaj fajl je opasan pa ga je Chromium blokirao.</translation>
+<translation id="8200109504272824693">Unesite šifru kako biste upotrebljavali i spremali podatke iz Chromiuma na svojem računu, <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">Obično blokirate obavještenja. Da dozvolite ovoj web lokaciji da vas obavještava, kliknite ovdje.</translation>
 <translation id="8223363452568144035">Da koristite kameru, odobrite Chromiumu pristup u <ph name="BEGIN_LINK" />postavkama sistema<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">Chromium ne može potvrditi odakle potiče ova ekstenzija te može biti nesigurna. Uklonite je iz Chromiuma da više ne može vidjeti i mijenjati vaše podatke na web lokacijama koje posjećujete, uključujući lične informacije.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index efa957bb..de14f74 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -527,6 +527,7 @@
 <translation id="813913629614996137">Pokretanje...</translation>
 <translation id="8166782796394721554">Uključite dodatnu zaštitu u Chromiumovom alatu za JavaScript i WebAssembly</translation>
 <translation id="81770708095080097">Datoteka je opasna i Chromium ju je blokirao.</translation>
+<translation id="8200109504272824693">Unesite šifru kako biste upotrebljavali i spremali podatke iz Chromiuma na svojem računu, <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">Uglavnom blokirate obavijesti. Da biste dopustili web-lokaciji prikazivanje obavijesti, kliknite ovdje.</translation>
 <translation id="8223363452568144035">Da biste upotrebljavali kameru, odobrite Chromiumu pristup u <ph name="BEGIN_LINK" />sistemskim postavkama<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">Chromium ne može provjeriti odakle dolazi ovo proširenje, pa bi moglo biti nesigurno. Uklonite ga iz Chromiuma kako više ne bi moglo vidjeti i mijenjati vaše podatke na web-lokacijama koje posjećujete, uključujući osobne podatke.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 1699b8c..4464245 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -525,6 +525,7 @@
 <translation id="813913629614996137">מתבצע אתחול...</translation>
 <translation id="8166782796394721554">‏הפעלת הגנה נוספת במנוע WebAssembly ו-JavaScript של Chromium</translation>
 <translation id="81770708095080097">‏Chromium‏ חסם את הקובץ הזה כי הוא מסוכן.</translation>
+<translation id="8200109504272824693">‏כדי להשתמש בנתונים של Chromium ולשמור אותם בחשבון <ph name="USER_EMAIL" />, צריך להזין את ביטוי הסיסמה</translation>
 <translation id="8221491193165283816">הבחירה שלך היא בדרך כלל לחסום התראות. כדי לאפשר לאתר הזה להציג התראות יש ללחוץ כאן.</translation>
 <translation id="8223363452568144035">‏כדי להשתמש במצלמה, צריך להיכנס אל <ph name="BEGIN_LINK" />הגדרות המערכת<ph name="END_LINK" /> ולתת ל-Chromium גישה</translation>
 <translation id="8232193495299001329">‏‫Chromium לא יכול לאמת את מקור התוסף הזה ויכול להיות שהוא לא בטוח. צריך להסיר אותו מ-Chromium כדי לא לאפשר לו יותר לראות ולשנות את הנתונים שלך באתרים שאליהם תתבצע כניסה, כולל הפרטים האישיים שלך.</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index 97e0d6b..818645d 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -529,6 +529,7 @@
 <translation id="813913629614996137">მიმდინარეობს ინიცირება…</translation>
 <translation id="8166782796394721554">დამატებითი დაცვის ჩართვა Chromium-ის JavaScript-ისა და WebAssembly-ს ძრავაში</translation>
 <translation id="81770708095080097">Chromium-მა დაბლოკა ეს ფაილი, რადგან ის სახიფათოა.</translation>
+<translation id="8200109504272824693">შეიყვანეთ თქვენი საიდუმლო ფრაზა, რომ გამოიყენოთ და შეინახოთ Chromium-ის მონაცემები თქვენს ანგარიშში, <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">როგორც წესი, თქვენ ბლოკავთ შეტყობინებებს. ამ საიტისგან შეტყობინებების მისაღებად დააწკაპუნეთ აქ.</translation>
 <translation id="8223363452568144035">თქვენი კამერა რომ გამოიყენოთ, გახსენით <ph name="BEGIN_LINK" />სისტემის პარამეტრები<ph name="END_LINK" /> და მიანიჭეთ Chromium-ს წვდომა</translation>
 <translation id="8232193495299001329">Chromium ვერ ადასტურებს ამ გაფართოების წარმომავლობას და შესაძლოა, ის სახიფათო იყოს. წაშალეთ ის Chromium-იდან, რომ მას აღარ შეეძლოს თქვენი მონაცემების (მათ შორის, პერსონალური ინფორმაციის) ნახვა და შეცვლა თქვენ მიერ მონახულებულ საიტებზე.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index a62c1953..c2e3623 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -529,6 +529,7 @@
 <translation id="813913629614996137">Inicijuojama...</translation>
 <translation id="8166782796394721554">Įjunkite papildomą apsaugą „Chromium“ „JavaScript“ ir „WebAssembly“ variklyje</translation>
 <translation id="81770708095080097">Šis failas pavojingas, todėl „Chromium“ jį užblokavo.</translation>
+<translation id="8200109504272824693">Įveskite slaptafrazę, kad galėtumėte naudoti ir išsaugoti „Chromium“ duomenis paskyroje <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">Įprastai blokuojate pranešimus. Jei norite leisti šiai svetainei siųsti pranešimus, spustelėkite čia.</translation>
 <translation id="8223363452568144035">Jei norite naudoti vaizdo kamerą, suteikite „Chromium“ prieigą <ph name="BEGIN_LINK" />sistemos nustatymuose<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">„Chromium“ negali patvirtinti, iš kur gaunamas šis plėtinys, ir jis gali būti nesaugus. Pašalinkite jį iš „Chromium“, kad jis nebematytų ir negalėtų pakeisti jūsų duomenų svetainėse, kuriose lankotės, įskaitant jūsų asmens informaciją.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb
index 8daaafa1..a9e7e5b 100644
--- a/chrome/app/resources/chromium_strings_sr-Latn.xtb
+++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -529,6 +529,7 @@
 <translation id="813913629614996137">Pokreće se…</translation>
 <translation id="8166782796394721554">Uključite dodatnu zaštitu u Chromium alatki za JavaScript i WebAssembly</translation>
 <translation id="81770708095080097">Ova datoteka je opasna, pa ju je Chromium blokirao.</translation>
+<translation id="8200109504272824693">Unesite pristupnu frazu da biste koristili i sačuvali Chromium podatke na nalogu, <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">Obično blokirate obaveštenja. Da biste dozvolili ovom sajtu da vas obaveštava, kliknite ovde.</translation>
 <translation id="8223363452568144035">Da biste koristili kameru, odobrite Chromium-u pristup u <ph name="BEGIN_LINK" />podešavanjima sistema<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">Chromium ne može da potvrdi odakle potiče ovaj dodatak i možda nije bezbedan. Uklonite ga iz Chromium-a da više ne bi mogao da vidi i menja podatke na sajtovima koje posećujete, uključujući lične podatke.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index cd97636..db1e9b7 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -529,6 +529,7 @@
 <translation id="813913629614996137">Покреће се…</translation>
 <translation id="8166782796394721554">Укључите додатну заштиту у Chromium алатки за JavaScript и WebAssembly</translation>
 <translation id="81770708095080097">Ова датотека је опасна, па ју је Chromium блокирао.</translation>
+<translation id="8200109504272824693">Унесите приступну фразу да бисте користили и сачували Chromium податке на налогу, <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">Обично блокирате обавештења. Да бисте дозволили овом сајту да вас обавештава, кликните овде.</translation>
 <translation id="8223363452568144035">Да бисте користили камеру, одобрите Chromium-у приступ у <ph name="BEGIN_LINK" />подешавањима система<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">Chromium не може да потврди одакле потиче овај додатак и можда није безбедан. Уклоните га из Chromium-а да више не би могао да види и мења податке на сајтовима које посећујете, укључујући личне податке.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index ff84740..9127ba4 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -526,6 +526,7 @@
 <translation id="813913629614996137">กำลังเริ่มดำเนินการ...</translation>
 <translation id="8166782796394721554">เปิดการปกป้องเพิ่มเติมในเครื่องมือ JavaScript และ WebAssembly ของ Chromium</translation>
 <translation id="81770708095080097">ไฟล์นี้อันตราย Chromium จึงบล็อกไว้</translation>
+<translation id="8200109504272824693">ป้อนรหัสผ่านเพื่อใช้และบันทึกข้อมูล Chromium ในบัญชี <ph name="USER_EMAIL" /></translation>
 <translation id="8221491193165283816">คุณมักจะบล็อกการแจ้งเตือน หากต้องการให้เว็บไซต์ส่งการแจ้งเตือน ให้คลิกที่นี่</translation>
 <translation id="8223363452568144035">หากต้องการใช้กล้อง โปรดให้สิทธิ์เข้าถึงแก่ Chromium ใน<ph name="BEGIN_LINK" />การตั้งค่าระบบ<ph name="END_LINK" /></translation>
 <translation id="8232193495299001329">Chromium ไม่สามารถยืนยันได้ว่าส่วนขยายนี้มาจากไหนและอาจไม่ปลอดภัย นำส่วนขยายดังกล่าวออกจาก Chromium เพื่อไม่ให้ดูและเปลี่ยนแปลงข้อมูลของคุณในเว็บไซต์ที่เข้าชม รวมถึงข้อมูลส่วนบุคคลได้อีกต่อไป</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index 56511b17..9bb659b 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -526,6 +526,7 @@
 <translation id="813913629614996137">正在初始化…</translation>
 <translation id="8166782796394721554">开启 Chromium 的 JavaScript 和 WebAssembly 引擎额外保护功能</translation>
 <translation id="81770708095080097">此文件存在危险,因此 Chromium 已将其拦截。</translation>
+<translation id="8200109504272824693">请输入您的口令,以便将 Chromium 数据保存在您的账号 <ph name="USER_EMAIL" /> 中并使用这些数据</translation>
 <translation id="8221491193165283816">您通常会屏蔽通知。要允许此网站向您发送通知,请点击此处。</translation>
 <translation id="8223363452568144035">如需使用摄像头,请在<ph name="BEGIN_LINK" />系统设置<ph name="END_LINK" />中授予 Chromium 访问权限</translation>
 <translation id="8232193495299001329">Chromium 无法验证此扩展程序的来源,它可能不安全。请将其从 Chromium 中移除,这样它便无法再查看和更改您在所访问的网站上的数据,包括个人信息。</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index e95d51a..a14ec182 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -1931,6 +1931,7 @@
 <translation id="2323018538045954000">የተቀመጡ የWi-Fi አውታረ መረቦች</translation>
 <translation id="2325444234681128157">የይለፍ ቃል አስታውስ</translation>
 <translation id="2326188115274135041">ራስ-ሰር መክፈትን ለማብራት ፒን ያረጋግጡ</translation>
+<translation id="2326583548923775947">ይህ Google መለያ አይደለም። Chrome ላይ የሚያስቀምጧቸው ንጥሎች በሌሎች መሣሪያዎች ላይ አይገኙም።</translation>
 <translation id="2326906096734221931">የመተግበሪያ ቅንብሮችን ክፈት</translation>
 <translation id="2326931316514688470">&amp;መተግበሪያን ዳግም ጫን</translation>
 <translation id="2327492829706409234">መተግበሪያን አንቃ</translation>
@@ -2379,6 +2380,7 @@
 <translation id="2638662041295312666">መግቢያ ምስል</translation>
 <translation id="2640299212685523844">GTKን ተጠቀም</translation>
 <translation id="264083724974021997">ወደ የእርስዎ ስልክ ያገናኙ - ንግግር</translation>
+<translation id="2641098199809442625">የይለፍ ቃልዎ አልተዘመነም፣ ነገር ግን አሁንም ጣቢያውን በድሮ የይለፍ ቃልዎ መድረስ መቻል አለብዎት።</translation>
 <translation id="2642111877055905627">የእግር ኳስ ኳስ</translation>
 <translation id="2642206811783203764">ሁልጊዜ በ<ph name="SITE_NAME" /> ላይ</translation>
 <translation id="2643064289437760082">የአሰሳ ውሂብዎን በመሰረዝ የማስታወቂያ ልኬት ውሂብን ሁልጊዜ መሰረዝ ይችላሉ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index ff0e86d..0a172fb 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1927,6 +1927,7 @@
 <translation id="2323018538045954000">‏شبكات Wi-Fi المحفوظة</translation>
 <translation id="2325444234681128157">تذكّر كلمة المرور</translation>
 <translation id="2326188115274135041">يُرجى تأكيد رقم التعريف الشخصي لتفعيل فتح القفل التلقائي.</translation>
+<translation id="2326583548923775947">‏هذا ليس حساب على Google، ولن تكون البيانات التي تحفظها في Chrome متاحة على الأجهزة الأخرى.</translation>
 <translation id="2326906096734221931">فتح إعدادات التطبيق</translation>
 <translation id="2326931316514688470">&amp;إعادة تحميل التطبيق</translation>
 <translation id="2327492829706409234">تفعيل التطبيق</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 49f657e..852e489 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1931,6 +1931,7 @@
 <translation id="2323018538045954000">Запазени Wi-Fi мрежи</translation>
 <translation id="2325444234681128157">Запомняне на паролата</translation>
 <translation id="2326188115274135041">Потвърдете ПИН кода, за да включите функцията за автоматично отключване</translation>
+<translation id="2326583548923775947">Това не е профил в Google. Елементите, които запазвате в Chrome, няма да са налице на други устройства.</translation>
 <translation id="2326906096734221931">Отваряне на настройките на приложението</translation>
 <translation id="2326931316514688470">&amp;Презареждане на приложението</translation>
 <translation id="2327492829706409234">Активиране на приложението</translation>
@@ -2379,6 +2380,7 @@
 <translation id="2638662041295312666">Изображение при вход</translation>
 <translation id="2640299212685523844">Използване на GTK</translation>
 <translation id="264083724974021997">Свързване с телефона ви – Диалогов прозорец</translation>
+<translation id="2641098199809442625">Паролата ви не бе актуализирана. Би трябвало да имате достъп до сайта със старата си парола.</translation>
 <translation id="2642111877055905627">Футболна топка</translation>
 <translation id="2642206811783203764">Винаги за <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Можете да изтриете данните от измерването на рекламите по всяко време, като изчистите данните за сърфирането си.</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index e83e652..fe449d5 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -525,6 +525,7 @@
 <translation id="135389172849514421">Funkcionira offline</translation>
 <translation id="1353980523955420967">Nije moguće pronaći PPD. Provjerite je li Chromebook na mreži i pokušajte ponovo.</translation>
 <translation id="1354045473509304750">I dalje dozvoli da <ph name="HOST" /> koristi i pomjera kameru</translation>
+<translation id="1354148503392558902">Promjena zaporke...</translation>
 <translation id="1355088139103479645">Izbrisati sve podatke?</translation>
 <translation id="1356376170199999104">Dozvoljeno – <ph name="PERMISSION_DETAILS" />. Uključite mikrofon pomoću fizičkog prekidača.</translation>
 <translation id="1356959069439783953">Novi izgled neaktivnih kartica</translation>
@@ -1102,6 +1103,7 @@
 <translation id="1751335846119670066">Pomoć u čitanju</translation>
 <translation id="17513872634828108">Otvorene kartice</translation>
 <translation id="175196451752279553">P&amp;onovo otvori zatvorenu karticu</translation>
+<translation id="1752557850776261983">Provjerava se prijava...</translation>
 <translation id="1753067873202720523">Moguće je da se vaš Chromebook neće puniti dok je uključen.</translation>
 <translation id="1753557900380512635">Interijeri</translation>
 <translation id="1753905327828125965">Najposjećenije</translation>
@@ -8804,7 +8806,7 @@
 <translation id="7273894023751806510">Uvijek blokiraj da web lokacija <ph name="HOST" /> kontrolira i reprogramira MIDI uređaje</translation>
 <translation id="727441411541283857"><ph name="PERCENTAGE" />% – <ph name="TIME" /> do potpune napunjenosti</translation>
 <translation id="727595954130325265">Kupite odmah</translation>
-<translation id="7278164481614262110">Kreirajte teme pomoću AI-ja</translation>
+<translation id="7278164481614262110">Kreiranje tema s AI-jem</translation>
 <translation id="727952162645687754">Greška prilikom preuzimanja</translation>
 <translation id="7280649757394340890">Postavke glasa za pretvaranje teksta u govor</translation>
 <translation id="7280877790564589615">Upućen je zahtjev za odobrenje</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index 98968005..53a92b9 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2386,6 +2386,7 @@
 <translation id="2638662041295312666">Llun mewngofnodi</translation>
 <translation id="2640299212685523844">Defnyddio GTK</translation>
 <translation id="264083724974021997">Cysylltu â'ch ffôn - Deialog</translation>
+<translation id="2641098199809442625">Ni chafodd eich cyfrinair ei ddiweddaru, ond dylech barhau i allu cael mynediad i'r wefan gyda'ch hen gyfrinair.</translation>
 <translation id="2642111877055905627">Pêl-droed</translation>
 <translation id="2642206811783203764">Bob amser ar <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Gallwch bob amser ddileu data mesur hysbyseb wrth ddileu eich data pori</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 36fac40..6deea4d 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -4111,7 +4111,7 @@
 <translation id="3856800405688283469">Select Time Zone</translation>
 <translation id="3857807444929313943">Lift, then touch again</translation>
 <translation id="3858860766373142691">Name</translation>
-<translation id="385939467708172187">Use Strong Password</translation>
+<translation id="385939467708172187">Use strong password</translation>
 <translation id="3859987779882450877">Automatically suggests and creates groups from your open tabs</translation>
 <translation id="386009056910366930">Manage '<ph name="GROUP_NAME" />' tab group</translation>
 <translation id="3861638017150647085">Username '<ph name="USERNAME" />' is not available</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index a7f6cb1..2867215 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1923,6 +1923,7 @@
 <translation id="2323018538045954000">Redes Wi‑Fi guardadas</translation>
 <translation id="2325444234681128157">Recordar contraseña</translation>
 <translation id="2326188115274135041">Confirma el PIN para activar el desbloqueo automático</translation>
+<translation id="2326583548923775947">Esta no es una cuenta de Google. Los elementos que guardes en Chrome no estarán disponibles en otros dispositivos.</translation>
 <translation id="2326906096734221931">Abrir configuración de la aplicación</translation>
 <translation id="2326931316514688470">&amp;Volver a cargar aplicación</translation>
 <translation id="2327492829706409234">Habilitar aplicación</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 0661245e..6cb1346 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -3736,6 +3736,7 @@
 <translation id="3629664892718440872">Jäta valik meelde</translation>
 <translation id="3630132874740063857">Teie telefon</translation>
 <translation id="3630995161997703415">Lisage sait riiulisse, et see oleks alati käepärast</translation>
+<translation id="3632929818790223729">Vahelehe jagamine aktiivse vahelehega</translation>
 <translation id="3634652306074934350">Loa taotlus aegus</translation>
 <translation id="3635199270495525546">Tuvastati usaldusväärse platvormi moodul (TPM)</translation>
 <translation id="3635353578505343390">Google’ile tagasiside saatmine</translation>
@@ -10029,6 +10030,7 @@
 <translation id="8140869601171867148">Teie Google'i konto on sama, mida kasutate Gmaili, YouTube'i, Chrome'i ja muude Google'i teenuste jaoks.
     Kasutage oma kontot, et pääseda hõlpsalt juurde kõikidele oma järjehoidjatele, failidele ja muule.</translation>
 <translation id="8141418916163800697">Saate Phone Hubi seadetes rohkem funktsioone seadistada</translation>
+<translation id="814156740715940972">Vahelehe jagamine aktiivse vahelehega</translation>
 <translation id="8141584439523427891">Avatakse kohe alternatiivses brauseris</translation>
 <translation id="8141725884565838206">Paroolide haldamine</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{video}other{# videot}}</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 7758d18..9911b95 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2370,6 +2370,7 @@
 <translation id="2638662041295312666">Saioa hasteko irudia</translation>
 <translation id="2640299212685523844">Erabili GTK</translation>
 <translation id="264083724974021997">Konektatu telefonora - Leihoa</translation>
+<translation id="2641098199809442625">Pasahitza ez da eguneratu, baina webgunean pasahitz zaharrarekin saioa hasteko aukera izan beharko zenuke.</translation>
 <translation id="2642111877055905627">Futboleko baloia</translation>
 <translation id="2642206811783203764">Beti <ph name="SITE_NAME" /> webgunean</translation>
 <translation id="2643064289437760082">Iragarkien neurketen datuak ezabatzeko, ezabatu arakatze-datuak.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index e786affc..76b034b7 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1932,6 +1932,7 @@
 <translation id="2323018538045954000">‏شبکه‌های Wi-Fi ذخیره‌شده</translation>
 <translation id="2325444234681128157">گذرواژه به خاطر سپرده شود</translation>
 <translation id="2326188115274135041">برای اینکه باز شدن خودکار قفل روشن شود، پین را تأیید کنید</translation>
+<translation id="2326583548923775947">‏این «حساب Google» نیست. مواردی که در Chrome ذخیره می‌کنید در دستگاه‌های دیگر دردسترس نخواهد بود.</translation>
 <translation id="2326906096734221931">باز کردن تنظیمات برنامه</translation>
 <translation id="2326931316514688470">&amp;تازه‌سازی برنامه</translation>
 <translation id="2327492829706409234">فعال کردن برنامه</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index e65d523..2238244 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1936,6 +1936,7 @@
 <translation id="2323018538045954000">सेव किए गए वाई-फ़ाई नेटवर्क</translation>
 <translation id="2325444234681128157">पासवर्ड याद रखें</translation>
 <translation id="2326188115274135041">अपने-आप अनलॉक होने की सुविधा चालू करने के लिए, पिन की पुष्टि करें</translation>
+<translation id="2326583548923775947">यह Google खाता नहीं है. Chrome में सेव किए गए आइटम, दूसरे डिवाइसों पर उपलब्ध नहीं होंगे.</translation>
 <translation id="2326906096734221931">ऐप्लिकेशन की सेटिंग खोलें</translation>
 <translation id="2326931316514688470">और ऐप्लिकेशन रीलोड करें</translation>
 <translation id="2327492829706409234">ऐप्लिकेशन चालू करें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 78034ef0..bfce06f 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -525,6 +525,7 @@
 <translation id="135389172849514421">Funkcionira izvanmrežno</translation>
 <translation id="1353980523955420967">PPD nije pronađen. Provjerite je li Chromebook online i pokušajte ponovo.</translation>
 <translation id="1354045473509304750">I dalje dopuštam da <ph name="HOST" /> koristi i pomiče kameru</translation>
+<translation id="1354148503392558902">Promjena zaporke...</translation>
 <translation id="1355088139103479645">Izbrisati sve podatke?</translation>
 <translation id="1356376170199999104">Dopušteno – <ph name="PERMISSION_DETAILS" />. Uključite mikrofon pomoću fizičkog prekidača.</translation>
 <translation id="1356959069439783953">Neaktivne kartice dobivaju novi izgled</translation>
@@ -1096,6 +1097,7 @@
 <translation id="1751335846119670066">Pomoć pri čitanju</translation>
 <translation id="17513872634828108">Otvorene kartice</translation>
 <translation id="175196451752279553">P&amp;onovo otvori zatvorenu karticu</translation>
+<translation id="1752557850776261983">Provjerava se prijava...</translation>
 <translation id="1753067873202720523">Chromebook se možda neće puniti dok je uključen.</translation>
 <translation id="1753557900380512635">Interijeri</translation>
 <translation id="1753905327828125965">Najposjećenije</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index e6353d4..e0c365d 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -2383,6 +2383,7 @@
 <translation id="2638662041295312666">Bejelentkezési kép</translation>
 <translation id="2640299212685523844">GTK használata</translation>
 <translation id="264083724974021997">Csatlakozás a telefonhoz – párbeszédpanel</translation>
+<translation id="2641098199809442625">Jelszava nem lett frissítve, de a régi jelszavával továbbra is hozzáférhet a webhelyhez.</translation>
 <translation id="2642111877055905627">Focilabda</translation>
 <translation id="2642206811783203764">Mindig engedélyezve itt: <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">A hirdetésmérési adatokat bármikor törölheti a böngészési adatok törlésével.</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index e5104cc..d6f6a2e 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -1935,6 +1935,7 @@
 <translation id="2323018538045954000">Jaringan Wi-Fi tersimpan</translation>
 <translation id="2325444234681128157">Ingat sandi</translation>
 <translation id="2326188115274135041">Konfirmasi PIN untuk mengaktifkan buka kunci otomatis</translation>
+<translation id="2326583548923775947">Akun ini bukan Akun Google. Item yang Anda simpan ke Chrome tidak akan tersedia di perangkat lain.</translation>
 <translation id="2326906096734221931">Buka Setelan aplikasi</translation>
 <translation id="2326931316514688470">&amp;Muat ulang aplikasi</translation>
 <translation id="2327492829706409234">Aktifkan aplikasi</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 5966d6cd..b998dbe 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -1936,6 +1936,7 @@
 <translation id="2323018538045954000">Vistuð Wi-Fi net</translation>
 <translation id="2325444234681128157">Muna aðgangsorð</translation>
 <translation id="2326188115274135041">Staðfestu PIN-númer til að kveikja á sjálfvirkri opnun</translation>
+<translation id="2326583548923775947">Þetta er ekki Google-reikningur. Atriði sem þú vistar í Chrome verða ekki tiltæk í öðrum tækjum.</translation>
 <translation id="2326906096734221931">Opna forritastillingar</translation>
 <translation id="2326931316514688470">Endu&amp;rhlaða forrit</translation>
 <translation id="2327492829706409234">Virkja forrit</translation>
@@ -2384,6 +2385,7 @@
 <translation id="2638662041295312666">Innskráningarmynd</translation>
 <translation id="2640299212685523844">Nota GTK</translation>
 <translation id="264083724974021997">Tengstu við símann þinn – gluggi</translation>
+<translation id="2641098199809442625">Aðgangsorðið þitt var ekki uppfært en þú ættir samt að geta opnað síðuna með gamla aðgangsorðinu þínu.</translation>
 <translation id="2642111877055905627">Fótbolti</translation>
 <translation id="2642206811783203764">Alltaf á <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Þú getur eytt auglýsingamæligögnum hvenær sem er með því að eyða vefskoðunargögnum</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index ca0c171..56858dfe 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -525,6 +525,7 @@
 <translation id="135389172849514421">פועלת אופליין</translation>
 <translation id="1353980523955420967">‏אי אפשר למצוא קובץ PPD. יש לוודא כי ה-Chromebook מחובר לרשת ולנסות שוב.</translation>
 <translation id="1354045473509304750">זה בסדר, אפשר להמשיך להרשות ל-<ph name="HOST" /> להשתמש במצלמה ולהזיז אותה</translation>
+<translation id="1354148503392558902">שינוי הסיסמה מתבצע…</translation>
 <translation id="1355088139103479645">למחוק את כל הנתונים?</translation>
 <translation id="1356376170199999104">יש הרשאה – <ph name="PERMISSION_DETAILS" />. צריך להפעיל את המיקרופון באמצעות מתג פיזי.</translation>
 <translation id="1356959069439783953">עיצוב חדש לכרטיסיות לא פעילות</translation>
@@ -1102,6 +1103,7 @@
 <translation id="1751335846119670066">עזרה בקריאה</translation>
 <translation id="17513872634828108">כרטיסיות פתוחות</translation>
 <translation id="175196451752279553">פ&amp;תיחה מחדש של הכרטיסייה הסגורה</translation>
+<translation id="1752557850776261983">הכניסה לחשבון בבדיקה…</translation>
 <translation id="1753067873202720523">‏ייתכן שמכשיר Chromebook שלך לא ייטען בזמן שהוא מופעל.</translation>
 <translation id="1753557900380512635">עיצוב פנים</translation>
 <translation id="1753905327828125965">עם המבקרים הרבים ביותר</translation>
@@ -1934,6 +1936,7 @@
 <translation id="2323018538045954000">‏רשתות Wi-Fi שמורות</translation>
 <translation id="2325444234681128157">שמירת סיסמה</translation>
 <translation id="2326188115274135041">יש לאשר את קוד האימות כדי להפעיל את ביטול הנעילה האוטומטי</translation>
+<translation id="2326583548923775947">‏כתובת האימייל הזו לא שייכת לחשבון Google. פריטים ששמרת ב-Chrome לא יהיו זמינים במכשירים אחרים.</translation>
 <translation id="2326906096734221931">פתיחה של הגדרות האפליקציה</translation>
 <translation id="2326931316514688470">&amp;טעינת האפליקציה מחדש</translation>
 <translation id="2327492829706409234">הפעלת האפליקציה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 29023b3..596032c 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1917,6 +1917,7 @@
 <translation id="2323018538045954000">保存済みの Wi-Fi ネットワーク</translation>
 <translation id="2325444234681128157">パスワードを保存する</translation>
 <translation id="2326188115274135041">PIN を入力して自動ロック解除を有効にする</translation>
+<translation id="2326583548923775947">これは Google アカウントではありません。Chrome に保存したアイテムを他のデバイスで使用することはできません。</translation>
 <translation id="2326906096734221931">アプリの設定を開く</translation>
 <translation id="2326931316514688470">アプリを再読み込み(&amp;R)</translation>
 <translation id="2327492829706409234">アプリを有効にする</translation>
@@ -2364,6 +2365,7 @@
 <translation id="2638662041295312666">サインイン画像</translation>
 <translation id="2640299212685523844">GTK を使用</translation>
 <translation id="264083724974021997">電話に接続 - ダイアログ</translation>
+<translation id="2641098199809442625">パスワードは更新されませんでしたが、古いパスワードでサイトにアクセスできます。</translation>
 <translation id="2642111877055905627">サッカーボール</translation>
 <translation id="2642206811783203764"><ph name="SITE_NAME" /> では常に許可</translation>
 <translation id="2643064289437760082">閲覧データを消去することで、ユーザーは広告効果の測定データをいつでも削除できます</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 8bf909c..bd8b553 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -523,6 +523,7 @@
 <translation id="135389172849514421">მუშაობს ხაზგარეშე</translation>
 <translation id="1353980523955420967">PPD ვერ მოიძებნა. დარწმუნდით, რომ თქვენი Chromebook ონლაინ რეჟიმშია და ცადეთ ხელახლა.</translation>
 <translation id="1354045473509304750"><ph name="HOST" />-ისთვის თქვენი კამერის გამოყენებისა და გადააგილების კლავინდებურად დაშვება</translation>
+<translation id="1354148503392558902">მიმდინარეობს პაროლის შეცვლა...</translation>
 <translation id="1355088139103479645">გსურთ ყველა მონაცემის წაშლა?</translation>
 <translation id="1356376170199999104">ნებადართულია — <ph name="PERMISSION_DETAILS" />. ჩართეთ მიკროფონი ფიზიკური ჩამრთველის მეშვეობით.</translation>
 <translation id="1356959069439783953">არააქტიური ჩანართების იერსახე შეიცვალა</translation>
@@ -1094,6 +1095,7 @@
 <translation id="1751335846119670066">წაკითხვაში დახმარება</translation>
 <translation id="17513872634828108">გახსნილი ჩანართები</translation>
 <translation id="175196451752279553">დახურული ჩანართის &amp;ხელახლა გახსნა</translation>
+<translation id="1752557850776261983">მიმდინარეობს შესვლის შემოწმება...</translation>
 <translation id="1753067873202720523">Chromebook-ის დატენვა, შესაძლოა, ვერ მოხერხდეს, სანამ ის ჩართულია.</translation>
 <translation id="1753557900380512635">შიდა სივრცეები</translation>
 <translation id="1753905327828125965">ყველაზე ხშირად მონახულებადი</translation>
@@ -1922,6 +1924,7 @@
 <translation id="2323018538045954000">შენახული Wi-Fi ქსელები</translation>
 <translation id="2325444234681128157">პაროლის დამახსოვრება</translation>
 <translation id="2326188115274135041">ავტომატური განბლოკვის ჩასართავად დაადასტურეთ PIN-კოდი</translation>
+<translation id="2326583548923775947">ეს არ არის Google ანგარიში. Chrome-ში თქვენ მიერ შენახული ერთეულები არ იქნება ხელმისაწვდომი სხვა მოწყობილობებში.</translation>
 <translation id="2326906096734221931">აპის პარამეტრების გახსნა</translation>
 <translation id="2326931316514688470">პროგრამის ხე&amp;ლახლა ჩატვირთვა</translation>
 <translation id="2327492829706409234">პროგრამის ჩართვა</translation>
@@ -2370,6 +2373,7 @@
 <translation id="2638662041295312666">შესვლის სურათი</translation>
 <translation id="2640299212685523844">GTK-ს გამოყენება</translation>
 <translation id="264083724974021997">დაუკავშირდით თქვენს ტელეფონს — დიალოგური ფანჯარა</translation>
+<translation id="2641098199809442625">თქვენი პაროლი არ განახლდა, მაგრამ თქვენ მაინც უნდა შეძლოთ საიტზე წვდომა ძველი პაროლით.</translation>
 <translation id="2642111877055905627">ფეხბურთის ბურთი</translation>
 <translation id="2642206811783203764">ყოველთვის <ph name="SITE_NAME" />-ზე</translation>
 <translation id="2643064289437760082">რეკლამის ეფექტურობის გასაზომად გამოყენებული მონაცემების წაშლა ნებისმიერ დროს შეგიძლიათ თქვენი დათვალიერების მონაცემების წაშლით</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 2292175..d1be5a9f 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1937,6 +1937,7 @@
 <translation id="2323018538045954000">저장된 Wi-Fi 네트워크</translation>
 <translation id="2325444234681128157">비밀번호 저장</translation>
 <translation id="2326188115274135041">자동 잠금 해제를 사용 설정하려면 PIN을 확인하세요.</translation>
+<translation id="2326583548923775947">Google 계정이 아닙니다. Chrome에 저장한 항목은 다른 기기에서 사용할 수 없습니다.</translation>
 <translation id="2326906096734221931">앱 설정 열기</translation>
 <translation id="2326931316514688470">앱 새로고침(&amp;R)</translation>
 <translation id="2327492829706409234">앱 사용</translation>
@@ -2385,6 +2386,7 @@
 <translation id="2638662041295312666">로그인 이미지</translation>
 <translation id="2640299212685523844">GTK 사용</translation>
 <translation id="264083724974021997">휴대전화에 연결 - 대화상자</translation>
+<translation id="2641098199809442625">비밀번호가 업데이트되지 않았으며, 계속해서 이전 비밀번호로 사이트에 액세스할 수 있습니다.</translation>
 <translation id="2642111877055905627">축구공</translation>
 <translation id="2642206811783203764"><ph name="SITE_NAME" />에서 항상 사용</translation>
 <translation id="2643064289437760082">언제든지 인터넷 사용 기록을 삭제하여 광고 측정 데이터를 삭제할 수 있습니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index de6bf54d..713d0cc 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2383,6 +2383,7 @@
 <translation id="2638662041295312666">Аккаунтка кирүү сүрөтү</translation>
 <translation id="2640299212685523844">GTK темасын колдонуу</translation>
 <translation id="264083724974021997">Телефонуңузга туташтырыңыз – Диалог</translation>
+<translation id="2641098199809442625">Сырсөзүңүз жаңыртылган жок, бирок сайтка эски сырсөзүңүз менен кире алышыңыз мүмкүн.</translation>
 <translation id="2642111877055905627">Футбол тобу</translation>
 <translation id="2642206811783203764">Ар дайым: <ph name="SITE_NAME" /> баракчасында</translation>
 <translation id="2643064289437760082">Серепчиден көрүлгөн нерселерди өчүрүү менен, жарнамалардын майнаптуулугун талдоо үчүн колдонулган нерселерди каалаган убакта өчүрө аласыз</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index d81c500..4f77c21 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -1934,6 +1934,7 @@
 <translation id="2323018538045954000">ເຄືອຂ່າຍ Wi-Fi ທີ່ບັນທຶກໄວ້</translation>
 <translation id="2325444234681128157">ຈື່ລະຫັດຜ່ານ</translation>
 <translation id="2326188115274135041">ຢືນຢັນ PIN ເພື່ອເປີດການປົດລັອກອັດຕະໂນມັດ</translation>
+<translation id="2326583548923775947">ນີ້ບໍ່ແມ່ນບັນຊີ Google. ລາຍການທີ່ທ່ານບັນທຶກໄປໃສ່ Chrome ຈະບໍ່ສາມາດໃຊ້ໄດ້ຢູ່ອຸປະກອນອື່ນ.</translation>
 <translation id="2326906096734221931">ເປີດການຕັ້ງຄ່າແອັບ</translation>
 <translation id="2326931316514688470">ໂຫຼດ​ແອັບ​ໃໝ່</translation>
 <translation id="2327492829706409234">ເປີດໃຊ້ງານແອັບ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index a89b169c..47ff849 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -526,6 +526,7 @@
 <translation id="135389172849514421">Veikia neprisijungus</translation>
 <translation id="1353980523955420967">Nepavyko rasti PPD. Įsitikinkite, kad „Chromebook“ prijungtas, ir bandykite dar kartą.</translation>
 <translation id="1354045473509304750">Ir toliau leisti <ph name="HOST" /> naudoti ir judinti kamerą</translation>
+<translation id="1354148503392558902">Keičiamas slaptažodis...</translation>
 <translation id="1355088139103479645">Ištrinti visus duomenis?</translation>
 <translation id="1356376170199999104">Leidžiama – <ph name="PERMISSION_DETAILS" />. Įjunkite mikrofoną naudodami fizinį jungiklį.</translation>
 <translation id="1356959069439783953">Atnaujinta neaktyvių skirtukų išvaizda</translation>
@@ -1106,6 +1107,7 @@
 <translation id="1751335846119670066">Pagalba skaitant</translation>
 <translation id="17513872634828108">Atidaryti skirtukai</translation>
 <translation id="175196451752279553">I&amp;š naujo atidaryti uždarytą skirtuką</translation>
+<translation id="1752557850776261983">Tikrinama prisijungimo informacija...</translation>
 <translation id="1753067873202720523">„Chromebook“ gali būti neįkraunamas, kai jis įjungtas.</translation>
 <translation id="1753557900380512635">Interjerai</translation>
 <translation id="1753905327828125965">Dažniausiai lankomi</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index a658af0..d880de1 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1931,6 +1931,7 @@
 <translation id="2323018538045954000">Хадгалсан Wi-Fi сүлжээнүүд</translation>
 <translation id="2325444234681128157">Нууц үг санах</translation>
 <translation id="2326188115274135041">Түгжээг автоматаар тайлах үйлдлийг идэвхжүүлэхийн тулд ПИН-г баталгаажуулна уу</translation>
+<translation id="2326583548923775947">Энэ нь Google Бүртгэл биш юм. Таны Chrome-д хадгалах зүйлс бусад төхөөрөмж дээр ашиглах боломжгүй байх болно.</translation>
 <translation id="2326906096734221931">Аппын тохиргоог нээх</translation>
 <translation id="2326931316514688470">Аппыг дахин ачаалла</translation>
 <translation id="2327492829706409234">Аппликейшнийг идэвхжүүл</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 1d802ced..b88d32a 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -3747,6 +3747,7 @@
 <translation id="3629664892718440872">Ingat pilihan ini</translation>
 <translation id="3630132874740063857">Telefon anda</translation>
 <translation id="3630995161997703415">Tambahkan tapak ini pada rak anda untuk digunakan pada bila-bila masa</translation>
+<translation id="3632929818790223729">Bahagikan tab dengan tab aktif</translation>
 <translation id="3634652306074934350">Permintaan kebenaran telah amat tempoh</translation>
 <translation id="3635199270495525546">Modul Platform Dipercayai (TPM) dikesan</translation>
 <translation id="3635353578505343390">Hantar maklum balas kepada Google</translation>
@@ -10040,6 +10041,7 @@
 <translation id="8140869601171867148">Google Account anda sama dengan akaun yang anda gunakan untuk Gmail, YouTube, Chrome dan produk Google yang lain.
     Gunakan akaun anda untuk mengakses semua penanda halaman dan fail anda serta pelbagai lagi.</translation>
 <translation id="8141418916163800697">Anda boleh menyediakan lebih banyak ciri dalam tetapan Hab Telefon</translation>
+<translation id="814156740715940972">Bahagikan Tab Dengan Tab Aktif</translation>
 <translation id="8141584439523427891">Membuka dalam penyemak imbas alternatif sekarang</translation>
 <translation id="8141725884565838206">Urus kata laluan anda</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{satu video}other{# video}}</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index b60ad6d..f120063 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -1933,6 +1933,7 @@
 <translation id="2323018538045954000">သိမ်းထားသော Wi-Fi ကွန်ရက်များ</translation>
 <translation id="2325444234681128157">စကားဝှက်ကို မှတ်ထားရန်</translation>
 <translation id="2326188115274135041">အလိုအလျောက်ဖွင့်ရန်ကို ဖွင့်ရန် ပင်နံပါတ်ကို အတည်ပြုပါ</translation>
+<translation id="2326583548923775947">၎င်းက Google Account မဟုတ်ပါ။ Chrome တွင် သိမ်းသောဖိုင်များကို အခြားစက်များတွင် သုံးနိုင်မည်မဟုတ်ပါ။</translation>
 <translation id="2326906096734221931">အက်ပ်ဆက်တင်များကို ဖွင့်ရန်</translation>
 <translation id="2326931316514688470">အက်ပ်ကို ပြန်စရန်</translation>
 <translation id="2327492829706409234">အက်ပ်ကို ဖွင့်ထားရန်</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 15a88e0..95daa5c 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -1936,6 +1936,7 @@
 <translation id="2323018538045954000">ਰੱਖਿਅਤ ਕੀਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ</translation>
 <translation id="2325444234681128157">ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ</translation>
 <translation id="2326188115274135041">ਸਵੈਚਲਿਤ ਅਣਲਾਕ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਪਿੰਨ ਦੀ ਤਸਦੀਕ ਕਰੋ</translation>
+<translation id="2326583548923775947">ਇਹ Google ਖਾਤਾ ਨਹੀਂ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ Chrome 'ਤੇ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਗਈਆਂ ਆਈਟਮਾਂ ਹੋਰ ਡੀਵਾਈਸਾਂ 'ਤੇ ਉਪਲਬਧ ਹੋਣਗੀਆਂ।</translation>
 <translation id="2326906096734221931">ਐਪ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ</translation>
 <translation id="2326931316514688470">&amp;ਐਪ ਰੀਲੋਡ ਕਰੋ</translation>
 <translation id="2327492829706409234">ਐਪ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 36de519c..4965d6c5 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -5136,7 +5136,7 @@
 <translation id="4598776695426288251">Wi-Fi disponível por meio de vários dispositivos</translation>
 <translation id="4599323532350839656">Sem permissão para capturar e usar a entrada do teclado</translation>
 <translation id="4600071396330666617">Número de sugestões</translation>
-<translation id="4601095002996233687">Verificações detalhadas de downloads suspeitos.</translation>
+<translation id="4601095002996233687">Faz verificações detalhadas de downloads suspeitos.</translation>
 <translation id="4601426376352205922">Marcar como não lido</translation>
 <translation id="460190672235687855">Mostrar senhas</translation>
 <translation id="4602466770786743961">Sempre permitir que <ph name="HOST" /> acesse sua câmera e seu microfone</translation>
@@ -9030,7 +9030,7 @@
     na parte superior da tela do painel do ChromeVox</translation>
 <translation id="7429568074268678162">O arquivo <ph name="FILENAME" /> pode ser perigoso. Adicione uma senha se quiser que o Chrome o verifique ou baixe de forma direta.</translation>
 <translation id="7431719494109538750">Nenhum dispositivo HID encontrado</translation>
-<translation id="7431991332293347422">Controlar como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
+<translation id="7431991332293347422">Controle como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
 <translation id="7432200167665670017">Seu administrador bloqueou a extensão <ph name="EXTENSION_NAME" />: ID do app <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Insira o cartão inteligente para continuar usando seu <ph name="DEVICE_TYPE" /></translation>
 <translation id="7433957986129316853">Manter assim</translation>
@@ -9515,7 +9515,7 @@
 <translation id="7774792847912242537">Excesso de solicitações.</translation>
 <translation id="7775694664330414886">A guia foi movida para um grupo sem nome: <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> poderá ver arquivos em <ph name="FOLDERNAME" /> até que você feche todas as guias desse site</translation>
-<translation id="777637629667389858">Quando sua conta está conectada, essa opção protege você nos Serviços do Google.</translation>
+<translation id="777637629667389858">Protege você em todos os Serviços do Google quando sua conta está conectada.</translation>
 <translation id="7776701556330691704">Nenhuma voz encontrada</translation>
 <translation id="7776950606649732730">Tente de novo depois que a sincronização do arquivo for concluída.</translation>
 <translation id="7777624210360383048">Atalho <ph name="SHORTCUT" /> para a extensão <ph name="EXTENSION_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 3a276a9..b9ac07f 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1923,6 +1923,7 @@
 <translation id="2323018538045954000">Rețele Wi-Fi salvate</translation>
 <translation id="2325444234681128157">Reține parola</translation>
 <translation id="2326188115274135041">Confirmă codul PIN pentru a activa deblocarea automată</translation>
+<translation id="2326583548923775947">Acesta nu este un Cont Google. Elementele pe care le salvezi în Chrome nu vor fi disponibile pe alte dispozitive.</translation>
 <translation id="2326906096734221931">Deschide setările aplicației</translation>
 <translation id="2326931316514688470">&amp;Reîncarcă aplicația</translation>
 <translation id="2327492829706409234">Activați aplicația</translation>
@@ -2371,6 +2372,7 @@
 <translation id="2638662041295312666">Imagine de autentificare</translation>
 <translation id="2640299212685523844">Folosește GTK</translation>
 <translation id="264083724974021997">Conectează-te la telefon – dialog</translation>
+<translation id="2641098199809442625">Parola nu s-a actualizat, dar ar trebui să poți accesa în continuare site-ul cu vechea parolă.</translation>
 <translation id="2642111877055905627">Minge de fotbal</translation>
 <translation id="2642206811783203764">Activat permanent <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Poți să ștergi oricând datele despre cuantificarea anunțurilor dacă ștergi datele de navigare</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 5cd45cc..4c1aec1 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -2373,6 +2373,7 @@
 <translation id="2638662041295312666">Изображение на странице входа</translation>
 <translation id="2640299212685523844">Использовать тему GTK</translation>
 <translation id="264083724974021997">Подключение к телефону – диалоговое окно</translation>
+<translation id="2641098199809442625">Не удалось обновить пароль. Однако вы можете войти на сайт, используя старый пароль.</translation>
 <translation id="2642111877055905627">Футбольный мяч</translation>
 <translation id="2642206811783203764">Всегда включено для <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Вы всегда можете стереть сведения для оценки эффективности рекламы, удалив данные о работе в браузере.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index a48e9cd..3ef27cc 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1938,6 +1938,7 @@
 <translation id="2323018538045954000">Shranjena omrežja Wi-Fi</translation>
 <translation id="2325444234681128157">Zapomni si geslo</translation>
 <translation id="2326188115274135041">Potrdite kodo PIN za vklop samodejnega odklepanja</translation>
+<translation id="2326583548923775947">To ni račun Google. Elementi, ki jih shranite v Chrome, ne bodo na voljo v drugih napravah.</translation>
 <translation id="2326906096734221931">Odpri nastavitve aplikacije</translation>
 <translation id="2326931316514688470">&amp;Znova naloži aplikacijo</translation>
 <translation id="2327492829706409234">Omogoči aplikacijo</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 2a5d80f..c876189 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -525,6 +525,7 @@
 <translation id="135389172849514421">Radi oflajn</translation>
 <translation id="1353980523955420967">Ne možemo da pronađemo PPD. Proverite da li je Chromebook onlajn i probajte ponovo.</translation>
 <translation id="1354045473509304750">Nastavite da dozvoljavate sajtu <ph name="HOST" /> da koristi i pomera kameru</translation>
+<translation id="1354148503392558902">Menja se lozinka…</translation>
 <translation id="1355088139103479645">Želite li da izbrišete sve podatke?</translation>
 <translation id="1356376170199999104">Dozvoljeno je – <ph name="PERMISSION_DETAILS" />. Uključite mikrofon pomoću fizičkog prekidača.</translation>
 <translation id="1356959069439783953">Neaktivne kartice dobijaju novi izgled</translation>
@@ -1093,6 +1094,7 @@
 <translation id="1751335846119670066">Pomoć pri čitanju</translation>
 <translation id="17513872634828108">Otvorene kartice</translation>
 <translation id="175196451752279553">P&amp;onovo otvori zatvorenu karticu</translation>
+<translation id="1752557850776261983">Proverava se prijavljivanje…</translation>
 <translation id="1753067873202720523">Chromebook se možda neće puniti dok je uključen.</translation>
 <translation id="1753557900380512635">Enterijer</translation>
 <translation id="1753905327828125965">Najposećenije</translation>
@@ -3732,6 +3734,7 @@
 <translation id="3629664892718440872">Zapamti ovaj izbor</translation>
 <translation id="3630132874740063857">Telefon</translation>
 <translation id="3630995161997703415">Dodajte ovaj sajt na policu da biste ga koristili u bilo kom trenutku</translation>
+<translation id="3632929818790223729">Podeli karticu sa aktivnom karticom</translation>
 <translation id="3634652306074934350">Zahtev za dozvolu je istekao</translation>
 <translation id="3635199270495525546">Otkriven je modul pouzdane platforme (TPM)</translation>
 <translation id="3635353578505343390">Pošaljite povratne informacije Google-u</translation>
@@ -10028,6 +10031,7 @@
 <translation id="8140869601171867148">Google nalog je isti onaj nalog koji koristite za Gmail, YouTube, Chrome i druge Google proizvode.
     Koristite nalog da biste lako pristupali svim obeleživačima, fajlovima i drugom sadržaju.</translation>
 <translation id="8141418916163800697">Možete da podesite još funkcija u podešavanjima Phone Hub-a</translation>
+<translation id="814156740715940972">Podeli karticu sa aktivnom karticom</translation>
 <translation id="8141584439523427891">Sada se otvara u alternativnom pregledaču</translation>
 <translation id="8141725884565838206">Upravljajte lozinkama</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{video}one{# video}few{# video snimka}other{# videa}}</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 75faa84..7e30d6e 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -525,6 +525,7 @@
 <translation id="135389172849514421">Ради офлајн</translation>
 <translation id="1353980523955420967">Не можемо да пронађемо PPD. Проверите да ли је Chromebook онлајн и пробајте поново.</translation>
 <translation id="1354045473509304750">Наставите да дозвољавате сајту <ph name="HOST" /> да користи и помера камеру</translation>
+<translation id="1354148503392558902">Мења се лозинка…</translation>
 <translation id="1355088139103479645">Желите ли да избришете све податке?</translation>
 <translation id="1356376170199999104">Дозвољено је – <ph name="PERMISSION_DETAILS" />. Укључите микрофон помоћу физичког прекидача.</translation>
 <translation id="1356959069439783953">Неактивне картице добијају нови изглед</translation>
@@ -1093,6 +1094,7 @@
 <translation id="1751335846119670066">Помоћ при читању</translation>
 <translation id="17513872634828108">Отворене картице</translation>
 <translation id="175196451752279553">П&amp;оново отвори затворену картицу</translation>
+<translation id="1752557850776261983">Проверава се пријављивање…</translation>
 <translation id="1753067873202720523">Chromebook се можда неће пунити док је укључен.</translation>
 <translation id="1753557900380512635">Ентеријер</translation>
 <translation id="1753905327828125965">Најпосећеније</translation>
@@ -3732,6 +3734,7 @@
 <translation id="3629664892718440872">Запамти овај избор</translation>
 <translation id="3630132874740063857">Телефон</translation>
 <translation id="3630995161997703415">Додајте овај сајт на полицу да бисте га користили у било ком тренутку</translation>
+<translation id="3632929818790223729">Подели картицу са активном картицом</translation>
 <translation id="3634652306074934350">Захтев за дозволу је истекао</translation>
 <translation id="3635199270495525546">Откривен је модул поуздане платформе (TPM)</translation>
 <translation id="3635353578505343390">Пошаљите повратне информације Google-у</translation>
@@ -10028,6 +10031,7 @@
 <translation id="8140869601171867148">Google налог је исти онај налог који користите за Gmail, YouTube, Chrome и друге Google производе.
     Користите налог да бисте лако приступали свим обележивачима, фајловима и другом садржају.</translation>
 <translation id="8141418916163800697">Можете да подесите још функција у подешавањима Phone Hub-а</translation>
+<translation id="814156740715940972">Подели картицу са активном картицом</translation>
 <translation id="8141584439523427891">Сада се отвара у алтернативном прегледачу</translation>
 <translation id="8141725884565838206">Управљајте лозинкама</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{видео}one{# видео}few{# видео снимка}other{# видеа}}</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 47d338f0..98cedac 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -1932,6 +1932,7 @@
 <translation id="2323018538045954000">Mitandao ya Wi-Fi iliyohifadhiwa</translation>
 <translation id="2325444234681128157">Kumbuka nenosiri</translation>
 <translation id="2326188115274135041">Thibitisha PIN ili uwashe mipangilio ya kufungua kiotomatiki</translation>
+<translation id="2326583548923775947">Hii si Akaunti ya Google. Vipengee unavyohifadhi kwenye Chrome havitapatikana katika vifaa vingine.</translation>
 <translation id="2326906096734221931">Fungua Mipangilio ya programu</translation>
 <translation id="2326931316514688470">Pakia upya programu</translation>
 <translation id="2327492829706409234">Washa programu</translation>
@@ -2380,6 +2381,7 @@
 <translation id="2638662041295312666">Picha ya akaunti kwenye kifaa</translation>
 <translation id="2640299212685523844">Tumia mandhari ya GTK</translation>
 <translation id="264083724974021997">Unganisha kwenye simu yako - Kidirisha</translation>
+<translation id="2641098199809442625">Nenosiri lako halijasasishwa, lakini bado unapaswa kuwa na uwezo wa kufikia tovuti kwa kutumia nenosiri lako la zamani.</translation>
 <translation id="2642111877055905627">Mpira wa soka</translation>
 <translation id="2642206811783203764">Ruhusu kifikiwe kila wakati kwenye <ph name="SITE_NAME" /></translation>
 <translation id="2643064289437760082">Unaweza kufuta data ya kipimo cha matangazo kila wakati kwa kufuta data yako ya kuvinjari</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 3a53b70..ab785a1c 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -2382,6 +2382,7 @@
 <translation id="2638662041295312666">సైన్ ఇన్ ఇమేజ్</translation>
 <translation id="2640299212685523844">GTKని ఉపయోగించండి</translation>
 <translation id="264083724974021997">మీ ఫోన్‌కు కనెక్ట్ చేయండి - డైలాగ్</translation>
+<translation id="2641098199809442625">మీ పాస్‌వర్డ్ అప్‌డేట్ కాలేదు, కానీ ఇప్పటికీ మీ పాత పాస్‌వర్డ్‌తో మీరు సైట్‌ను యాక్సెస్ చేయగలరు.</translation>
 <translation id="2642111877055905627">సాకర్ బంతి</translation>
 <translation id="2642206811783203764">ఎల్లప్పుడూ <ph name="SITE_NAME" />ను అనుమతించండి</translation>
 <translation id="2643064289437760082">మీ బ్రౌజింగ్ డేటాను తొలగించడం ద్వారా మీరు యాడ్ మెజర్‌మెంట్ డేటాను ఎప్పుడైనా తొలగించవచ్చు</translation>
@@ -3744,6 +3745,7 @@
 <translation id="3629664892718440872">ఈ ఎంపికను గుర్తుపెట్టుకోండి</translation>
 <translation id="3630132874740063857">మీ ఫోన్</translation>
 <translation id="3630995161997703415">ఈ సైట్‌ను ఏ సమయంలో అయినా ఉపయోగించడం కోసం దీనిని మీ 'అర'కు జోడించండి</translation>
+<translation id="3632929818790223729">యాక్టివ్ ట్యాబ్‌తో ట్యాబ్‌ను విభజించండి</translation>
 <translation id="3634652306074934350">అనుమతి రిక్వెస్ట్ గడువు ముగిసింది</translation>
 <translation id="3635199270495525546">ట్రస్టెడ్ ప్లాట్‌ఫారమ్ మాడ్యూల్ (TPM) గుర్తించబడింది</translation>
 <translation id="3635353578505343390">Googleకు ఫీడ్‌బ్యాక్‌ పంపండి</translation>
@@ -10032,6 +10034,7 @@
 <translation id="8140869601171867148">ఒకటే Google ఖాతాను మీరు Gmail, YouTube, Chrome, ఇతర Google ప్రోడక్ట్‌లలో ఉపయోగిస్తారు.
     మీ ఖాతాను ఉపయోగించి, మీ అన్ని బుక్‌మార్క్‌లు, ఫైల్స్, మరిన్నింటిని సులభంగా యాక్సెస్ చేయండి.</translation>
 <translation id="8141418916163800697">మీరు ఫోన్ హబ్ సెట్టింగ్‌లలో మరిన్ని ఫీచర్‌లను సెటప్ చేయవచ్చు</translation>
+<translation id="814156740715940972">యాక్టివ్ ట్యాబ్‌తో ట్యాబ్‌ను విభజించండి</translation>
 <translation id="8141584439523427891">ఇప్పుడు ప్రత్యామ్నాయ బ్రౌజర్‌లో తెరుస్తోంది</translation>
 <translation id="8141725884565838206">మీ పాస్‌వర్డ్‌లను నిర్వహించండి</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{వీడియో}other{# వీడియోలు}}</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index aefdaf8d4..3389a151 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -523,6 +523,7 @@
 <translation id="135389172849514421">ใช้งานได้ขณะออฟไลน์</translation>
 <translation id="1353980523955420967">ไม่พบ PPD โปรดตรวจสอบว่า Chromebook ออนไลน์อยู่และลองอีกครั้ง</translation>
 <translation id="1354045473509304750">อนุญาตให้ <ph name="HOST" /> ใช้และเคลื่อนย้ายกล้องของคุณต่อไป</translation>
+<translation id="1354148503392558902">กำลังเปลี่ยนรหัสผ่าน...</translation>
 <translation id="1355088139103479645">ลบข้อมูลทั้งหมดใช่ไหม</translation>
 <translation id="1356376170199999104">อนุญาต – <ph name="PERMISSION_DETAILS" /> เปิดไมโครโฟนโดยใช้สวิตช์จริง</translation>
 <translation id="1356959069439783953">แท็บที่ไม่ได้ใช้งานจะมีรูปลักษณ์ใหม่</translation>
@@ -1094,6 +1095,7 @@
 <translation id="1751335846119670066">ช่วยฉันอ่าน</translation>
 <translation id="17513872634828108">แท็บที่เปิดอยู่</translation>
 <translation id="175196451752279553">เ&amp;ปิดแท็บที่ถูกปิดขึ้นใหม่</translation>
+<translation id="1752557850776261983">กำลังตรวจสอบการลงชื่อเข้าใช้...</translation>
 <translation id="1753067873202720523">Chromebook อาจไม่ชาร์จขณะที่เปิดอยู่</translation>
 <translation id="1753557900380512635">การตกแต่งภายใน</translation>
 <translation id="1753905327828125965">เข้าชมบ่อยสุด</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index e0a118fd..463e8e7 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -2375,6 +2375,7 @@
 <translation id="2638662041295312666">Kirish sahifasidagi rasm</translation>
 <translation id="2640299212685523844">GTK mavzusi ishlatilsin</translation>
 <translation id="264083724974021997">Telefonga ulanish – muloqot oynasi</translation>
+<translation id="2641098199809442625">Parolingiz yangilanmadi, lekin saytga eski parolingiz bilan kira olishingiz kerak.</translation>
 <translation id="2642111877055905627">Futbol to‘pi</translation>
 <translation id="2642206811783203764">Doim yoniq (<ph name="SITE_NAME" />)</translation>
 <translation id="2643064289437760082">Brauzerning ishlashi haqida axborotlarni oʻchirish orqali har doim reklama unumdorligi ballingizni tozalashingiz mumkin</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index eba936e4..868d661e 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -523,6 +523,7 @@
 <translation id="135389172849514421">可离线使用</translation>
 <translation id="1353980523955420967">找不到 PPD。请确保您的 Chromebook 已连接到网络,然后重试。</translation>
 <translation id="1354045473509304750">继续允许 <ph name="HOST" /> 使用和移动您的摄像头</translation>
+<translation id="1354148503392558902">正在更改密码…</translation>
 <translation id="1355088139103479645">删除所有数据?</translation>
 <translation id="1356376170199999104">已允许 - <ph name="PERMISSION_DETAILS" />。请使用实物开关开启麦克风。</translation>
 <translation id="1356959069439783953">闲置标签页外观焕然一新</translation>
@@ -1089,6 +1090,7 @@
 <translation id="1751335846119670066">帮我读</translation>
 <translation id="17513872634828108">目前打开的标签页</translation>
 <translation id="175196451752279553">重新打开关闭的标签页(&amp;E)</translation>
+<translation id="1752557850776261983">正在检查登录状态…</translation>
 <translation id="1753067873202720523">您的 Chromebook 在处于打开状态时可能无法充电。</translation>
 <translation id="1753557900380512635">室内</translation>
 <translation id="1753905327828125965">常去网站</translation>
@@ -1915,6 +1917,7 @@
 <translation id="2323018538045954000">保存的 WLAN 网络</translation>
 <translation id="2325444234681128157">记住密码</translation>
 <translation id="2326188115274135041">请确认 PIN 码以开启自动解锁功能</translation>
+<translation id="2326583548923775947">这不是 Google 账号。您保存到 Chrome 的内容将无法在其他设备上使用。</translation>
 <translation id="2326906096734221931">打开应用设置</translation>
 <translation id="2326931316514688470">重新加载应用(&amp;R)</translation>
 <translation id="2327492829706409234">启用应用</translation>
@@ -2362,6 +2365,7 @@
 <translation id="2638662041295312666">登录账号图片</translation>
 <translation id="2640299212685523844">使用 GTK</translation>
 <translation id="264083724974021997">连接到您的手机 - 对话框</translation>
+<translation id="2641098199809442625">密码未更新,但您应该仍能使用旧密码访问该网站。</translation>
 <translation id="2642111877055905627">足球</translation>
 <translation id="2642206811783203764">始终允许在 <ph name="SITE_NAME" /> 上运行</translation>
 <translation id="2643064289437760082">您可随时通过删除浏览数据来删除广告衡量数据</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index cf4b726..0a1b5b5 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -1935,6 +1935,7 @@
 <translation id="2323018538045954000">已儲存的 Wi-Fi 網絡</translation>
 <translation id="2325444234681128157">記住密碼</translation>
 <translation id="2326188115274135041">確認 PIN 以開啟自動解鎖</translation>
+<translation id="2326583548923775947">這並非 Google 帳戶。你儲存到 Chrome 的項目無法在其他裝置上查看。</translation>
 <translation id="2326906096734221931">開啟應用程式設定</translation>
 <translation id="2326931316514688470">重新載入應用程式(&amp;R)</translation>
 <translation id="2327492829706409234">啟用應用程式</translation>
@@ -2383,6 +2384,7 @@
 <translation id="2638662041295312666">登入圖片</translation>
 <translation id="2640299212685523844">使用 GTK</translation>
 <translation id="264083724974021997">連接去你部手機 - 對話框</translation>
+<translation id="2641098199809442625">你的密碼並未更新,但你應該仍能使用舊密碼存取網站。</translation>
 <translation id="2642111877055905627">足球</translation>
 <translation id="2642206811783203764">一律在 <ph name="SITE_NAME" /> 上執行</translation>
 <translation id="2643064289437760082">只要刪除瀏覽資料,即可隨時刪除廣告評估資料</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index dcbcfcf1..e8d697dc 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1922,6 +1922,7 @@
 <translation id="2323018538045954000">已儲存的 Wi-Fi 網路</translation>
 <translation id="2325444234681128157">記住密碼</translation>
 <translation id="2326188115274135041">確認 PIN 碼以開啟自動解鎖功能</translation>
+<translation id="2326583548923775947">這不是 Google 帳戶,因此儲存到 Chrome 的項目將無法在其他裝置上使用。</translation>
 <translation id="2326906096734221931">開啟應用程式設定</translation>
 <translation id="2326931316514688470">重新載入應用程式(&amp;R)</translation>
 <translation id="2327492829706409234">啟用應用程式</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bs.xtb b/chrome/app/resources/google_chrome_strings_bs.xtb
index 7bddef6..d42ec21e 100644
--- a/chrome/app/resources/google_chrome_strings_bs.xtb
+++ b/chrome/app/resources/google_chrome_strings_bs.xtb
@@ -327,6 +327,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome može učiniti ove kartice neaktivnima da poboljša iskustvo pregledanja i ubrza stvari.</translation>
 <translation id="5003967926796347400">Kliknite na "Google upravitelj lozinki"</translation>
+<translation id="5114340746415930644">Unesite šifru kako biste upotrebljavali i spremali podatke iz Chromea na svojem računu, <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">Prijava u Chrome prilikom prijave na druge Googleove usluge</translation>
 <translation id="5126049312684316860">Chrome predučitava još više stranica za koje postoji vjerovatnoća da ćete ih posjetiti kako bi se brže učitavale prilikom posjete</translation>
 <translation id="5132929315877954718">Otkrijte odlične aplikacije, igre, ekstenzije i teme za Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 3230715..97af7c8 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -323,6 +323,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome može deaktivirati te kartice radi poboljšanja vašeg doživljaja pregledavanja i brze aktivnosti.</translation>
 <translation id="5003967926796347400">Kliknite Google upravitelj zaporki</translation>
+<translation id="5114340746415930644">Unesite šifru kako biste upotrebljavali i spremali podatke iz Chromea na svojem računu, <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">Prijavite se u Chrome prilikom prijave na druge Googleove usluge</translation>
 <translation id="5126049312684316860">Chrome predučitava još više stranica koje ćete vjerojatno posjetiti kako bi se brže učitale kad ih posjetite.</translation>
 <translation id="5132929315877954718">Otkrijte sjajne aplikacije, igre, proširenja i teme za Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index 7471c63..2c0bd92 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -323,6 +323,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">‏‫Chrome יכול להשבית את הכרטיסיות האלה כדי לשפר את חוויית הגלישה ולשמור על מהירות.</translation>
 <translation id="5003967926796347400">‏לוחצים על 'מנהל הסיסמאות של Google'</translation>
+<translation id="5114340746415930644">‏כדי להשתמש בנתונים של Chrome ולשמור אותם בחשבון <ph name="USER_EMAIL" />, צריך להזין את ביטוי הסיסמה</translation>
 <translation id="5120334927898581447">‏כניסה אל Chrome כשנכנסים לשירותי Google אחרים</translation>
 <translation id="5126049312684316860">‏כדי שהדפים שבהם מבקרים ייטענו מהר יותר, מערכת Chrome טוענת מראש עוד יותר דפים שיש סיכוי גבוה שייפתחו</translation>
 <translation id="5132929315877954718">‏מקום לגלות אפליקציות, משחקים, תוספים ועיצובים מעולים ל-Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index 7a147a2..53d7315 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -327,6 +327,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome-ს შეუძლია, თქვენი ჩანართები უმოქმედო რეჟიმში გადაიტანოს, რათა გააუმჯობესოს თქვენი დათვალიერების გამოცდილება და უზრუნველყოს სისწრაფე.</translation>
 <translation id="5003967926796347400">დაწკაპუნებით აირჩიეთ „Google პაროლების მმართველი“</translation>
+<translation id="5114340746415930644">შეიყვანეთ თქვენი საიდუმლო ფრაზა, რომ გამოიყენოთ და შეინახოთ Chrome-ის მონაცემები თქვენს ანგარიშში, <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">შედით Chrome-ში, როცა Google-ის სხვა სერვისებში შედიხართ</translation>
 <translation id="5126049312684316860">Chrome წინასწარ ჩატვირთავს უფრო მეტ გვერდს, რომელთა ნახვასაც, სავარაუდოდ, დააპირებთ — ამგვარად, ამ გვერდებზე გადასვლისას, ისინი უფრო სწრაფად ჩაიტვირთება</translation>
 <translation id="5132929315877954718">აღმოაჩინეთ დიდებული აპები, თამაშები, გაფართოებები და თემები Google Chrome-ისთვის.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index aa8fc3a..cc9fc00 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -327,6 +327,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">„Chrome“ gali padaryti šiuos skirtukus neaktyvius, kad pagerintų naršymo funkcijas ir veiktų sparčiai.</translation>
 <translation id="5003967926796347400">Spustelėkite „Google“ slaptažodžių tvarkyklė“.</translation>
+<translation id="5114340746415930644">Įveskite slaptafrazę, kad galėtumėte naudoti ir išsaugoti „Chrome“ duomenis paskyroje <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">Prisijungimas prie „Chrome“ prisijungiant prie kitų „Google“ paslaugų</translation>
 <translation id="5126049312684316860">„Chrome“ iš anksto įkelia dar daugiau puslapių, kuriuose galite apsilankyti, kad jie būtų sparčiau įkeliami juose lankantis</translation>
 <translation id="5132929315877954718">Suraskite puikių „Google Chrome“ programų, žaidimų, plėtinių ir temų.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
index 61a991d5..79b77c8 100644
--- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -327,6 +327,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome može da učini ove kartice neaktivnim da bi poboljšao doživljaj pregledanja i ubrzao rad.</translation>
 <translation id="5003967926796347400">Kliknite na Google menadžer lozinki</translation>
+<translation id="5114340746415930644">Unesite pristupnu frazu da biste koristili i sačuvali Chrome podatke na nalogu, <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">Prijavite se u Chrome kada se prijavite u druge Google usluge</translation>
 <translation id="5126049312684316860">Chrome predučitava još više stranica koje ćete verovatno posetiti, kako bi se brže učitavale kada ih posetite</translation>
 <translation id="5132929315877954718">Otkrijte odlične aplikacije, igre, dodatke i teme za Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index c630ff5..3d9de2e5 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -327,6 +327,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome може да учини ове картице неактивним да би побољшао доживљај прегледања и убрзао рад.</translation>
 <translation id="5003967926796347400">Кликните на Google менаџер лозинки</translation>
+<translation id="5114340746415930644">Унесите приступну фразу да бисте користили и сачували Chrome податке на налогу, <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">Пријавите се у Chrome када се пријавите у друге Google услуге</translation>
 <translation id="5126049312684316860">Chrome предучитава још више страница које ћете вероватно посетити, како би се брже учитавале када их посетите</translation>
 <translation id="5132929315877954718">Откријте одличне апликације, игре, додатке и теме за Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 0d58c70..e5a4b3c6 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -322,6 +322,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome สามารถทำให้แท็บเหล่านี้ไม่ทำงานเพื่อปรับปรุงประสบการณ์การท่องเว็บและทำให้ทุกอย่างทำงานได้เร็วขึ้น</translation>
 <translation id="5003967926796347400">คลิก "เครื่องมือจัดการรหัสผ่านบน Google"</translation>
+<translation id="5114340746415930644">ป้อนรหัสผ่านเพื่อใช้และบันทึกข้อมูล Chrome ในบัญชี <ph name="USER_EMAIL" /></translation>
 <translation id="5120334927898581447">ลงชื่อเข้าใช้ Chrome เมื่อคุณลงชื่อเข้าใช้บริการอื่นๆ ของ Google</translation>
 <translation id="5126049312684316860">Chrome จะโหลดหน้าเว็บที่คุณน่าจะเข้าชมเอาไว้ล่วงหน้าเพิ่มมากขึ้น เพื่อให้หน้าเหล่านั้นโหลดเร็วขึ้นเมื่อคุณเข้าชม</translation>
 <translation id="5132929315877954718">พบกับแอป เกม ส่วนขยาย และธีมเด็ดๆ สำหรับ Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index 05fe73b..f944a6e 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -322,6 +322,7 @@
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="4997044641749333913">Chrome 可以让这些标签页处于非活跃状态,以改善您的浏览体验并保持快速运行。</translation>
 <translation id="5003967926796347400">点击“Google 密码管理工具”</translation>
+<translation id="5114340746415930644">请输入您的口令,以便将 Chrome 数据保存在您的账号 <ph name="USER_EMAIL" /> 中并使用这些数据</translation>
 <translation id="5120334927898581447">登录其他 Google 服务时登录 Chrome</translation>
 <translation id="5126049312684316860">Chrome 会预加载您可能会访问的更多网页,以便提高这些网页在您访问时的加载速度</translation>
 <translation id="5132929315877954718">查找适用于Google Chrome的精彩应用、游戏、扩展程序和主题背景。</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index daf0aeb..79a1dbb 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5022,6 +5022,7 @@
       "//chrome/browser/ash/app_list/search/omnibox",
       "//chrome/browser/ash/app_mode",
       "//chrome/browser/ash/app_mode/auto_sleep",
+      "//chrome/browser/ash/app_mode/isolated_web_app",
       "//chrome/browser/ash/app_mode/web_app",
       "//chrome/browser/ash/app_restore",
       "//chrome/browser/ash/apps",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 9a2e723d9..895bb5b8 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -11037,6 +11037,11 @@
      FEATURE_VALUE_TYPE(blink::features::kLanguageDetectionAPI)},
 
 #if BUILDFLAG(IS_ANDROID)
+    {"history-opt-in-entry-points",
+     flag_descriptions::kHistoryOptInEntryPointsName,
+     flag_descriptions::kHistoryOptInEntryPointsDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(switches::kHistoryOptInEntryPoints)},
+
     {"supervised-force-signin-with-capabilities",
      flag_descriptions::kSupervisedUserForceSigninWithCapabilitiesName,
      flag_descriptions::kSupervisedUserForceSigninWithCapabilitiesDescription,
@@ -11460,6 +11465,10 @@
     {"ai-settings-page-refresh", flag_descriptions::kAiSettingsPageRefreshName,
      flag_descriptions::kAiSettingsPageRefreshDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(optimization_guide::features::kAiSettingsPageRefresh)},
+    {"privacy-guide-ai-settings",
+     flag_descriptions::kPrivacyGuideAiSettingsName,
+     flag_descriptions::kPrivacyGuideAiSettingsDescription, kOsDesktop,
+     FEATURE_VALUE_TYPE(optimization_guide::features::kPrivacyGuideAiSettings)},
 #endif  // !BUILDFLAG(IS_ANDROID)
 
     {"password-form-clientside-classifier",
diff --git a/chrome/browser/about_flags_unittest.cc b/chrome/browser/about_flags_unittest.cc
index a2d6e4d9..ee0131e 100644
--- a/chrome/browser/about_flags_unittest.cc
+++ b/chrome/browser/about_flags_unittest.cc
@@ -28,8 +28,8 @@
 
 namespace {
 
-using Sample = base::HistogramBase::Sample;
-using SwitchToIdMap = std::map<std::string, Sample>;
+using Sample32 = base::HistogramBase::Sample32;
+using SwitchToIdMap = std::map<std::string, Sample32>;
 
 // Get all associated switches corresponding to defined about_flags.cc entries.
 std::set<std::string> GetAllPublicSwitchesAndFeaturesForTesting() {
@@ -240,9 +240,9 @@
   // This is a helper function to check that all IDs in enum LoginCustomFlags in
   // histograms.xml are unique.
   void SetSwitchToHistogramIdMapping(const std::string& switch_name,
-                                     const Sample switch_histogram_id,
-                                     std::map<std::string, Sample>* out_map) {
-    const std::pair<std::map<std::string, Sample>::iterator, bool> status =
+                                     const Sample32 switch_histogram_id,
+                                     std::map<std::string, Sample32>* out_map) {
+    const std::pair<std::map<std::string, Sample32>::iterator, bool> status =
         out_map->insert(std::make_pair(switch_name, switch_histogram_id));
     if (!status.second) {
       EXPECT_TRUE(status.first->second == switch_histogram_id)
@@ -255,7 +255,7 @@
   // This method generates a hint for the user for what string should be added
   // to the enum LoginCustomFlags to make in consistent.
   std::string GetHistogramEnumEntryText(const std::string& switch_name,
-                                        Sample value) {
+                                        Sample32 value) {
     return base::StringPrintf(
         "<int value=\"%d\" label=\"%s\"/>", value, switch_name.c_str());
   }
@@ -285,7 +285,7 @@
                                     &metadata_switches_ids);
       continue;
     }
-    const Sample uma_id = flags_ui::GetSwitchUMAId(entry.second);
+    const Sample32 uma_id = flags_ui::GetSwitchUMAId(entry.second);
     EXPECT_EQ(uma_id, entry.first)
         << "tools/metrics/histograms/enums.xml enum LoginCustomFlags "
            "entry '"
@@ -302,7 +302,7 @@
     // Skip empty placeholders.
     if (flag.empty())
       continue;
-    const Sample uma_id = flags_ui::GetSwitchUMAId(flag);
+    const Sample32 uma_id = flags_ui::GetSwitchUMAId(flag);
     EXPECT_NE(flags_ui::testing::kBadSwitchFormatHistogramId, uma_id)
         << "Command-line switch '" << flag
         << "' from about_flags.cc has UMA ID equal to reserved value "
diff --git a/chrome/browser/ash/app_mode/test/BUILD.gn b/chrome/browser/ash/app_mode/test/BUILD.gn
index 401568d8..e530e499 100644
--- a/chrome/browser/ash/app_mode/test/BUILD.gn
+++ b/chrome/browser/ash/app_mode/test/BUILD.gn
@@ -17,6 +17,7 @@
     "kiosk_file_system_volumes_browsertest.cc",
     "kiosk_installed_apps_browsertest.cc",
     "kiosk_iwa_browsertest.cc",
+    "kiosk_iwa_device_attributes_browsertest.cc",
     "kiosk_iwa_permissions_browsertest.cc",
     "kiosk_settings_browsertest.cc",
     "kiosk_web_app_offline_enabled_browsertest.cc",
@@ -31,6 +32,7 @@
     "//chrome/browser/apps/app_service:app_service",
     "//chrome/browser/ash/app_mode/web_app",
     "//chrome/browser/ash/login/app_mode/test:test_support",
+    "//chrome/browser/ash/policy/core:test_support",
     "//chrome/browser/chromeos/app_mode",
     "//chrome/browser/ui:browser_navigator_params_headers",
     "//chrome/browser/web_applications",
@@ -38,6 +40,7 @@
     "//chrome/test:test_support",
     "//chrome/test:test_support_ui",
     "//chromeos/ash/components/disks:test_support",
+    "//chromeos/ash/components/system",
     "//components/services/app_service/public/cpp:app_types",
     "//components/web_package",
     "//components/web_package/test_support",
diff --git a/chrome/browser/ash/app_mode/test/kiosk_iwa_device_attributes_browsertest.cc b/chrome/browser/ash/app_mode/test/kiosk_iwa_device_attributes_browsertest.cc
new file mode 100644
index 0000000..e164d89
--- /dev/null
+++ b/chrome/browser/ash/app_mode/test/kiosk_iwa_device_attributes_browsertest.cc
@@ -0,0 +1,216 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <array>
+#include <cstddef>
+#include <memory>
+#include <string>
+#include <string_view>
+
+#include "ash/constants/ash_features.h"
+#include "base/functional/bind.h"
+#include "base/strings/string_util.h"
+#include "base/test/bind.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/values.h"
+#include "chrome/browser/ash/app_mode/test/kiosk_mixin.h"
+#include "chrome/browser/ash/app_mode/test/kiosk_test_utils.h"
+#include "chrome/browser/ash/login/test/scoped_policy_update.h"
+#include "chrome/browser/ash/login/test/test_predicate_waiter.h"
+#include "chrome/browser/ash/policy/core/device_policy_cros_test_helper.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_update_server_mixin.h"
+#include "chrome/browser/web_applications/isolated_web_apps/test/isolated_web_app_builder.h"
+#include "chrome/browser/web_applications/isolated_web_apps/test/test_signed_web_bundle_builder.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/test/base/mixin_based_in_process_browser_test.h"
+#include "chromeos/ash/components/settings/cros_settings_names.h"
+#include "chromeos/ash/components/system/fake_statistics_provider.h"
+#include "chromeos/ash/components/system/statistics_provider.h"
+#include "components/policy/proto/chrome_device_policy.pb.h"
+#include "components/web_package/signed_web_bundles/signed_web_bundle_id.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
+#include "net/base/host_port_pair.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace ash {
+
+namespace {
+
+constexpr char kDeviceAnnotatedAssetId[] = "iwa_test_asset_id";
+constexpr char kDeviceAnnotatedLocation[] = "iwa_test_location";
+constexpr char kDeviceDirectoryApiId[] = "iwa_test_directory_id";
+constexpr char kDeviceHostname[] = "iwa_test_hostname";
+constexpr char kDeviceSerialNumber[] = "iwa_test_serial_number";
+
+constexpr std::array<const char*, 5> kDeviceAttributeNames = {
+    "AnnotatedAssetId", "AnnotatedLocation", "DirectoryId", "Hostname",
+    "SerialNumber"};
+
+constexpr std::array<const char*, 5> kExpectedDeviceAttributeValues = {
+    kDeviceAnnotatedAssetId, kDeviceAnnotatedLocation, kDeviceDirectoryApiId,
+    kDeviceHostname, kDeviceSerialNumber};
+
+constexpr char kNotAllowedOriginExpectedError[] =
+    "a JavaScript error: \"UnknownError: The current origin cannot use this "
+    "web API because it is not allowed by the "
+    "DeviceAttributesAllowedForOrigins policy.\"\n";
+
+const web_package::SignedWebBundleId kTestWebBundleId =
+    web_app::test::GetDefaultEd25519WebBundleId();
+
+KioskMixin::Config GetKioskIwaManualLaunchConfig(
+    const GURL& update_manifest_url) {
+  KioskMixin::IsolatedWebAppOption iwa_option(
+      /*account_id=*/"simple-iwa@localhost",
+      /*web_bundle_id=*/kTestWebBundleId,
+      /*update_manifest_url=*/update_manifest_url);
+
+  KioskMixin::Config kiosk_iwa_config = {/*name=*/"IsolatedWebApp",
+                                         /*auto_launch_account_id=*/{},
+                                         {iwa_option}};
+  return kiosk_iwa_config;
+}
+
+// Waits until a `js_name` is defined. Is used to prevent API calls before the
+// test web page has loaded.
+void WaitForJsObject(content::WebContents* web_contents,
+                     const std::string& js_name) {
+  ash::test::TestPredicateWaiter(
+      base::BindRepeating(
+          [](content::WebContents* web_contents, const std::string& js_name) {
+            return content::EvalJs(
+                       web_contents,
+                       base::ReplaceStringPlaceholders(
+                           "typeof $1 !== 'undefined'", {js_name}, nullptr))
+                .ExtractBool();
+          },
+          web_contents, js_name))
+      .Wait();
+}
+
+content::EvalJsResult CallDeviceAttributesApi(
+    content::WebContents* web_contents,
+    const std::string& attribute_name) {
+  return content::EvalJs(
+      web_contents, base::ReplaceStringPlaceholders("navigator.managed.get$1()",
+                                                    {attribute_name}, nullptr));
+}
+
+}  // namespace
+
+class KioskIwaDeviceAttributesApiTest : public MixinBasedInProcessBrowserTest {
+ public:
+  KioskIwaDeviceAttributesApiTest() {
+    iwa_server_mixin_.AddBundle(
+        web_app::IsolatedWebAppBuilder(web_app::ManifestBuilder())
+            .BuildBundle(web_app::test::GetDefaultEd25519KeyPair()));
+  }
+
+  ~KioskIwaDeviceAttributesApiTest() override = default;
+  KioskIwaDeviceAttributesApiTest(const KioskIwaDeviceAttributesApiTest&) =
+      delete;
+  KioskIwaDeviceAttributesApiTest& operator=(
+      const KioskIwaDeviceAttributesApiTest&) = delete;
+
+  void SetUpOnMainThread() override {
+    MixinBasedInProcessBrowserTest::SetUpOnMainThread();
+    SetDevicePolicies();
+    LaunchIwaKiosk();
+  }
+
+ protected:
+  content::WebContents* web_contents() {
+    BrowserView* browser_view =
+        BrowserView::GetBrowserViewForBrowser(browser());
+    return browser_view ? browser_view->GetActiveWebContents() : nullptr;
+  }
+
+  void AllowDeviceAttributesForIwaOrigin() {
+    browser()->profile()->GetPrefs()->SetList(
+        prefs::kDeviceAttributesAllowedForOrigins,
+        base::Value::List().Append(kAppOrigin.Serialize()));
+  }
+
+ private:
+  void SetDevicePolicies() {
+    ScopedDevicePolicyUpdate scoped_update(
+        policy_helper_.device_policy(), base::BindLambdaForTesting([this]() {
+          policy_helper_.RefreshPolicyAndWaitUntilDeviceSettingsUpdated(
+              {ash::kAccountsPrefDeviceLocalAccounts});
+        }));
+    kiosk_.Configure(
+        scoped_update,
+        GetKioskIwaManualLaunchConfig(
+            iwa_server_mixin_.GetUpdateManifestUrl(kTestWebBundleId)));
+
+    scoped_update.policy_data()->set_annotated_asset_id(
+        kDeviceAnnotatedAssetId);
+    scoped_update.policy_data()->set_annotated_location(
+        kDeviceAnnotatedLocation);
+    scoped_update.policy_data()->set_directory_api_id(kDeviceDirectoryApiId);
+    scoped_update.policy_payload()
+        ->mutable_network_hostname()
+        ->set_device_hostname_template(kDeviceHostname);
+
+    fake_statistics_provider_.SetMachineStatistic(ash::system::kSerialNumberKey,
+                                                  kDeviceSerialNumber);
+  }
+
+  void LaunchIwaKiosk() {
+    ASSERT_TRUE(kiosk_.LaunchManually(kiosk::test::TheKioskApp()));
+    ASSERT_TRUE(kiosk_.WaitSessionLaunched());
+
+    SelectFirstBrowser();
+    ASSERT_NE(web_contents(), nullptr);
+    ASSERT_EQ(web_contents()->GetVisibleURL(), kAppOrigin.GetURL());
+  }
+
+  const url::Origin kAppOrigin =
+      url::Origin::CreateFromNormalizedTuple(chrome::kIsolatedAppScheme,
+                                             kTestWebBundleId.id(),
+                                             /*port=*/0);
+
+  base::test::ScopedFeatureList feature_list_{
+      ash::features::kIsolatedWebAppKiosk};
+  web_app::IsolatedWebAppUpdateServerMixin iwa_server_mixin_{&mixin_host_};
+  KioskMixin kiosk_{&mixin_host_};
+  policy::DevicePolicyCrosTestHelper policy_helper_;
+  ash::system::ScopedFakeStatisticsProvider fake_statistics_provider_;
+};
+
+IN_PROC_BROWSER_TEST_F(KioskIwaDeviceAttributesApiTest,
+                       AllowedOriginWithAttributesSet) {
+  AllowDeviceAttributesForIwaOrigin();
+
+  WaitForJsObject(web_contents(), "navigator.managed");
+
+  ASSERT_EQ(kDeviceAttributeNames.size(),
+            kExpectedDeviceAttributeValues.size());
+  for (size_t i = 0; i < kDeviceAttributeNames.size(); ++i) {
+    EXPECT_EQ(kExpectedDeviceAttributeValues[i],
+              CallDeviceAttributesApi(web_contents(), kDeviceAttributeNames[i])
+                  .ExtractString());
+  }
+}
+
+IN_PROC_BROWSER_TEST_F(KioskIwaDeviceAttributesApiTest,
+                       DisallowedOriginCantAccessAPI) {
+  WaitForJsObject(web_contents(), "navigator.managed");
+
+  // All of the methods should be defined, but return the same error.
+  for (const std::string& attribute : kDeviceAttributeNames) {
+    content::EvalJsResult result =
+        CallDeviceAttributesApi(web_contents(), attribute);
+    EXPECT_EQ(result.error, kNotAllowedOriginExpectedError);
+    EXPECT_TRUE(result.value.is_none());
+  }
+}
+
+}  // namespace ash
diff --git a/chrome/browser/ash/app_mode/test/kiosk_mixin.cc b/chrome/browser/ash/app_mode/test/kiosk_mixin.cc
index 1975af8a6..6bf6161d 100644
--- a/chrome/browser/ash/app_mode/test/kiosk_mixin.cc
+++ b/chrome/browser/ash/app_mode/test/kiosk_mixin.cc
@@ -277,11 +277,8 @@
     case KioskAppType::kChromeApp:
       return LoginScreenTestApi::LaunchApp(app.id().app_id.value());
     case KioskAppType::kWebApp:
-      return LoginScreenTestApi::LaunchApp(app.id().account_id);
     case KioskAppType::kIsolatedWebApp:
-      // TODO(crbug.com/379633748): Support IWA in KioskMixin.
-      NOTIMPLEMENTED();
-      return false;
+      return LoginScreenTestApi::LaunchApp(app.id().account_id);
   }
 }
 
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
index e172dff..e25719c 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
@@ -227,7 +227,7 @@
       dm_protocol::kChromeExtensionPolicyType, component_policy_cache_path_,
       cloud_policy_client.get(), schema_registry());
   core()->Connect(std::move(cloud_policy_client));
-  client()->AddObserver(this);
+  observed_cloud_policy_client_.Observe(client());
 
   external_data_manager_->Connect(system_url_loader_factory);
 
@@ -259,7 +259,7 @@
     OnCloudPolicyServiceInitializationCompleted();
   } else {
     // Wait for the CloudPolicyStore to finish initializing.
-    service()->AddObserver(this);
+    observed_cloud_policy_service_.Observe(service());
   }
 
   app_install_event_log_uploader_ =
@@ -346,12 +346,8 @@
   local_files_cleanup_.reset();
   app_install_event_log_uploader_.reset();
   report_scheduler_.reset();
-  if (client()) {
-    client()->RemoveObserver(this);
-  }
-  if (service()) {
-    service()->RemoveObserver(this);
-  }
+  observed_cloud_policy_client_.Reset();
+  observed_cloud_policy_service_.Reset();
   token_fetcher_.reset();
   external_data_manager_->Disconnect();
   CloudPolicyManager::Shutdown();
@@ -369,7 +365,7 @@
 }
 
 void UserCloudPolicyManagerAsh::OnCloudPolicyServiceInitializationCompleted() {
-  service()->RemoveObserver(this);
+  observed_cloud_policy_service_.Reset();
 
   // If the CloudPolicyClient isn't registered at this stage then it needs an
   // OAuth token for the initial registration (there's no cached policy).
@@ -502,7 +498,7 @@
     return;
   }
 
-  session_manager::SessionManager::Get()->RemoveObserver(this);
+  observed_session_manager_.Reset();
   StartReportSchedulerIfReady(false /* enable_delayed_creation */);
 }
 
@@ -760,7 +756,7 @@
   // doesn't finish, the creation of |report_scheduler_| will be delayed and
   // relies on SessionManagerObserver methods to monitor the progress.
   if (enable_delayed_creation && !primary_user->is_profile_created()) {
-    session_manager::SessionManager::Get()->AddObserver(this);
+    observed_session_manager_.Observe(session_manager::SessionManager::Get());
     VLOG(0) << "Report scheduler is delayed to create because the primary "
                "user profile hasn't been loaded. This is a designed behavior.";
     return;
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
index 52138e47..c1c4c5d 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
@@ -25,6 +25,7 @@
 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
 #include "components/policy/core/common/cloud/cloud_policy_manager.h"
 #include "components/policy/core/common/cloud/cloud_policy_service.h"
+#include "components/session_manager/core/session_manager.h"
 #include "components/session_manager/core/session_manager_observer.h"
 
 class GoogleServiceAuthError;
@@ -325,6 +326,16 @@
 
   base::ScopedObservation<Profile, ProfileObserver> observed_profile_{this};
 
+  base::ScopedObservation<CloudPolicyClient, CloudPolicyClient::Observer>
+      observed_cloud_policy_client_{this};
+
+  base::ScopedObservation<CloudPolicyService, CloudPolicyService::Observer>
+      observed_cloud_policy_service_{this};
+
+  base::ScopedObservation<session_manager::SessionManager,
+                          session_manager::SessionManagerObserver>
+      observed_session_manager_{this};
+
   // Refresh token used in tests instead of the user context refresh token to
   // fetch the policy OAuth token.
   std::optional<std::string> user_context_refresh_token_for_tests_;
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.cc b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.cc
index be2dcbc..e1b38e6 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.cc
@@ -51,7 +51,7 @@
   if (manager_->core()->service()->IsInitializationComplete()) {
     StartRequest();
   } else {
-    manager_->core()->service()->AddObserver(this);
+    cloud_policy_service_observation_.Observe(manager_->core()->service());
   }
 }
 
@@ -60,7 +60,7 @@
 void UserCloudPolicyTokenForwarder::Shutdown() {
   access_token_fetcher_.reset();
   refresh_oauth_token_timer_.reset();
-  manager_->core()->service()->RemoveObserver(this);
+  cloud_policy_service_observation_.Reset();
 }
 
 void UserCloudPolicyTokenForwarder::
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.h b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.h
index 91e2fa5..b7da2bf8 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.h
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder.h
@@ -11,6 +11,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/policy/core/common/cloud/cloud_policy_service.h"
 #include "components/signin/public/identity_manager/access_token_info.h"
@@ -108,6 +109,9 @@
   // Points to the base::DefaultClock by default.
   raw_ptr<const base::Clock> clock_;
 
+  base::ScopedObservation<CloudPolicyService, CloudPolicyService::Observer>
+      cloud_policy_service_observation_{this};
+
   base::WeakPtrFactory<UserCloudPolicyTokenForwarder> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/browser/chrome_back_forward_cache_browsertest.cc b/chrome/browser/chrome_back_forward_cache_browsertest.cc
index 597abba8..3caadd22 100644
--- a/chrome/browser/chrome_back_forward_cache_browsertest.cc
+++ b/chrome/browser/chrome_back_forward_cache_browsertest.cc
@@ -682,7 +682,7 @@
       blink::scheduler::WebSchedulerTrackedFeature feature,
       base::Location location) {
     content::FetchHistogramsFromChildProcesses();
-    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample(feature);
+    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample32(feature);
     base::Bucket expected_blocklisted(sample, 1);
 
     EXPECT_THAT(histogram_tester_->GetAllSamples(
@@ -763,7 +763,7 @@
     static constexpr uint8_t kReasonHaveInnerContents = 32;
 
     content::FetchHistogramsFromChildProcesses();
-    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample(
+    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample32(
         UseOopif() ? kReasonBlocklistedFeatures : kReasonHaveInnerContents);
     base::Bucket expected_not_restored(sample, 1);
 
diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc
index 9999289..8a47bb0 100644
--- a/chrome/browser/device_api/device_service_impl.cc
+++ b/chrome/browser/device_api/device_service_impl.cc
@@ -3,6 +3,8 @@
 // found in the LICENSE file.
 #include "chrome/browser/device_api/device_service_impl.h"
 
+#include <optional>
+
 #include "base/check_deref.h"
 #include "base/check_is_test.h"
 #include "base/containers/contains.h"
@@ -29,46 +31,71 @@
 #include "url/origin.h"
 
 #if BUILDFLAG(IS_CHROMEOS)
-#include "chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_constants.h"
-#include "chrome/common/url_constants.h"
-#endif
-
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "ash/constants/ash_features.h"
+#include "chrome/browser/ash/app_mode/isolated_web_app/kiosk_iwa_data.h"
+#include "chrome/browser/ash/app_mode/isolated_web_app/kiosk_iwa_manager.h"
 #include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h"
 #include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager.h"
+#include "chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_constants.h"
+#include "chrome/common/url_constants.h"
 #include "components/user_manager/user_manager.h"
-#endif
-
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
-#include "chrome/browser/lacros/app_mode/kiosk_session_service_lacros.h"
-#include "components/policy/core/common/policy_loader_lacros.h"
-#endif
+#endif  // BUILDFLAG(IS_CHROMEOS)
 
 namespace {
+#if BUILDFLAG(IS_CHROMEOS)
+// Checks that current user is a web kiosk.
+bool IsWebKiosk() {
+  return user_manager::UserManager::IsInitialized() &&
+         user_manager::UserManager::Get()->IsLoggedInAsWebKioskApp();
+}
+
+// Checks that current user is an IWA kiosk.
+bool IsIwaKiosk() {
+  return ash::features::IsIsolatedWebAppKioskEnabled() &&
+         user_manager::UserManager::IsInitialized() &&
+         user_manager::UserManager::Get()->IsLoggedInAsKioskIWA();
+}
+
+// Returns an origin of the current kiosk web app.
+// Should only be called when the current user is a web kiosk.
+url::Origin GetWebKioskOrigin() {
+  const AccountId& account_id =
+      user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId();
+  CHECK(ash::WebKioskAppManager::IsInitialized());
+  const ash::WebKioskAppData* app_data =
+      ash::WebKioskAppManager::Get()->GetAppByAccountId(account_id);
+  return url::Origin::Create(CHECK_DEREF(app_data).install_url());
+}
+
+// Returns an origin of the current kiosk isolated web app.
+// Should only be called when the current user is an IWA kiosk.
+url::Origin GetIwaKioskOrigin() {
+  const AccountId& account_id =
+      user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId();
+  const ash::KioskIwaData* iwa_data =
+      CHECK_DEREF(ash::KioskIwaManager::Get()).GetApp(account_id);
+  return CHECK_DEREF(iwa_data).origin();
+}
+
+std::optional<url::Origin> MaybeGetCurrentKioskOrigin() {
+  if (IsWebKiosk()) {
+    return GetWebKioskOrigin();
+  }
+  if (IsIwaKiosk()) {
+    return GetIwaKioskOrigin();
+  }
+  return std::nullopt;
+}
 
 // Check whether the target origin is the same as the main application running
 // in the Kiosk session.
 bool IsEqualToKioskOrigin(const url::Origin& origin) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  const AccountId& account_id =
-      user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId();
-  const ash::WebKioskAppData* app_data =
-      ash::WebKioskAppManager::Get()->GetAppByAccountId(account_id);
-  if (!app_data) {
-    // This can happen when the device service APIs are accessed from inside a
-    // ChromeApp.
-    return false;
-  }
-
-  return url::Origin::Create(app_data->install_url()) == origin;
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
-  DCHECK(KioskSessionServiceLacros::Get());
-  return url::Origin::Create(
-             KioskSessionServiceLacros::Get()->GetInstallURL()) == origin;
-#else
-  return false;
-#endif
+  std::optional<url::Origin> current_kiosk_origin =
+      MaybeGetCurrentKioskOrigin();
+  return current_kiosk_origin.has_value() &&
+         (current_kiosk_origin.value() == origin);
 }
+#endif  // BUILDFLAG(IS_CHROMEOS)
 
 Profile* GetProfile(content::RenderFrameHost& host) {
   return Profile::FromBrowserContext(host.GetBrowserContext());
@@ -109,12 +136,10 @@
 }
 
 bool IsAffiliatedUser() {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
   const user_manager::User* user =
       user_manager::UserManager::Get()->GetPrimaryUser();
   return (user != nullptr) && user->IsAffiliated();
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
-  return policy::PolicyLoaderLacros::IsMainUserAffiliated();
 #else
   return false;
 #endif
@@ -127,6 +152,7 @@
     return false;
   }
 
+#if BUILDFLAG(IS_CHROMEOS)
   if (IsRunningInAppMode()) {
     if (base::FeatureList::IsEnabled(
             permissions::features::
@@ -137,6 +163,8 @@
 
     return IsEqualToKioskOrigin(origin);
   }
+#endif  // BUILDFLAG(IS_CHROMEOS)
+
   return IsForceInstalledOrigin(host, origin);
 }
 
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
index f49641d..c27eaca2 100644
--- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
+++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
@@ -316,15 +316,10 @@
 
   if (auto* web_app_provider =
           web_app::WebAppProvider::GetForWebApps(profile)) {
-    // TODO(crbug.com/340952100): Evaluate call sites of
-    // FindBestAppWithUrlInScope for correctness.
     std::optional<webapps::AppId> app_id =
         web_app_provider->registrar_unsafe().FindBestAppWithUrlInScope(
             rfh->GetMainFrame()->GetLastCommittedURL(),
-            {
-                web_app::proto::InstallState::INSTALLED_WITH_OS_INTEGRATION,
-                web_app::proto::InstallState::INSTALLED_WITHOUT_OS_INTEGRATION,
-            });
+            web_app::WebAppFilter::InstalledInChrome());
     if (app_id) {
       const auto* web_app =
           web_app_provider->registrar_unsafe().GetAppById(app_id.value());
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
index 3d342f5d..18df484 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
@@ -299,7 +299,7 @@
   // others.
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       browser(),
-      https_server().GetURL("any-subdomain.google.com",
+      https_server().GetURL("meet.google.com",
                             "/extensions/hangout_services_test.html")));
 
   WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
@@ -307,7 +307,7 @@
 
   // Use a test server URL for uploading.
   g_browser_process->webrtc_log_uploader()->SetUploadUrlForTesting(
-      https_server().GetURL("any-subdomain.google.com", kLogUploadUrlPath));
+      https_server().GetURL("meet.google.com", kLogUploadUrlPath));
 
   ASSERT_TRUE(content::ExecJs(tab, "browsertestRunAllTests();"));
 
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
index e4f3608c..cf3674e5 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -2983,25 +2983,18 @@
   if (!web_app_provider) {
     return false;
   }
-  // TODO(crbug.com/340952100): Evaluate call sites of FindBestAppWithUrlInScope
-  // for correctness.
   auto app_id = web_app_provider->registrar_unsafe().FindBestAppWithUrlInScope(
-      origin.GetURL(),
-      {
-          web_app::proto::InstallState::INSTALLED_WITH_OS_INTEGRATION,
-          web_app::proto::InstallState::INSTALLED_WITHOUT_OS_INTEGRATION,
-      });
-  // TODO(crbug.com/340952100): Evaluate call sites of IsInstallState for
-  // correctness.
-  auto has_actively_installed_app =
+      origin.GetURL(), web_app::WebAppFilter::InstalledInChrome());
+
+  auto app_has_os_integration =
       app_id.has_value() &&
       web_app_provider->registrar_unsafe().GetInstallState(app_id.value()) ==
           web_app::proto::InstallState::INSTALLED_WITH_OS_INTEGRATION;
   // Update the cached value.
-  origin_state.web_app_install_status = has_actively_installed_app
+  origin_state.web_app_install_status = app_has_os_integration
                                             ? WebAppInstallStatus::kInstalled
                                             : WebAppInstallStatus::kUninstalled;
-  return has_actively_installed_app;
+  return app_has_os_integration;
 #endif  // BUILDFLAG(IS_ANDROID)
 }
 
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index c0729644..7fe0db8b 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -4944,6 +4944,11 @@
     "expiry_milestone": 125
   },
   {
+    "name": "history-opt-in-entry-points",
+    "owners": [ "samarchehade@google.com", "chrome-signin-team@google.com" ],
+    "expiry_milestone": 140
+  },
+  {
     "name": "history-pane-android",
     "owners": [ "wylieb@google.com", "clank-tab-dev@google.com" ],
     "expiry_milestone": 140
@@ -7003,6 +7008,14 @@
     "expiry_milestone": -1
   },
   {
+    "name": "privacy-guide-ai-settings",
+    "owners": [
+      "zalmashni@google.com",
+      "rainhard@chromium.org",
+      "chrome-browser-privacy-team@google.com"],
+    "expiry_milestone": 139
+  },
+  {
     "name": "privacy-guide-android-3",
     "owners": [
       "rubindl@chromium.org",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 5133f1e..83ec421 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1568,6 +1568,10 @@
 const char kPipTuckName[] = "Enable tuck for PiP windows";
 const char kPipTuckDescription[] = "Enables window tucking for PiP windows. ";
 
+const char kPrivacyGuideAiSettingsName[] = "AI settings in Privacy Guide";
+const char kPrivacyGuideAiSettingsDescription[] =
+    "Enables the AI settings linkout in the Privacy Guide completion card.";
+
 const char kPrivateNetworkAccessRespectPreflightResultsName[] =
     "Respect the result of Private Network Access preflights";
 const char kPrivateNetworkAccessRespectPreflightResultsDescription[] =
@@ -8120,6 +8124,10 @@
 #endif  // #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
 
 #if BUILDFLAG(IS_ANDROID)
+const char kHistoryOptInEntryPointsName[] = "History opt-in entry points";
+const char kHistoryOptInEntryPointsDescription[] =
+    "Add some history opt-in entry points.";
+
 const char kSupervisedUserForceSigninWithCapabilitiesName[] =
     "Use capabilities for supervised user forced sign-in";
 const char kSupervisedUserForceSigninWithCapabilitiesDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 91f735e..2a99797 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -818,6 +818,9 @@
 extern const char kPipTuckName[];
 extern const char kPipTuckDescription[];
 
+extern const char kPrivacyGuideAiSettingsName[];
+extern const char kPrivacyGuideAiSettingsDescription[];
+
 extern const char kPrivateNetworkAccessSendPreflightsName[];
 extern const char kPrivateNetworkAccessSendPreflightsDescription[];
 
@@ -4788,6 +4791,9 @@
 #endif  // #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
 
 #if BUILDFLAG(IS_ANDROID)
+extern const char kHistoryOptInEntryPointsName[];
+extern const char kHistoryOptInEntryPointsDescription[];
+
 extern const char kSupervisedUserForceSigninWithCapabilitiesName[];
 extern const char kSupervisedUserForceSigninWithCapabilitiesDescription[];
 #endif  // BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/glic/glic_enabling.cc b/chrome/browser/glic/glic_enabling.cc
index 1ef9ad7..852acaf 100644
--- a/chrome/browser/glic/glic_enabling.cc
+++ b/chrome/browser/glic/glic_enabling.cc
@@ -27,8 +27,8 @@
     return false;
   }
 
-  return profile->GetPrefs()->GetInteger(glic::prefs::kGlicEnabledByPolicy) ==
-         static_cast<int>(glic::prefs::EnabledByPolicyState::kEnabled);
+  return profile->GetPrefs()->GetInteger(glic::prefs::kGlicSettingsPolicy) ==
+         static_cast<int>(glic::prefs::SettingsPolicyState::kEnabled);
 }
 
 glic::GlicEnabledStatus GlicEnabling::CheckEnabling() {
diff --git a/chrome/browser/glic/glic_policy_browsertest.cc b/chrome/browser/glic/glic_policy_browsertest.cc
index 974fb557..302a9d6 100644
--- a/chrome/browser/glic/glic_policy_browsertest.cc
+++ b/chrome/browser/glic/glic_policy_browsertest.cc
@@ -26,8 +26,8 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_navigation_observer.h"
 
-using glic::prefs::EnabledByPolicyState;
-using glic::prefs::kGlicEnabledByPolicy;
+using glic::prefs::kGlicSettingsPolicy;
+using glic::prefs::SettingsPolicyState;
 
 namespace glic {
 class GlicButton;
@@ -105,9 +105,9 @@
       policy_for_profile_2_;
 
   static constexpr int kEnabledValue =
-      static_cast<int>(EnabledByPolicyState::kEnabled);
+      static_cast<int>(SettingsPolicyState::kEnabled);
   static constexpr int kDisabledValue =
-      static_cast<int>(EnabledByPolicyState::kDisabled);
+      static_cast<int>(SettingsPolicyState::kDisabled);
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
@@ -116,8 +116,8 @@
 IN_PROC_BROWSER_TEST_F(GlicPolicyTest, PrefDisabledByPolicy) {
   // By default the pref should start off unmanaged and defaulted to enabled.
   PrefService* prefs = browser()->profile()->GetPrefs();
-  EXPECT_FALSE(prefs->IsManagedPreference(kGlicEnabledByPolicy));
-  EXPECT_EQ(kEnabledValue, prefs->GetInteger(kGlicEnabledByPolicy));
+  EXPECT_FALSE(prefs->IsManagedPreference(kGlicSettingsPolicy));
+  EXPECT_EQ(kEnabledValue, prefs->GetInteger(kGlicSettingsPolicy));
 
   // Verify that policy can force-disable Glic.
   PolicyMap policies;
@@ -125,12 +125,12 @@
                POLICY_SOURCE_ENTERPRISE_DEFAULT, base::Value(kDisabledValue),
                nullptr);
   UpdateProviderPolicy(policies);
-  EXPECT_TRUE(prefs->IsManagedPreference(kGlicEnabledByPolicy));
-  EXPECT_EQ(kDisabledValue, prefs->GetInteger(kGlicEnabledByPolicy));
+  EXPECT_TRUE(prefs->IsManagedPreference(kGlicSettingsPolicy));
+  EXPECT_EQ(kDisabledValue, prefs->GetInteger(kGlicSettingsPolicy));
 
   // Verify the policy value cannot be overridden.
-  prefs->SetInteger(kGlicEnabledByPolicy, kEnabledValue);
-  EXPECT_EQ(kDisabledValue, prefs->GetInteger(kGlicEnabledByPolicy));
+  prefs->SetInteger(kGlicSettingsPolicy, kEnabledValue);
+  EXPECT_EQ(kDisabledValue, prefs->GetInteger(kGlicSettingsPolicy));
 }
 
 // Ensure that when policy disables Glic, a browser window doesn't show the Glic
@@ -141,7 +141,7 @@
 
   // The pref defaults to enabled.
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   // Disable the policy in the default profile.
   PolicyMap policies;
@@ -150,7 +150,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kDisabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   {
     // A new window in profile 1 shouldn't have the Glic button.
@@ -169,7 +169,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   {
     // A new window in profile 1 should again get the Glic button now that the
@@ -193,7 +193,7 @@
 
   // The pref defaults to enabled. Ensure the button was created in each window.
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
   EXPECT_TRUE(GetGlicButtonForBrowser(profile_1_window_1));
   EXPECT_TRUE(GetGlicButtonForBrowser(profile_1_window_2));
   EXPECT_TRUE(GetGlicButtonForBrowser(profile_2_window_1));
@@ -206,7 +206,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kDisabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   {
     // The windows in profile 1 should have lost their Glic button.
@@ -224,7 +224,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   {
     // The windows in profile 1 should get back their Glic button.
@@ -248,9 +248,9 @@
 
   // The pref defaults to enabled.
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
   ASSERT_EQ(kEnabledValue,
-            profile_2_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_2_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   glic::GlicBackgroundModeManager* background_mode_manager =
       g_browser_process->GetFeatures()->glic_background_mode_manager();
@@ -264,9 +264,9 @@
                  nullptr);
     UpdateProviderPolicy(policies);
     ASSERT_EQ(kDisabledValue,
-              profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
     ASSERT_EQ(kEnabledValue,
-              profile_2_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_2_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
   }
 
   // Background mode should remain active since profile_2_ still has it enabled.
@@ -280,9 +280,9 @@
                  nullptr);
     policy_for_profile_2_.UpdateChromePolicy(policies);
     ASSERT_EQ(kDisabledValue,
-              profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
     ASSERT_EQ(kDisabledValue,
-              profile_2_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_2_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
   }
 
   // Background mode should be exited since none of the loaded profiles enable
@@ -297,9 +297,9 @@
                  nullptr);
     UpdateProviderPolicy(policies);
     ASSERT_EQ(kEnabledValue,
-              profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
     ASSERT_EQ(kDisabledValue,
-              profile_2_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+              profile_2_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
   }
 
   // Background mode should be reentered since the first profile is enabled.
@@ -315,7 +315,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kDisabledValue,
-            browser()->profile()->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            browser()->profile()->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   GURL glic_url = GURL(chrome::kChromeUIGlicURL);
 
@@ -337,7 +337,7 @@
                nullptr);
   UpdateProviderPolicy(policies);
   ASSERT_EQ(kEnabledValue,
-            profile_1_->GetPrefs()->GetInteger(kGlicEnabledByPolicy));
+            profile_1_->GetPrefs()->GetInteger(kGlicSettingsPolicy));
 
   // Navigating to chrome://glic should now succeed.
   {
diff --git a/chrome/browser/glic/glic_pref_names.h b/chrome/browser/glic/glic_pref_names.h
index 6a500406..93201c3 100644
--- a/chrome/browser/glic/glic_pref_names.h
+++ b/chrome/browser/glic/glic_pref_names.h
@@ -20,10 +20,10 @@
 // ************* PROFILE PREFS ***************
 // Prefs below are tied to a user profile
 
-// Integer pref that determines whether Glic is enabled for this user profile.
-// This is controlled from enterprise policy.
-inline constexpr char kGlicEnabledByPolicy[] = "glic.enabled_by_policy";
-enum class EnabledByPolicyState {
+// Integer pref that determines Glic enabling state for this user profile. This
+// is controlled from enterprise policy.
+inline constexpr char kGlicSettingsPolicy[] = "glic.settings_policy";
+enum class SettingsPolicyState {
   kMinValue = 0,
 
   kEnabled = kMinValue,
diff --git a/chrome/browser/glic/glic_profile_configuration.cc b/chrome/browser/glic/glic_profile_configuration.cc
index 4b918cec..2c2d497 100644
--- a/chrome/browser/glic/glic_profile_configuration.cc
+++ b/chrome/browser/glic/glic_profile_configuration.cc
@@ -26,7 +26,7 @@
     : profile_(*profile) {
   pref_registrar_.Init(profile_->GetPrefs());
   pref_registrar_.Add(
-      prefs::kGlicEnabledByPolicy,
+      prefs::kGlicSettingsPolicy,
       base::BindRepeating(&GlicProfileConfiguration::OnEnabledByPolicyChanged,
                           base::Unretained(this)));
 }
@@ -37,8 +37,8 @@
 void GlicProfileConfiguration::RegisterProfilePrefs(
     PrefRegistrySimple* registry) {
   registry->RegisterIntegerPref(
-      prefs::kGlicEnabledByPolicy,
-      static_cast<int>(prefs::EnabledByPolicyState::kEnabled));
+      prefs::kGlicSettingsPolicy,
+      static_cast<int>(prefs::SettingsPolicyState::kEnabled));
   registry->RegisterBooleanPref(prefs::kGlicMicrophoneEnabled, false);
   registry->RegisterBooleanPref(prefs::kGlicGeolocationEnabled, false);
   registry->RegisterBooleanPref(prefs::kGlicTabContextEnabled, false);
@@ -46,8 +46,8 @@
 }
 
 bool GlicProfileConfiguration::IsEnabledByPolicy() const {
-  return profile_->GetPrefs()->GetInteger(prefs::kGlicEnabledByPolicy) ==
-         static_cast<int>(prefs::EnabledByPolicyState::kEnabled);
+  return profile_->GetPrefs()->GetInteger(prefs::kGlicSettingsPolicy) ==
+         static_cast<int>(prefs::SettingsPolicyState::kEnabled);
 }
 
 void GlicProfileConfiguration::OnEnabledByPolicyChanged() {
diff --git a/chrome/browser/glic/launcher/glic_background_mode_manager.h b/chrome/browser/glic/launcher/glic_background_mode_manager.h
index 2a62801..3589213 100644
--- a/chrome/browser/glic/launcher/glic_background_mode_manager.h
+++ b/chrome/browser/glic/launcher/glic_background_mode_manager.h
@@ -88,9 +88,10 @@
   std::unique_ptr<GlicStatusIcon> status_icon_;
 
   // The current state of the launcher_enabled pref. Note that the pref is a
-  // local state and is thus per-installation. Each profile also has an
-  // "enabled_by_policy". Background mode is entered only if `enabled_pref` is
-  // true AND at least one loaded profile is enabled by policy.
+  // local state and is thus per-installation. Each profile also has a
+  // "settings_policy" pref which can be used to disable the feature for a
+  // profile. Background mode is entered only if `enabled_pref` is true AND at
+  // least one loaded profile is enabled by policy.
   bool enabled_pref_ = false;
 
   // The actual registered hotkey may be different from the expected hotkey
diff --git a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
index ed596820..4b76b8f 100644
--- a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
+++ b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
@@ -147,7 +147,7 @@
 
   // Checks that the UMA bucket count precisely matches the provided value.
   void ExpectUniqueUMABucketCount(std::string_view metric_name,
-                                  base::Histogram::Sample sample,
+                                  base::Histogram::Sample32 sample,
                                   base::Histogram::Count count);
 
   // Checks that we have a single UMA entry.
diff --git a/chrome/browser/permissions/prediction_based_permission_ui_selector.cc b/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
index b15e29f..44ad909a 100644
--- a/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
+++ b/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
@@ -106,6 +106,7 @@
   VLOG(1) << "[CPSS] Selector activated";
   callback_ = std::move(callback);
   last_request_grant_likelihood_ = std::nullopt;
+  last_permission_request_relevance_ = std::nullopt;
   was_decision_held_back_ = std::nullopt;
   const PredictionSource prediction_source =
       GetPredictionTypeToUse(request->request_type());
@@ -220,6 +221,11 @@
   return last_request_grant_likelihood_;
 }
 
+std::optional<permissions::PermissionRequestRelevance>
+PredictionBasedPermissionUiSelector::PermissionRequestRelevanceForUKM() {
+  return last_permission_request_relevance_;
+}
+
 std::optional<bool>
 PredictionBasedPermissionUiSelector::WasSelectorDecisionHeldback() {
   return was_decision_held_back_;
@@ -248,6 +254,13 @@
                                ? 1
                                : 0;
 
+  last_permission_request_relevance_ =
+      base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)
+          ? permissions::PermissionRequestRelevance::kVeryLow
+          : permissions::PermissionRequestRelevance::kUnspecified;
+
+  features.permission_relevance = last_permission_request_relevance_.value();
+
   base::Time cutoff = base::Time::Now() - kPermissionActionCutoffAge;
 
   permissions::PermissionActionsHistory* action_history =
diff --git a/chrome/browser/permissions/prediction_based_permission_ui_selector.h b/chrome/browser/permissions/prediction_based_permission_ui_selector.h
index 5a03732..f02ad584 100644
--- a/chrome/browser/permissions/prediction_based_permission_ui_selector.h
+++ b/chrome/browser/permissions/prediction_based_permission_ui_selector.h
@@ -11,6 +11,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/memory/raw_ptr.h"
 #include "components/permissions/permission_actions_history.h"
+#include "components/permissions/permission_request_enums.h"
 #include "components/permissions/permission_ui_selector.h"
 #include "components/permissions/prediction_service/prediction_request_features.h"
 #include "components/permissions/request_type.h"
@@ -56,6 +57,9 @@
   std::optional<PredictionGrantLikelihood> PredictedGrantLikelihoodForUKM()
       override;
 
+  std::optional<permissions::PermissionRequestRelevance>
+  PermissionRequestRelevanceForUKM() override;
+
   std::optional<bool> WasSelectorDecisionHeldback() override;
 
  private:
@@ -88,6 +92,8 @@
   raw_ptr<Profile> profile_;
   std::unique_ptr<PredictionServiceRequest> request_;
   std::optional<PredictionGrantLikelihood> last_request_grant_likelihood_;
+  std::optional<permissions::PermissionRequestRelevance>
+      last_permission_request_relevance_;
   std::optional<bool> was_decision_held_back_;
 
   std::optional<PredictionGrantLikelihood> likelihood_override_for_testing_;
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 77a87976..dbc0726a 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -3300,9 +3300,9 @@
 
 #if BUILDFLAG(ENABLE_GLIC)
   handlers->AddHandler(std::make_unique<IntRangePolicyHandler>(
-      key::kGlicSettings, glic::prefs::kGlicEnabledByPolicy,
-      static_cast<int>(glic::prefs::EnabledByPolicyState::kMinValue),
-      static_cast<int>(glic::prefs::EnabledByPolicyState::kMaxValue), false));
+      key::kGlicSettings, glic::prefs::kGlicSettingsPolicy,
+      static_cast<int>(glic::prefs::SettingsPolicyState::kMinValue),
+      static_cast<int>(glic::prefs::SettingsPolicyState::kMaxValue), false));
 #endif
 
   return handlers;
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc
index a9162e99..69e1b2b 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -782,7 +782,7 @@
   void ExpectBlocklistedFeature(
       blink::scheduler::WebSchedulerTrackedFeature feature,
       base::Location location) {
-    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample(feature);
+    base::HistogramBase::Sample32 sample = base::HistogramBase::Sample32(feature);
     AddSampleToBuckets(&expected_blocklisted_features_, sample);
 
     EXPECT_THAT(
diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc
index efd753ea..54039737 100644
--- a/chrome/browser/profiles/profile_attributes_storage.cc
+++ b/chrome/browser/profiles/profile_attributes_storage.cc
@@ -39,6 +39,7 @@
 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
 #include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/common/pref_names.h"
+#include "chrome/grit/branded_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/account_id/account_id.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -653,12 +654,17 @@
 
 std::u16string ProfileAttributesStorage::ChooseNameForNewProfile() const {
   std::u16string name;
-  for (int name_index = 1;; ++name_index) {
+  for (int name_index = 0;; ++name_index) {
+    // Try using "Your Chrome" if possible, or use the lowest <i> so that
+    // "Person <i>" is available.
     // Using native digits will break IsDefaultProfileName() below because
     // it uses sscanf.
     // TODO(jshin): fix IsDefaultProfileName to handle native digits.
-    name = l10n_util::GetStringFUTF16(IDS_NEW_NUMBERED_PROFILE_NAME,
-                                      base::NumberToString16(name_index));
+    name = name_index == 0
+               ? l10n_util::GetStringUTF16(
+                     IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME)
+               : l10n_util::GetStringFUTF16(IDS_NEW_NUMBERED_PROFILE_NAME,
+                                            base::NumberToString16(name_index));
 
     // Loop through previously named profiles to ensure we're not duplicating.
     std::vector<ProfileAttributesEntry*> entries =
@@ -676,6 +682,12 @@
 bool ProfileAttributesStorage::IsDefaultProfileName(
     const std::u16string& name,
     bool include_check_for_legacy_profile_name) const {
+  if (name ==
+      l10n_util::GetStringUTF16(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME)) {
+    // Profile name is "Your Chrome".
+    return true;
+  }
+
   // Check whether it's one of the "Person %d" style names.
   std::u16string default_name_prefix =
       l10n_util::GetStringFUTF16(IDS_NEW_NUMBERED_PROFILE_NAME, u"");
diff --git a/chrome/browser/profiles/profile_attributes_storage_unittest.cc b/chrome/browser/profiles/profile_attributes_storage_unittest.cc
index 857e8e7a..d25c124 100644
--- a/chrome/browser/profiles/profile_attributes_storage_unittest.cc
+++ b/chrome/browser/profiles/profile_attributes_storage_unittest.cc
@@ -32,6 +32,7 @@
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/common/pref_names.h"
+#include "chrome/grit/branded_strings.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "components/account_id/account_id.h"
@@ -46,6 +47,7 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/image/image_unittest_util.h"
@@ -1920,6 +1922,29 @@
 }
 #endif  // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
 
+TEST_F(ProfileAttributesStorageTest, ChooseNameForNewProfile) {
+  DisableObserver();  // This test doesn't test observers.
+
+  // Default profile names should be "Your Chrome" and then "Person 1",
+  // "Person 2", etc...
+  const auto kExpectedProfileNames = std::to_array<std::u16string>(
+      {l10n_util::GetStringUTF16(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME),
+       u"Person 1", u"Person 2", u"Person 3"});
+
+  for (size_t i = 0; i < kExpectedProfileNames.size(); ++i) {
+    const std::u16string expected_name = kExpectedProfileNames[i];
+    std::u16string profile_name = storage()->ChooseNameForNewProfile();
+    EXPECT_EQ(profile_name, expected_name);
+
+    // Add the profile, so that the next call to `ChooseNameForNewProfile()`
+    // generates the next name.
+    ProfileAttributesInitParams params;
+    params.profile_name = std::move(profile_name);
+    params.profile_path = GetProfilePath(base::StringPrintf("path_%u", i));
+    storage()->AddProfile(std::move(params));
+  }
+}
+
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
 TEST_F(ProfileAttributesStorageTest,
        MigrateLegacyProfileNamesAndRecomputeIfNeeded) {
@@ -1977,10 +2002,18 @@
   EXPECT_EQ(base::ASCIIToUTF16(kTestCases[10].profile_name), entry->GetName());
 
   // Legacy profile names like "Default Profile" and "First user" should be
-  // migrated to "Person %n" type names, i.e. any permutation of "Person %n".
+  // migrated to "Your Chrome" and "Person %n" type names.
   std::set<std::u16string> expected_profile_names{
-      u"Person 1", u"Person 2", u"Person 3", u"Person 4", u"Person 5",
-      u"Person 6", u"Person 7", u"Person 8", u"Person 9", u"Person 10"};
+      l10n_util::GetStringUTF16(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME),
+      u"Person 1",
+      u"Person 2",
+      u"Person 3",
+      u"Person 4",
+      u"Person 5",
+      u"Person 6",
+      u"Person 7",
+      u"Person 8",
+      u"Person 9"};
 
   const char* profile_paths[] = {
       kTestCases[0].profile_path, kTestCases[1].profile_path,
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
index 46be6b4d..aca4cb02 100644
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -78,6 +78,7 @@
 #include "chrome/common/logging_chrome.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
+#include "chrome/grit/branded_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/account_id/account_id.h"
 #include "components/bookmarks/common/bookmark_pref_names.h"
@@ -1159,7 +1160,8 @@
 #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
       profile_name = base::UTF16ToUTF8(storage.ChooseNameForNewProfile());
 #else
-      profile_name = l10n_util::GetStringUTF8(IDS_DEFAULT_PROFILE_NAME);
+      profile_name =
+          l10n_util::GetStringUTF8(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME);
 #endif
     }
   }
diff --git a/chrome/browser/regional_capabilities/BUILD.gn b/chrome/browser/regional_capabilities/BUILD.gn
index bc3bd68b..6319789 100644
--- a/chrome/browser/regional_capabilities/BUILD.gn
+++ b/chrome/browser/regional_capabilities/BUILD.gn
@@ -7,19 +7,67 @@
 assert(is_win || is_mac || is_linux || is_chromeos || is_android)
 
 source_set("regional_capabilities") {
-  public = [ "regional_capabilities_service_factory.h" ]
-
-  sources = [ "regional_capabilities_service_factory.cc" ]
-
-  public_deps = [
-    "//base",
-    "//chrome/browser/profiles:profile",
+  sources = [
+    "regional_capabilities_service_client.cc",
+    "regional_capabilities_service_client.h",
+    "regional_capabilities_service_factory.cc",
+    "regional_capabilities_service_factory.h",
   ]
 
   deps = [
+    "//base",
     "//chrome/browser:browser_process",
+    "//chrome/browser/profiles",
     "//components/country_codes",
     "//components/regional_capabilities",
     "//components/variations/service",
   ]
+
+  if (is_android) {
+    deps += [ "//chrome/browser/regional_capabilities/android:jni_headers" ]
+  }
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "regional_capabilities_service_client_unittest.cc" ]
+
+  deps = [
+    ":regional_capabilities",
+    "//base/test:test_support",
+    "//components/country_codes",
+    "//components/metrics",
+    "//components/regional_capabilities",
+    "//components/regional_capabilities:test_support",
+    "//components/search_engines:search_engines_switches",
+    "//components/sync_preferences:test_support",
+    "//testing/gtest",
+  ]
+
+  if (is_android) {
+    # Note: "//components/regional_capabilities/android:test_utils_java" is also
+    # also needed, but it seems that for now it needs to be added in the `deps`
+    # of `//components:components_unittests`.
+    deps += [
+      "//chrome/browser/regional_capabilities/android:test_utils_jni_headers",
+    ]
+  }
+}
+
+if (!is_android) {
+  source_set("browser_tests") {
+    testonly = true
+    sources = [ "regional_capabilities_service_factory_browsertest.cc" ]
+
+    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+    deps = [
+      ":regional_capabilities",
+      "//base",
+      "//chrome/test:test_support",
+      "//components/country_codes",
+      "//components/regional_capabilities",
+      "//components/variations/service",
+      "//testing/gtest",
+    ]
+  }
 }
diff --git a/components/regional_capabilities/android/BUILD.gn b/chrome/browser/regional_capabilities/android/BUILD.gn
similarity index 66%
rename from components/regional_capabilities/android/BUILD.gn
rename to chrome/browser/regional_capabilities/android/BUILD.gn
index be1200f..9f4b6b9 100644
--- a/components/regional_capabilities/android/BUILD.gn
+++ b/chrome/browser/regional_capabilities/android/BUILD.gn
@@ -6,7 +6,7 @@
 import("//third_party/jni_zero/jni_zero.gni")
 
 android_library("java") {
-  sources = [ "java/src/org/chromium/components/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java" ]
+  sources = [ "java/src/org/chromium/chrome/browser/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java" ]
 
   srcjar_deps = [ ":jni_headers" ]
 
@@ -21,12 +21,12 @@
 }
 
 generate_jni("jni_headers") {
-  sources = [ "java/src/org/chromium/components/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java" ]
+  sources = [ "java/src/org/chromium/chrome/browser/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java" ]
 }
 
 android_library("test_utils_java") {
   testonly = true
-  sources = [ "java/src/org/chromium/components/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java" ]
+  sources = [ "java/src/org/chromium/chrome/browser/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java" ]
   deps = [
     ":java",
     "//base:base_java_test_support",
@@ -40,5 +40,5 @@
 
 generate_jni("test_utils_jni_headers") {
   testonly = true
-  sources = [ "java/src/org/chromium/components/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java" ]
+  sources = [ "java/src/org/chromium/chrome/browser/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java" ]
 }
diff --git a/components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java b/chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java
similarity index 98%
rename from components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java
rename to chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java
index 12174e3..7aac6c6 100644
--- a/components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java
+++ b/chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/RegionalCapabilitiesServiceClientAndroid.java
@@ -1,7 +1,7 @@
 // Copyright 2025 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-package org.chromium.components.regional_capabilities;
+package org.chromium.chrome.browser.regional_capabilities;
 
 import android.text.TextUtils;
 
diff --git a/components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java b/chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java
similarity index 78%
rename from components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java
rename to chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java
index a9d6c73e..465e303 100644
--- a/components/regional_capabilities/android/java/src/org/chromium/components/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java
+++ b/chrome/browser/regional_capabilities/android/java/src/org/chromium/chrome/browser/regional_capabilities/test/util/RegionalCapabilitiesServiceTestUtil.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.components.regional_capabilities.test.util;
+package org.chromium.chrome.browser.regional_capabilities.test.util;
 
 import static org.mockito.Mockito.doReturn;
 
@@ -14,7 +14,7 @@
 
 import org.chromium.base.Promise;
 import org.chromium.base.test.util.LooperUtils;
-import org.chromium.components.regional_capabilities.RegionalCapabilitiesServiceClientAndroid;
+import org.chromium.chrome.browser.regional_capabilities.RegionalCapabilitiesServiceClientAndroid;
 import org.chromium.components.search_engines.SearchEngineChoiceService;
 import org.chromium.components.search_engines.SearchEngineCountryDelegate;
 
@@ -45,8 +45,8 @@
     }
 
     /**
-     * Fulfills the promise returned by `SearchEngineCountryDelegate` to simulate a response from
-     * the device APIs.
+     * Fulfills the promise returned by `SearchEngineChoiceCountry` to simulate a response from the
+     * device APIs.
      *
      * @param deviceCountry the result of the device country request.
      */
@@ -60,6 +60,19 @@
     }
 
     /**
+     * Rejects the promise returned by `SearchEngineChoiceCountry` to simulate a failure of the
+     * request to the device APIs.
+     */
+    @CalledByNative
+    public void triggerDeviceCountryFailure() {
+        mDeviceCountry.reject();
+        // `Promise` posts callback tasks on Android Looper which is not integrated with native
+        // RunLoop in NativeTest. Run these tasks synchronously now.
+        // TODO(crbug.com/40723709): remove this hack once Promise uses PostTask.
+        runLooperTasks();
+    }
+
+    /**
      * Runs all tasks that are currently posted on the {@link Looper}'s message queue on the current
      * thread.
      */
diff --git a/chrome/browser/regional_capabilities/regional_capabilities_service_client.cc b/chrome/browser/regional_capabilities/regional_capabilities_service_client.cc
new file mode 100644
index 0000000..4f25cc2
--- /dev/null
+++ b/chrome/browser/regional_capabilities/regional_capabilities_service_client.cc
@@ -0,0 +1,96 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/regional_capabilities/regional_capabilities_service_client.h"
+
+#include "base/functional/callback.h"
+#include "base/strings/string_util.h"
+#include "components/country_codes/country_codes.h"
+
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+#include "components/variations/service/variations_service.h"
+#endif
+
+#if BUILDFLAG(IS_ANDROID)
+#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/regional_capabilities/android/jni_headers/RegionalCapabilitiesServiceClientAndroid_jni.h"
+#endif
+
+namespace regional_capabilities {
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+RegionalCapabilitiesServiceClient::RegionalCapabilitiesServiceClient(
+    variations::VariationsService* variations_service)
+    : variations_country_id_(
+          variations_service
+              ? country_codes::CountryStringToCountryID(
+                    base::ToUpperASCII(variations_service->GetLatestCountry()))
+              : country_codes::kCountryIDUnknown) {}
+#else
+RegionalCapabilitiesServiceClient::RegionalCapabilitiesServiceClient() =
+    default;
+
+#endif
+
+RegionalCapabilitiesServiceClient::~RegionalCapabilitiesServiceClient() =
+    default;
+
+int RegionalCapabilitiesServiceClient::GetFallbackCountryId() {
+  return country_codes::GetCurrentCountryID();
+}
+
+#if BUILDFLAG(IS_ANDROID)
+void RegionalCapabilitiesServiceClient::FetchCountryId(
+    CountryIdCallback on_country_id_fetched) {
+  // On Android get it from a device API in Java.
+  // Usage of `WeakPtr` is crucial here, as `RegionalCapabilitiesService` is
+  // not guaranteed to be alive when the response from Java arrives.
+  auto heap_callback =
+      std::make_unique<CountryIdCallback>(std::move(on_country_id_fetched));
+  // The ownership of the callback on the heap is passed to Java. It will be
+  // deleted by JNI_RegionalCapabilitiesService_ProcessDeviceCountryResponse.
+  Java_RegionalCapabilitiesServiceClientAndroid_requestDeviceCountry(
+      base::android::AttachCurrentThread(),
+      reinterpret_cast<intptr_t>(heap_callback.release()));
+}
+#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+void RegionalCapabilitiesServiceClient::FetchCountryId(
+    CountryIdCallback on_country_id_fetched) {
+  std::move(on_country_id_fetched).Run(variations_country_id_);
+}
+#else
+// On other platforms, defer to `GetCurrentCountryID()`.
+void RegionalCapabilitiesServiceClient::FetchCountryId(
+    CountryIdCallback on_country_id_fetched) {
+  std::move(on_country_id_fetched).Run(country_codes::GetCurrentCountryID());
+}
+#endif
+
+#if BUILDFLAG(IS_ANDROID)
+void JNI_RegionalCapabilitiesServiceClientAndroid_ProcessDeviceCountryResponse(
+    JNIEnv* env,
+    jlong ptr_to_native_callback,
+    const base::android::JavaParamRef<jstring>& j_device_country) {
+  // Using base::WrapUnique ensures that the callback is deleted when this goes
+  // out of scope.
+  using CountryIdCallback =
+      RegionalCapabilitiesService::Client::CountryIdCallback;
+  std::unique_ptr<CountryIdCallback> heap_callback = base::WrapUnique(
+      reinterpret_cast<CountryIdCallback*>(ptr_to_native_callback));
+  CHECK(heap_callback);
+  if (!j_device_country) {
+    return;
+  }
+  std::string device_country =
+      base::android::ConvertJavaStringToUTF8(env, j_device_country);
+  int device_country_id =
+      country_codes::CountryStringToCountryID(device_country);
+  std::move(*heap_callback).Run(device_country_id);
+}
+
+#endif  // BUILDFLAG(IS_ANDROID)
+
+}  // namespace regional_capabilities
diff --git a/chrome/browser/regional_capabilities/regional_capabilities_service_client.h b/chrome/browser/regional_capabilities/regional_capabilities_service_client.h
new file mode 100644
index 0000000..fa588b1
--- /dev/null
+++ b/chrome/browser/regional_capabilities/regional_capabilities_service_client.h
@@ -0,0 +1,45 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_SERVICE_CLIENT_H_
+#define CHROME_BROWSER_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_SERVICE_CLIENT_H_
+
+#include "base/functional/callback_forward.h"
+#include "build/build_config.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
+
+namespace variations {
+class VariationsService;
+}
+
+namespace regional_capabilities {
+
+// Helper that is responsible for providing the `RegionalCapabilitiesService`
+// with country data that could be coming from platform-specific or //chrome
+// layer sources.
+class RegionalCapabilitiesServiceClient
+    : public RegionalCapabilitiesService::Client {
+ public:
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+  explicit RegionalCapabilitiesServiceClient(
+      variations::VariationsService* variations_service);
+#else
+  RegionalCapabilitiesServiceClient();
+#endif
+
+  ~RegionalCapabilitiesServiceClient() override;
+
+  int GetFallbackCountryId() override;
+
+  void FetchCountryId(CountryIdCallback country_id_fetched_callback) override;
+
+ private:
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+  const int variations_country_id_;
+#endif
+};
+
+}  // namespace regional_capabilities
+
+#endif  // CHROME_BROWSER_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_SERVICE_CLIENT_H_
diff --git a/chrome/browser/regional_capabilities/regional_capabilities_service_client_unittest.cc b/chrome/browser/regional_capabilities/regional_capabilities_service_client_unittest.cc
new file mode 100644
index 0000000..e11fa2dc
--- /dev/null
+++ b/chrome/browser/regional_capabilities/regional_capabilities_service_client_unittest.cc
@@ -0,0 +1,132 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/regional_capabilities/regional_capabilities_service_client.h"
+
+#include <optional>
+
+#include "base/functional/bind.h"
+#include "base/functional/callback.h"
+#include "base/test/bind.h"
+#include "components/country_codes/country_codes.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#if BUILDFLAG(IS_ANDROID)
+#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
+#include "chrome/browser/regional_capabilities/android/test_utils_jni_headers/RegionalCapabilitiesServiceTestUtil_jni.h"
+#endif
+
+namespace regional_capabilities {
+
+namespace {
+
+#if BUILDFLAG(IS_ANDROID)
+constexpr char kBelgiumCountryCode[] = "BE";
+
+constexpr int kBelgiumCountryId =
+    country_codes::CountryCharsToCountryID(kBelgiumCountryCode[0],
+                                           kBelgiumCountryCode[1]);
+
+class TestSupportAndroid {
+ public:
+  TestSupportAndroid() {
+    JNIEnv* env = base::android::AttachCurrentThread();
+    base::android::ScopedJavaLocalRef<jobject> java_ref =
+        Java_RegionalCapabilitiesServiceTestUtil_Constructor(env);
+    java_test_util_ref_.Reset(env, java_ref.obj());
+  }
+
+  ~TestSupportAndroid() {
+    JNIEnv* env = base::android::AttachCurrentThread();
+    Java_RegionalCapabilitiesServiceTestUtil_destroy(env, java_test_util_ref_);
+  }
+
+  void ReturnDeviceCountry(const std::string& device_country) {
+    JNIEnv* env = base::android::AttachCurrentThread();
+    Java_RegionalCapabilitiesServiceTestUtil_returnDeviceCountry(
+        env, java_test_util_ref_,
+        base::android::ConvertUTF8ToJavaString(env, device_country));
+  }
+
+  void TriggerDeviceCountryFailure() {
+    JNIEnv* env = base::android::AttachCurrentThread();
+
+    Java_RegionalCapabilitiesServiceTestUtil_triggerDeviceCountryFailure(
+        env, java_test_util_ref_);
+  }
+
+ private:
+  base::android::ScopedJavaGlobalRef<jobject> java_test_util_ref_;
+};
+#endif
+
+}  // namespace
+
+class RegionalCapabilitiesServiceClientTest : public ::testing::Test {};
+
+TEST_F(RegionalCapabilitiesServiceClientTest, GetFallbackCountryId) {
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+  RegionalCapabilitiesServiceClient client(/* variations_service= */ nullptr);
+#else
+  RegionalCapabilitiesServiceClient client;
+#endif
+
+  EXPECT_EQ(client.GetFallbackCountryId(),
+            country_codes::GetCurrentCountryID());
+}
+
+#if BUILDFLAG(IS_ANDROID)
+
+TEST_F(RegionalCapabilitiesServiceClientTest, FetchCountryId_Sync) {
+  RegionalCapabilitiesServiceClient client;
+
+  TestSupportAndroid test_support;
+  test_support.ReturnDeviceCountry(kBelgiumCountryCode);
+
+  std::optional<int> actual_country_id;
+  client.FetchCountryId(
+      base::BindLambdaForTesting([&actual_country_id](int device_country_id) {
+        actual_country_id = device_country_id;
+      }));
+  EXPECT_EQ(actual_country_id, kBelgiumCountryId);
+}
+
+TEST_F(RegionalCapabilitiesServiceClientTest, FetchCountryId_Async) {
+  RegionalCapabilitiesServiceClient client;
+
+  TestSupportAndroid test_support;
+
+  std::optional<int> actual_country_id;
+  client.FetchCountryId(
+      base::BindLambdaForTesting([&actual_country_id](int device_country_id) {
+        actual_country_id = device_country_id;
+      }));
+  EXPECT_EQ(actual_country_id, std::nullopt);
+
+  test_support.ReturnDeviceCountry(kBelgiumCountryCode);
+
+  EXPECT_EQ(actual_country_id, kBelgiumCountryId);
+}
+
+TEST_F(RegionalCapabilitiesServiceClientTest, FetchCountryId_Failure) {
+  RegionalCapabilitiesServiceClient client;
+
+  TestSupportAndroid test_support;
+  test_support.TriggerDeviceCountryFailure();
+
+  std::optional<int> actual_country_id;
+  client.FetchCountryId(
+      base::BindLambdaForTesting([&actual_country_id](int device_country_id) {
+        actual_country_id = device_country_id;
+      }));
+
+  // The callback is dropped.
+  EXPECT_EQ(actual_country_id, std::nullopt);
+}
+
+#endif  // BUILDFLAG(IS_ANDROID)
+
+}  // namespace regional_capabilities
diff --git a/chrome/browser/regional_capabilities/regional_capabilities_service_factory.cc b/chrome/browser/regional_capabilities/regional_capabilities_service_factory.cc
index 77fb7ff..c0ee8fc 100644
--- a/chrome/browser/regional_capabilities/regional_capabilities_service_factory.cc
+++ b/chrome/browser/regional_capabilities/regional_capabilities_service_factory.cc
@@ -9,7 +9,7 @@
 #include "base/check_deref.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
-#include "components/country_codes/country_codes.h"
+#include "chrome/browser/regional_capabilities/regional_capabilities_service_client.h"
 #include "components/regional_capabilities/regional_capabilities_service.h"
 
 #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
@@ -18,33 +18,6 @@
 
 namespace regional_capabilities {
 
-namespace {
-
-class RegionalCapabilitiesServiceClient
-    : public regional_capabilities::RegionalCapabilitiesService::Client {
- public:
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-  // On ChromeOS and Linux, get it from `VariationsService`, by polling at
-  // every startup until it is found.
-  explicit RegionalCapabilitiesServiceClient(
-      variations::VariationsService* variations_service)
-      : country_id_(
-            variations_service
-                ? country_codes::CountryStringToCountryID(base::ToUpperASCII(
-                      variations_service->GetLatestCountry()))
-                : country_codes::kCountryIDUnknown) {}
-
-  void FetchCountryId(CountryIdCallback on_country_id_fetched) override {
-    std::move(on_country_id_fetched).Run(country_id_);
-  }
-
- private:
-  int country_id_;
-#endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-};
-
-}  // namespace
-
 // static
 RegionalCapabilitiesService* RegionalCapabilitiesServiceFactory::GetForProfile(
     Profile* profile) {
@@ -83,12 +56,11 @@
     content::BrowserContext* context) const {
   Profile* profile = Profile::FromBrowserContext(context);
   auto regional_capabilities_service_client =
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
       std::make_unique<RegionalCapabilitiesServiceClient>(
-          g_browser_process->variations_service());
-#else
-      std::make_unique<RegionalCapabilitiesServiceClient>();
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+          g_browser_process->variations_service()
 #endif
+      );
 
   return std::make_unique<RegionalCapabilitiesService>(
       CHECK_DEREF(profile->GetPrefs()),
diff --git a/chrome/browser/regional_capabilities/regional_capabilities_service_factory_browsertest.cc b/chrome/browser/regional_capabilities/regional_capabilities_service_factory_browsertest.cc
new file mode 100644
index 0000000..363c897
--- /dev/null
+++ b/chrome/browser/regional_capabilities/regional_capabilities_service_factory_browsertest.cc
@@ -0,0 +1,86 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/regional_capabilities/regional_capabilities_service_factory.h"
+
+#include "base/check_deref.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "components/country_codes/country_codes.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
+#include "components/variations/variations_switches.h"
+#include "content/public/test/browser_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace regional_capabilities {
+namespace {
+
+using ::testing::regional_capabilities::GetCountryId;
+
+constexpr int kUsaCountryId = country_codes::CountryCharsToCountryID('U', 'S');
+
+}  // namespace
+class RegionalCapabilitiesServiceFactoryBrowserTest
+    : public InProcessBrowserTest {};
+
+struct VariationsCountryTestParam {
+  std::string test_suffix;
+  std::string variations_country_code;
+  std::optional<int> expected_country_id;
+};
+
+class RegionalCapabilitiesServiceFactoryBrowserTestForVariationsCountry
+    : public RegionalCapabilitiesServiceFactoryBrowserTest,
+      public testing::WithParamInterface<VariationsCountryTestParam> {
+ public:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    command_line->AppendSwitchASCII(
+        variations::switches::kVariationsOverrideCountry,
+        GetVariationsCountryCode());
+  }
+
+  std::string GetVariationsCountryCode() const {
+    return GetParam().variations_country_code;
+  }
+
+  int GetExpectedCountryId() const {
+    return GetParam().expected_country_id.value_or(kUsaCountryId);
+  }
+};
+
+// Test devices config make `country_codes::GetCurrentCountryID()` point to "US"
+// by default.
+const VariationsCountryTestParam kTestParams[] = {
+    {.test_suffix = "FR",
+     .variations_country_code = "fr",
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+     .expected_country_id = country_codes::CountryCharsToCountryID('F', 'R')
+#else
+     .expected_country_id = kUsaCountryId
+#endif
+    },
+    {.test_suffix = "Unset",
+     .variations_country_code = "",
+     .expected_country_id = kUsaCountryId},
+};
+
+IN_PROC_BROWSER_TEST_P(
+    RegionalCapabilitiesServiceFactoryBrowserTestForVariationsCountry,
+    GetCountryId) {
+  auto& service = CHECK_DEREF(
+      RegionalCapabilitiesServiceFactory::GetForProfile(browser()->profile()));
+
+  EXPECT_EQ(GetCountryId(service), GetExpectedCountryId());
+}
+
+INSTANTIATE_TEST_SUITE_P(
+    ,
+    RegionalCapabilitiesServiceFactoryBrowserTestForVariationsCountry,
+    testing::ValuesIn(kTestParams),
+    [](const testing::TestParamInfo<VariationsCountryTestParam>& info) {
+      return info.param.test_suffix;
+    });
+
+}  // namespace regional_capabilities
diff --git a/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.html b/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.html
index 44f6733..85792be5 100644
--- a/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.html
+++ b/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.html
@@ -9,5 +9,7 @@
     suggested-items-label="$i18n{suggestedInputMethodsLabel}"
     all-items-label="$i18n{allInputMethodsLabel}"
     policy-tooltip="$i18n{inputMethodNotAllowed}"
-    on-items-added="onItemsAdded_">
+    on-items-added="onItemsAdded_"
+    managed-by-policy-label="$i18n{inputMethodsManagedbyPolicy}"
+    show-managed-by-policy="[[limitedByPolicy]]">
 </os-settings-add-items-dialog>
\ No newline at end of file
diff --git a/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.ts b/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.ts
index 037c840..3b4c036 100644
--- a/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.ts
+++ b/chrome/browser/resources/ash/settings/os_languages_page/add_input_methods_dialog.ts
@@ -33,12 +33,17 @@
     return {
       languages: Object,
       languageHelper: Object,
+      limitedByPolicy: {
+        type: Boolean,
+        value: false,
+      },
     };
   }
 
   // Public API: Downwards data flow.
   languages: LanguagesModel|undefined;
   languageHelper: LanguageHelper;
+  limitedByPolicy: boolean;
 
   // Internal state.
   private readonly shouldPrioritiseVietnameseExtensions_ =
diff --git a/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.html b/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.html
index 7f41de16..900602e 100644
--- a/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.html
+++ b/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.html
@@ -8,6 +8,10 @@
     overflow: auto;
   }
 
+  iron-icon[icon='cr20:domain'] {
+    margin-inline-end: 10px;
+  }
+
   cr-search-field {
     margin-top: 20px;
   }
@@ -16,6 +20,11 @@
     font: var(--cros-body-2-font);
   }
 
+  .managed-by-policy {
+    font: var(--cros-body-2-font);
+    padding-left: 0px;
+  }
+
   .label {
     padding-bottom: 4px;
     padding-top: 8px;
@@ -38,6 +47,12 @@
         clear-label="$i18n{clearSearch}" autofocus
         on-search-changed="onSearchChanged_" on-keydown="onKeydown_">
     </cr-search-field>
+    <template is="dom-if" if="[[showManagedByPolicy]]">
+      <div class="managed-by-policy cr-row continuation" id="managedByPolicy">
+        <iron-icon icon="cr20:domain"></iron-icon>
+        <div class="secondary">[[managedByPolicyLabel]]</div>
+      </div>
+    </template>
   </div>
   <div id="dialog-body" slot="body" scrollable>
     <template is="dom-if" if="[[showSuggestedList_]]">
diff --git a/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.ts b/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.ts
index ccd1edf..822cc903 100644
--- a/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.ts
+++ b/chrome/browser/resources/ash/settings/os_languages_page/add_items_dialog.ts
@@ -91,12 +91,19 @@
 
       searchLabel: String,
 
+      managedByPolicyLabel: String,
+
       suggestedItemsLabel: String,
 
       allItemsLabel: String,
 
       policyTooltip: String,
 
+      showManagedByPolicy: {
+        type: Boolean,
+        value: false,
+      },
+
       lowercaseQueryString_: String,
 
       filteredItems_: {
@@ -172,9 +179,11 @@
   // them (downwards data flow).
   header: string;
   searchLabel: string;
+  managedByPolicyLabel: string;
   suggestedItemsLabel: string;
   allItemsLabel: string;
   policyTooltip: string;
+  showManagedByPolicy: boolean;
 
   // Internal state.
   private itemIdsToAdd_: Set<string>;
diff --git a/chrome/browser/resources/ash/settings/os_languages_page/input_page.html b/chrome/browser/resources/ash/settings/os_languages_page/input_page.html
index 1042608d..6499cf9 100644
--- a/chrome/browser/resources/ash/settings/os_languages_page/input_page.html
+++ b/chrome/browser/resources/ash/settings/os_languages_page/input_page.html
@@ -122,6 +122,11 @@
     margin-top: 16px;
   }
 
+  #inputMethodTitle {
+    display: flex;
+    justify-content: space-between;
+  }
+
   cr-button[disabled] iron-icon {
     --iron-icon-fill-color: var(--cros-button-icon-color-primary-disabled);
   }
@@ -158,14 +163,14 @@
           lastUsedImeAccelerator_, nextImeAccelerator_, metaKey_)]]">
     </keyboard-shortcut-banner>
   </template>
-  <h2>$i18n{inputMethodListTitle}</h2>
-  <template is="dom-if" if="[[inputMethodsLimitedByPolicy_(
-      prefs.settings.language.allowed_input_methods.*)]]">
-    <div class="cr-row continuation" id="inputMethodsManagedbyPolicy">
-      <iron-icon icon="cr20:domain"></iron-icon>
-      <div class="secondary">$i18n{inputMethodsManagedbyPolicy}</div>
-    </div>
-  </template>
+  <h2 id="inputMethodTitle">
+    $i18n{inputMethodListTitle}
+    <template is="dom-if" if="[[inputMethodsLimitedByPolicy_(
+        prefs.settings.language.allowed_input_methods.*)]]">
+      <iron-icon icon="cr20:domain" title="$i18n{inputMethodsManagedbyPolicy}"
+                 id="inputMethodsManagedbyPolicyIcon"></iron-icon>
+    </template>
+  </h2>
   <div class="list-frame vertical-list" id="inputMethodsList">
     <template is="dom-repeat"
         items="[[languages.inputMethods.enabled]]">
@@ -380,6 +385,8 @@
 <template is="dom-if" if="[[showAddInputMethodsDialog_]]" restamp>
   <os-settings-add-input-methods-dialog languages="[[languages]]"
       language-helper="[[languageHelper]]"
+      limited-by-policy="[[inputMethodsLimitedByPolicy_(
+          prefs.settings.language.allowed_input_methods.*)]]"
       on-close="onAddInputMethodsDialogClose_">
   </os-settings-add-input-methods-dialog>
 </template>
diff --git a/chrome/browser/resources/hangout_services/manifest_v2.json b/chrome/browser/resources/hangout_services/manifest_v2.json
index aeef826..fb2a407 100644
--- a/chrome/browser/resources/hangout_services/manifest_v2.json
+++ b/chrome/browser/resources/hangout_services/manifest_v2.json
@@ -5,11 +5,11 @@
   "name": "Google Hangouts",
   // Note: Always update the version number when this file is updated. Chrome
   // triggers extension preferences update on the version increase.
-  "version": "1.3.22",
+  "version": "1.3.23",
   "manifest_version": 2,
   "externally_connectable": {
     "matches": [
-      "https://*.google.com/*"
+      "https://*.meet.google.com/*"
     ]
   },
   "background": {
diff --git a/chrome/browser/resources/hangout_services/manifest_v3.json b/chrome/browser/resources/hangout_services/manifest_v3.json
index 6cfb74d4b..6c67155 100644
--- a/chrome/browser/resources/hangout_services/manifest_v3.json
+++ b/chrome/browser/resources/hangout_services/manifest_v3.json
@@ -9,11 +9,11 @@
   "name": "Google Hangouts",
   // Note: Always update the version number when this file is updated. Chrome
   // triggers extension preferences update on the version increase.
-  "version": "1.4.1",
+  "version": "1.4.2",
   "manifest_version": 3,
   "externally_connectable": {
     "matches": [
-      "https://*.google.com/*"
+      "https://*.meet.google.com/*"
     ]
   },
   "background": {
diff --git a/chrome/browser/resources/password_manager/password_details_section.ts b/chrome/browser/resources/password_manager/password_details_section.ts
index c8785a3..d3a528a 100644
--- a/chrome/browser/resources/password_manager/password_details_section.ts
+++ b/chrome/browser/resources/password_manager/password_details_section.ts
@@ -236,12 +236,11 @@
 
   private maybeRegisterPasswordSharingHelpBubble_() {
     afterNextRender(this, () => {
-      if (this.selectedGroup_?.entries[0]?.isPasskey) {
-        return;
+      if (this.selectedGroup_?.entries[0]?.isPasskey === false) {
+        // Only try to show the promo when the first entry is not a passkey.
+        this.shadowRoot!.querySelector('password-details-card')
+            ?.maybeRegisterSharingHelpBubble();
       }
-
-      this.shadowRoot!.querySelector('password-details-card')
-          ?.maybeRegisterSharingHelpBubble();
     });
   }
 }
diff --git a/chrome/browser/resources/print_preview/data/cdd.ts b/chrome/browser/resources/print_preview/data/cdd.ts
index 2409a7f8..ec35a719 100644
--- a/chrome/browser/resources/print_preview/data/cdd.ts
+++ b/chrome/browser/resources/print_preview/data/cdd.ts
@@ -35,6 +35,17 @@
   SHORT_EDGE = 'SHORT_EDGE',
 }
 
+// <if expr="is_chromeos">
+/**
+ * Print quality values matching registered IPP values.
+ */
+export enum QualityIppValue {
+  DRAFT = '3',
+  NORMAL = '4',
+  HIGH = '5',
+}
+// </if>
+
 interface SelectCapability {
   option?: VendorCapabilitySelectOption[];
 }
diff --git a/chrome/browser/resources/print_preview/data/destination_cros.ts b/chrome/browser/resources/print_preview/data/destination_cros.ts
index 82e936e..705856e 100644
--- a/chrome/browser/resources/print_preview/data/destination_cros.ts
+++ b/chrome/browser/resources/print_preview/data/destination_cros.ts
@@ -5,10 +5,13 @@
 import '/strings.m.js';
 
 import {assert} from 'chrome://resources/js/assert.js';
+import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 
 import {NativeLayerCrosImpl} from '../native_layer_cros.js';
+
 import type {Cdd, ColorCapability, ColorOption, CopiesCapability, DpiOption, DuplexType, MediaSizeOption, MediaTypeOption} from './cdd.js';
-import type {ManagedPrintOptions} from './managed_print_options_cros.ts';
+import type {ManagedPrintOptions} from './managed_print_options_cros.js';
+import {IPP_PRINT_QUALITY, managedPrintOptionsDuplexToCdd, managedPrintOptionsQualityToIpp} from './managed_print_options_cros.js';
 import type {PrinterStatus} from './printer_status_cros.js';
 import {getStatusReasonFromPrinterStatus, PrinterStatusReason} from './printer_status_cros.js';
 
@@ -229,6 +232,11 @@
    */
   private managedPrintOptions_: ManagedPrintOptions|null = null;
 
+  /**
+   * True if the managed print options applied restrictions on any setting.
+   */
+  private allowedManagedPrintOptionsApplied_: boolean = false;
+
   private type_: PrinterType;
 
   constructor(
@@ -320,6 +328,11 @@
   set capabilities(capabilities: Cdd|null) {
     if (capabilities) {
       this.capabilities_ = capabilities;
+      if (loadTimeData.getBoolean(
+              'isUseManagedPrintJobOptionsInPrintPreviewEnabled') &&
+          this.managedPrintOptions_) {
+        this.applyAllowedManagedPrintOptions();
+      }
     }
   }
 
@@ -443,6 +456,144 @@
     return this.managedPrintOptions_;
   }
 
+  get allowedManagedPrintOptionsApplied(): boolean {
+    return this.allowedManagedPrintOptionsApplied_;
+  }
+
+  private applyAllowedManagedPrintOptions() {
+    this.allowedManagedPrintOptionsApplied_ = false;
+    assert(this.capabilities_);
+
+    if (this.capabilities_.printer.media_size &&
+        this.managedPrintOptions_?.mediaSize?.allowedValues &&
+        this.managedPrintOptions_.mediaSize.allowedValues.length > 0) {
+      const allowedMediaSizeValues =
+          this.managedPrintOptions_.mediaSize.allowedValues;
+
+      const allowedSupportedValues =
+          this.capabilities_.printer.media_size.option.filter(
+              (supportedValue) => {
+                return allowedMediaSizeValues.some((allowedValue) => {
+                  return supportedValue.width_microns === allowedValue.width &&
+                      supportedValue.height_microns === allowedValue.height;
+                });
+              });
+
+      if (allowedSupportedValues.length > 0) {
+        this.capabilities_.printer.media_size.option = allowedSupportedValues;
+        this.allowedManagedPrintOptionsApplied_ = true;
+      }
+    }
+
+    if (this.capabilities_.printer.media_type &&
+        this.managedPrintOptions_?.mediaType?.allowedValues &&
+        this.managedPrintOptions_.mediaType.allowedValues.length > 0) {
+      const allowedMediaTypeValues =
+          this.managedPrintOptions_.mediaType.allowedValues;
+
+      const allowedSupportedValues =
+          this.capabilities_.printer.media_type.option.filter(
+              (supportedValue) => {
+                return allowedMediaTypeValues.some((allowedValue) => {
+                  return supportedValue.vendor_id === allowedValue;
+                });
+              });
+
+      if (allowedSupportedValues.length > 0) {
+        this.capabilities_.printer.media_type.option = allowedSupportedValues;
+        this.allowedManagedPrintOptionsApplied_ = true;
+      }
+    }
+
+    if (this.capabilities_.printer.duplex &&
+        this.managedPrintOptions_?.duplex?.allowedValues &&
+        this.managedPrintOptions_.duplex.allowedValues.length > 0) {
+      const allowedDuplexValues =
+          this.managedPrintOptions_.duplex.allowedValues;
+
+      const allowedSupportedValues =
+          this.capabilities_.printer.duplex.option.filter((supportedValue) => {
+            return allowedDuplexValues.some((allowedValue) => {
+              return supportedValue.type ===
+                  managedPrintOptionsDuplexToCdd(allowedValue);
+            });
+          });
+
+      if (allowedSupportedValues.length > 0) {
+        this.capabilities_.printer.duplex.option = allowedSupportedValues;
+        this.allowedManagedPrintOptionsApplied_ = true;
+      }
+    }
+
+    // Applying restrictions on the color setting only makes sense if the
+    // printer supports printing both in black&white and in color.
+    if (this.hasColorCapability &&
+        this.managedPrintOptions_?.color?.allowedValues &&
+        this.managedPrintOptions_.color.allowedValues.length > 0) {
+      const allowedColorValues = this.managedPrintOptions_.color.allowedValues;
+
+      const allowedSupportedValues =
+          this.capabilities_.printer.color!.option.filter((supportedValue) => {
+            return allowedColorValues.some((allowedValue) => {
+              const typesToLookFor =
+                  allowedValue ? COLOR_TYPES : MONOCHROME_TYPES;
+              return typesToLookFor.includes(supportedValue.type!);
+            });
+          });
+
+      if (allowedSupportedValues.length > 0) {
+        this.capabilities_.printer.color!.option = allowedSupportedValues!;
+        this.allowedManagedPrintOptionsApplied_ = true;
+      }
+    }
+
+    if (this.capabilities_.printer.dpi &&
+        this.managedPrintOptions_?.dpi?.allowedValues &&
+        this.managedPrintOptions_.dpi.allowedValues.length > 0) {
+      const allowedDpiValues = this.managedPrintOptions_.dpi.allowedValues;
+
+      const allowedSupportedValues =
+          this.capabilities_.printer.dpi.option.filter((supportedValue) => {
+            return allowedDpiValues.some((allowedValue) => {
+              return supportedValue.horizontal_dpi ===
+                  allowedValue.horizontal &&
+                  supportedValue.vertical_dpi === allowedValue.vertical;
+            });
+          });
+
+      if (allowedSupportedValues.length > 0) {
+        this.capabilities_.printer.dpi.option = allowedSupportedValues!;
+        this.allowedManagedPrintOptionsApplied_ = true;
+      }
+    }
+
+    if (this.capabilities_.printer.vendor_capability &&
+        this.managedPrintOptions_?.quality?.allowedValues &&
+        this.managedPrintOptions_.quality.allowedValues.length > 0) {
+      const allowedQualityValues =
+          this.managedPrintOptions_.quality.allowedValues;
+
+      const printQualityCapability =
+          this.capabilities_.printer.vendor_capability.find(o => {
+            return o.id === IPP_PRINT_QUALITY;
+          });
+      if (printQualityCapability?.select_cap?.option) {
+        const allowedSupportedValues =
+            printQualityCapability.select_cap.option.filter(
+                (supportedValue) => {
+                  return allowedQualityValues.some((allowedValue) => {
+                    return supportedValue.value ===
+                        managedPrintOptionsQualityToIpp(allowedValue);
+                  });
+                });
+        if (allowedSupportedValues.length > 0) {
+          printQualityCapability.select_cap.option = allowedSupportedValues;
+          this.allowedManagedPrintOptionsApplied_ = true;
+        }
+      }
+    }
+  }
+
   /** @return Path to the SVG for the destination's icon. */
   get icon(): string {
     if (this.id_ === GooglePromotedDestinationId.SAVE_TO_DRIVE_CROS) {
diff --git a/chrome/browser/resources/print_preview/data/managed_print_options_cros.ts b/chrome/browser/resources/print_preview/data/managed_print_options_cros.ts
index 206c431..0c57cb0 100644
--- a/chrome/browser/resources/print_preview/data/managed_print_options_cros.ts
+++ b/chrome/browser/resources/print_preview/data/managed_print_options_cros.ts
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {DuplexType, QualityIppValue} from './cdd.js';
+
 export interface PrintOption<OptionValueType> {
   defaultValue?: OptionValueType;
   allowedValues?: OptionValueType[];
@@ -40,3 +42,45 @@
   quality?: PrintOption<ManagedPrintOptionsQualityType>;
   printAsImage?: PrintOption<boolean>;
 }
+
+// Name of the IPP attribute that corresponds to the "quality" field in the
+// managed print options.
+export const IPP_PRINT_QUALITY: string = 'print-quality';
+
+/**
+ * Converts a ManagedPrintOptionsDuplexType value to a DuplexType value used in
+ * CDD. Returns null if conversion is not possible.
+ */
+export function managedPrintOptionsDuplexToCdd(
+    managedPrintOptionsDuplex: ManagedPrintOptionsDuplexType): DuplexType|null {
+  switch (managedPrintOptionsDuplex) {
+    case ManagedPrintOptionsDuplexType.ONE_SIDED:
+      return DuplexType.NO_DUPLEX;
+    case ManagedPrintOptionsDuplexType.LONG_EDGE:
+      return DuplexType.LONG_EDGE;
+    case ManagedPrintOptionsDuplexType.SHORT_EDGE:
+      return DuplexType.SHORT_EDGE;
+    default:
+      return null;
+  }
+}
+
+/**
+ * Converts a ManagedPrintOptionsQualityType value to a common IPP value
+ * represented by the QualityIppValue. Returns null if conversion is not
+ * possible.
+ */
+export function managedPrintOptionsQualityToIpp(
+    managedPrintOptionsQuality: ManagedPrintOptionsQualityType):
+    QualityIppValue|null {
+  switch (managedPrintOptionsQuality) {
+    case ManagedPrintOptionsQualityType.DRAFT:
+      return QualityIppValue.DRAFT;
+    case ManagedPrintOptionsQualityType.NORMAL:
+      return QualityIppValue.NORMAL;
+    case ManagedPrintOptionsQualityType.HIGH:
+      return QualityIppValue.HIGH;
+    default:
+      return null;
+  }
+}
diff --git a/chrome/browser/resources/print_preview/data/model.ts b/chrome/browser/resources/print_preview/data/model.ts
index d7da072..2f37e85 100644
--- a/chrome/browser/resources/print_preview/data/model.ts
+++ b/chrome/browser/resources/print_preview/data/model.ts
@@ -28,7 +28,7 @@
 import type {Margins, MarginsSetting} from './margins.js';
 import {CustomMarginsOrientation, MarginsType} from './margins.js';
 // <if expr="is_chromeos">
-import {ManagedPrintOptionsDuplexType, ManagedPrintOptionsQualityType} from './managed_print_options_cros.js';
+import {IPP_PRINT_QUALITY, managedPrintOptionsDuplexToCdd, managedPrintOptionsQualityToIpp} from './managed_print_options_cros.js';
 import {PrinterStatusReason} from './printer_status_cros.js';
 // </if>
 
@@ -215,17 +215,6 @@
   UNKNOWN_DUPLEX_MODE = -1,
 }
 
-// <if expr="is_chromeos">
-/**
- * Print quality values matching registered IPP values.
- */
-export enum QualityIppValue {
-  DRAFT = '3',
-  NORMAL = '4',
-  HIGH = '5',
-}
-// </if>
-
 let instance: PrintPreviewModelElement|null = null;
 
 let whenReadyResolver: PromiseResolver<void> = new PromiseResolver();
@@ -853,6 +842,11 @@
     this.setSettingPath_(
         'copies.available', this.destination.hasCopiesCapability);
     this.setSettingPath_('collate.available', !!caps && !!caps.collate);
+    // TODO(crbug.com/374066702): "color.available" is set to false if the
+    // per-printer job options policy allows to use only a single color (even if
+    // the destination supports both b&w and color printing). This hides the
+    // color setting dropdown instead of disabling it. Figure out if that's
+    // desirable behaviour.
     this.setSettingPath_(
         'color.available', this.destination.hasColorCapability);
 
@@ -1692,8 +1686,6 @@
   // related classes to be ChromeOS specific.
   // <if expr="is_chromeos">
   private applyDestinationManagedJobOptions() {
-    // TODO(crbug.com/374066702): support "allowed" print option values set by
-    // the per-printer job options policy.
     const managedPrintOptions = this.destination.managedPrintOptions;
     if (!managedPrintOptions) {
       return;
@@ -1721,28 +1713,26 @@
     if (!this.settings.duplex.setFromUi &&
         !this.settings.duplexShortEdge.setFromUi &&
         managedPrintOptions.duplex?.defaultValue) {
-      switch (managedPrintOptions.duplex.defaultValue) {
-        case ManagedPrintOptionsDuplexType.ONE_SIDED: {
-          if (this.destination.supportsDuplex(DuplexType.NO_DUPLEX)) {
+      const cddDuplex = managedPrintOptionsDuplexToCdd(
+          managedPrintOptions.duplex.defaultValue);
+      if (cddDuplex && this.destination.supportsDuplex(cddDuplex)) {
+        switch (cddDuplex) {
+          case DuplexType.NO_DUPLEX: {
             this.setSetting('duplex', /*value=*/ false, /*noSticky=*/ true);
+            break;
           }
-          break;
-        }
-        case ManagedPrintOptionsDuplexType.LONG_EDGE: {
-          if (this.destination.supportsDuplex(DuplexType.LONG_EDGE)) {
+          case DuplexType.LONG_EDGE: {
             this.setSetting('duplex', /*value=*/ true, /*noSticky=*/ true);
             this.setSetting(
                 'duplexShortEdge', /*value=*/ false, /*noSticky=*/ true);
+            break;
           }
-          break;
-        }
-        case ManagedPrintOptionsDuplexType.SHORT_EDGE: {
-          if (this.destination.supportsDuplex(DuplexType.SHORT_EDGE)) {
+          case DuplexType.SHORT_EDGE: {
             this.setSetting('duplex', /*value=*/ true, /*noSticky=*/ true);
             this.setSetting(
                 'duplexShortEdge', /*value=*/ true, /*noSticky=*/ true);
+            break;
           }
-          break;
         }
       }
     }
@@ -1771,38 +1761,27 @@
         managedPrintOptions.quality?.defaultValue &&
         this.destination.capabilities?.printer.vendor_capability) {
       // Match quality enum values to the registered IPP values.
-      let qualityId: string;
-      switch (managedPrintOptions.quality.defaultValue) {
-        case ManagedPrintOptionsQualityType.DRAFT: {
-          qualityId = QualityIppValue.DRAFT;
-          break;
-        }
-        case ManagedPrintOptionsQualityType.NORMAL: {
-          qualityId = QualityIppValue.NORMAL;
-          break;
-        }
-        case ManagedPrintOptionsQualityType.HIGH: {
-          qualityId = QualityIppValue.HIGH;
-          break;
-        }
-      }
+      const qualityIppValue = managedPrintOptionsQualityToIpp(
+          managedPrintOptions.quality.defaultValue);
       const printQualityCapability =
           this.destination.capabilities.printer.vendor_capability.find(o => {
-            return o.id === 'print-quality';
+            return o.id === IPP_PRINT_QUALITY;
           });
       const hasCorrespondingQualityOption =
           printQualityCapability?.select_cap?.option?.find(o => {
-            return o.value === qualityId;
+            return o.value === qualityIppValue;
           });
       if (hasCorrespondingQualityOption) {
         const advancedSettings = this.getSettingValue('vendorItems');
-        advancedSettings['print-quality'] = qualityId;
+        advancedSettings[IPP_PRINT_QUALITY] = qualityIppValue;
         this.setSetting('vendorItems', advancedSettings, /*noSticky=*/ true);
       }
     }
 
-    if (managedPrintOptions.printAsImage?.defaultValue !== undefined &&
-        this.settings.rasterize.available) {
+    // Policy should have no effect if rasterize is not available (i.e. there's
+    // only one value for the "Print as Image" setting).
+    if (this.settings.rasterize.available &&
+        managedPrintOptions.printAsImage?.defaultValue !== undefined) {
       this.setSetting(
           'rasterize', managedPrintOptions.printAsImage.defaultValue,
           /*noSticky=*/ true);
@@ -1848,6 +1827,13 @@
       const setting = this.getSetting(settingName);
       return setting.available && setting.setByPolicy;
     });
+
+    // <if expr="is_chromeos">
+    if (this.destination) {
+      this.settingsManaged = this.settingsManaged ||
+          this.destination.allowedManagedPrintOptionsApplied;
+    }
+    // </if>
   }
 
   initialized(): boolean {
diff --git a/chrome/browser/resources/print_preview/print_preview.ts b/chrome/browser/resources/print_preview/print_preview.ts
index 9b37516..96e264b 100644
--- a/chrome/browser/resources/print_preview/print_preview.ts
+++ b/chrome/browser/resources/print_preview/print_preview.ts
@@ -20,7 +20,7 @@
 export {PageLayoutInfo} from './data/document_info.js';
 export {ExtensionDestinationInfo, LocalDestinationInfo} from './data/local_parsers.js';
 // <if expr="is_chromeos">
-export {ManagedPrintOptions, ManagedPrintOptionsDuplexType, ManagedPrintOptionsQualityType} from './data/managed_print_options_cros.js';
+export {IPP_PRINT_QUALITY, ManagedPrintOptions, ManagedPrintOptionsDuplexType, ManagedPrintOptionsQualityType} from './data/managed_print_options_cros.js';
 // </if>
 export {CustomMarginsOrientation, Margins, MarginsSetting, MarginsType} from './data/margins.js';
 export {MeasurementSystem, MeasurementSystemUnitType} from './data/measurement_system.js';
diff --git a/chrome/browser/resources/settings/ai_page/ai_logging_info_bullet.ts b/chrome/browser/resources/settings/ai_page/ai_logging_info_bullet.ts
index 99e4a52..0d34831 100644
--- a/chrome/browser/resources/settings/ai_page/ai_logging_info_bullet.ts
+++ b/chrome/browser/resources/settings/ai_page/ai_logging_info_bullet.ts
@@ -45,7 +45,8 @@
 
   private isLoggingDisabledByPolicy_(): boolean {
     return this.pref?.value ===
-        ModelExecutionEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;
+        ModelExecutionEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING ||
+        this.pref?.value === ModelExecutionEnterprisePolicyValue.DISABLE;
   }
 
   private computeLabel_(): string {
diff --git a/chrome/browser/resources/settings/people_page/sync_account_control.html b/chrome/browser/resources/settings/people_page/sync_account_control.html
index 1607f81..69e4ee4 100644
--- a/chrome/browser/resources/settings/people_page/sync_account_control.html
+++ b/chrome/browser/resources/settings/people_page/sync_account_control.html
@@ -194,7 +194,7 @@
             hidden="[[!shouldAllowAccountSwitch_(syncStatus.signedInState,
                 syncStatus.domain, syncStatus.signinPaused)]]">
         </div>
-        <cr-button id="signout-button" class="cancel-button cr-button-gap"
+        <cr-button id="signout-button" class="cr-button-gap"
             hidden="[[shouldHideSignoutButton_(syncStatus.signedInState)]]"
             on-click="onSignoutClick_">
             $i18n{signOutOfChrome}
@@ -273,10 +273,11 @@
               <span>[[item.email]]</span>
             </button>
           </template>
-          <button class="dropdown-item" on-click="onSigninClick_"
-              disabled="[[syncStatus.firstSetupInProgress]]" id="sign-in-item">
-            <img class="account-icon small" alt=""
-                src="chrome://theme/IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE">
+          <button class="dropdown-item" on-click="onSigninClick_" 
+                  disabled="[[syncStatus.firstSetupInProgress]]" 
+                  id="sign-in-item">
+              <cr-icon icon="cr:add" class="account-icon small" alt="">
+              </cr-icon>
             <span>$i18n{useAnotherAccount}</span>
           </button>
           <button class="dropdown-item" on-click="onSignoutClick_"
diff --git a/chrome/browser/smart_card/smart_card_permission_context.cc b/chrome/browser/smart_card/smart_card_permission_context.cc
index 23cd58a..06953002 100644
--- a/chrome/browser/smart_card/smart_card_permission_context.cc
+++ b/chrome/browser/smart_card/smart_card_permission_context.cc
@@ -21,16 +21,19 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/smart_card/smart_card_reader_tracker.h"
 #include "chrome/browser/smart_card/smart_card_reader_tracker_factory.h"
+#include "chrome/grit/generated_resources.h"
 #include "components/content_settings/core/common/content_settings_types.h"
 #include "components/permissions/permission_request_manager.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "url/origin.h"
 
 namespace {
 constexpr char kReaderNameKey[] = "reader-name";
 
-static base::Value::Dict ReaderNameToValue(const std::string& reader_name) {
+template <typename StringType>
+static base::Value::Dict ReaderNameToValue(const StringType& reader_name) {
   base::Value::Dict value;
   value.Set(kReaderNameKey, reader_name);
   return value;
@@ -423,3 +426,18 @@
   return setting_info.source == content_settings::SettingSource::kPolicy &&
          content_setting == CONTENT_SETTING_ALLOW;
 }
+
+std::vector<std::unique_ptr<SmartCardPermissionContext::Object>>
+SmartCardPermissionContext::GetGrantedObjects(const url::Origin& origin) {
+  std::vector<std::unique_ptr<Object>> objects =
+      ObjectPermissionContextBase::GetGrantedObjects(origin);
+
+  if (IsAllowlistedByPolicy(origin)) {
+    objects.push_back(std::make_unique<Object>(
+        origin,
+        ReaderNameToValue(l10n_util::GetStringUTF16(
+            IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE)),
+        content_settings::SettingSource::kPolicy, IsOffTheRecord()));
+  }
+  return objects;
+}
diff --git a/chrome/browser/smart_card/smart_card_permission_context.h b/chrome/browser/smart_card/smart_card_permission_context.h
index ffa0095..6b7526a 100644
--- a/chrome/browser/smart_card/smart_card_permission_context.h
+++ b/chrome/browser/smart_card/smart_card_permission_context.h
@@ -76,6 +76,11 @@
   // - set by policy
   bool IsAllowlistedByPolicy(const url::Origin& origin);
 
+  // Overridden to expose a symbolic "All readers" device in case of
+  // allowlisting via policy.
+  std::vector<std::unique_ptr<Object>> GetGrantedObjects(
+      const url::Origin& origin) override;
+
  private:
   friend class SmartCardPermissionContextTest;
   friend class settings::SmartCardReaderPermissionsSiteSettingsHandlerTest;
diff --git a/chrome/browser/smart_card/smart_card_permission_context_unittest.cc b/chrome/browser/smart_card/smart_card_permission_context_unittest.cc
index 3bdc4cd2..eb7d421d 100644
--- a/chrome/browser/smart_card/smart_card_permission_context_unittest.cc
+++ b/chrome/browser/smart_card/smart_card_permission_context_unittest.cc
@@ -4,12 +4,14 @@
 
 #include "chrome/browser/smart_card/smart_card_permission_context.h"
 
+#include "base/check_deref.h"
 #include "base/values.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/permissions/one_time_permissions_tracker.h"
 #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
 #include "chrome/browser/smart_card/smart_card_reader_tracker.h"
 #include "chrome/browser/smart_card/smart_card_reader_tracker_factory.h"
+#include "chrome/grit/generated_resources.h"
 #include "chrome/test/base/testing_profile.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/content_settings_types.h"
@@ -18,6 +20,7 @@
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/l10n/l10n_util.h"
 
 using testing::InSequence;
 using testing::StrictMock;
@@ -338,6 +341,13 @@
   SetAllowlistedByPolicy(origin_1);
 
   EXPECT_TRUE(HasReaderPermission(permission_context, origin_1, kDummyReader));
+
+  auto grants = permission_context.GetGrantedObjects(origin_1);
+  ASSERT_EQ(1u, grants.size());
+  EXPECT_EQ(content_settings::SettingSource::kPolicy, grants[0]->source);
+  EXPECT_EQ(l10n_util::GetStringUTF8(
+                IDS_SMART_CARD_POLICY_DESCRIPTION_FOR_ANY_DEVICE),
+            CHECK_DEREF(grants[0]->value.FindString("reader-name")));
 }
 
 TEST_F(SmartCardPermissionContextTest, BlockedByPolicy) {
diff --git a/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_landscape_view.xml b/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_landscape_view.xml
index de75e92..d206cdc 100644
--- a/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_landscape_view.xml
+++ b/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_landscape_view.xml
@@ -14,7 +14,7 @@
     <ImageView
         android:id="@+id/fre_logo"
         android:layout_width="wrap_content"
-        android:layout_height="@dimen/fre_tos_image_height"
+        android:layout_height="wrap_content"
         android:layout_marginStart="90dp"
         android:layout_marginEnd="70dp"
         android:layout_alignParentStart="true"
diff --git a/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_portrait_view.xml b/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_portrait_view.xml
index aca87e6..072fa0d 100644
--- a/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_portrait_view.xml
+++ b/chrome/browser/ui/android/signin/java/res/layout/fullscreen_signin_portrait_view.xml
@@ -41,7 +41,7 @@
             <ImageView
                 android:id="@+id/fre_logo"
                 android:layout_width="match_parent"
-                android:layout_height="@dimen/fre_tos_image_height"
+                android:layout_height="wrap_content"
                 android:layout_marginBottom="24dp"
                 android:importantForAccessibility="no"
                 android:src="@drawable/fre_product_logo" />
@@ -62,7 +62,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:gravity="center"
-                android:paddingHorizontal="60dp"
+                android:paddingHorizontal="24dp"
                 android:paddingTop="8dp"
                 android:text="@string/signin_fre_subtitle"
                 android:textAppearance="@style/TextAppearance.TextMedium.Secondary"
diff --git a/chrome/browser/ui/android/signin/java/res/values/dimens.xml b/chrome/browser/ui/android/signin/java/res/values/dimens.xml
index 4a88d2b..a82cdd00 100644
--- a/chrome/browser/ui/android/signin/java/res/values/dimens.xml
+++ b/chrome/browser/ui/android/signin/java/res/values/dimens.xml
@@ -6,6 +6,8 @@
 -->
 
 <resources xmlns:tools="http://schemas.android.com/tools">
+    <!-- Default height of the logo in fullscreen signin -->
+    <dimen name="fullscreen_signin_logo_default_height">110dp</dimen>
     <!-- Signin promo dimensions -->
     <dimen name="sync_promo_account_image_size">44dp</dimen>
     <dimen name="signin_promo_cold_state_image_size">24dp</dimen>
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/FullscreenSigninAndHistorySyncConfig.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/FullscreenSigninAndHistorySyncConfig.java
index 12dac64..29a5392 100644
--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/FullscreenSigninAndHistorySyncConfig.java
+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/FullscreenSigninAndHistorySyncConfig.java
@@ -30,7 +30,7 @@
         private @StringRes int mSigninTitleId = R.string.signin_fre_title;
         private @StringRes int mSigninSubtitleId = R.string.signin_fre_subtitle;
         private @StringRes int mSigninDismissTextId = R.string.signin_fre_dismiss_button;
-        private @DrawableRes int mSigninLogoId = R.drawable.fre_product_logo;
+        private @DrawableRes int mSigninLogoId;
         private @StringRes int mHistorySyncTitleId = R.string.history_sync_title;
         private @StringRes int mHistorySyncSubtitleId = R.string.history_sync_subtitle;
         private @HistorySyncConfig.OptInMode int mHistoryOptInMode =
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninConfig.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninConfig.java
index 6008412..42e732b 100644
--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninConfig.java
+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninConfig.java
@@ -32,14 +32,24 @@
                 }
             };
 
+    /** Constructor of FullscreenSigninConfig using default values. */
     public FullscreenSigninConfig() {
         this(
                 /* titleId= */ R.string.signin_fre_title,
                 /* subtitleId= */ R.string.signin_fre_subtitle,
                 /* dismissTextId= */ R.string.signin_fre_dismiss_button,
-                /* logoId= */ R.drawable.fre_product_logo);
+                /* logoId= */ 0);
     }
 
+    /**
+     * Constructor of FullscreenSigninConfig.
+     *
+     * @param titleId the resource ID of the title string.
+     * @param subtitleId the resource ID of the subtitle string.
+     * @param dismissTextId the resource ID of the dismiss button string.
+     * @param logoId the resource ID of the logo drawable. Can be set to 0 to use the default
+     *     sign-in logo.
+     */
     public FullscreenSigninConfig(
             @StringRes int titleId,
             @StringRes int subtitleId,
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninViewBinder.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninViewBinder.java
index 0e361bde..8bc363a1 100644
--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninViewBinder.java
+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninViewBinder.java
@@ -8,9 +8,9 @@
 import android.transition.AutoTransition;
 import android.transition.TransitionManager;
 import android.view.View;
+import android.view.ViewGroup.LayoutParams;
 import android.widget.ProgressBar;
 
-import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
 import androidx.annotation.StringRes;
 
@@ -72,8 +72,23 @@
             updateSelectedAccount(view, model);
             updateBottomGroupVisibility(view, model);
         } else if (propertyKey == FullscreenSigninProperties.LOGO_DRAWABLE_ID) {
-            @DrawableRes int logoId = model.get(FullscreenSigninProperties.LOGO_DRAWABLE_ID);
-            view.getLogo().setImageResource(logoId);
+            int logoId = model.get(FullscreenSigninProperties.LOGO_DRAWABLE_ID);
+            LayoutParams params = view.getLogo().getLayoutParams();
+
+            // TODO(crbug.com/390418475): Remove the if block below and
+            // fullscreen_signin_logo_default_height when fre_product_logo will be a VectorDrawable
+            // with appropriate height.
+            if (logoId == 0) {
+                logoId = R.drawable.fre_product_logo;
+                params.height =
+                        view.getContext()
+                                .getResources()
+                                .getDimensionPixelSize(
+                                        R.dimen.fullscreen_signin_logo_default_height);
+            } else {
+                params.height = LayoutParams.WRAP_CONTENT;
+            }
+            view.getLogo().setLayoutParams(params);
         } else if (propertyKey == FullscreenSigninProperties.TITLE_STRING_ID) {
             @StringRes int textId = model.get(FullscreenSigninProperties.TITLE_STRING_ID);
             view.getTitle().setText(textId);
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 aa502b0..8b73ad2 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">ሰርዝ እና ዘግተህ ውጣ</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" />ን መጫን አልተቻለም።</translation>
 <translation id="2349710944427398404">መለያዎች፣ ዕልባቶች እና የተቀመጡ ቅንብሮችን ጨምሮ Chrome የተጠቀመው ጠቅላላ ውሂብ</translation>
+<translation id="2349954856814571872">የዕልባት አሞሌ አዝራር አዶ</translation>
 <translation id="235789365079050412">የGoogle የግላዊነት መመሪያ</translation>
 <translation id="2359808026110333948">ቀጥል</translation>
 <translation id="2362083820973145409">እንደ <ph name="USER_NAME" /> ገብተዋል። <ph name="USER_EMAIL" />። ቅንብሮችን ይከፍታል።</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 7000bed..520d8b76 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">الحذف وتسجيل الخروج</translation>
 <translation id="2341410551640223969">تعذَّر تثبيت <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">‏إجمالي البيانات المُستخدَمة من قِبل Chrome، بما في ذلك الحسابات والإشارات المرجعية والإعدادات المحفوظة</translation>
+<translation id="2349954856814571872">رمز زر شريط الإشارات</translation>
 <translation id="235789365079050412">‏سياسة خصوصية Google</translation>
 <translation id="2359808026110333948">متابعة</translation>
 <translation id="2362083820973145409">تم تسجيل الدخول باسم "<ph name="USER_NAME" />". عنوان البريد الإلكتروني للمستخدم هو <ph name="USER_EMAIL" />. يفتح هذا الزر صفحة الإعدادات.</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 2f71138..b6b5910 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Изтриване и излизане от профила</translation>
 <translation id="2341410551640223969">Инсталирането на <ph name="WEBAPK_NAME" /> не бе успешно.</translation>
 <translation id="2349710944427398404">Общо място в хранилището, което се използва от Chrome, включително за профили, отметки и запазени настройки</translation>
+<translation id="2349954856814571872">Икона на бутона за лентата на отметките</translation>
 <translation id="235789365079050412">Декларация за поверителност на Google</translation>
 <translation id="2359808026110333948">Напред</translation>
 <translation id="2362083820973145409">Влезли сте като <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Отваря настройките.</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 26cfdeb4..49ae4c75 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Eliminar y cerrar sesión</translation>
 <translation id="2341410551640223969">No se ha podido instalar <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">Datos totales utilizados por Chrome, incluidos los marcadores, las cuentas y la configuración guardada</translation>
+<translation id="2349954856814571872">Icono del botón de la barra de marcadores</translation>
 <translation id="235789365079050412">Política de Privacidad de Google</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2362083820973145409">Has iniciado sesión como <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Abre la configuración.</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 75bcf2f..75060de 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">حذف و خروج از سیستم</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> نصب نشد.</translation>
 <translation id="2349710944427398404">‏کل داده‌های استفاده‌شده توسط Chrome، شامل حساب‌ها، نشانک‌ها و تنظیمات ذخیره‌شده</translation>
+<translation id="2349954856814571872">نماد دکمه نوار نشانک‌ها</translation>
 <translation id="235789365079050412">‏خط‌مشی رازداری Google</translation>
 <translation id="2359808026110333948">ادامه</translation>
 <translation id="2362083820973145409">با <ph name="USER_NAME" /> به سیستم وارد شده‌اید. <ph name="USER_EMAIL" />. تنظیمات را باز می‌کند.</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 c7265b7..fdfc20b0 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">मिटाएं और साइन आउट करें</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> को इंस्टॉल नहीं किया जा सका.</translation>
 <translation id="2349710944427398404">Chrome द्वारा उपयोग किया गया कुल डेटा, जिसमें खाते, बुकमार्क और सहेजी गईं सेटिंग शामिल हैं</translation>
+<translation id="2349954856814571872">बुकमार्क बार बटन का आइकॉन</translation>
 <translation id="235789365079050412">Google निजता नीति</translation>
 <translation id="2359808026110333948">जारी रखें</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" /> के तौर पर साइन इन किया गया. <ph name="USER_EMAIL" />. इस बटन से सेटिंग खुलती है.</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 666957d..41a1c2d 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Hapus dan logout</translation>
 <translation id="2341410551640223969">Tidak dapat menginstal <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">Total data yang digunakan oleh Chrome, termasuk akun, bookmark, dan setelan yang tersimpan</translation>
+<translation id="2349954856814571872">Ikon tombol kolom bookmark</translation>
 <translation id="235789365079050412">Kebijakan Privasi Google</translation>
 <translation id="2359808026110333948">Lanjutkan</translation>
 <translation id="2362083820973145409">Login sebagai <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Membuka setelan.</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 cd0a60a..8b8a654 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Eyða og skrá út</translation>
 <translation id="2341410551640223969">Ekki tókst að setja upp <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">Gögn sem Chrome notar alls, þ.m.t. reikningar, bókamerki og vistaðar stillingar</translation>
+<translation id="2349954856814571872">Tákn fyrir hnapp bókamerkjastiku</translation>
 <translation id="235789365079050412">Persónuverndarstefna Google</translation>
 <translation id="2359808026110333948">Halda áfram</translation>
 <translation id="2362083820973145409">Skráð(ur) inn sem <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Opnar stillingar.</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 fc8cf73..77932242 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">מחיקה ויציאה מהחשבון</translation>
 <translation id="2341410551640223969">לא הצלחנו להתקין את <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">‏סך כל הנתונים שבהם משתמש Chrome, כולל חשבונות, סימניות והגדרות שמורות</translation>
+<translation id="2349954856814571872">סמל של כפתור סרגל הסימניות</translation>
 <translation id="235789365079050412">‏מדיניות הפרטיות של Google</translation>
 <translation id="2359808026110333948">המשך</translation>
 <translation id="2362083820973145409">נכנסת לחשבון בתור <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. ההגדרות ייפתחו.</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 4ed97a5..e51f64d 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">削除してログアウト</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> をインストールできませんでした。</translation>
 <translation id="2349710944427398404">Chrome が使用するデータ全体(アカウント、ブックマーク、保存済みの設定など)</translation>
+<translation id="2349954856814571872">ブックマーク バーのボタンアイコン</translation>
 <translation id="235789365079050412">Google プライバシー ポリシー</translation>
 <translation id="2359808026110333948">続行</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" />(<ph name="USER_EMAIL" />)としてログインしています。設定を開きます。</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 6528f63..bdee09b 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">წაშლა და გასვლა</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" />-ის ინსტალაცია ვერ მოხერხდა.</translation>
 <translation id="2349710944427398404">Chrome-ის მიერ გამოყენებული მეხსიერების საერთო მოცულობა, რომელშიც ინახება ანგარიშები, სანიშნეები და შენახული პარამეტრები</translation>
+<translation id="2349954856814571872">სანიშნეების ზოლის ღილაკის ხატულა</translation>
 <translation id="235789365079050412">Google-ის კონფიდენციალურობის დებულება</translation>
 <translation id="2359808026110333948">გაგრძელება</translation>
 <translation id="2362083820973145409">შესული ხართ, როგორც <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. გახსნის პარამეტრებს.</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 449fbee..b0cda6b 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">삭제 및 로그아웃</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> APK를 설치할 수 없음</translation>
 <translation id="2349710944427398404">계정, 북마크, 저장된 설정 등 Chrome에서 사용한 전체 데이터</translation>
+<translation id="2349954856814571872">북마크바 버튼 아이콘</translation>
 <translation id="235789365079050412">Google 개인정보처리방침</translation>
 <translation id="2359808026110333948">계속</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" /> 계정으로 로그인되었습니다. <ph name="USER_EMAIL" />입니다. 설정을 엽니다.</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 bba2101b..3853d14 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">ລຶບ ແລະ ອອກຈາກລະບົບ</translation>
 <translation id="2341410551640223969">ບໍ່ສາມາດຕິດຕັ້ງ <ph name="WEBAPK_NAME" /> ໄດ້.</translation>
 <translation id="2349710944427398404">ຂໍ້ມູນທັງໝົດທີ່ໃຊ້ໂດຍ Chrome, ລວມທັງບັນຊີ, ບຸກມາກ ແລະ ການຕັ້ງຄ່າທີ່ບັນທຶກໄວ້</translation>
+<translation id="2349954856814571872">ໄອຄອນປຸ່ມແຖບບຸກມາກ</translation>
 <translation id="235789365079050412">ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ Google</translation>
 <translation id="2359808026110333948">ສືບຕໍ່</translation>
 <translation id="2362083820973145409">ເຂົ້າສູ່ລະບົບເປັນ <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. ເປີດການຕັ້ງຄ່າ.</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 aac04846f..9efe5075 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Устгаад, гарах</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" />-г суулгаж чадсангүй.</translation>
 <translation id="2349710944427398404">Бүртгэл, хавчуурга, хадгалсан тохиргоо зэрэг Chrome-н ашигласан нийт өгөгдөл</translation>
+<translation id="2349954856814571872">Хавчуургын хэсгийн товчны дүрс тэмдэг</translation>
 <translation id="235789365079050412">Google-н нууцлалын бодлого</translation>
 <translation id="2359808026110333948">Цааш</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" />-р нэвтэрсэн. <ph name="USER_EMAIL" />. Тохиргоог нээнэ.</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 660bed04..874d75a 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">ဖျက်ပြီး ထွက်ရန်</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> ကို ထည့်သွင်း၍မရပါ။</translation>
 <translation id="2349710944427398404">အကောင့်များ၊ ဝဘ်လိပ်စာများနှင့် သိမ်းဆည်းထားသည့် ဆက်တင်များအပါအဝင် Chrome မှ သိမ်းဆည်းထားသည့် စုစုပေါင်းဒေတာများ ပါဝင်ပါသည်</translation>
+<translation id="2349954856814571872">လိပ်စာစာရင်းဘားခလုတ် သင်္ကေတ</translation>
 <translation id="235789365079050412">Google ကိုယ်ရေးအချက်အလက်လုံခြုံမှုဆိုင်ရာ မူဝါဒ</translation>
 <translation id="2359808026110333948">ဆက်လုပ်ရန်</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" /> အဖြစ် လက်မှတ်ထိုးဝင်ထားသည်။ <ph name="USER_EMAIL" />။ ဆက်တင်များ ဖွင့်ပေးသည်။</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 eeb37fa..8e8f53b 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">ਮਿਟਾਓ ਅਤੇ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="2341410551640223969"><ph name="WEBAPK_NAME" /> ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।</translation>
 <translation id="2349710944427398404">Chrome ਵੱਲੋਂ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਕੁੱਲ ਡਾਟਾ, ਜਿਸ ਵਿੱਚ ਖਾਤੇ, ਬੁੱਕਮਾਰਕ, ਅਤੇ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਸੈਟਿੰਗਾਂ ਸ਼ਾਮਲ ਹਨ</translation>
+<translation id="2349954856814571872">ਬੁੱਕਮਾਰਕ ਬਾਰ ਬਟਨ ਦਾ ਪ੍ਰਤੀਕ</translation>
 <translation id="235789365079050412">Google ਪਰਦੇਦਾਰੀ ਨੀਤੀ</translation>
 <translation id="2359808026110333948">ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="2362083820973145409"><ph name="USER_NAME" /> ਵਜੋਂ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਗਿਆ। <ph name="USER_EMAIL" />. ਇਸ ਬਟਨ ਨਾਲ ਸੈਟਿੰਗਾਂ ਖੁੱਲ੍ਹਦੀਆਂ ਹਨ।</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 786318bb..0f8001d5 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
@@ -766,7 +766,7 @@
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234">Esta página off-line é de <ph name="CREATION_TIME" /> e pode ser diferente da versão on-line.</translation>
 <translation id="4595805675102978678">Erro na Conta do Google</translation>
-<translation id="4601095002996233687">Verificações detalhadas de downloads suspeitos.</translation>
+<translation id="4601095002996233687">Faz verificações detalhadas de downloads suspeitos.</translation>
 <translation id="4606559747793337066">Quando um site ou app pede para pré-carregar links anonimamente, o Chrome criptografa e pré-carrega as páginas pelos servidores do Google sem cookies. Isso oculta sua identidade do site pré-carregado.</translation>
 <translation id="4609429330876432068">Suas listas de senhas salvas do Chrome e do <ph name="CHROME_CHANNEL" /> foram fundidas. Você ainda pode preencher automaticamente todas as senhas salvas nos dois apps.</translation>
 <translation id="4616150815774728855">Abrir <ph name="WEBAPK_NAME" /></translation>
@@ -1253,7 +1253,7 @@
 <translation id="6734310707649923383">Você pode consultar ou excluir as páginas visitadas do histórico</translation>
 <translation id="6738867403308150051">Fazendo o download...</translation>
 <translation id="674388916582496364">É comum que os sites que você visita se lembrem dos seus interesses para personalizar a experiência. Os sites também podem armazenar informações sobre seus interesses com o Chrome.</translation>
-<translation id="6746338529702829275">Analisar os dados da sua conta</translation>
+<translation id="6746338529702829275">Analise os dados da sua conta</translation>
 <translation id="6751521182688001123">Abrir rapidamente uma nova guia. Para editar este atalho, toque e pressione.</translation>
 <translation id="6756507620369789050">Compartilhar feedback</translation>
 <translation id="6762511428368667596"><ph name="NAME" />, <ph name="EMAIL" />.</translation>
@@ -1416,7 +1416,7 @@
 <translation id="741204030948306876">Sim</translation>
 <translation id="7419565702166471774">Sempre usar conexões seguras</translation>
 <translation id="7421293530411019405">Sair do grupo de guias?</translation>
-<translation id="7431991332293347422">Controlar como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
+<translation id="7431991332293347422">Controle como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
 <translation id="7435356471928173109">Desativado pelo administrador</translation>
 <translation id="7437998757836447326">Sair do Google Chrome</translation>
 <translation id="7453810262525006706">Fechar na visualização lateral</translation>
@@ -1499,7 +1499,7 @@
 <translation id="7772375229873196092">Fechar <ph name="APP_NAME" /></translation>
 <translation id="7774125747223422443">Com base na legislação da sua região, é necessário definir um navegador e um mecanismo de pesquisa</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
-<translation id="777637629667389858">Quando sua conta está conectada, essa opção protege você nos Serviços do Google.</translation>
+<translation id="777637629667389858">Protege você em todos os Serviços do Google quando sua conta está conectada.</translation>
 <translation id="7778840695157240389">Volte mais tarde para ver novas matérias</translation>
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="7792388396321542707">Interromper compartilhamento</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 a361d8a4..0e1b5b2 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Șterge și deconectează-te</translation>
 <translation id="2341410551640223969">Nu s-a putut instala <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">Totalul datelor folosite de Chrome, inclusiv conturile, marcajele și setările salvate</translation>
+<translation id="2349954856814571872">Pictograma butonului din bara de marcaje</translation>
 <translation id="235789365079050412">Politica de confidențialitate Google</translation>
 <translation id="2359808026110333948">Continuă</translation>
 <translation id="2362083820973145409">Conectat(ă) ca <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Deschide setările.</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 086d2749..38c8fb1 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Izbriši in se odjavi</translation>
 <translation id="2341410551640223969">Aplikacije <ph name="WEBAPK_NAME" /> ni bilo mogoče namestiti.</translation>
 <translation id="2349710944427398404">Skupna količina podatkov, ki jih uporablja Chrome, vključno z računi, zaznamki in shranjenimi nastavitvami.</translation>
+<translation id="2349954856814571872">Ikona gumba vrstice z zaznamki</translation>
 <translation id="235789365079050412">Googlov pravilnik o zasebnosti</translation>
 <translation id="2359808026110333948">Naprej</translation>
 <translation id="2362083820973145409">Prijavljen kot <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Odpre nastavitve.</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 126eb29..c549af9 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">Futa na uondoke kwenye akaunti</translation>
 <translation id="2341410551640223969">Imeshindwa kusakinisha <ph name="WEBAPK_NAME" />.</translation>
 <translation id="2349710944427398404">Jumla ya data iliyotumiwa na Chrome, ikiwa ni pamoja na akaunti, alamisho na mipangilio iliyohifadhiwa</translation>
+<translation id="2349954856814571872">Aikoni ya kitufe cha sehemu ya alamisho</translation>
 <translation id="235789365079050412">Sera ya Faragha ya Google</translation>
 <translation id="2359808026110333948">Endelea</translation>
 <translation id="2362083820973145409">Umeingia katika akaunti ukitumia <ph name="USER_NAME" />. <ph name="USER_EMAIL" />. Hufungua mipangilio.</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 734f1c74..3a8f4378 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">删除数据并退出账号</translation>
 <translation id="2341410551640223969">无法安装 <ph name="WEBAPK_NAME" />。</translation>
 <translation id="2349710944427398404">Chrome 所使用的数据总量,包括账号、书签和已保存的设置</translation>
+<translation id="2349954856814571872">书签栏按钮图标</translation>
 <translation id="235789365079050412">Google 隐私权政策</translation>
 <translation id="2359808026110333948">继续</translation>
 <translation id="2362083820973145409">您已使用<ph name="USER_NAME" />的身份登录。<ph name="USER_EMAIL" />。打开设置。</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 253956d..b4ced22 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">刪除並登出</translation>
 <translation id="2341410551640223969">無法安裝「<ph name="WEBAPK_NAME" />」。</translation>
 <translation id="2349710944427398404">Chrome 使用的資料總量,包括帳戶、書籤和已儲存的設定</translation>
+<translation id="2349954856814571872">書籤列按鈕圖示</translation>
 <translation id="235789365079050412">Google 私隱權政策</translation>
 <translation id="2359808026110333948">繼續</translation>
 <translation id="2362083820973145409">已使用<ph name="USER_NAME" />的身分登入。<ph name="USER_EMAIL" />。開啟設定。</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 cc50502..bb90b46 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
@@ -285,6 +285,7 @@
 <translation id="233375395665273385">刪除並登出</translation>
 <translation id="2341410551640223969">無法安裝「<ph name="WEBAPK_NAME" />」。</translation>
 <translation id="2349710944427398404">Chrome 使用的資料總量,包括帳戶、書籤和儲存的設定</translation>
+<translation id="2349954856814571872">書籤列按鈕圖示</translation>
 <translation id="235789365079050412">Google 隱私權政策</translation>
 <translation id="2359808026110333948">繼續</translation>
 <translation id="2362083820973145409">目前登入的帳戶是<ph name="USER_NAME" />。<ph name="USER_EMAIL" />。開啟設定。</translation>
diff --git a/chrome/browser/ui/lens/lens_overlay_live_test.cc b/chrome/browser/ui/lens/lens_overlay_live_test.cc
index f09661fa..04b553b0 100644
--- a/chrome/browser/ui/lens/lens_overlay_live_test.cc
+++ b/chrome/browser/ui/lens/lens_overlay_live_test.cc
@@ -230,7 +230,7 @@
         histogram_name,
         base::BindLambdaForTesting(
             [&](const char* histogram_name, uint64_t name_hash,
-                base::HistogramBase::Sample sample) { run_loop.Quit(); }));
+                base::HistogramBase::Sample32 sample) { run_loop.Quit(); }));
     run_loop.Run();
   }
 
diff --git a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
index 85010aae..b3e00e0 100644
--- a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
+++ b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
@@ -41,8 +41,8 @@
 constexpr int kInferredTitleSource =
     static_cast<int>(TileTitleSource::INFERRED);
 
-using Sample = base::HistogramBase::Sample;
-using Samples = std::vector<Sample>;
+using Sample32 = base::HistogramBase::Sample32;
+using Samples = std::vector<Sample32>;
 
 // Helper function that uses sensible defaults for irrelevant fields of
 // NTPTileImpression.
diff --git a/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc b/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc
index 5cdc7786..c78eb9e 100644
--- a/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc
+++ b/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc
@@ -35,6 +35,7 @@
 #include "chrome/browser/ui/webui/intro/intro_ui.h"
 #include "chrome/browser/ui/webui/signin/signin_url_utils.h"
 #include "chrome/common/webui_url_constants.h"
+#include "chrome/grit/branded_strings.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "chrome/test/interaction/interactive_browser_test.h"
 #include "chrome/test/user_education/interactive_feature_promo_test.h"
@@ -57,6 +58,7 @@
 #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
 #include "ui/base/interaction/element_identifier.h"
 #include "ui/base/interaction/element_tracker.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "ui/views/interaction/element_tracker_views.h"
 #include "ui/views/view_class_properties.h"
 
@@ -1046,7 +1048,10 @@
   EXPECT_FALSE(
       identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin));
   EXPECT_FALSE(enterprise_util::UserAcceptedAccountManagement(profile()));
-  EXPECT_EQ(u"Person 1", GetProfileName());
+  EXPECT_EQ(
+      // "Your Chrome"
+      l10n_util::GetStringUTF16(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME),
+      GetProfileName());
   EXPECT_TRUE(IsUsingDefaultProfileName());
 
   // Checking the expected metrics from this flow.
diff --git a/chrome/browser/ui/views/shortcuts/create_desktop_shortcut_dialog_view_browsertest.cc b/chrome/browser/ui/views/shortcuts/create_desktop_shortcut_dialog_view_browsertest.cc
index f4dc193..5472aa2 100644
--- a/chrome/browser/ui/views/shortcuts/create_desktop_shortcut_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/shortcuts/create_desktop_shortcut_dialog_view_browsertest.cc
@@ -239,7 +239,7 @@
 
   std::optional<std::u16string> dialog_result = test_future.Get();
   EXPECT_TRUE(dialog_result.has_value());
-  EXPECT_EQ(dialog_result.value(), u"ABC (Person 2)");
+  EXPECT_EQ(dialog_result.value(), u"ABC (Person 1)");
 }
 
 IN_PROC_BROWSER_TEST_F(CreateDesktopShortcutDialogViewBrowserTest,
diff --git a/chrome/browser/ui/views/shortcuts/shortcut_integration_interactive_uitest.cc b/chrome/browser/ui/views/shortcuts/shortcut_integration_interactive_uitest.cc
index 5818213..0eb0381a 100644
--- a/chrome/browser/ui/views/shortcuts/shortcut_integration_interactive_uitest.cc
+++ b/chrome/browser/ui/views/shortcuts/shortcut_integration_interactive_uitest.cc
@@ -14,9 +14,11 @@
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/profiles/profile_picker.h"
 #include "chrome/browser/ui/views/shortcuts/shortcut_integration_interaction_test_base.h"
+#include "chrome/grit/branded_strings.h"
 #include "content/public/test/browser_test.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "ui/base/interaction/element_identifier.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "ui/views/view_class_properties.h"
 #include "url/gurl.h"
 
@@ -191,15 +193,18 @@
 
 IN_PROC_BROWSER_TEST_F(ShortcutIntegrationMultiProfileInteractiveUiTest,
                        CreatedForCorrectProfile) {
+  const std::u16string shortcut_title_1 =
+      u"Page with icon links (" +
+      // "Your Chrome"
+      l10n_util::GetStringUTF16(IDS_PROFILE_MENU_PLACEHOLDER_PROFILE_NAME) +
+      u")";
+  const std::u16string shortcut_title_2 = u"Page without icons (Person 1)";
   RunTestSequence(
       CreateShortcuts(),
-
-      CheckShortcut(kProfile1ShortcutId,
-                    IsShortcutWithTitle(u"Page with icon links (Person 1)")),
+      CheckShortcut(kProfile1ShortcutId, IsShortcutWithTitle(shortcut_title_1)),
       CheckShortcut(kProfile1ShortcutId,
                     IsShortcutForProfile(profile1()->GetPath())),
-      CheckShortcut(kProfile2ShortcutId,
-                    IsShortcutWithTitle(u"Page without icons (Person 2)")),
+      CheckShortcut(kProfile2ShortcutId, IsShortcutWithTitle(shortcut_title_2)),
       CheckShortcut(kProfile2ShortcutId,
                     IsShortcutForProfile(profile2()->GetPath())));
 }
diff --git a/chrome/browser/ui/webui/search_engine_choice/icon_utils_unittest.cc b/chrome/browser/ui/webui/search_engine_choice/icon_utils_unittest.cc
index eb26fa4e..347f1a04 100644
--- a/chrome/browser/ui/webui/search_engine_choice/icon_utils_unittest.cc
+++ b/chrome/browser/ui/webui/search_engine_choice/icon_utils_unittest.cc
@@ -10,8 +10,8 @@
 #include "base/command_line.h"
 #include "chrome/browser/browser_process.h"
 #include "components/country_codes/country_codes.h"
-#include "components/search_engines/eea_countries_ids.h"
-#include "components/search_engines/search_engines_switches.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
+#include "components/regional_capabilities/regional_capabilities_test_utils.h"
 #include "components/search_engines/search_engines_test_environment.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -35,7 +35,7 @@
   ASSERT_FALSE(base::CommandLine::ForCurrentProcess()->HasSwitch(
       switches::kSearchEngineChoiceCountry));
 
-  for (int country_id : search_engines::kEeaChoiceCountriesIds) {
+  for (int country_id : regional_capabilities::kEeaChoiceCountriesIds) {
     search_engine_choice_service()->ClearCountryIdCacheForTesting();
     pref_service()->SetInteger(country_codes::kCountryIDAtInstall, country_id);
     std::vector<std::unique_ptr<TemplateURLData>> urls =
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index a7e6721..f28de92 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1737352776-43ad6fbaf6345ed82bc9796455a3cd1926d6b10a-766f90393aaa4626d0877ffa478b9a5990c71c6a.profdata
+chrome-android32-main-1737373906-6ff51cce6302a23020ee05522ca32ace440f7be3-6337eddfd79a5de99144deea4cfbee3bb01ab873.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 4a983cf..80e87b2 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1737351463-1ce331320c7edb2af1ef2ad84af0b10195d9c6b2-826c4594bb26df1b37dea714ed3cc75ddde7daaa.profdata
+chrome-android64-main-1737379797-7881c3bc664f2fc1545ce0eaf640afe865795873-a73338c8ed4daf2dd6a4880ebd0add038d895419.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index a107b00..fa54d80 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1737352776-fd03fefbb738f225290e83f8672c702f16a2171e-766f90393aaa4626d0877ffa478b9a5990c71c6a.profdata
+chrome-linux-main-1737373906-c78cfe7ecb7a59fd1c55453458a0abfc280c95d7-6337eddfd79a5de99144deea4cfbee3bb01ab873.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 2597400..964ad19 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1737343869-9a8d9d997360e18826acf14ad385a19a0ff5443b-df0a06ffabd52c8b58e1ac0fa4f16e68d514599e.profdata
+chrome-mac-arm-main-1737381544-20b5b7df7bbf094fce25af8aaa287ff2fb638eac-125cb5e8b0f10db9d7908ccbd012d04a4a91df24.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 3d07f30..d0084b6 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1737307567-b5176481679c7a07bdaf9146715730f9849dd701-032f7c04e9de12820162e5a49462a0c343739e4a.profdata
+chrome-mac-main-1737373906-a489fbb5d00c0ce70bf49d73fb0aeb80dbbf4958-6337eddfd79a5de99144deea4cfbee3bb01ab873.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index 31790228..376d37b 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1737352776-59c107ef5a8ec6f4a6540fddca6562a0071f4e00-766f90393aaa4626d0877ffa478b9a5990c71c6a.profdata
+chrome-win-arm64-main-1737373906-db24de7072860668406dfe3fd47fe2a2091c15f8-6337eddfd79a5de99144deea4cfbee3bb01ab873.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 4d0111f..62be9cd 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1737341296-ea7ebb1fc810f5e5da4e81bb998e3d29026c8b69-cdc3a5caf4533b7e86ddd4821c8413b3e313215c.profdata
+chrome-win32-main-1737363511-e72aace12725570ff950d41846f42e862ce8e547-5a48c624243831426c012364abaf1cbd831877e4.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 087d223..353e30ad 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1737331168-a63cc2d8f22759edfe5779b7b9d4f5a3cb2cebfe-d84b33fc32daf8b95a737fadebd05decdbca2b02.profdata
+chrome-win64-main-1737352776-339fd1b5f54b4bc1cc154ff43161c5267b6c90c8-766f90393aaa4626d0877ffa478b9a5990c71c6a.profdata
diff --git a/chrome/common/extensions/api/autofill_private.idl b/chrome/common/extensions/api/autofill_private.idl
index 829c976..88756ac 100644
--- a/chrome/common/extensions/api/autofill_private.idl
+++ b/chrome/common/extensions/api/autofill_private.idl
@@ -131,10 +131,9 @@
     PASSPORT_ISSUING_COUNTRY_TAG,
     PASSPORT_EXPIRATION_DATE_TAG,
     PASSPORT_ISSUE_DATE_TAG,
-    PASSPORT_COUNTRY_OF_BIRTH_TAG,
-    LOYALTY_CARD_PROGRAM,
-    LOYALTY_CARD_PROVIDER,
-    LOYALTY_CARD_MEMBER_ID,
+    LOYALTY_MEMBERSHIP_PROGRAM,
+    LOYALTY_MEMBERSHIP_PROVIDER,
+    LOYALTY_MEMBERSHIP_ID,
     MAX_VALID_FIELD_TYPE
   };
 
diff --git a/chrome/gpu/chrome_content_gpu_client.cc b/chrome/gpu/chrome_content_gpu_client.cc
index 52be2f7b..1b82376b 100644
--- a/chrome/gpu/chrome_content_gpu_client.cc
+++ b/chrome/gpu/chrome_content_gpu_client.cc
@@ -10,10 +10,12 @@
 #include "base/check.h"
 #include "base/command_line.h"
 #include "base/functional/bind.h"
+#include "base/profiler/thread_group_profiler.h"
 #include "base/task/single_thread_task_runner.h"
 #include "base/token.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/core_unwinders.h"
 #include "chrome/common/profiler/thread_profiler_configuration.h"
@@ -39,6 +41,8 @@
 #endif  // BUILDFLAG(IS_CHROMEOS)
 
 ChromeContentGpuClient::ChromeContentGpuClient() {
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
   sampling_profiler::ThreadProfiler::SetClient(
       std::make_unique<ChromeThreadProfilerClient>());
 
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
index b34a039e..f5d6e12b 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -1626,10 +1626,10 @@
   PROCESS_MEMORY_COUNTERS pmc;
   if (::GetProcessMemoryInfo(::GetCurrentProcess(), &pmc, sizeof(pmc))) {
     UMA_HISTOGRAM_MEMORY_KB("Setup.Install.PeakPagefileUsage",
-                            base::saturated_cast<base::HistogramBase::Sample>(
+                            base::saturated_cast<base::HistogramBase::Sample32>(
                                 pmc.PeakPagefileUsage / 1024));
     UMA_HISTOGRAM_MEMORY_KB("Setup.Install.PeakWorkingSetSize",
-                            base::saturated_cast<base::HistogramBase::Sample>(
+                            base::saturated_cast<base::HistogramBase::Sample32>(
                                 pmc.PeakWorkingSetSize / 1024));
   }
 
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 2f99417fd..952f6b18 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -20,6 +20,7 @@
 #include "base/no_destructor.h"
 #include "base/notreached.h"
 #include "base/process/current_process.h"
+#include "base/profiler/thread_group_profiler.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -38,6 +39,7 @@
 #include "chrome/common/crash_keys.h"
 #include "chrome/common/pepper_permission_util.h"
 #include "chrome/common/ppapi_utils.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/core_unwinders.h"
 #include "chrome/common/profiler/thread_profiler_configuration.h"
@@ -379,6 +381,8 @@
     : remote_module_watcher_(nullptr, base::OnTaskRunnerDeleter(nullptr))
 #endif
 {
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
   sampling_profiler::ThreadProfiler::SetClient(
       std::make_unique<ChromeThreadProfilerClient>());
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index c4136cd7..af587581 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -2079,6 +2079,7 @@
       "//chrome/browser/profiling_host:profiling_browsertests",
       "//chrome/browser/promos:utils",
       "//chrome/browser/reading_list",
+      "//chrome/browser/regional_capabilities:browser_tests",
       "//chrome/browser/resource_coordinator:mojo_bindings",
       "//chrome/browser/resource_coordinator:tab_manager_features",
       "//chrome/browser/safe_browsing:advanced_protection",
@@ -6441,6 +6442,7 @@
     "//chrome/browser/profiling_host",
     "//chrome/browser/push_messaging:budget_proto",
     "//chrome/browser/reading_list",
+    "//chrome/browser/regional_capabilities:unit_tests",
     "//chrome/browser/request_header_integrity:unit_tests",
     "//chrome/browser/safe_browsing:advanced_protection",
     "//chrome/browser/safe_browsing:metrics_collector",
@@ -7358,6 +7360,7 @@
       "//chrome/browser/readaloud/android:native",
       "//chrome/browser/reading_list/android:reading_list",
       "//chrome/browser/reading_list/android:unit_tests",
+      "//chrome/browser/regional_capabilities/android:test_utils_java",
       "//chrome/browser/safety_hub/android:unit_tests",
       "//chrome/browser/share",
       "//chrome/browser/thumbnail:unit_tests",
diff --git a/chrome/test/base/chrome_test_launcher.cc b/chrome/test/base/chrome_test_launcher.cc
index e37b6fa..f66f874 100644
--- a/chrome/test/base/chrome_test_launcher.cc
+++ b/chrome/test/base/chrome_test_launcher.cc
@@ -17,6 +17,7 @@
 #include "base/logging.h"
 #include "base/path_service.h"
 #include "base/process/process_metrics.h"
+#include "base/profiler/thread_group_profiler.h"
 #include "base/run_loop.h"
 #include "base/sampling_heap_profiler/poisson_allocation_sampler.h"
 #include "base/strings/string_util.h"
@@ -30,6 +31,7 @@
 #include "chrome/browser/metrics/chrome_feature_list_creator.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_switches.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/main_thread_stack_sampling_profiler.h"
 #include "chrome/install_static/test/scoped_install_details.h"
@@ -204,6 +206,11 @@
 #endif
 
 void ChromeTestChromeMainDelegate::CreateThreadPool(std::string_view name) {
+  // The ThreadGroupProfiler client must be set before thread pool is
+  // created (below).
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
+
   base::test::TaskEnvironment::CreateThreadPool();
 
   // The ThreadProfiler client must be set before main thread profiling is
diff --git a/chrome/test/base/chromeos/crosier/chromeos_test_launcher.cc b/chrome/test/base/chromeos/crosier/chromeos_test_launcher.cc
index 46827917..adbb002 100644
--- a/chrome/test/base/chromeos/crosier/chromeos_test_launcher.cc
+++ b/chrome/test/base/chromeos/crosier/chromeos_test_launcher.cc
@@ -6,10 +6,12 @@
 
 #include <string_view>
 
+#include "base/profiler/thread_group_profiler.h"
 #include "base/test/task_environment.h"
 #include "base/types/pass_key.h"
 #include "chrome/app/chrome_crash_reporter_client.h"
 #include "chrome/browser/chrome_content_browser_client.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/main_thread_stack_sampling_profiler.h"
 #include "chrome/test/base/chromeos/crosier/chromeos_test_suite.h"
@@ -94,7 +96,13 @@
 }
 
 void ChromeOSTestChromeMainDelegate::CreateThreadPool(std::string_view name) {
+  // The ThreadGroupProfiler client must be set before thread pool is
+  // created (below).
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
+
   base::test::TaskEnvironment::CreateThreadPool();
+
   // The ThreadProfiler client must be set before main thread profiling is
   // started (below).
   sampling_profiler::ThreadProfiler::SetClient(
diff --git a/chrome/test/data/webui/chromeos/settings/os_languages_page/input_page_test.ts b/chrome/test/data/webui/chromeos/settings/os_languages_page/input_page_test.ts
index 787396c2..23f72e9 100644
--- a/chrome/test/data/webui/chromeos/settings/os_languages_page/input_page_test.ts
+++ b/chrome/test/data/webui/chromeos/settings/os_languages_page/input_page_test.ts
@@ -244,8 +244,8 @@
     });
 
     test('shows managed input methods label', () => {
-      const inputMethodsManagedbyPolicy =
-          inputPage.shadowRoot!.querySelector('#inputMethodsManagedbyPolicy');
+      const inputMethodsManagedbyPolicy = inputPage.shadowRoot!.querySelector(
+          '#inputMethodsManagedbyPolicyIcon');
       assertNull(inputMethodsManagedbyPolicy);
 
       inputPage.setPrefValue(
@@ -253,7 +253,7 @@
       flush();
 
       assertTrue(!!inputPage.shadowRoot!.querySelector(
-          '#inputMethodsManagedbyPolicy'));
+          '#inputMethodsManagedbyPolicyIcon'));
     });
   });
 
diff --git a/chrome/test/data/webui/print_preview/BUILD.gn b/chrome/test/data/webui/print_preview/BUILD.gn
index 7f33ceb..0a191175 100644
--- a/chrome/test/data/webui/print_preview/BUILD.gn
+++ b/chrome/test/data/webui/print_preview/BUILD.gn
@@ -65,6 +65,7 @@
       "destination_dropdown_cros_test.ts",
       "destination_item_test_cros.ts",
       "destination_search_test_chromeos.ts",
+      "managed_print_options_test_chromeos.ts",
       "native_layer_cros_stub.ts",
       "pin_settings_test.ts",
       "print_server_store_test.ts",
diff --git a/chrome/test/data/webui/print_preview/destination_item_test_cros.ts b/chrome/test/data/webui/print_preview/destination_item_test_cros.ts
index 8979418..8947b21 100644
--- a/chrome/test/data/webui/print_preview/destination_item_test_cros.ts
+++ b/chrome/test/data/webui/print_preview/destination_item_test_cros.ts
@@ -128,7 +128,7 @@
         });
       });
 
-  // Tests that the printer stauts icon is only notified to update if the
+  // Tests that the printer status icon is only notified to update if the
   // destination key in the printer status response matches the current
   // destination.
   test(
diff --git a/chrome/test/data/webui/print_preview/managed_print_options_test_chromeos.ts b/chrome/test/data/webui/print_preview/managed_print_options_test_chromeos.ts
new file mode 100644
index 0000000..abe3f1d
--- /dev/null
+++ b/chrome/test/data/webui/print_preview/managed_print_options_test_chromeos.ts
@@ -0,0 +1,276 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import type {ColorOption, DuplexOption, PrintPreviewModelElement} from 'chrome://print/print_preview.js';
+import {Destination, DestinationOrigin} from 'chrome://print/print_preview.js';
+import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
+import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {IPP_PRINT_QUALITY, ManagedPrintOptionsDuplexType, ManagedPrintOptionsQualityType/*, Size*/} from 'chrome://print/print_preview.js';
+import type {DestinationOptionalParams, ManagedPrintOptions} from 'chrome://print/print_preview.js';
+
+import {
+  getCddTemplate,
+  getCddTemplateWithAdvancedSettings} from './print_preview_test_utils.js';
+
+suite('ManagedPrintOptionsTest', () => {
+  let model: PrintPreviewModelElement;
+
+  setup(() => {
+    document.body.innerHTML = window.trustedTypes!.emptyHTML;
+    model = document.createElement('print-preview-model');
+    document.body.appendChild(model);
+  });
+
+  function initializeModel() {
+    model.documentSettings = {
+      allPagesHaveCustomSize: false,
+      allPagesHaveCustomOrientation: false,
+      hasSelection: true,
+      isModifiable: true,
+      isScalingDisabled: false,
+      fitToPageScaling: 100,
+      pageCount: 3,
+      isFromArc: false,
+      title: 'title',
+    };
+    // Set rasterize available so that it can be tested.
+    model.set('settings.rasterize.available', true);
+  }
+
+  test('DisabledViaExperiment', () => {
+    loadTimeData.overrideValues(
+        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: false});
+    const managedPrintOptions: ManagedPrintOptions = {
+      color: {defaultValue: false},
+      mediaType: {allowedValues: ['photographic']},
+    };
+    const params: DestinationOptionalParams = {
+      managedPrintOptions: managedPrintOptions,
+    };
+    const testDestination1 = new Destination(
+        /*id_=*/ 'TestDestination1',
+        /*origin_=*/ DestinationOrigin.LOCAL,
+        /*displayName_=*/ 'TestDestination1',
+        /*params_=*/ params);
+    testDestination1.capabilities =
+        getCddTemplate('TestDestination1').capabilities;
+    initializeModel();
+    model.destination = testDestination1;
+
+    model.applyDestinationSpecificPolicies();
+
+    // Managed per-printers options are disabled via experiment, so the
+    // destination default and allowed values should be used.
+    assertTrue(model.getSettingValue('color'));
+    assertEquals(
+        testDestination1.capabilities!.printer.media_type!.option.length, 2);
+  });
+
+  test('SupportedDefaultValues', () => {
+    loadTimeData.overrideValues(
+        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
+    const managedPrintOptions: ManagedPrintOptions = {
+      mediaSize: {defaultValue: {width: 101600, height: 152400}},
+      mediaType: {defaultValue: 'photographic'},
+      duplex: {defaultValue: ManagedPrintOptionsDuplexType.SHORT_EDGE},
+      color: {defaultValue: false},
+      dpi: {defaultValue: {horizontal: 100, vertical: 100}},
+      quality: {defaultValue: ManagedPrintOptionsQualityType.DRAFT},
+      printAsImage: {defaultValue: true},
+    };
+    const params: DestinationOptionalParams = {
+      managedPrintOptions: managedPrintOptions,
+    };
+    const testDestination1 = new Destination(
+        /*id_=*/ 'TestDestination1',
+        /*origin_=*/ DestinationOrigin.LOCAL,
+        /*displayName_=*/ 'TestDestination1',
+        /*params_=*/ params);
+    testDestination1.capabilities =
+        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
+    initializeModel();
+
+    model.destination = testDestination1;
+    model.applyDestinationSpecificPolicies();
+
+    assertEquals('4x6', model.getSettingValue('mediaSize').name);
+    assertEquals('photographic', model.getSettingValue('mediaType').vendor_id);
+    assertTrue(model.getSettingValue('duplex'));
+    assertTrue(model.getSettingValue('duplexShortEdge'));
+    assertFalse(model.getSettingValue('color'));
+    assertEquals(100, model.getSettingValue('dpi').horizontal_dpi);
+    assertEquals(100, model.getSettingValue('dpi').vertical_dpi);
+    assertEquals(
+        /* ManagedPrintOptionsQualityType.DRAFT */ '3',
+        model.getSettingValue('vendorItems')[IPP_PRINT_QUALITY]);
+    assertTrue(model.getSettingValue('rasterize'));
+  });
+
+  test('UnsupportedDefaultValues', () => {
+    loadTimeData.overrideValues(
+        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
+    const managedPrintOptions: ManagedPrintOptions = {
+      mediaSize: {defaultValue: {width: 1, height: 1}},
+      mediaType: {defaultValue: 'abacaba'},
+      duplex: {defaultValue: ManagedPrintOptionsDuplexType.UNKNOWN_DUPLEX},
+      color: {defaultValue: true},
+      dpi: {defaultValue: {horizontal: 1, vertical: 1}},
+      quality: {defaultValue: ManagedPrintOptionsQualityType.UNKNOWN_QUALITY},
+      printAsImage: {defaultValue: true},
+    };
+    const params: DestinationOptionalParams = {
+      managedPrintOptions: managedPrintOptions,
+    };
+    const testDestination1 = new Destination(
+        /*id_=*/ 'TestDestination1',
+        /*origin_=*/ DestinationOrigin.LOCAL,
+        /*displayName_=*/ 'TestDestination1',
+        /*params_=*/ params);
+    testDestination1.capabilities =
+        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
+    testDestination1.capabilities!.printer.color = {
+      option: [
+        {type: 'STANDARD_MONOCHROME', is_default: true},
+      ] as ColorOption[],
+    };
+    initializeModel();
+    model.set('settings.rasterize.available', false);
+    // Now all the default values in `managedPrintOptions` are unsupported.
+
+    model.destination = testDestination1;
+    model.applyDestinationSpecificPolicies();
+
+    // For each setting the destination default value should be selected.
+    assertEquals('NA_LETTER', model.getSettingValue('mediaSize').name);
+    assertEquals('stationery', model.getSettingValue('mediaType').vendor_id);
+    assertFalse(model.getSettingValue('duplex'));
+    assertFalse(model.getSettingValue('duplexShortEdge'));
+    assertFalse(model.getSettingValue('color'));
+    assertEquals(200, model.getSettingValue('dpi').horizontal_dpi);
+    assertEquals(200, model.getSettingValue('dpi').vertical_dpi);
+    assertEquals(
+        /* ManagedPrintOptionsQualityType.NORMAL */ '4',
+        model.getSettingValue('vendorItems')[IPP_PRINT_QUALITY]);
+    assertFalse(model.getSettingValue('rasterize'));
+  });
+
+  test('AllowedValuesApplied', () => {
+    loadTimeData.overrideValues(
+        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
+    const managedPrintOptions: ManagedPrintOptions = {
+      mediaSize: {
+        // {width: 123, height: 321} is not supported by this printer.
+        allowedValues: [
+          {width: 215900, height: 279400},
+          {width: 215900, height: 215900},
+          {width: 123, height: 321},
+        ],
+      },
+      // 'unsupported_value' is not supported by this printer.
+      mediaType: {allowedValues: ['photographic', 'unsupported_value']},
+      duplex: {
+        allowedValues: [
+          ManagedPrintOptionsDuplexType.ONE_SIDED,
+          ManagedPrintOptionsDuplexType.SHORT_EDGE,
+        ],
+      },
+      color: {allowedValues: [false]},
+      // {horizontal: 123, vertical: 321} is not supported by this printer.
+      dpi: {
+        allowedValues: [
+          {horizontal: 100, vertical: 100},
+          {horizontal: 123, vertical: 321},
+        ],
+      },
+      quality: {
+        allowedValues: [
+          ManagedPrintOptionsQualityType.DRAFT,
+        ],
+      },
+    };
+    const params: DestinationOptionalParams = {
+      managedPrintOptions: managedPrintOptions,
+    };
+    const testDestination1 = new Destination(
+        /*id_=*/ 'TestDestination1',
+        /*origin_=*/ DestinationOrigin.LOCAL,
+        /*displayName_=*/ 'TestDestination1',
+        /*params_=*/ params);
+
+    testDestination1.capabilities =
+        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
+
+    // Allowed values are the intersection of values supported by printer and of
+    // allowed values set via managed print options.
+    const allowedCapabilities = testDestination1.capabilities;
+    assertEquals(2, allowedCapabilities!.printer.media_size!.option.length);
+    assertEquals(1, allowedCapabilities!.printer.media_type!.option.length);
+    assertEquals(2, allowedCapabilities!.printer.duplex!.option.length);
+    assertEquals(1, allowedCapabilities!.printer.color!.option.length);
+    assertEquals(1, allowedCapabilities!.printer.dpi!.option.length);
+    const vendorCapabilities = allowedCapabilities!.printer.vendor_capability;
+    const printQualityCapabilities = vendorCapabilities!.find(o => {
+      return o.id === IPP_PRINT_QUALITY;
+    });
+    assertEquals(1, printQualityCapabilities!.select_cap!.option!.length);
+  });
+
+  test('AllowedValuesIgnored', () => {
+    loadTimeData.overrideValues(
+        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
+    const managedPrintOptions: ManagedPrintOptions = {
+      mediaSize: {
+        allowedValues: [{width: 123, height: 321}],
+      },
+      mediaType: {allowedValues: ['unsupported_value']},
+      duplex: {
+        allowedValues: [ManagedPrintOptionsDuplexType.ONE_SIDED],
+      },
+      color: {allowedValues: [true]},
+      dpi: {allowedValues: [{horizontal: 123, vertical: 321}]},
+      quality: {
+        allowedValues: [
+          ManagedPrintOptionsQualityType.HIGH,
+        ],
+      },
+    };
+    const params: DestinationOptionalParams = {
+      managedPrintOptions: managedPrintOptions,
+    };
+    const testDestination1 = new Destination(
+        /*id_=*/ 'TestDestination1',
+        /*origin_=*/ DestinationOrigin.LOCAL,
+        /*displayName_=*/ 'TestDestination1',
+        /*params_=*/ params);
+    const capabilities =
+        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
+    capabilities!.printer.duplex = {
+      option: [
+        {type: 'LONG_EDGE', is_default: true},
+        {type: 'SHORT_EDGE'},
+      ] as DuplexOption[],
+    };
+    capabilities!.printer.color = {
+      option: [
+        {type: 'STANDARD_MONOCHROME', is_default: true},
+      ] as ColorOption[],
+    };
+    testDestination1.capabilities = capabilities;
+    // All the allowed values in 'managedPrintOptions' are unsupported by the
+    // printer. Thus they are ignored.
+
+    // Allowed values are exactly the values this printer supports.
+    const allowedCapabilities = testDestination1.capabilities;
+    assertEquals(4, allowedCapabilities!.printer.media_size!.option.length);
+    assertEquals(2, allowedCapabilities!.printer.media_type!.option.length);
+    assertEquals(2, allowedCapabilities!.printer.duplex!.option.length);
+    assertEquals(1, allowedCapabilities!.printer.color!.option.length);
+    assertEquals(2, allowedCapabilities!.printer.dpi!.option.length);
+    const vendorCapabilities = allowedCapabilities!.printer.vendor_capability;
+    const printQualityCapabilities = vendorCapabilities!.find(o => {
+      return o.id === IPP_PRINT_QUALITY;
+    });
+    assertEquals(2, printQualityCapabilities!.select_cap!.option!.length);
+  });
+});
diff --git a/chrome/test/data/webui/print_preview/model_test.ts b/chrome/test/data/webui/print_preview/model_test.ts
index ef6d6b7..9953692 100644
--- a/chrome/test/data/webui/print_preview/model_test.ts
+++ b/chrome/test/data/webui/print_preview/model_test.ts
@@ -16,10 +16,6 @@
   PinModeRestriction, PrinterStatusReason,
   // </if>
   PrinterType, ScalingType, Size} from 'chrome://print/print_preview.js';
-// <if expr="is_chromeos">
-import {ManagedPrintOptionsDuplexType, ManagedPrintOptionsQualityType} from 'chrome://print/print_preview.js';
-import type {DestinationOptionalParams, ManagedPrintOptions} from 'chrome://print/print_preview.js';
-// </if>
 import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
@@ -927,119 +923,5 @@
     assertEquals(model.getSettingValue('duplex'), false);
     assertEquals(model.getSettingValue('pin'), false);
   });
-
-  test('ManagedPrintOptionsDisabledViaExperiment', function() {
-    loadTimeData.overrideValues(
-      {isUseManagedPrintJobOptionsInPrintPreviewEnabled: false});
-    const managedPrintOptions: ManagedPrintOptions = {
-      color: {defaultValue: false},
-    };
-    const params: DestinationOptionalParams = {
-      managedPrintOptions: managedPrintOptions,
-    };
-    const testDestination1 = new Destination(
-        /*id_=*/ 'TestDestination1',
-        /*origin_=*/ DestinationOrigin.LOCAL,
-        /*displayName_=*/ 'TestDestination1',
-        /*params_=*/ params);
-    testDestination1.capabilities =
-        getCddTemplate('TestDestination1').capabilities;
-    initializeModel();
-    model.destination = testDestination1;
-
-    model.applyDestinationSpecificPolicies();
-
-    // Managed per-printers options are disabled via experiment, so the
-    // destination default value should be selected.
-    assertEquals(model.getSettingValue('color'), true);
-  });
-
-  test('ManagedPrintOptionsSupportedDefaultValues', function() {
-    loadTimeData.overrideValues(
-        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
-    const managedPrintOptions: ManagedPrintOptions = {
-      mediaSize: {defaultValue: {width: 101600, height: 152400}},
-      mediaType: {defaultValue: 'photographic'},
-      duplex: {defaultValue: ManagedPrintOptionsDuplexType.SHORT_EDGE},
-      color: {defaultValue: false},
-      dpi: {defaultValue: {horizontal: 100, vertical: 100}},
-      quality: {defaultValue: ManagedPrintOptionsQualityType.HIGH},
-      printAsImage: {defaultValue: true},
-    };
-    const params: DestinationOptionalParams = {
-      managedPrintOptions: managedPrintOptions,
-    };
-    const testDestination1 = new Destination(
-        /*id_=*/ 'TestDestination1',
-        /*origin_=*/ DestinationOrigin.LOCAL,
-        /*displayName_=*/ 'TestDestination1',
-        /*params_=*/ params);
-    testDestination1.capabilities =
-        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
-    initializeModel();
-
-    model.destination = testDestination1;
-    model.applyDestinationSpecificPolicies();
-
-    assertEquals(model.getSettingValue('mediaSize').name, '4x6');
-    assertEquals(model.getSettingValue('mediaType').vendor_id, 'photographic');
-    assertEquals(model.getSettingValue('duplex'), true);
-    assertEquals(model.getSettingValue('duplexShortEdge'), true);
-    assertEquals(model.getSettingValue('color'), false);
-    assertEquals(model.getSettingValue('dpi').horizontal_dpi, 100);
-    assertEquals(model.getSettingValue('dpi').vertical_dpi, 100);
-    assertEquals(
-        model.getSettingValue('vendorItems')['print-quality'],
-        /* ManagedPrintOptionsQualityType.HIGH */ '5');
-    assertEquals(model.getSettingValue('rasterize'), true);
-  });
-
-  test('ManagedPrintOptionsUnsupportedDefaultValues', function() {
-    loadTimeData.overrideValues(
-        {isUseManagedPrintJobOptionsInPrintPreviewEnabled: true});
-    const managedPrintOptions: ManagedPrintOptions = {
-      mediaSize: {defaultValue: {width: 1, height: 1}},
-      mediaType: {defaultValue: 'abacaba'},
-      duplex: {defaultValue: ManagedPrintOptionsDuplexType.UNKNOWN_DUPLEX},
-      color: {defaultValue: true},
-      dpi: {defaultValue: {horizontal: 1, vertical: 1}},
-      quality: {defaultValue: ManagedPrintOptionsQualityType.UNKNOWN_QUALITY},
-      printAsImage: {defaultValue: true},
-    };
-    const params: DestinationOptionalParams = {
-      managedPrintOptions: managedPrintOptions,
-    };
-    const testDestination1 = new Destination(
-        /*id_=*/ 'TestDestination1',
-        /*origin_=*/ DestinationOrigin.LOCAL,
-        /*displayName_=*/ 'TestDestination1',
-        /*params_=*/ params);
-    testDestination1.capabilities =
-        getCddTemplateWithAdvancedSettings(5, 'TestDestination1').capabilities;
-    testDestination1.capabilities!.printer.color = {
-      option: [
-        {type: 'STANDARD_MONOCHROME', is_default: true},
-      ] as ColorOption[],
-    };
-    initializeModel();
-    model.set('settings.rasterize.available', false);
-    // Now all the default values in `managedPrintOptions` are unsupported.
-
-    model.destination = testDestination1;
-    model.applyDestinationSpecificPolicies();
-
-    // For each setting the destination default value should be selected.
-    assertEquals(model.getSettingValue('mediaSize').name, 'NA_LETTER');
-    assertEquals(model.getSettingValue('mediaType').vendor_id, 'stationery');
-    assertEquals(model.getSettingValue('duplex'), false);
-    assertEquals(model.getSettingValue('duplexShortEdge'), false);
-    assertEquals(model.getSettingValue('color'), false);
-    assertEquals(model.getSettingValue('dpi').horizontal_dpi, 200);
-    assertEquals(model.getSettingValue('dpi').vertical_dpi, 200);
-    assertEquals(
-        model.getSettingValue('vendorItems')['print-quality'],
-        /* ManagedPrintOptionsQualityType.NORMAL */ '4');
-    assertEquals(model.getSettingValue('rasterize'), false);
-  });
   // </if>
 });
diff --git a/chrome/test/data/webui/print_preview/print_preview_browsertest.cc b/chrome/test/data/webui/print_preview/print_preview_browsertest.cc
index 102f1cc..acdda24 100644
--- a/chrome/test/data/webui/print_preview/print_preview_browsertest.cc
+++ b/chrome/test/data/webui/print_preview/print_preview_browsertest.cc
@@ -408,21 +408,6 @@
                        UserSelectedOptionsOverridePolicyDefaults) {
   RunTestCase("UserSelectedOptionsOverridePolicyDefaults");
 }
-
-IN_PROC_BROWSER_TEST_F(PrintPreviewModelTest,
-                       ManagedPrintOptionsDisabledViaExperiment) {
-  RunTestCase("ManagedPrintOptionsDisabledViaExperiment");
-}
-
-IN_PROC_BROWSER_TEST_F(PrintPreviewModelTest,
-                       ManagedPrintOptionsSupportedDefaultValues) {
-  RunTestCase("ManagedPrintOptionsSupportedDefaultValues");
-}
-
-IN_PROC_BROWSER_TEST_F(PrintPreviewModelTest,
-                       ManagedPrintOptionsUnsupportedDefaultValues) {
-  RunTestCase("ManagedPrintOptionsUnsupportedDefaultValues");
-}
 #endif
 
 class PrintPreviewPreviewGenerationTest : public PrintPreviewBrowserTest {
@@ -1442,3 +1427,40 @@
                        InputNotDisabledOnValidityChange) {
   RunTestCase("InputNotDisabledOnValidityChange");
 }
+
+#if BUILDFLAG(IS_CHROMEOS)
+class PrintPreviewManagedPrintOptionsTest : public PrintPreviewBrowserTest {
+ protected:
+  void RunTestCase(const std::string& testCase) {
+    PrintPreviewBrowserTest::RunTest(
+        "print_preview/managed_print_options_test_chromeos.js",
+        base::StringPrintf("runMochaTest('ManagedPrintOptionsTest', '%s');",
+                           testCase.c_str()));
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(PrintPreviewManagedPrintOptionsTest,
+                       DisabledViaExperiment) {
+  RunTestCase("DisabledViaExperiment");
+}
+
+IN_PROC_BROWSER_TEST_F(PrintPreviewManagedPrintOptionsTest,
+                       SupportedDefaultValues) {
+  RunTestCase("SupportedDefaultValues");
+}
+
+IN_PROC_BROWSER_TEST_F(PrintPreviewManagedPrintOptionsTest,
+                       UnsupportedDefaultValues) {
+  RunTestCase("UnsupportedDefaultValues");
+}
+
+IN_PROC_BROWSER_TEST_F(PrintPreviewManagedPrintOptionsTest,
+                       AllowedValuesApplied) {
+  RunTestCase("AllowedValuesApplied");
+}
+
+IN_PROC_BROWSER_TEST_F(PrintPreviewManagedPrintOptionsTest,
+                       AllowedValuesIgnored) {
+  RunTestCase("AllowedValuesIgnored");
+}
+#endif
diff --git a/chrome/test/data/webui/print_preview/print_preview_test_utils.ts b/chrome/test/data/webui/print_preview/print_preview_test_utils.ts
index e0b2820..59ff1d4 100644
--- a/chrome/test/data/webui/print_preview/print_preview_test_utils.ts
+++ b/chrome/test/data/webui/print_preview/print_preview_test_utils.ts
@@ -219,7 +219,6 @@
       option: [
         {display_name: 'Draft', value: '3'},
         {display_name: 'Normal', value: '4', is_default: true},
-        {display_name: 'High', value: '5'},
       ],
     },
   });
diff --git a/chrome/test/data/webui/settings/ai_logging_info_bullet_test.ts b/chrome/test/data/webui/settings/ai_logging_info_bullet_test.ts
index dadd448..8e15cdb 100644
--- a/chrome/test/data/webui/settings/ai_logging_info_bullet_test.ts
+++ b/chrome/test/data/webui/settings/ai_logging_info_bullet_test.ts
@@ -38,7 +38,7 @@
     assertFalse(!!li.querySelector('cr-policy-pref-indicator'));
   });
 
-  test('infoBulletManaged', async () => {
+  test('infoBulletManagedWhenPolicyAllowedWithoutLogging', async () => {
     const pref: PrefObject = {
       key: 'some_ai_feature_enterprise_pref',
       type: chrome.settingsPrivate.PrefType.NUMBER,
@@ -56,4 +56,23 @@
     assertFalse(!!li.querySelector('cr-icon'));
     assertTrue(!!li.querySelector('cr-policy-pref-indicator'));
   });
+
+  test('infoBulletManagedWhenPolicyDisabled', async () => {
+    const pref: PrefObject = {
+      key: 'some_ai_feature_enterprise_pref',
+      type: chrome.settingsPrivate.PrefType.NUMBER,
+      value: ModelExecutionEnterprisePolicyValue.DISABLE,
+      enforcement: chrome.settingsPrivate.Enforcement.ENFORCED,
+      controlledBy: chrome.settingsPrivate.ControlledBy.USER_POLICY,
+    };
+    await createRow(pref);
+
+    const li = row.shadowRoot!.querySelector('li');
+    assertTrue(!!li);
+    assertEquals(
+        li.innerText,
+        loadTimeData.getString('aiSubpageSublabelLoggingManagedDisabled'));
+    assertFalse(!!li.querySelector('cr-icon'));
+    assertTrue(!!li.querySelector('cr-policy-pref-indicator'));
+  });
 });
diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc
index bbddf57..ed9f3180 100644
--- a/chrome/utility/chrome_content_utility_client.cc
+++ b/chrome/utility/chrome_content_utility_client.cc
@@ -12,9 +12,11 @@
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/path_service.h"
+#include "base/profiler/thread_group_profiler.h"
 #include "base/task/single_thread_task_runner.h"
 #include "build/build_config.h"
 #include "chrome/common/chrome_paths.h"
+#include "chrome/common/profiler/chrome_thread_group_profiler_client.h"
 #include "chrome/common/profiler/chrome_thread_profiler_client.h"
 #include "chrome/common/profiler/thread_profiler_configuration.h"
 #include "chrome/utility/services.h"
@@ -35,6 +37,8 @@
 #endif
 
 ChromeContentUtilityClient::ChromeContentUtilityClient() {
+  base::ThreadGroupProfiler::SetClient(
+      std::make_unique<ChromeThreadGroupProfilerClient>());
   sampling_profiler::ThreadProfiler::SetClient(
       std::make_unique<ChromeThreadProfilerClient>());
 }
diff --git a/chromecast/base/metrics/grouped_histogram.cc b/chromecast/base/metrics/grouped_histogram.cc
index bbadfbe..0a6178a 100644
--- a/chromecast/base/metrics/grouped_histogram.cc
+++ b/chromecast/base/metrics/grouped_histogram.cc
@@ -93,8 +93,8 @@
   // TODO(crbug.com/40824087): min/max parameters are redundant with "ranges"
   // and can probably be removed.
   GroupedHistogram(const char* metric_to_override,
-                   Sample minimum,
-                   Sample maximum,
+                   Sample32 minimum,
+                   Sample32 maximum,
                    const base::BucketRanges* ranges)
       : Histogram(metric_to_override, ranges),
         minimum_(minimum),
@@ -108,7 +108,7 @@
   }
 
   // base::Histogram implementation:
-  void Add(Sample value) override {
+  void Add(Sample32 value) override {
     Histogram::Add(value);
 
     // Note: This is very inefficient. Fetching the app name (which has a lock)
@@ -129,8 +129,8 @@
  private:
   // Saved construction arguments for reconstructing the Histogram later (with
   // a suffixed app name).
-  Sample minimum_;
-  Sample maximum_;
+  Sample32 minimum_;
+  Sample32 maximum_;
   uint32_t bucket_count_;
 };
 
@@ -139,8 +139,8 @@
 // It acts similarly to Histogram::FactoryGet but checks that
 // the histogram is being newly created and does not already exist.
 void PreregisterHistogram(const char* name,
-                          GroupedHistogram::Sample minimum,
-                          GroupedHistogram::Sample maximum,
+                          GroupedHistogram::Sample32 minimum,
+                          GroupedHistogram::Sample32 maximum,
                           size_t bucket_count,
                           int32_t flags) {
   std::string_view name_piece(name);
diff --git a/chromecast/cast_core/runtime/browser/cast_runtime_histogram_flattener.cc b/chromecast/cast_core/runtime/browser/cast_runtime_histogram_flattener.cc
index a50d43ea..4f650950 100644
--- a/chromecast/cast_core/runtime/browser/cast_runtime_histogram_flattener.cc
+++ b/chromecast/cast_core/runtime/browser/cast_runtime_histogram_flattener.cc
@@ -50,7 +50,7 @@
 
     for (std::unique_ptr<base::SampleCountIterator> it = samples.Iterator();
          !it->Done(); it->Next()) {
-      base::Histogram::Sample min;
+      base::Histogram::Sample32 min;
       int64_t max = 0;
       base::Histogram::Count count;
       it->Get(&min, &max, &count);
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index e6e947c1..a8840290 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -564,6 +564,7 @@
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (<ph name="AGGREGATED_COUNT" /> arvustust)</translation>
 <translation id="3748026146096797577">Ühendus puudub</translation>
 <translation id="3749289110408117711">Faili nimi</translation>
+<translation id="3763034084412196440">Helitugevuse reguleerimine</translation>
 <translation id="3767737419527918477">Salvestiste failide otsimine</translation>
 <translation id="3771294271822695279">Videofailid</translation>
 <translation id="3780740315729837296">Määrake klaviatuuriklahv</translation>
@@ -1218,6 +1219,7 @@
 <translation id="6747035363363040417">neutraalne</translation>
 <translation id="6747215703636344499">Peatatud – väljastussalv on täis</translation>
 <translation id="6749473226660745022">Fotod</translation>
+<translation id="6752960629591143793">Valige transkriptsiooni keel ja laadige alla menüüs Seaded või <ph name="THREE_DOTS_MENU_ICON" /> menüüs</translation>
 <translation id="6753452347192452143">Seade on arvuti.</translation>
 <translation id="6756731097889387912">Skannimist ei õnnestunud tühistada</translation>
 <translation id="6760706756348334449">Helitugevuse vähendamine</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index c145f60..518a316 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -564,6 +564,7 @@
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (<ph name="AGGREGATED_COUNT" /> ulasan)</translation>
 <translation id="3748026146096797577">Tidak Disambung</translation>
 <translation id="3749289110408117711">Nama fail</translation>
+<translation id="3763034084412196440">Laraskan kelantangan</translation>
 <translation id="3767737419527918477">Cari fail rakaman</translation>
 <translation id="3771294271822695279">Fail Video</translation>
 <translation id="3780740315729837296">Tetapkan kekunci papan kekunci</translation>
@@ -1218,6 +1219,7 @@
 <translation id="6747035363363040417">neutral</translation>
 <translation id="6747215703636344499">Dihentikan - Output penuh</translation>
 <translation id="6749473226660745022">Foto</translation>
+<translation id="6752960629591143793">Pilih bahasa transkrip dan muat turun dalam Tetapan atau dalam menu <ph name="THREE_DOTS_MENU_ICON" /></translation>
 <translation id="6753452347192452143">Peranti ialah komputer.</translation>
 <translation id="6756731097889387912">Tidak dapat membatalkan pengimbasan</translation>
 <translation id="6760706756348334449">Kurangkan kelantangan</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index 8bd4f43..43cb9a3 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -564,6 +564,7 @@
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (recenzije: <ph name="AGGREGATED_COUNT" />)</translation>
 <translation id="3748026146096797577">Nije povezano</translation>
 <translation id="3749289110408117711">Naziv datoteke</translation>
+<translation id="3763034084412196440">Prilagodite jačinu zvuka</translation>
 <translation id="3767737419527918477">Pretražite fajlove snimaka</translation>
 <translation id="3771294271822695279">Video datoteke</translation>
 <translation id="3780740315729837296">Dodelite taster na tastaturi</translation>
@@ -1218,6 +1219,7 @@
 <translation id="6747035363363040417">neutralni</translation>
 <translation id="6747215703636344499">Zaustavljeno – posuda za odštampani materijal je puna</translation>
 <translation id="6749473226660745022">Slike</translation>
+<translation id="6752960629591143793">Izaberite jezik transkripcije i preuzimanje u Podešavanjima ili meniju <ph name="THREE_DOTS_MENU_ICON" /></translation>
 <translation id="6753452347192452143">Uređaj je računar.</translation>
 <translation id="6756731097889387912">Otkazivanje skeniranja nije uspelo</translation>
 <translation id="6760706756348334449">Utišajte zvuk</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index e85e3e7e..71c9d9b8a 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -564,6 +564,7 @@
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (рецензије: <ph name="AGGREGATED_COUNT" />)</translation>
 <translation id="3748026146096797577">Није повезано</translation>
 <translation id="3749289110408117711">Назив датотеке</translation>
+<translation id="3763034084412196440">Прилагодите јачину звука</translation>
 <translation id="3767737419527918477">Претражите фајлове снимака</translation>
 <translation id="3771294271822695279">Видео датотеке</translation>
 <translation id="3780740315729837296">Доделите тастер на тастатури</translation>
@@ -1218,6 +1219,7 @@
 <translation id="6747035363363040417">неутрални</translation>
 <translation id="6747215703636344499">Заустављено – посуда за одштампани материјал је пуна</translation>
 <translation id="6749473226660745022">Слике</translation>
+<translation id="6752960629591143793">Изаберите језик транскрипције и преузимање у Подешавањима или менију <ph name="THREE_DOTS_MENU_ICON" /></translation>
 <translation id="6753452347192452143">Уређај је рачунар.</translation>
 <translation id="6756731097889387912">Отказивање скенирања није успело</translation>
 <translation id="6760706756348334449">Утишајте звук</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index 440e801..2d44649 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -564,6 +564,7 @@
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (<ph name="AGGREGATED_COUNT" /> రివ్యూలు)</translation>
 <translation id="3748026146096797577">కనెక్ట్ కాలేదు</translation>
 <translation id="3749289110408117711">ఫైల్ పేరు</translation>
+<translation id="3763034084412196440">వాల్యూమ్‌ను సర్దుబాటు చేయండి</translation>
 <translation id="3767737419527918477">రికార్డింగ్ ఫైళ్లను సెర్చ్ చేయండి</translation>
 <translation id="3771294271822695279">వీడియో ఫైళ్లు</translation>
 <translation id="3780740315729837296">కీబోర్డ్ కీని కేటాయించండి</translation>
@@ -1218,6 +1219,7 @@
 <translation id="6747035363363040417">తటస్థంగా ఉంది</translation>
 <translation id="6747215703636344499">ఆగిపోయింది - అవుట్‌పుట్ నిండిపోయింది</translation>
 <translation id="6749473226660745022">Photos</translation>
+<translation id="6752960629591143793">మాటల టైపింగ్ భాషను ఎంచుకొని, సెట్టింగ్‌లలో లేదా <ph name="THREE_DOTS_MENU_ICON" /> మెనూలో దాన్ని డౌన్‌లోడ్ చేయండి</translation>
 <translation id="6753452347192452143">పరికర రకం కంప్యూటర్.</translation>
 <translation id="6756731097889387912">స్కానింగ్‌ను రద్దు చేయడం సాధ్యపడలేదు</translation>
 <translation id="6760706756348334449">వాల్యూమ్ తగ్గించండి</translation>
diff --git a/clank b/clank
index 82f68d0..a423f96 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 82f68d0ac4e31a5198d219842a3873b82b3ab1cd
+Subproject commit a423f96e879d02cfbce529ee154c165cd5677071
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 6e9755d..bc3a283 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -663,7 +663,6 @@
       "//components/permissions/android:java",
       "//components/policy/android:native_test_support_java",
       "//components/policy/android:policy_java",
-      "//components/regional_capabilities/android:test_utils_java",
       "//components/saved_tab_groups/internal:native_java_unittests_java",
       "//components/search_engines/android:java",
       "//components/search_engines/android:test_utils_java",
diff --git a/components/autofill/content/renderer/form_autofill_util_browsertest.cc b/components/autofill/content/renderer/form_autofill_util_browsertest.cc
index 87e459a..cc3970b 100644
--- a/components/autofill/content/renderer/form_autofill_util_browsertest.cc
+++ b/components/autofill/content/renderer/form_autofill_util_browsertest.cc
@@ -930,6 +930,8 @@
 
 TEST_F(FormAutofillUtilsTest,
        FindFormAndFieldForFormControlElement_NotExtractBounds) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndDisableFeature(features::kAutofillOptimizeFormExtraction);
   LoadHTML("<body><form id='form1'><input id='i1'></form></body>");
   WebDocument doc = GetDocument();
   auto web_control = GetFormControlElementById(doc, "i1");
@@ -1012,6 +1014,8 @@
 
 TEST_F(FormAutofillUtilsTest,
        FindFormAndFieldForFormControlElement_NotExtractDataList) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndDisableFeature(features::kAutofillOptimizeFormExtraction);
   LoadHTML(
       "<body><input list='datalist_id' name='count' id='i1'><datalist "
       "id='datalist_id'><option value='1'>one</option><option "
diff --git a/components/autofill/content/renderer/form_cache_browsertest.cc b/components/autofill/content/renderer/form_cache_browsertest.cc
index eaff166..3bf3f10 100644
--- a/components/autofill/content/renderer/form_cache_browsertest.cc
+++ b/components/autofill/content/renderer/form_cache_browsertest.cc
@@ -593,9 +593,17 @@
   histogram_tester.ExpectTotalCount(
       "Autofill.TimingPrecise.UpdateFormCache.DidDispatchDomContentLoadedEvent",
       1);
-  // form_util::ExtractFormData() is also called by PasswordAutofillAgent.
-  histogram_tester.ExpectTotalCount("Autofill.TimingPrecise.ExtractFormData",
-                                    3);
+  // / On pageload `AutofillAgent::DidDispatchDomContentLoadedEvent()` and
+  // `PasswordAutofillAgent::DidFinishLoad()` are called, each triggering form
+  //  extraction.
+  histogram_tester.ExpectTotalCount(
+      "Autofill.TimingPrecise.ExtractFormData",
+      // When `AutofillOptimizeFormExtraction` is disabled, the
+      // signal from AutofillAgent also notifies PasswordAutofillAgent, which
+      // extracts a third but redundant time.
+      base::FeatureList::IsEnabled(features::kAutofillOptimizeFormExtraction)
+          ? 2
+          : 3);
   histogram_tester.ExpectTotalCount(
       "Autofill.TimingPrecise.ExtractFormData.UpdateFormCache", 1);
 }
diff --git a/components/autofill/content/renderer/synchronous_form_cache.cc b/components/autofill/content/renderer/synchronous_form_cache.cc
index fb70b28..4f344fc3 100644
--- a/components/autofill/content/renderer/synchronous_form_cache.cc
+++ b/components/autofill/content/renderer/synchronous_form_cache.cc
@@ -49,10 +49,13 @@
       return it->second ? std::optional(*it->second) : std::nullopt;
     }
     // This codepath should not be reached, as it would mean that we populated
-    // the cache with wrong forms before passing it around methods. We do not
-    // crash the renderer because this wouldn't break anything since we can
-    // always re-extract.
-    base::debug::DumpWithoutCrashing(FROM_HERE);
+    // the cache with the wrong form or incomplete set of forms before passing
+    // it around methods. We currently don't enforce this because on full DOM
+    // extractions, AutofillAgent sometimes stops extracting forms given some
+    // limits and then notifies PasswordAutofillAgent which tries extracting
+    // everything regardless.
+    // TODO(crbug.com/40947729): Consider adding a `DumpWithoutCrashing()` call
+    // here to monitor cases where this happens and possible fix them.
   }
   return form_util::ExtractFormData(document, form_element, field_data_manager,
                                     timer_state, extract_options);
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.cc b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
index f87f625..52db855 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api.cc
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
@@ -211,10 +211,9 @@
     case PASSPORT_ISSUING_COUNTRY_TAG:
     case PASSPORT_EXPIRATION_DATE_TAG:
     case PASSPORT_ISSUE_DATE_TAG:
-    case PASSPORT_COUNTRY_OF_BIRTH_TAG:
-    case LOYALTY_CARD_PROGRAM:
-    case LOYALTY_CARD_PROVIDER:
-    case LOYALTY_CARD_MEMBER_ID:
+    case LOYALTY_MEMBERSHIP_PROGRAM:
+    case LOYALTY_MEMBERSHIP_PROVIDER:
+    case LOYALTY_MEMBERSHIP_ID:
     case MAX_VALID_FIELD_TYPE:
       return nullptr;
   }
diff --git a/components/autofill/core/browser/data_model/autofill_profile.cc b/components/autofill/core/browser/data_model/autofill_profile.cc
index ba675e29..e03474f1 100644
--- a/components/autofill/core/browser/data_model/autofill_profile.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile.cc
@@ -557,7 +557,7 @@
 
   // When adding field types, ensure that they don't need to be added here and
   // update the last checked value.
-  static_assert(FieldType::MAX_VALID_FIELD_TYPE == 177,
+  static_assert(FieldType::MAX_VALID_FIELD_TYPE == 175,
                 "New field type needs to be reviewed for inclusion in the "
                 "profile comparison logic.");
 
diff --git a/components/autofill/core/browser/data_model/entity_instance_unittest.cc b/components/autofill/core/browser/data_model/entity_instance_unittest.cc
index f511c8f8..d10600c 100644
--- a/components/autofill/core/browser/data_model/entity_instance_unittest.cc
+++ b/components/autofill/core/browser/data_model/entity_instance_unittest.cc
@@ -17,8 +17,8 @@
   EntityInstance pp =
       test::GetPassportEntityInstance({.name = kName, .number = nullptr});
   using enum AttributeTypeName;
-  EXPECT_EQ(pp.attributes().size(), 5u);
-  EXPECT_EQ(pp.type().attributes().size(), 6u);
+  EXPECT_EQ(pp.attributes().size(), 4u);
+  EXPECT_EQ(pp.type().attributes().size(), 5u);
   EXPECT_FALSE(pp.attribute(AttributeType(kPassportNumber)));
   {
     base::optional_ref<const AttributeInstance> a =
diff --git a/components/autofill/core/browser/data_model/entity_schema.json b/components/autofill/core/browser/data_model/entity_schema.json
index aea68789..ffcb0f6 100644
--- a/components/autofill/core/browser/data_model/entity_schema.json
+++ b/components/autofill/core/browser/data_model/entity_schema.json
@@ -1,7 +1,7 @@
 [
   {
     "name": "Passport",
-    "attributes": [ "Name", "Number", "Country", "Expiry date", "Issue date", "Place of birth" ],
+    "attributes": [ "Name", "Number", "Country", "Expiry date", "Issue date" ],
     "unique keys": [
       [ "Number", "Expiry date" ]
     ],
diff --git a/components/autofill/core/browser/data_model/entity_type.cc b/components/autofill/core/browser/data_model/entity_type.cc
index 3dd62a0..20d0ae8 100644
--- a/components/autofill/core/browser/data_model/entity_type.cc
+++ b/components/autofill/core/browser/data_model/entity_type.cc
@@ -21,14 +21,12 @@
       return PASSPORT_EXPIRATION_DATE_TAG;
     case AttributeTypeName::kPassportIssueDate:
       return PASSPORT_ISSUE_DATE_TAG;
-    case AttributeTypeName::kPassportPlaceOfBirth:
-      return PASSPORT_COUNTRY_OF_BIRTH_TAG;
     case AttributeTypeName::kLoyaltyCardProgram:
-      return LOYALTY_CARD_PROGRAM;
+      return LOYALTY_MEMBERSHIP_PROGRAM;
     case AttributeTypeName::kLoyaltyCardProvider:
-      return LOYALTY_CARD_PROVIDER;
+      return LOYALTY_MEMBERSHIP_PROVIDER;
     case AttributeTypeName::kLoyaltyCardMemberId:
-      return LOYALTY_CARD_MEMBER_ID;
+      return LOYALTY_MEMBERSHIP_ID;
   }
   NOTREACHED();
 }
diff --git a/components/autofill/core/browser/data_model/entity_type_unittest.cc b/components/autofill/core/browser/data_model/entity_type_unittest.cc
index 4ddba61..623bcad 100644
--- a/components/autofill/core/browser/data_model/entity_type_unittest.cc
+++ b/components/autofill/core/browser/data_model/entity_type_unittest.cc
@@ -27,8 +27,7 @@
                                    AttributeType(kPassportNumber),
                                    AttributeType(kPassportCountry),
                                    AttributeType(kPassportExpiryDate),
-                                   AttributeType(kPassportIssueDate),
-                                   AttributeType(kPassportPlaceOfBirth)));
+                                   AttributeType(kPassportIssueDate)));
   ASSERT_FALSE(e.attributes().empty());
 }
 
diff --git a/components/autofill/core/browser/field_types.cc b/components/autofill/core/browser/field_types.cc
index 921cbed8..a169b2c 100644
--- a/components/autofill/core/browser/field_types.cc
+++ b/components/autofill/core/browser/field_types.cc
@@ -152,10 +152,9 @@
          {"PASSPORT_ISSUING_COUNTRY_TAG", PASSPORT_ISSUING_COUNTRY_TAG},
          {"PASSPORT_EXPIRATION_DATE_TAG", PASSPORT_EXPIRATION_DATE_TAG},
          {"PASSPORT_ISSUE_DATE_TAG", PASSPORT_ISSUE_DATE_TAG},
-         {"PASSPORT_COUNTRY_OF_BIRTH_TAG", PASSPORT_COUNTRY_OF_BIRTH_TAG},
-         {"LOYALTY_CARD_PROGRAM", LOYALTY_CARD_PROGRAM},
-         {"LOYALTY_CARD_PROVIDER", LOYALTY_CARD_PROVIDER},
-         {"LOYALTY_CARD_MEMBER_ID", LOYALTY_CARD_MEMBER_ID}});
+         {"LOYALTY_MEMBERSHIP_PROGRAM", LOYALTY_MEMBERSHIP_PROGRAM},
+         {"LOYALTY_MEMBERSHIP_PROVIDER", LOYALTY_MEMBERSHIP_PROVIDER},
+         {"LOYALTY_MEMBERSHIP_ID", LOYALTY_MEMBERSHIP_ID}});
 
 bool IsFillableFieldType(FieldType field_type) {
   switch (field_type) {
@@ -222,9 +221,9 @@
     case DELIVERY_INSTRUCTIONS:
     case PASSPORT_NAME_TAG:
     case PASSPORT_NUMBER:
-    case LOYALTY_CARD_PROGRAM:
-    case LOYALTY_CARD_PROVIDER:
-    case LOYALTY_CARD_MEMBER_ID:
+    case LOYALTY_MEMBERSHIP_PROGRAM:
+    case LOYALTY_MEMBERSHIP_PROVIDER:
+    case LOYALTY_MEMBERSHIP_ID:
       return true;
 
     case CREDIT_CARD_NAME_FULL:
@@ -288,7 +287,6 @@
     case PASSPORT_ISSUING_COUNTRY_TAG:
     case PASSPORT_EXPIRATION_DATE_TAG:
     case PASSPORT_ISSUE_DATE_TAG:
-    case PASSPORT_COUNTRY_OF_BIRTH_TAG:
     case UNKNOWN_TYPE:
     case MAX_VALID_FIELD_TYPE:
       return false;
@@ -338,10 +336,9 @@
     case PASSPORT_ISSUING_COUNTRY_TAG:
     case PASSPORT_EXPIRATION_DATE_TAG:
     case PASSPORT_ISSUE_DATE_TAG:
-    case PASSPORT_COUNTRY_OF_BIRTH_TAG:
-    case LOYALTY_CARD_PROGRAM:
-    case LOYALTY_CARD_PROVIDER:
-    case LOYALTY_CARD_MEMBER_ID:
+    case LOYALTY_MEMBERSHIP_PROGRAM:
+    case LOYALTY_MEMBERSHIP_PROVIDER:
+    case LOYALTY_MEMBERSHIP_ID:
       return "";
     case NUMERIC_QUANTITY:
       return "Numeric quantity";
@@ -622,10 +619,9 @@
     case PASSPORT_ISSUING_COUNTRY_TAG:
     case PASSPORT_EXPIRATION_DATE_TAG:
     case PASSPORT_ISSUE_DATE_TAG:
-    case PASSPORT_COUNTRY_OF_BIRTH_TAG:
-    case LOYALTY_CARD_PROGRAM:
-    case LOYALTY_CARD_PROVIDER:
-    case LOYALTY_CARD_MEMBER_ID:
+    case LOYALTY_MEMBERSHIP_PROGRAM:
+    case LOYALTY_MEMBERSHIP_PROVIDER:
+    case LOYALTY_MEMBERSHIP_ID:
       return FieldTypeGroup::kAutofillAi;
 
     case PASSWORD:
diff --git a/components/autofill/core/browser/field_types.h b/components/autofill/core/browser/field_types.h
index 7eb6f0f..9ca839e8 100644
--- a/components/autofill/core/browser/field_types.h
+++ b/components/autofill/core/browser/field_types.h
@@ -434,7 +434,10 @@
   // Departamento).
   ADDRESS_HOME_APT_TYPE = 157,
 
-  // Reserved for a server-side-only use: 158-159
+  // Loyalty program card or membeship ID.
+  LOYALTY_MEMBERSHIP_ID = 158,
+
+  // Reserved for a server-side-only use: 159
 
   // Similar to `SINGLE_USERNAME`, but for the case when there are additional
   // fields between single username and password forms.
@@ -485,13 +488,12 @@
   PASSPORT_ISSUING_COUNTRY_TAG = 170,
   PASSPORT_EXPIRATION_DATE_TAG = 171,
   PASSPORT_ISSUE_DATE_TAG = 172,
-  PASSPORT_COUNTRY_OF_BIRTH_TAG = 173,
 
   // Types corresponding to the "Loyalty card" entity from
   // components/autofill/core/browser/data_model/entity_schema.json.
-  LOYALTY_CARD_PROGRAM = 174,
-  LOYALTY_CARD_PROVIDER = 175,
-  LOYALTY_CARD_MEMBER_ID = 176,
+  LOYALTY_MEMBERSHIP_PROGRAM = 173,
+  LOYALTY_MEMBERSHIP_PROVIDER = 174,
+  // The member ID is represented by LOYALTY_MEMBERSHIP_ID.
 
   // No new types can be added without a corresponding change to the Autofill
   // server.
@@ -503,7 +505,7 @@
   // If the newly added type is a storable type of AutofillProfile, update
   // AutofillProfile.StorableTypes in
   // tools/metrics/histograms/metadata/autofill/histograms.xml.
-  MAX_VALID_FIELD_TYPE = 177,
+  MAX_VALID_FIELD_TYPE = 175,
 };
 // LINT.ThenChange(//chrome/common/extensions/api/autofill_private.idl)
 
@@ -596,8 +598,7 @@
            // Reserved for server-side only use.
            !(111 <= t && t <= 113) && t != 117 && t != 127 &&
            !(130 <= t && t <= 132) && t != 134 && !(137 <= t && t <= 139) &&
-           !(147 <= t && t <= 149) && t != 155 && t != 158 &&
-           t != 159 && t != 161;
+           !(147 <= t && t <= 149) && t != 155 && t != 159 && t != 161;
   };
   return IsValid(raw_value) ? static_cast<FieldType>(raw_value)
                             : fallback_value;
diff --git a/components/autofill/core/browser/field_types_unittest.cc b/components/autofill/core/browser/field_types_unittest.cc
index 3b09ac26..366d1cfc1 100644
--- a/components/autofill/core/browser/field_types_unittest.cc
+++ b/components/autofill/core/browser/field_types_unittest.cc
@@ -129,10 +129,9 @@
       PASSPORT_ISSUING_COUNTRY_TAG,
       PASSPORT_EXPIRATION_DATE_TAG,
       PASSPORT_ISSUE_DATE_TAG,
-      PASSPORT_COUNTRY_OF_BIRTH_TAG,
-      LOYALTY_CARD_PROGRAM,
-      LOYALTY_CARD_PROVIDER,
-      LOYALTY_CARD_MEMBER_ID};
+      LOYALTY_MEMBERSHIP_PROGRAM,
+      LOYALTY_MEMBERSHIP_PROVIDER,
+      LOYALTY_MEMBERSHIP_ID};
   FieldType kInvalidValue = static_cast<FieldType>(123456);
   ASSERT_FALSE(kValidFieldTypes.count(kInvalidValue));
   for (int i = -10; i < MAX_VALID_FIELD_TYPE + 10; ++i) {
diff --git a/components/autofill/core/browser/form_parsing/address_field_parser_ng.cc b/components/autofill/core/browser/form_parsing/address_field_parser_ng.cc
index 83ff57c..e8dccce 100644
--- a/components/autofill/core/browser/form_parsing/address_field_parser_ng.cc
+++ b/components/autofill/core/browser/form_parsing/address_field_parser_ng.cc
@@ -672,10 +672,9 @@
     case PASSPORT_ISSUING_COUNTRY_TAG:
     case PASSPORT_EXPIRATION_DATE_TAG:
     case PASSPORT_ISSUE_DATE_TAG:
-    case PASSPORT_COUNTRY_OF_BIRTH_TAG:
-    case LOYALTY_CARD_PROGRAM:
-    case LOYALTY_CARD_PROVIDER:
-    case LOYALTY_CARD_MEMBER_ID:
+    case LOYALTY_MEMBERSHIP_PROGRAM:
+    case LOYALTY_MEMBERSHIP_PROVIDER:
+    case LOYALTY_MEMBERSHIP_ID:
     case MAX_VALID_FIELD_TYPE:
       return std::nullopt;
   }
diff --git a/components/autofill/core/browser/metrics/prediction_quality_metrics.cc b/components/autofill/core/browser/metrics/prediction_quality_metrics.cc
index e82807e..70ac2503e 100644
--- a/components/autofill/core/browser/metrics/prediction_quality_metrics.cc
+++ b/components/autofill/core/browser/metrics/prediction_quality_metrics.cc
@@ -394,10 +394,9 @@
         case PASSPORT_ISSUING_COUNTRY_TAG:
         case PASSPORT_EXPIRATION_DATE_TAG:
         case PASSPORT_ISSUE_DATE_TAG:
-        case PASSPORT_COUNTRY_OF_BIRTH_TAG:
-        case LOYALTY_CARD_PROGRAM:
-        case LOYALTY_CARD_PROVIDER:
-        case LOYALTY_CARD_MEMBER_ID:
+        case LOYALTY_MEMBERSHIP_PROGRAM:
+        case LOYALTY_MEMBERSHIP_PROVIDER:
+        case LOYALTY_MEMBERSHIP_ID:
           NOTREACHED() << field_type << " type is not in that group.";
       }
       break;
diff --git a/components/autofill/core/browser/test_utils/autofill_test_utils.cc b/components/autofill/core/browser/test_utils/autofill_test_utils.cc
index 14be1f1..512e6e23 100644
--- a/components/autofill/core/browser/test_utils/autofill_test_utils.cc
+++ b/components/autofill/core/browser/test_utils/autofill_test_utils.cc
@@ -857,11 +857,6 @@
     attributes.emplace_back(AttributeType(kPassportIssueDate),
                             options.issue_date, AttributeInstance::Context{});
   }
-  if (options.place_of_birth) {
-    attributes.emplace_back(AttributeType(kPassportPlaceOfBirth),
-                            options.place_of_birth,
-                            AttributeInstance::Context{});
-  }
   return EntityInstance(
       EntityType(EntityTypeName::kPassport), std::move(attributes),
       base::Uuid::ParseLowercase(options.guid), std::string(options.nickname),
diff --git a/components/autofill/core/browser/test_utils/autofill_test_utils.h b/components/autofill/core/browser/test_utils/autofill_test_utils.h
index fa507f1..fd6daee 100644
--- a/components/autofill/core/browser/test_utils/autofill_test_utils.h
+++ b/components/autofill/core/browser/test_utils/autofill_test_utils.h
@@ -319,7 +319,6 @@
   const char* country = "Sweden";
   const char* expiry_date = "12/2019";
   const char* issue_date = "01/2010";
-  const char* place_of_birth = "Vimmerby, Sweden";
   std::string_view guid = "00000000-0000-4000-8000-000000000000";
   std::string_view nickname = "Passie";
   base::Time date_modified = kJune2017;
diff --git a/components/autofill/core/browser/webdata/addresses/autofill_profile_sync_util.cc b/components/autofill/core/browser/webdata/addresses/autofill_profile_sync_util.cc
index a5fb96a5..e1bc97a 100644
--- a/components/autofill/core/browser/webdata/addresses/autofill_profile_sync_util.cc
+++ b/components/autofill/core/browser/webdata/addresses/autofill_profile_sync_util.cc
@@ -605,7 +605,7 @@
   // When adding field types, ensure that they don't need to be added here and
   // update the last checked value.
   // TODO(crbug.com/359768803): Handle alternative names here.
-  static_assert(FieldType::MAX_VALID_FIELD_TYPE == 177,
+  static_assert(FieldType::MAX_VALID_FIELD_TYPE == 175,
                 "New field type needs to be reviewed for inclusion in sync");
 
   // The profile may be in a legacy state. By calling |FinalizeAfterImport()|
diff --git a/components/autofill/ios/browser/BUILD.gn b/components/autofill/ios/browser/BUILD.gn
index b2e72ac..ddd7ab13 100644
--- a/components/autofill/ios/browser/BUILD.gn
+++ b/components/autofill/ios/browser/BUILD.gn
@@ -66,7 +66,6 @@
     "//ios/chrome/browser/shared/public/features",
     "//ios/web/common",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/js_messaging",
     "//ios/web/public/security",
     "//services/metrics/public/cpp:metrics_cpp",
diff --git a/components/browser_sync/browser_sync_switches.cc b/components/browser_sync/browser_sync_switches.cc
index 0fd684c..74d6930 100644
--- a/components/browser_sync/browser_sync_switches.cc
+++ b/components/browser_sync/browser_sync_switches.cc
@@ -11,7 +11,7 @@
 
 BASE_FEATURE(kMigrateSyncingUserToSignedIn,
              "MigrateSyncingUserToSignedIn",
-#if BUILDFLAG(IS_IOS)
+#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID)
              base::FEATURE_ENABLED_BY_DEFAULT);
 #else
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index ab6850ea..37b4a222 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "50.74",
-  "log_list_timestamp": "2025-01-19T12:54:47Z",
+  "version": "50.75",
+  "log_list_timestamp": "2025-01-20T12:55:50Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/collaboration/test_support/mock_messaging_backend_service.h b/components/collaboration/test_support/mock_messaging_backend_service.h
index 2f1cb47a..9d01d35 100644
--- a/components/collaboration/test_support/mock_messaging_backend_service.h
+++ b/components/collaboration/test_support/mock_messaging_backend_service.h
@@ -37,6 +37,7 @@
   MOCK_METHOD(std::vector<ActivityLogItem>,
               GetActivityLog,
               (const ActivityLogQueryParams&));
+  MOCK_METHOD(void, ClearDirtyTabMessagesForGroup, (tab_groups::EitherGroupID));
   MOCK_METHOD(void,
               AddActivityLogForTesting,
               (data_sharing::GroupId collaboration_id,
diff --git a/components/content_settings/browser/BUILD.gn b/components/content_settings/browser/BUILD.gn
index f292872..4963adb 100644
--- a/components/content_settings/browser/BUILD.gn
+++ b/components/content_settings/browser/BUILD.gn
@@ -17,7 +17,6 @@
     "//components/content_settings/core/browser",
     "//components/content_settings/core/browser:cookie_settings",
     "//components/content_settings/core/common",
-    "//components/page_info/core:core",
     "//components/page_load_metrics/browser",
     "//components/prefs",
     "//components/privacy_sandbox",
diff --git a/components/content_settings/browser/DEPS b/components/content_settings/browser/DEPS
index fbd1e387..ca97941 100644
--- a/components/content_settings/browser/DEPS
+++ b/components/content_settings/browser/DEPS
@@ -22,9 +22,6 @@
   "+components/vector_icons",
   "+ui/base",
   "+ui/gfx",
-
-  # TODO(crbug.com/40251822) Remove when async canned helper logic is removed.
-  "+components/page_info/core",
 ]
 
 specific_include_rules = {
diff --git a/components/content_settings/browser/page_specific_content_settings.cc b/components/content_settings/browser/page_specific_content_settings.cc
index 74c4992..e14af5e5 100644
--- a/components/content_settings/browser/page_specific_content_settings.cc
+++ b/components/content_settings/browser/page_specific_content_settings.cc
@@ -50,10 +50,6 @@
 #include "url/gurl.h"
 #include "url/origin.h"
 
-#if !BUILDFLAG(IS_ANDROID)
-#include "components/page_info/core/features.h"
-#endif
-
 using content::BrowserThread;
 using StorageType =
     content_settings::mojom::ContentSettingsManager::StorageType;
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java
index b6a2918..6859f48 100644
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java
@@ -103,8 +103,11 @@
                                                 holder.getSurface(),
                                                 browserInputToken);
                         if (surfaceId != null && browserInputToken != null) {
+                            InputTransferHandler.Delegate delegate =
+                                    new InputTransferHandler.Delegate() {};
                             InputTransferHandler handler =
-                                    new InputTransferHandler(browserInputToken);
+                                    new InputTransferHandler(
+                                            browserInputToken, delegate, mWindowAndroid);
                             assert mSurfaceId == null;
                             mSurfaceId = surfaceId;
                             SurfaceInputTransferHandlerMap.getMap().put(mSurfaceId, handler);
@@ -146,7 +149,7 @@
                                 .surfaceDestroyed(
                                         mNativeContentViewRenderView, ContentViewRenderView.this);
                         if (mSurfaceId != null) {
-                            SurfaceInputTransferHandlerMap.getMap().remove(mSurfaceId);
+                            SurfaceInputTransferHandlerMap.remove(mSurfaceId);
                             mSurfaceId = null;
                         }
                     }
diff --git a/components/js_injection/renderer/js_binding.cc b/components/js_injection/renderer/js_binding.cc
index d3c394a4..587d2bd 100644
--- a/components/js_injection/renderer/js_binding.cc
+++ b/components/js_injection/renderer/js_binding.cc
@@ -37,6 +37,7 @@
 #include "v8/include/v8.h"
 
 namespace {
+
 constexpr char kPostMessage[] = "postMessage";
 constexpr char kOnMessage[] = "onmessage";
 constexpr char kAddEventListener[] = "addEventListener";
@@ -72,7 +73,7 @@
   v8::Local<v8::ArrayBuffer> array_buffer_;
 };
 
-}  // anonymous namespace
+}  // namespace
 
 namespace js_injection {
 
@@ -192,7 +193,7 @@
   }
   for (const auto& listener : listeners_copy) {
     // Ensure the listener is still registered.
-    if (base::Contains(listeners_, listener)) {
+    if (find_listener(listener) != listeners_.end()) {
       web_frame->RequestExecuteV8Function(context, listener, self, 1, argv, {});
     }
   }
@@ -294,8 +295,9 @@
     return;
   }
 
-  if (base::Contains(listeners_, listener))
+  if (find_listener(listener) != listeners_.end()) {
     return;
+  }
 
   v8::Local<v8::Context> context = args->GetHolderCreationContext();
   listeners_.push_back(
@@ -326,11 +328,9 @@
     return;
   }
 
-  auto iter = base::ranges::find(listeners_, listener);
-  if (iter == listeners_.end())
-    return;
-
-  listeners_.erase(iter);
+  if (auto iter = find_listener(listener); iter != listeners_.end()) {
+    listeners_.erase(iter);
+  }
 }
 
 v8::Local<v8::Function> JsBinding::GetOnMessage(v8::Isolate* isolate) {
diff --git a/components/js_injection/renderer/js_binding.h b/components/js_injection/renderer/js_binding.h
index ed5a0ee..45fa4b8 100644
--- a/components/js_injection/renderer/js_binding.h
+++ b/components/js_injection/renderer/js_binding.h
@@ -5,6 +5,7 @@
 #ifndef COMPONENTS_JS_INJECTION_RENDERER_JS_BINDING_H_
 #define COMPONENTS_JS_INJECTION_RENDERER_JS_BINDING_H_
 
+#include <algorithm>
 #include <string>
 
 #include "base/auto_reset.h"
@@ -69,6 +70,17 @@
   gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
       v8::Isolate* isolate) override;
 
+  auto find_listener(v8::Local<v8::Function> listener) {
+    // Can't just use `find(listeners_, listener)` because `v8::Global<T>` and
+    // `v8::Local<T>` do not have a common reference type and thus do not
+    // satisfy `std::equality_comparable_with<>`. We could project using
+    // `v8::Global<T>::Get()`, but that's less efficient.
+    return std::ranges::find_if(listeners_,
+                                [listener](const auto& global_listener) {
+                                  return global_listener == listener;
+                                });
+  }
+
   // For jsObject.postMessage(message[, ports]) JavaScript API.
   void PostMessage(gin::Arguments* args);
   // For jsObject.addEventListener("message", listener) JavaScript API.
diff --git a/components/metrics/metrics_log.cc b/components/metrics/metrics_log.cc
index 5c812845..0ed9c41 100644
--- a/components/metrics/metrics_log.cc
+++ b/components/metrics/metrics_log.cc
@@ -456,19 +456,11 @@
 }
 
 void MetricsLog::RecordCurrentSessionData(
-    base::TimeDelta incremental_uptime,
-    base::TimeDelta uptime,
     DelegatingProvider* delegating_provider,
     PrefService* local_state) {
   DCHECK(!closed_);
   DCHECK(has_environment_);
 
-  // Record recent delta for critical stability metrics. We can't wait for a
-  // restart to gather these, as that delay biases our observation away from
-  // users that run happily for a looooong time.  We send increments with each
-  // UMA log upload, just as we send histogram data.
-  WriteRealtimeStabilityAttributes(incremental_uptime, uptime);
-
   delegating_provider->ProvideCurrentSessionData(uma_proto());
   // Schedule a Local State write to flush updated prefs to disk. This is done
   // because a side effect of providing data—namely stability data—is updating
@@ -500,24 +492,6 @@
   }
 }
 
-void MetricsLog::WriteRealtimeStabilityAttributes(
-    base::TimeDelta incremental_uptime,
-    base::TimeDelta uptime) {
-  // Update the stats which are critical for real-time stability monitoring.
-  // Since these are "optional," only list ones that are non-zero, as the counts
-  // are aggregated (summed) server side.
-
-  SystemProfileProto::Stability* stability =
-      uma_proto()->mutable_system_profile()->mutable_stability();
-
-  const uint64_t incremental_uptime_sec = incremental_uptime.InSeconds();
-  if (incremental_uptime_sec)
-    stability->set_incremental_uptime_sec(incremental_uptime_sec);
-  const uint64_t uptime_sec = uptime.InSeconds();
-  if (uptime_sec)
-    stability->set_uptime_sec(uptime_sec);
-}
-
 const SystemProfileProto& MetricsLog::RecordEnvironment(
     DelegatingProvider* delegating_provider) {
   // If |has_environment_| is true, then the system profile in |uma_proto_| has
diff --git a/components/metrics/metrics_log.h b/components/metrics/metrics_log.h
index 3e02f50..348bed28 100644
--- a/components/metrics/metrics_log.h
+++ b/components/metrics/metrics_log.h
@@ -176,14 +176,11 @@
   void RecordPreviousSessionData(DelegatingProvider* delegating_provider,
                                  PrefService* local_state);
 
-  // Populates the log with data about the current session. The uptimes are used
-  // to populate the log with info about how long Chrome has been running.
+  // Populates the log with data about the current session.
   // |delegating_provider| forwards the call to provide data to registered
   // MetricsProviders. |local_state| is used to schedule a write because a side
   // effect of providing some data is updating Local State prefs.
-  void RecordCurrentSessionData(base::TimeDelta incremental_uptime,
-                                base::TimeDelta uptime,
-                                DelegatingProvider* delegating_provider,
+  void RecordCurrentSessionData(DelegatingProvider* delegating_provider,
                                 PrefService* local_state);
 
   // Returns the current time using |network_clock_| if non-null (falls back to
@@ -238,13 +235,6 @@
   void WriteMetricsEnableDefault(EnableMetricsDefault metrics_default,
                                  SystemProfileProto* system_profile);
 
-  // Within the stability group, write attributes that need to be updated asap
-  // and can't be delayed until the user decides to restart chromium.
-  // Delaying these stats would bias metrics away from happy long lived
-  // chromium processes (ones that don't crash, and keep on running).
-  void WriteRealtimeStabilityAttributes(base::TimeDelta incremental_uptime,
-                                        base::TimeDelta uptime);
-
   // closed_ is true when record has been packed up for sending, and should
   // no longer be written to.  It is only used for sanity checking.
   bool closed_;
diff --git a/components/metrics/metrics_log_unittest.cc b/components/metrics/metrics_log_unittest.cc
index 212b1cf2..a96af4e 100644
--- a/components/metrics/metrics_log_unittest.cc
+++ b/components/metrics/metrics_log_unittest.cc
@@ -809,8 +809,7 @@
   delegating_provider.RegisterMetricsProvider(
       base::WrapUnique<MetricsProvider>(test_provider));
   log.RecordEnvironment(&delegating_provider);
-  log.RecordCurrentSessionData(base::TimeDelta(), base::TimeDelta(),
-                               &delegating_provider, &prefs_);
+  log.RecordCurrentSessionData(&delegating_provider, &prefs_);
 
   // The test provider should have been called upon to provide regular but not
   // initial stability metrics.
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc
index 5c4e3f82..3626107 100644
--- a/components/metrics/metrics_service.cc
+++ b/components/metrics/metrics_service.cc
@@ -870,13 +870,6 @@
 
   // Notify stability metrics providers about the launch.
   provider.LogLaunch();
-
-  // Call GetUptimes() for the first time, thus allowing all later calls
-  // to record incremental uptimes accurately.
-  base::TimeDelta ignored_uptime_parameter;
-  base::TimeDelta startup_uptime;
-  GetUptimes(local_state_, &startup_uptime, &ignored_uptime_parameter);
-  DCHECK_EQ(0, startup_uptime.InMicroseconds());
 }
 
 void MetricsService::OnUserAction(const std::string& action,
@@ -892,21 +885,6 @@
   rotation_scheduler_->InitTaskComplete();
 }
 
-void MetricsService::GetUptimes(PrefService* pref,
-                                base::TimeDelta* incremental_uptime,
-                                base::TimeDelta* uptime) {
-  base::TimeTicks now = base::TimeTicks::Now();
-  // If this is the first call, init |first_updated_time_| and
-  // |last_updated_time_|.
-  if (last_updated_time_.is_null()) {
-    first_updated_time_ = now;
-    last_updated_time_ = now;
-  }
-  *incremental_uptime = now - last_updated_time_;
-  *uptime = now - first_updated_time_;
-  last_updated_time_ = now;
-}
-
 //------------------------------------------------------------------------------
 // Recording control methods
 
@@ -1061,12 +1039,8 @@
   // MetricsLog class.
   std::unique_ptr<MetricsLog> current_log(std::move(current_log_));
   RecordCurrentEnvironment(current_log.get(), /*complete=*/true);
-  base::TimeDelta incremental_uptime;
-  base::TimeDelta uptime;
-  GetUptimes(local_state_, &incremental_uptime, &uptime);
-  current_log->RecordCurrentSessionData(incremental_uptime, uptime,
-                                        &delegating_provider_, local_state_);
   current_log->AssignFinalizedRecordId(local_state_);
+  current_log->RecordCurrentSessionData(&delegating_provider_, local_state_);
 
   auto log_histogram_writer =
       std::make_unique<MetricsLogHistogramWriter>(current_log.get());
diff --git a/components/metrics/metrics_service.h b/components/metrics/metrics_service.h
index fe275563..c65c43fe 100644
--- a/components/metrics/metrics_service.h
+++ b/components/metrics/metrics_service.h
@@ -434,16 +434,6 @@
 
   void OnUserAction(const std::string& action, base::TimeTicks action_time);
 
-  // Get the amount of uptime since this process started and since the last
-  // call to this function.  Also updates the cumulative uptime metric (stored
-  // as a pref) for uninstall.  Uptimes are measured using TimeTicks, which
-  // guarantees that it is monotonic and does not jump if the user changes
-  // their clock.  The TimeTicks implementation also makes the clock not
-  // count time the computer is suspended.
-  void GetUptimes(PrefService* pref,
-                  base::TimeDelta* incremental_uptime,
-                  base::TimeDelta* uptime);
-
   // Turns recording on or off.
   // DisableRecording() also forces a persistent save of logging state (if
   // anything has been recorded, or transmitted).
@@ -601,12 +591,6 @@
   // The scheduler for determining when log rotations should happen.
   std::unique_ptr<MetricsRotationScheduler> rotation_scheduler_;
 
-  // Stores the time of the first call to |GetUptimes()|.
-  base::TimeTicks first_updated_time_;
-
-  // Stores the time of the last call to |GetUptimes()|.
-  base::TimeTicks last_updated_time_;
-
   // Indicates if loading of independent metrics is currently active.
   bool independent_loader_active_ = false;
 
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
index 1f21b83..f72c437 100644
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -227,7 +227,7 @@
 #if BUILDFLAG(IS_CHROMEOS)
     {ContentSettingsType::SMART_CARD_DATA,
      IDS_PAGE_INFO_SMART_CARD_READER_SECONDARY_LABEL,
-     /*allowed_by_policy_description_string_id=*/-1,
+     IDS_PAGE_INFO_SMART_CARD_READER_ALLOWED_BY_POLICY_LABEL,
      IDS_PAGE_INFO_DELETE_SMART_CARD_READER_WITH_NAME},
 #endif
     {ContentSettingsType::SERIAL_CHOOSER_DATA,
diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp
index 6546ffc..ca1ec64 100644
--- a/components/page_info_strings.grdp
+++ b/components/page_info_strings.grdp
@@ -474,6 +474,9 @@
     <message name="IDS_PAGE_INFO_DELETE_HID_DEVICE_WITH_NAME" desc="The tooltip displayed when hovering over the button that will remove permission to access a HID device that the user previously granted to the site.">
       Revoke access for <ph name="DEVICE_NAME">$1<ex>Stadia Controller</ex></ph>
     </message>
+    <message name="IDS_PAGE_INFO_SMART_CARD_READER_ALLOWED_BY_POLICY_LABEL" desc="The label displayed underneath the device name to inform the user that the item listed is refering to a Smart card reader device explicitly allowed by the user's enterprise policy.">
+      Smart card reader allowed by your administrator
+    </message>
     <message name="IDS_PAGE_INFO_SMART_CARD_READER_SECONDARY_LABEL" desc="The label displayed underneath the device name to inform the user that the item refers to a smart card reader.">
       Smart card reader
     </message>
diff --git a/components/page_info_strings_grdp/IDS_PAGE_INFO_SMART_CARD_READER_ALLOWED_BY_POLICY_LABEL.png.sha1 b/components/page_info_strings_grdp/IDS_PAGE_INFO_SMART_CARD_READER_ALLOWED_BY_POLICY_LABEL.png.sha1
new file mode 100644
index 0000000..7d64bca
--- /dev/null
+++ b/components/page_info_strings_grdp/IDS_PAGE_INFO_SMART_CARD_READER_ALLOWED_BY_POLICY_LABEL.png.sha1
@@ -0,0 +1 @@
+33b74ec08c90dbb5c960f2a4f9df4027da6081f7
\ No newline at end of file
diff --git a/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc b/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc
index e0a85d07..657211c 100644
--- a/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc
@@ -172,10 +172,8 @@
 
     content::GlobalRenderFrameHostId global_routing_id =
         render_frame_host->GetGlobalId();
-    int process_id = render_frame_host->GetProcess()->GetDeprecatedID();
-
     performance_manager::RenderProcessHostId pm_process_id =
-        static_cast<performance_manager::RenderProcessHostId>(process_id);
+        render_frame_host->GetProcess()->GetID();
     performance_manager::v8_memory::V8DetailedMemoryProcessData process_data;
     V8DetailedMemoryExecutionContextData frame_data;
     frame_data.set_v8_bytes_used(bytes);
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
index 48bb8b4..5773ef8 100644
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -1179,10 +1179,13 @@
   // have data that we can save.
   // If the submitted manager observes one of the removed forms, just
   // ignore it as it was already inspected above.
-  base::ranges::any_of(removed_forms_copy, [&](const auto& removed_form_id) {
-    auto* manager = GetMatchedManagerForForm(driver, removed_form_id);
-    return manager != submitted_manager && detect_submission(manager);
-  });
+  if (base::ranges::any_of(
+          removed_forms_copy, [&](const auto& removed_form_id) {
+            auto* manager = GetMatchedManagerForForm(driver, removed_form_id);
+            return manager != submitted_manager && detect_submission(manager);
+          })) {
+    return;
+  }
 }
 
 void PasswordManager::OnIframeDetach(
diff --git a/components/performance_manager/binders.cc b/components/performance_manager/binders.cc
index d9775eb..fe369bf9 100644
--- a/components/performance_manager/binders.cc
+++ b/components/performance_manager/binders.cc
@@ -17,6 +17,7 @@
 #include "components/performance_manager/render_process_user_data.h"
 #include "content/public/browser/browser_child_process_host.h"
 #include "content/public/browser/child_process_data.h"
+#include "content/public/browser/child_process_id.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
@@ -27,7 +28,7 @@
 namespace {
 
 void BindRenderProcessCoordinationUnit(
-    int render_process_host_id,
+    content::ChildProcessId render_process_host_id,
     mojo::PendingReceiver<mojom::ProcessCoordinationUnit> receiver) {
   content::RenderProcessHost* render_process_host =
       content::RenderProcessHost::FromID(render_process_host_id);
@@ -55,7 +56,7 @@
 }
 
 void BindChildProcessCoordinationUnitForRenderProcessHost(
-    int render_process_host_id,
+    content::ChildProcessId render_process_host_id,
     mojo::PendingReceiver<mojom::ChildProcessCoordinationUnit> receiver) {
   DCHECK(PerformanceManagerImpl::IsAvailable());
   PerformanceManagerImpl::CallOnGraph(
@@ -63,7 +64,7 @@
       base::BindOnce(
           &BindChildProcessCoordinationUnitOnPMSequence,
           PerformanceManagerImpl::GetProcessNodeForRenderProcessHostId(
-              RenderProcessHostId(render_process_host_id)),
+              render_process_host_id),
           std::move(receiver)));
 }
 
@@ -100,12 +101,12 @@
 void Binders::ExposeInterfacesToRendererProcess(
     service_manager::BinderRegistry* registry,
     content::RenderProcessHost* host) {
-  registry->AddInterface(base::BindRepeating(&BindRenderProcessCoordinationUnit,
-                                             host->GetDeprecatedID()),
-                         base::SequencedTaskRunner::GetCurrentDefault());
+  registry->AddInterface(
+      base::BindRepeating(&BindRenderProcessCoordinationUnit, host->GetID()),
+      base::SequencedTaskRunner::GetCurrentDefault());
   registry->AddInterface(
       base::BindRepeating(&BindChildProcessCoordinationUnitForRenderProcessHost,
-                          host->GetDeprecatedID()),
+                          host->GetID()),
       base::SequencedTaskRunner::GetCurrentDefault());
 }
 
diff --git a/components/performance_manager/public/graph/process_node.h b/components/performance_manager/public/graph/process_node.h
index 5e79669..597c915 100644
--- a/components/performance_manager/public/graph/process_node.h
+++ b/components/performance_manager/public/graph/process_node.h
@@ -133,9 +133,8 @@
   // only be non-zero on Linux, ChromeOS, and Android.
   virtual uint64_t GetPrivateSwapKb() const = 0;
 
-  // Returns the render process id (equivalent to
-  // RenderProcessHost::GetDeprecatedID()), or
-  // ChildProcessHost::kInvalidUniqueID if this is not a renderer.
+  // Returns the render process id (equivalent to RenderProcessHost::GetID()),
+  // or kInvalidChildProcessUniqueId if this is not a renderer.
   virtual RenderProcessHostId GetRenderProcessHostId() const = 0;
 
   // Returns a proxy to the RenderProcessHost associated with this node. The
diff --git a/components/performance_manager/public/render_process_host_id.h b/components/performance_manager/public/render_process_host_id.h
index a96be35..866dbc4 100644
--- a/components/performance_manager/public/render_process_host_id.h
+++ b/components/performance_manager/public/render_process_host_id.h
@@ -5,23 +5,12 @@
 #ifndef COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RENDER_PROCESS_HOST_ID_H_
 #define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RENDER_PROCESS_HOST_ID_H_
 
-#include "base/types/id_type.h"
-#include "content/public/browser/child_process_host.h"
+#include "content/public/browser/child_process_id.h"
 
 namespace performance_manager {
 
-// A strongly typed wrapper for the id returned by
-// RenderProcessHost::GetDeprecatedID().
-//
-// This uses ChildProcessHost::kInvalidUniqueId (-1) as the default invalid id,
-// but also recognizes 0 as an invalid id because there is existing code that
-// uses 0 as an invalid value. It starts generating id's at 1.
-using RenderProcessHostId =
-    base::IdType<class RenderProcessHostIdTag,
-                 int32_t,
-                 content::ChildProcessHost::kInvalidUniqueID,
-                 /*kFirstGeneratedId=*/1,
-                 /*kExtraInvalidValues=*/0>;
+// A typedef around the type returned by RenderProcessHost::GetID().
+using RenderProcessHostId = content::ChildProcessId;
 
 }  // namespace performance_manager
 
diff --git a/components/performance_manager/public/render_process_host_proxy.h b/components/performance_manager/public/render_process_host_proxy.h
index 5272e70..312cbb0 100644
--- a/components/performance_manager/public/render_process_host_proxy.h
+++ b/components/performance_manager/public/render_process_host_proxy.h
@@ -36,7 +36,7 @@
   bool is_valid() const { return !render_process_host_id_.is_null(); }
 
   // Returns the routing id of the render process (from
-  // RenderProcessHost::GetDeprecatedID()).
+  // RenderProcessHost::GetID()).
   RenderProcessHostId render_process_host_id() const {
     return render_process_host_id_;
   }
@@ -50,8 +50,7 @@
   explicit RenderProcessHostProxy(RenderProcessHostId render_process_host_id);
 
  private:
-  RenderProcessHostId render_process_host_id_ =
-      RenderProcessHostId(content::ChildProcessHost::kInvalidUniqueID);
+  RenderProcessHostId render_process_host_id_;
 };
 
 }  // namespace performance_manager
diff --git a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
index 0a2f1f3d..33cf3b7 100644
--- a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
+++ b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
@@ -56,7 +56,7 @@
 //         // Process was deleted after measurement arrived on the PM sequence.
 //         return;
 //       }
-//       LOG(INFO) << "Process " << process->GetDeprecatedID() <<
+//       LOG(INFO) << "Process " << process->GetID().GetUnsafeValue() <<
 //           " reported " << process_data.detached_v8_bytes_used() <<
 //           " bytes of V8 memory that wasn't associated with a frame.";
 //       LOG(INFO) << "Process " << process_node->GetProcessId() <<
diff --git a/components/performance_manager/render_process_user_data.cc b/components/performance_manager/render_process_user_data.cc
index ac294f7..9633287 100644
--- a/components/performance_manager/render_process_user_data.cc
+++ b/components/performance_manager/render_process_user_data.cc
@@ -35,8 +35,7 @@
                                             ? base::TaskPriority::LOWEST
                                             : base::TaskPriority::HIGHEST;
   process_node_ = PerformanceManagerImpl::CreateProcessNode(
-      RenderProcessHostProxy(RenderProcessHostId(host_->GetDeprecatedID())),
-      initial_priority);
+      RenderProcessHostProxy(host_->GetID()), initial_priority);
 }
 
 RenderProcessUserData::~RenderProcessUserData() {
diff --git a/components/performance_manager/resource_attribution/process_context.cc b/components/performance_manager/resource_attribution/process_context.cc
index 0dd2229..e9fb2cd 100644
--- a/components/performance_manager/resource_attribution/process_context.cc
+++ b/components/performance_manager/resource_attribution/process_context.cc
@@ -57,7 +57,7 @@
     content::RenderProcessHost* host) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   CHECK(host);
-  RenderProcessHostId id(host->GetDeprecatedID());
+  RenderProcessHostId id(host->GetID());
   CHECK(!id.is_null());
   base::WeakPtr<ProcessNode> process_node =
       PerformanceManager::GetProcessNodeForRenderProcessHost(host);
diff --git a/components/performance_manager/resource_attribution/process_context_unittest.cc b/components/performance_manager/resource_attribution/process_context_unittest.cc
index e5ffc97..472b500a 100644
--- a/components/performance_manager/resource_attribution/process_context_unittest.cc
+++ b/components/performance_manager/resource_attribution/process_context_unittest.cc
@@ -84,8 +84,7 @@
   ASSERT_TRUE(rfh);
   content::RenderProcessHost* rph = rfh->GetProcess();
   ASSERT_TRUE(rph);
-  const auto rph_id = RenderProcessHostId(rph->GetDeprecatedID());
-
+  const RenderProcessHostId rph_id = rph->GetID();
   std::optional<ProcessContext> process_context =
       ProcessContext::FromRenderProcessHost(rph);
   ASSERT_TRUE(process_context.has_value());
diff --git a/components/performance_manager/v8_memory/v8_memory_test_helpers.cc b/components/performance_manager/v8_memory/v8_memory_test_helpers.cc
index 7cea55184..501e7c29 100644
--- a/components/performance_manager/v8_memory/v8_memory_test_helpers.cc
+++ b/components/performance_manager/v8_memory/v8_memory_test_helpers.cc
@@ -184,8 +184,7 @@
   SetContents(CreateTestWebContents());
   main_frame_ = content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kMainFrameUrl));
-  main_process_id_ =
-      RenderProcessHostId(main_frame_->GetProcess()->GetDeprecatedID());
+  main_process_id_ = main_frame_->GetProcess()->GetID();
 }
 
 void V8MemoryPerformanceManagerTestHarness::CreateCrossProcessChildFrame() {
@@ -195,8 +194,7 @@
       content::RenderFrameHostTester::For(main_frame_)->AppendChild("frame1");
   child_frame_ = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kChildFrameUrl), child_frame_);
-  child_process_id_ =
-      RenderProcessHostId(child_frame_->GetProcess()->GetDeprecatedID());
+  child_process_id_ = child_frame_->GetProcess()->GetID();
   ASSERT_NE(main_process_id_, child_process_id_);
 }
 
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogController.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogController.java
index e0cff007..a3317e83 100644
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogController.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogController.java
@@ -52,11 +52,11 @@
     @IntDef({
         State.NOT_SHOWING,
         State.PROMPT_OPEN,
-        State.PROMPT_ACCEPTED,
-        State.PROMPT_DENIED,
+        State.PROMPT_POSITIVE_CLICKED,
+        State.PROMPT_NEGATIVE_CLICKED,
         State.REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT,
         State.REQUEST_ANDROID_PERMISSIONS_FOR_EPHEMERAL_GRANT,
-        State.PROMPT_ACCEPTED_THIS_TIME
+        State.PROMPT_POSITIVE_EPHEMERAL_CLICKED
     })
     @Retention(RetentionPolicy.SOURCE)
     private @interface State {
@@ -64,11 +64,11 @@
         // We don't show prompts while Chrome Home is showing.
         // int PROMPT_PENDING = 1; // Obsolete.
         int PROMPT_OPEN = 2;
-        int PROMPT_ACCEPTED = 3;
-        int PROMPT_DENIED = 4;
+        int PROMPT_POSITIVE_CLICKED = 3;
+        int PROMPT_NEGATIVE_CLICKED = 4;
         int REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT = 5;
         int REQUEST_ANDROID_PERMISSIONS_FOR_EPHEMERAL_GRANT = 6;
-        int PROMPT_ACCEPTED_THIS_TIME = 7;
+        int PROMPT_POSITIVE_EPHEMERAL_CLICKED = 7;
     }
 
     /** Interface for a class that wants to receive updates from this controller. */
@@ -135,13 +135,6 @@
         PermissionDialogController.getInstance().queueDialog(delegate);
     }
 
-    /** Called by native code to update the current permission dialog with new screen variant. */
-    @CalledByNative
-    private static void updateDialogWithNewScreenVariant(
-            PermissionDialogDelegate delegate, @EmbeddedPromptVariant int variant) {
-        PermissionDialogController.getInstance().updateCustomView(delegate, variant);
-    }
-
     /**
      * @param observer An observer to be notified of changes.
      */
@@ -159,11 +152,8 @@
      * displaying dialog.
      *
      * @param delegate The wrapper for the native-side permission delegate.
-     * @param variant The screent variant we want to display.
      */
-    private void updateCustomView(
-            PermissionDialogDelegate delegate, @EmbeddedPromptVariant int variant) {
-        delegate.setEmbeddedPromptVariant(variant);
+    public void updateCustomView(PermissionDialogDelegate delegate) {
         if (mDialogDelegate != delegate) {
             return;
         }
@@ -201,7 +191,7 @@
             // If this dialog comes from a embedded permission request, it might have multiple of
             // different screens showing up. It makes more sense to notify the observers (in this
             // case to change the icon) after all the screens have appeared.
-            if (!isEmbeddedPromptScreenVariant()) {
+            if (!isEmbeddedPrompt()) {
                 notifyObservers(ContentSettingValues.ALLOW);
             }
             if (mState == State.REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT) {
@@ -400,29 +390,32 @@
     }
 
     public void dismissFromNative(PermissionDialogDelegate delegate) {
-        if (mDialogDelegate == delegate) {
-            // Some caution is required here to handle cases where the user actions or dismisses
-            // the prompt at roughly the same time as native. Due to asynchronicity, this function
-            // may be called after onClick and before onDismiss, or before both of those listeners.
+        if (mDialogDelegate != delegate) {
+            assert mRequestQueue.contains(delegate);
+            mRequestQueue.remove(delegate);
+        } else {
+            boolean isEmbeddedPrompt = isEmbeddedPrompt();
             mDialogDelegate = null;
-            if (mState == State.PROMPT_OPEN) {
+            if (isEmbeddedPrompt) {
                 mModalDialogManager.dismissDialog(
                         mDialogModel, DialogDismissalCause.DISMISSED_BY_NATIVE);
             } else {
-                assert mState == State.REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT
-                        || mState == State.REQUEST_ANDROID_PERMISSIONS_FOR_EPHEMERAL_GRANT
-                        || mState == State.PROMPT_DENIED
-                        || mState == State.PROMPT_ACCEPTED;
+                // Some caution is required here to handle cases where the user actions or dismisses
+                // the prompt at roughly the same time as native. Due to asynchronicity, this
+                // function may be called after onClick and before onDismiss, or before both of
+                // those listeners.
+                if (mState == State.PROMPT_OPEN) {
+                    mModalDialogManager.dismissDialog(
+                            mDialogModel, DialogDismissalCause.DISMISSED_BY_NATIVE);
+                } else {
+                    assert mState == State.REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT
+                            || mState == State.REQUEST_ANDROID_PERMISSIONS_FOR_EPHEMERAL_GRANT
+                            || mState == State.PROMPT_NEGATIVE_CLICKED
+                            || mState == State.PROMPT_POSITIVE_CLICKED;
+                }
             }
-        } else {
-            assert mRequestQueue.contains(delegate);
-            mRequestQueue.remove(delegate);
         }
-        if (delegate != null) {
-            delegate.destroy();
-            delegate = null;
-        }
-
+        delegate.destroy();
         mState = State.NOT_SHOWING;
     }
 
@@ -467,24 +460,55 @@
             mState = State.NOT_SHOWING;
             return;
         }
-        if (mState == State.PROMPT_ACCEPTED || mState == State.PROMPT_ACCEPTED_THIS_TIME) {
+
+        if (mState == State.PROMPT_POSITIVE_EPHEMERAL_CLICKED) {
             requestAndroidPermissionsIfNecessary();
-        } else {
-            // Otherwise, run the necessary delegate callback immediately and
-            // schedule the next dialog.
-            if (mState == State.PROMPT_DENIED) {
-                notifyObservers(ContentSettingValues.BLOCK);
-                mDialogDelegate.onCancel();
-            } else {
-                @DismissalType int type = DismissalType.UNSPECIFIED;
-                if (dismissalCause == DialogDismissalCause.NAVIGATE_BACK) {
-                    type = DismissalType.NAVIGATE_BACK;
-                } else if (dismissalCause == DialogDismissalCause.TOUCH_OUTSIDE) {
-                    type = DismissalType.TOUCH_OUTSIDE;
-                }
-                notifyObservers(ContentSettingValues.DEFAULT);
-                mDialogDelegate.onDismiss(type);
+        } else if (mState == State.PROMPT_POSITIVE_CLICKED) {
+            // Request android permission in embedded prompt in `PROMPT_POSITIVE_CLICKED` state will
+            // be handled in onClick.
+            if (!isEmbeddedPrompt()) {
+                requestAndroidPermissionsIfNecessary();
             }
+        } else if (mState == State.PROMPT_NEGATIVE_CLICKED) {
+            if (!isEmbeddedPrompt()
+                    || mDialogDelegate.getEmbeddedPromptVariant() == EmbeddedPromptVariant.ASK) {
+                // Run the necessary delegate callback immediately and
+                // schedule the next dialog.
+                notifyObservers(ContentSettingValues.BLOCK);
+                mDialogDelegate.onDeny();
+            } else {
+                switch (mDialogDelegate.getEmbeddedPromptVariant()) {
+                    case EmbeddedPromptVariant.OS_SYSTEM_SETTINGS -> {
+                        notifyObservers(ContentSettingValues.DEFAULT);
+                        mDialogDelegate.onAcknowledge();
+                    }
+                    case EmbeddedPromptVariant.PREVIOUSLY_GRANTED -> {
+                        notifyObservers(ContentSettingValues.DEFAULT);
+                        mDialogDelegate.onDeny();
+                    }
+                    case EmbeddedPromptVariant.PREVIOUSLY_DENIED -> {
+                        // TODO(crbug.com/388407640): Change it as we might run
+                        // into osPrompt variant.
+                        notifyObservers(ContentSettingValues.ALLOW);
+                        mDialogDelegate.onAcceptThisTime();
+                    }
+                    default -> {
+                        assert false
+                                : "Unexpected screen variant in dialog: "
+                                        + mDialogDelegate.getEmbeddedPromptVariant();
+                    }
+                }
+            }
+            scheduleDisplay();
+        } else {
+            @DismissalType int type = DismissalType.UNSPECIFIED;
+            if (dismissalCause == DialogDismissalCause.NAVIGATE_BACK) {
+                type = DismissalType.NAVIGATE_BACK;
+            } else if (dismissalCause == DialogDismissalCause.TOUCH_OUTSIDE) {
+                type = DismissalType.TOUCH_OUTSIDE;
+            }
+            notifyObservers(ContentSettingValues.DEFAULT);
+            mDialogDelegate.onDismiss(type);
             scheduleDisplay();
         }
     }
@@ -494,15 +518,15 @@
         assert mState == State.PROMPT_OPEN;
         switch (buttonType) {
             case ModalDialogProperties.ButtonType.POSITIVE -> {
-                mState = State.PROMPT_ACCEPTED;
+                mState = State.PROMPT_POSITIVE_CLICKED;
                 handlePositiveButtonClicked(model);
             }
             case ModalDialogProperties.ButtonType.POSITIVE_EPHEMERAL -> {
-                mState = State.PROMPT_ACCEPTED_THIS_TIME;
+                mState = State.PROMPT_POSITIVE_EPHEMERAL_CLICKED;
                 handlePositiveButtonClicked(model);
             }
             case ModalDialogProperties.ButtonType.NEGATIVE -> {
-                mState = State.PROMPT_DENIED;
+                mState = State.PROMPT_NEGATIVE_CLICKED;
                 mModalDialogManager.dismissDialog(
                         model, DialogDismissalCause.NEGATIVE_BUTTON_CLICKED);
             }
@@ -522,24 +546,54 @@
         }
     }
 
-    public void destroyDelegate(@ContentSettingValues int result) {
-        notifyObservers(result);
-        mDialogDelegate.destroy();
-        mDialogDelegate = null;
+    public void acknowledgeDelegate(PropertyModel model) {
+        notifyObservers(ContentSettingValues.DEFAULT);
+        mDialogDelegate.onAcknowledge();
     }
 
     private void handlePositiveButtonClicked(PropertyModel model) {
-        if (!isEmbeddedPromptScreenVariant()) {
+        if (!isEmbeddedPrompt()) {
             mModalDialogManager.dismissDialog(model, DialogDismissalCause.POSITIVE_BUTTON_CLICKED);
-        } else {
-            requestAndroidPermissionsIfNecessary();
+            return;
+        }
+        switch (mDialogDelegate.getEmbeddedPromptVariant()) {
+            case EmbeddedPromptVariant.ASK -> {
+                requestAndroidPermissionsIfNecessary();
+            }
+            case EmbeddedPromptVariant.ADMINISTRATOR_GRANTED -> {
+                acknowledgeDelegate(model);
+            }
+            case EmbeddedPromptVariant.ADMINISTRATOR_DENIED -> {
+                acknowledgeDelegate(model);
+            }
+            case EmbeddedPromptVariant.OS_SYSTEM_SETTINGS -> {
+                // TODO(crbug.com/388407640): ignore missing message and revise the screening logic
+                // after accept/deny OS permission
+                AndroidPermissionRequester.requestAndroidPermissions(
+                        mDialogDelegate.getWindow(),
+                        mDialogDelegate.getContentSettingsTypes(),
+                        PermissionDialogController.this);
+            }
+            case EmbeddedPromptVariant.PREVIOUSLY_GRANTED -> {
+                acknowledgeDelegate(model);
+            }
+            case EmbeddedPromptVariant.PREVIOUSLY_DENIED -> {
+                acknowledgeDelegate(model);
+            }
+
+            default -> {
+                assert false
+                        : "Unexpected screen variant in dialog: "
+                                + mDialogDelegate.getEmbeddedPromptVariant();
+            }
         }
     }
 
     /** Request Android permissions if necessary, after user accepted the dialog */
     private void requestAndroidPermissionsIfNecessary() {
-        assert mState == State.PROMPT_ACCEPTED || mState == State.PROMPT_ACCEPTED_THIS_TIME;
-        if (mState == State.PROMPT_ACCEPTED) {
+        assert mState == State.PROMPT_POSITIVE_CLICKED
+                || mState == State.PROMPT_POSITIVE_EPHEMERAL_CLICKED;
+        if (mState == State.PROMPT_POSITIVE_CLICKED) {
             mState = State.REQUEST_ANDROID_PERMISSIONS_FOR_PERSISTENT_GRANT;
         } else {
             mState = State.REQUEST_ANDROID_PERMISSIONS_FOR_EPHEMERAL_GRANT;
@@ -557,7 +611,7 @@
         }
     }
 
-    private boolean isEmbeddedPromptScreenVariant() {
+    private boolean isEmbeddedPrompt() {
         return mDialogDelegate != null
                 && mDialogDelegate.getEmbeddedPromptVariant()
                         != EmbeddedPromptVariant.UNINITIALIZED;
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
index aea9ab9..af51e88 100644
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
@@ -128,9 +128,9 @@
                 .acceptThisTime(mNativeDelegatePtr, PermissionDialogDelegate.this);
     }
 
-    public void onCancel() {
+    public void onDeny() {
         assert mNativeDelegatePtr != 0;
-        PermissionDialogDelegateJni.get().cancel(mNativeDelegatePtr, PermissionDialogDelegate.this);
+        PermissionDialogDelegateJni.get().deny(mNativeDelegatePtr, PermissionDialogDelegate.this);
     }
 
     public void onDismiss(@DismissalType int dismissalType) {
@@ -139,6 +139,12 @@
                 .dismissed(mNativeDelegatePtr, PermissionDialogDelegate.this, dismissalType);
     }
 
+    public void onAcknowledge() {
+        assert mNativeDelegatePtr != 0;
+        PermissionDialogDelegateJni.get()
+                .acknowledge(mNativeDelegatePtr, PermissionDialogDelegate.this);
+    }
+
     public void destroy() {
         assert mNativeDelegatePtr != 0;
         PermissionDialogDelegateJni.get()
@@ -217,7 +223,6 @@
                 variant);
     }
 
-    /** Upon construction, this class takes ownership of the passed in native delegate. */
     private PermissionDialogDelegate(
             long nativeDelegatePtr,
             WindowAndroid window,
@@ -245,13 +250,43 @@
         mEmbeddedPromptVariant = variant;
     }
 
+    /** Called by native code to update the current permission dialog with new screen. */
+    @CalledByNative
+    void updateDialog(
+            int[] contentSettingsTypes,
+            int iconId,
+            String message,
+            int[] boldedRanges,
+            String positiveButtonText,
+            String negativeButtonText,
+            String positiveEphemeralButtonText,
+            boolean showPositiveNonEphemeralAsFirstButton,
+            @EmbeddedPromptVariant int variant) {
+        mContentSettingsTypes = contentSettingsTypes;
+        mMessageText = message;
+        mDrawableId = iconId;
+        for (int i = 0; i + 1 < boldedRanges.length; i += 2) {
+            mBoldedRanges.add(new Pair(boldedRanges[i], boldedRanges[i + 1]));
+        }
+        mPositiveButtonText = positiveButtonText;
+        mNegativeButtonText = negativeButtonText;
+        mPositiveEphemeralButtonText = positiveEphemeralButtonText;
+        mShowPositiveNonEphemeralAsFirstButton = showPositiveNonEphemeralAsFirstButton;
+        mEmbeddedPromptVariant = variant;
+
+        assert mDialogController != null;
+        mDialogController.updateCustomView(this);
+    }
+
     @NativeMethods
     interface Natives {
         void accept(long nativePermissionDialogDelegate, PermissionDialogDelegate caller);
 
         void acceptThisTime(long nativePermissionDialogDelegate, PermissionDialogDelegate caller);
 
-        void cancel(long nativePermissionDialogDelegate, PermissionDialogDelegate caller);
+        void acknowledge(long nativePermissionDialogDelegate, PermissionDialogDelegate caller);
+
+        void deny(long nativePermissionDialogDelegate, PermissionDialogDelegate caller);
 
         void dismissed(
                 long nativePermissionDialogDelegate,
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
index c7ddde3..ede639b 100644
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
@@ -48,6 +48,7 @@
 
 void EmbeddedPermissionPromptAndroid::Closing() {
   delegate()->Dismiss();
+  delegate()->FinalizeCurrentRequests();
 }
 
 void EmbeddedPermissionPromptAndroid::Accept() {
@@ -55,6 +56,11 @@
   MaybeUpdateDialogWithNewScreenVariant();
 }
 
+void EmbeddedPermissionPromptAndroid::Acknowledge() {
+  delegate()->Dismiss();
+  delegate()->FinalizeCurrentRequests();
+}
+
 void EmbeddedPermissionPromptAndroid::AcceptThisTime() {
   delegate()->AcceptThisTime();
   MaybeUpdateDialogWithNewScreenVariant();
@@ -62,6 +68,7 @@
 
 void EmbeddedPermissionPromptAndroid::Deny() {
   delegate()->Deny();
+  delegate()->FinalizeCurrentRequests();
 }
 
 bool EmbeddedPermissionPromptAndroid::ShouldCurrentRequestUseQuietUI() {
@@ -231,7 +238,7 @@
     delegate()->FinalizeCurrentRequests();
     return;
   }
-  // TODO(crbug.com/388407640); update new screen.
+  permission_dialog_delegate()->UpdateDialog();
 }
 
 PermissionRequest::AnnotatedMessageText
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
index 725e5d9..12a095b4 100644
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
@@ -40,6 +40,7 @@
   void Closing() override;
   void Accept() override;
   void AcceptThisTime() override;
+  void Acknowledge() override;
   void Deny() override;
   bool ShouldCurrentRequestUseQuietUI() override;
   std::optional<PermissionUiSelector::QuietUiReason> ReasonForUsingQuietUi()
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
index 6aecb71..d21c367d 100644
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
@@ -114,10 +114,23 @@
   Java_PermissionDialogDelegate_dismissFromNative(env, j_delegate_);
 }
 
-void PermissionDialogJavaDelegate::UpdateDialogWithNewScreenVariant() {
+void PermissionDialogJavaDelegate::UpdateDialog() {
+  CHECK(permission_prompt_->GetEmbeddedPromptVariant() !=
+        EmbeddedPermissionPromptFlowModel::Variant::kUninitialized);
   JNIEnv* env = base::android::AttachCurrentThread();
-  Java_PermissionDialogController_updateDialogWithNewScreenVariant(
-      env, j_delegate_,
+  bool is_one_time = permission_prompt_->IsOneTimePermissionRequest();
+  Java_PermissionDialogDelegate_updateDialog(
+      env, j_delegate_, permission_prompt_->GetContentSettingTypes(env),
+      PermissionsClient::Get()->MapToJavaDrawableId(
+          permission_prompt_->GetIconId()),
+      ConvertUTF16ToJavaString(
+          env, permission_prompt_->GetAnnotatedMessageText().text),
+      permission_prompt_->GetBoldRanges(env),
+      permission_prompt_->GetPositiveButtonText(env, is_one_time),
+      permission_prompt_->GetNegativeButtonText(env, is_one_time),
+      permission_prompt_->GetPositiveEphemeralButtonText(env, is_one_time),
+      is_one_time &&
+          permissions::feature_params::kShowAllowAlwaysAsFirstButton.Get(),
       static_cast<int>(permission_prompt_->GetEmbeddedPromptVariant()));
 }
 
@@ -160,8 +173,14 @@
   permission_prompt_->AcceptThisTime();
 }
 
-void PermissionDialogDelegate::Cancel(JNIEnv* env,
-                                      const JavaParamRef<jobject>& obj) {
+void PermissionDialogDelegate::Acknowledge(JNIEnv* env,
+                                           const JavaParamRef<jobject>& obj) {
+  CHECK(permission_prompt_);
+  permission_prompt_->Acknowledge();
+}
+
+void PermissionDialogDelegate::Deny(JNIEnv* env,
+                                    const JavaParamRef<jobject>& obj) {
   CHECK(permission_prompt_);
   permission_prompt_->Deny();
 }
@@ -194,9 +213,9 @@
   java_delegate_.reset();
 }
 
-void PermissionDialogDelegate::UpdateDialogWithNewScreenVariant() {
+void PermissionDialogDelegate::UpdateDialog() {
   CHECK(java_delegate_);
-  java_delegate_->UpdateDialogWithNewScreenVariant();
+  java_delegate_->UpdateDialog();
 }
 
 PermissionDialogDelegate::PermissionDialogDelegate(
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h
index a0c9971..eaf48d6 100644
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.h
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.h
@@ -43,7 +43,7 @@
 
   virtual void DismissDialog();
 
-  virtual void UpdateDialogWithNewScreenVariant();
+  virtual void UpdateDialog();
 
  private:
   base::android::ScopedJavaGlobalRef<jobject> j_delegate_;
@@ -81,7 +81,8 @@
   // JNI methods.
   void Accept(JNIEnv* env, const JavaParamRef<jobject>& obj);
   void AcceptThisTime(JNIEnv* env, const JavaParamRef<jobject>& obj);
-  void Cancel(JNIEnv* env, const JavaParamRef<jobject>& obj);
+  void Acknowledge(JNIEnv* env, const JavaParamRef<jobject>& obj);
+  void Deny(JNIEnv* env, const JavaParamRef<jobject>& obj);
   void Dismissed(JNIEnv* env,
                  const JavaParamRef<jobject>& obj,
                  int dismissalType);
@@ -92,7 +93,7 @@
 
   // Notify Java side to update content view of the dialog associated with this
   // object.
-  void UpdateDialogWithNewScreenVariant();
+  void UpdateDialog();
 
  private:
   // On navigation or page destruction, hide the dialog.
diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h
index 34f2d32..240fa24 100644
--- a/components/permissions/android/permission_prompt/permission_prompt_android.h
+++ b/components/permissions/android/permission_prompt/permission_prompt_android.h
@@ -55,6 +55,7 @@
   virtual void Closing();
   virtual void Accept();
   virtual void AcceptThisTime();
+  virtual void Acknowledge() {}
   virtual void Deny();
   void SetManageClicked();
   void SetLearnMoreClicked();
diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc
index 051066f..8ac93b41 100644
--- a/components/permissions/embedded_permission_prompt_flow_model.cc
+++ b/components/permissions/embedded_permission_prompt_flow_model.cc
@@ -108,6 +108,7 @@
 }
 
 void EmbeddedPermissionPromptFlowModel::CalculateCurrentVariant() {
+  Clear();
   auto* map = PermissionsClient::Get()->GetSettingsMap(
       web_contents()->GetBrowserContext());
   content_settings::SettingInfo info;
@@ -122,12 +123,10 @@
     PrioritizeAndMergeNewVariant(current_request_variant, type);
   }
 
-  if (requests_.size() != prompt_types_.size()) {
-    const auto& requests = delegate_->Requests();
-    for (PermissionRequest* request : requests) {
-      if (prompt_types_.contains(request->GetContentSettingsType())) {
-        requests_.push_back(request);
-      }
+  const auto& requests = delegate_->Requests();
+  for (PermissionRequest* request : requests) {
+    if (prompt_types_.contains(request->GetContentSettingsType())) {
+      requests_.push_back(request);
     }
   }
 }
diff --git a/components/permissions/permission_request_enums.h b/components/permissions/permission_request_enums.h
index 7dbca86..85f4803 100644
--- a/components/permissions/permission_request_enums.h
+++ b/components/permissions/permission_request_enums.h
@@ -18,6 +18,18 @@
   NUM
 };
 
+enum class PermissionRequestRelevance {
+  kUnspecified = 0,
+  kVeryLow = 1,
+  kLow = 2,
+  kMedium = 3,
+  kHigh = 4,
+  kVeryHigh = 5,
+
+  // Always keep at the end.
+  kMaxValue = kVeryHigh,
+};
+
 }  // namespace permissions
 
 #endif  // COMPONENTS_PERMISSIONS_PERMISSION_REQUEST_ENUMS_H_
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
index e7fc6a0..a53d9ca 100644
--- a/components/permissions/permission_request_manager.cc
+++ b/components/permissions/permission_request_manager.cc
@@ -1070,6 +1070,7 @@
   current_request_decision_time_ = base::Time();
   current_request_prompt_disposition_.reset();
   prediction_grant_likelihood_.reset();
+  permission_request_relevance_.reset();
   current_request_ui_to_use_.reset();
   was_decision_held_back_.reset();
   selector_decisions_.clear();
@@ -1125,8 +1126,9 @@
         DetermineCurrentRequestUIDisposition(),
         DetermineCurrentRequestUIDispositionReasonForUMA(),
         view_ ? std::optional(view_->GetPromptVariants()) : std::nullopt,
-        prediction_grant_likelihood_, was_decision_held_back_, ignore_reason,
-        did_show_prompt_, did_click_manage_, did_click_learn_more_);
+        prediction_grant_likelihood_, permission_request_relevance_,
+        was_decision_held_back_, ignore_reason, did_show_prompt_,
+        did_click_manage_, did_click_learn_more_);
   }
 
   std::optional<QuietUiReason> quiet_ui_reason;
@@ -1477,6 +1479,11 @@
                                          ->PredictedGrantLikelihoodForUKM();
     }
 
+    if (!permission_request_relevance_.has_value()) {
+      permission_request_relevance_ = permission_ui_selectors_[decision_index]
+                                          ->PermissionRequestRelevanceForUKM();
+    }
+
     if (!was_decision_held_back_.has_value()) {
       was_decision_held_back_ = permission_ui_selectors_[decision_index]
                                     ->WasSelectorDecisionHeldback();
diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
index 66afbce..6e4dc97 100644
--- a/components/permissions/permission_request_manager.h
+++ b/components/permissions/permission_request_manager.h
@@ -507,10 +507,14 @@
   std::optional<UiDecision> current_request_ui_to_use_;
 
   // The likelihood value returned by the Web Permission Predictions Service,
-  // to be recoreded in UKM.
+  // to be recorded in UKM.
   std::optional<PermissionUmaUtil::PredictionGrantLikelihood>
       prediction_grant_likelihood_;
 
+  // The permission request relevance returned by an on-device ML model,
+  // to be recorded in UKM.
+  std::optional<PermissionRequestRelevance> permission_request_relevance_;
+
   // Status of the decision made by the Web Permission Prediction Service, if
   // it was held back or not.
   std::optional<bool> was_decision_held_back_;
diff --git a/components/permissions/permission_ui_selector.cc b/components/permissions/permission_ui_selector.cc
index e0df5b7b..eb8f655 100644
--- a/components/permissions/permission_ui_selector.cc
+++ b/components/permissions/permission_ui_selector.cc
@@ -48,6 +48,11 @@
   return std::nullopt;
 }
 
+std::optional<PermissionRequestRelevance>
+PermissionUiSelector::PermissionRequestRelevanceForUKM() {
+  return std::nullopt;
+}
+
 std::optional<bool> PermissionUiSelector::WasSelectorDecisionHeldback() {
   return std::nullopt;
 }
diff --git a/components/permissions/permission_ui_selector.h b/components/permissions/permission_ui_selector.h
index c2817550..097188c 100644
--- a/components/permissions/permission_ui_selector.h
+++ b/components/permissions/permission_ui_selector.h
@@ -9,6 +9,7 @@
 
 #include "base/functional/callback_forward.h"
 #include "components/permissions/permission_request.h"
+#include "components/permissions/permission_request_enums.h"
 #include "components/permissions/permission_uma_util.h"
 
 namespace permissions {
@@ -89,10 +90,16 @@
 
   // Will return the selector's discretized prediction value, if any is
   // applicable to be recorded in UKMs. This is specific only to a selector that
-  // makes use of the Web Permission Predictions Service to make decisions.
+  // uses of the Web Permission Predictions Service to make decisions.
   virtual std::optional<PermissionUmaUtil::PredictionGrantLikelihood>
   PredictedGrantLikelihoodForUKM();
 
+  // Will return the selector's discretized permission request relevance, if any
+  // is applicable to be recorded in UKMs. This is specific only to a selector
+  // that uses Gemini Nano on-device model to make decisions.
+  virtual std::optional<PermissionRequestRelevance>
+  PermissionRequestRelevanceForUKM();
+
   // Will return if the selector's decision was heldback. Currently only the
   // Web Prediction Service selector supports holdbacks.
   virtual std::optional<bool> WasSelectorDecisionHeldback();
diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc
index e343e04e..4b365936 100644
--- a/components/permissions/permission_uma_util.cc
+++ b/components/permissions/permission_uma_util.cc
@@ -408,6 +408,7 @@
     std::optional<bool> has_previously_revoked_permission,
     std::optional<PermissionUmaUtil::PredictionGrantLikelihood>
         predicted_grant_likelihood,
+    std::optional<PermissionRequestRelevance> permission_request_relevance,
     PredictionRequestFeatures::ActionCounts
         loud_ui_actions_counts_for_request_type,
     PredictionRequestFeatures::ActionCounts loud_ui_actions_counts,
@@ -503,6 +504,11 @@
         static_cast<int64_t>(predicted_grant_likelihood.value()));
   }
 
+  if (permission_request_relevance.has_value()) {
+    builder.SetPermissionRequestRelevance(
+        static_cast<int64_t>(permission_request_relevance.value()));
+  }
+
   if (prediction_decision_held_back.has_value()) {
     builder.SetPredictionsApiResponse_Heldback(
         prediction_decision_held_back.value());
@@ -865,6 +871,7 @@
                          /*web_contents=*/nullptr, browser_context,
                          /*render_frame_host*/ nullptr,
                          /*predicted_grant_likelihood=*/std::nullopt,
+                         /*prediction_request_relevance=*/std::nullopt,
                          /*prediction_decision_held_back=*/std::nullopt);
 }
 
@@ -988,6 +995,7 @@
     std::optional<PermissionPromptDispositionReason> ui_reason,
     std::optional<std::vector<ElementAnchoredBubbleVariant>> variants,
     std::optional<PredictionGrantLikelihood> predicted_grant_likelihood,
+    std::optional<PermissionRequestRelevance> permission_request_relevance,
     std::optional<bool> prediction_decision_held_back,
     std::optional<permissions::PermissionIgnoredReason> ignored_reason,
     bool did_show_prompt,
@@ -1034,7 +1042,8 @@
         time_to_action, ui_disposition, ui_reason, variants, requesting_origin,
         web_contents, web_contents->GetBrowserContext(),
         content::RenderFrameHost::FromID(request->get_requesting_frame_id()),
-        predicted_grant_likelihood, prediction_decision_held_back);
+        predicted_grant_likelihood, permission_request_relevance,
+        prediction_decision_held_back);
 
     std::string priorDismissPrefix =
         "Permissions.Prompt." + action_string + ".PriorDismissCount2.";
@@ -1264,6 +1273,7 @@
     content::BrowserContext* browser_context,
     content::RenderFrameHost* render_frame_host,
     std::optional<PredictionGrantLikelihood> predicted_grant_likelihood,
+    std::optional<PermissionRequestRelevance> permission_request_relevance,
     std::optional<bool> prediction_decision_held_back) {
   DCHECK(PermissionUtil::IsPermission(permission));
   PermissionDecisionAutoBlocker* autoblocker =
@@ -1326,9 +1336,10 @@
               : std::nullopt,
           PermissionsClient::Get()->HasPreviouslyAutoRevokedPermission(
               browser_context, requesting_origin, permission),
-          predicted_grant_likelihood, loud_ui_actions_counts_per_request_type,
-          loud_ui_actions_counts, actions_counts_per_request_type,
-          actions_counts, prediction_decision_held_back));
+          predicted_grant_likelihood, permission_request_relevance,
+          loud_ui_actions_counts_per_request_type, loud_ui_actions_counts,
+          actions_counts_per_request_type, actions_counts,
+          prediction_decision_held_back));
 
   if (render_frame_host && IsCrossOriginSubframe(render_frame_host)) {
     RecordCrossOriginFrameActionAndPolicyConfiguration(permission, action,
diff --git a/components/permissions/permission_uma_util.h b/components/permissions/permission_uma_util.h
index 75e0897..befe526 100644
--- a/components/permissions/permission_uma_util.h
+++ b/components/permissions/permission_uma_util.h
@@ -16,6 +16,7 @@
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/content_settings_types.h"
 #include "components/permissions/permission_request.h"
+#include "components/permissions/permission_request_enums.h"
 #include "components/permissions/prediction_service/prediction_service_messages.pb.h"
 #include "components/permissions/request_type.h"
 #include "content/public/browser/permission_result.h"
@@ -697,6 +698,7 @@
       std::optional<PermissionPromptDispositionReason> ui_reason,
       std::optional<std::vector<ElementAnchoredBubbleVariant>> variants,
       std::optional<PredictionGrantLikelihood> predicted_grant_likelihood,
+      std::optional<PermissionRequestRelevance> permission_request_relevance,
       std::optional<bool> prediction_decision_held_back,
       std::optional<permissions::PermissionIgnoredReason> ignored_reason,
       bool did_show_prompt,
@@ -914,6 +916,7 @@
       content::BrowserContext* browser_context,
       content::RenderFrameHost* render_frame_host,
       std::optional<PredictionGrantLikelihood> predicted_grant_likelihood,
+      std::optional<PermissionRequestRelevance> permission_request_relevance,
       std::optional<bool> prediction_decision_held_back);
 
   // Records |count| total prior actions for a prompt of type |permission|
diff --git a/components/permissions/permission_uma_util_unittest.cc b/components/permissions/permission_uma_util_unittest.cc
index 7ce18a91..33daabd 100644
--- a/components/permissions/permission_uma_util_unittest.cc
+++ b/components/permissions/permission_uma_util_unittest.cc
@@ -359,6 +359,7 @@
       /* ui_reason*/ std::nullopt,
       /*variants*/ {},
       /*predicted_grant_likelihood*/ std::nullopt,
+      /*permission_request_relevance*/ std::nullopt,
       /*prediction_decision_held_back*/ std::nullopt,
       /*ignored_reason*/ std::nullopt, /*did_show_prompt*/ false,
       /*did_click_managed*/ false,
@@ -698,6 +699,7 @@
       PermissionPromptDisposition::ELEMENT_ANCHORED_BUBBLE,
       /* ui_reason*/ std::nullopt, variants,
       /*predicted_grant_likelihood*/ std::nullopt,
+      /*permission_request_relevance*/ std::nullopt,
       /*prediction_decision_held_back*/ std::nullopt,
       /*ignored_reason*/ std::nullopt, /*did_show_prompt*/ true,
       /*did_click_managed*/ false,
@@ -745,6 +747,7 @@
       /* ui_reason*/ std::nullopt,
       /*variants*/ {},
       /*predicted_grant_likelihood*/ std::nullopt,
+      /*permission_request_relevance*/ std::nullopt,
       /*prediction_decision_held_back*/ std::nullopt,
       /*ignored_reason*/ std::nullopt, /*did_show_prompt*/ false,
       /*did_click_managed*/ false,
@@ -920,6 +923,7 @@
       /* ui_reason*/ std::nullopt,
       /*variants*/ {},
       /*predicted_grant_likelihood*/ std::nullopt,
+      /*permission_request_relevance*/ std::nullopt,
       /*prediction_decision_held_back*/ std::nullopt,
       /*ignored_reason*/ std::nullopt, /*did_show_prompt*/ false,
       /*did_click_managed*/ false,
diff --git a/components/permissions/prediction_service/prediction_common.cc b/components/permissions/prediction_service/prediction_common.cc
index 816805d..96b83c9a 100644
--- a/components/permissions/prediction_service/prediction_common.cc
+++ b/components/permissions/prediction_service/prediction_common.cc
@@ -83,6 +83,26 @@
   NOTREACHED();
 }
 
+PermissionFeatures_Relevance ConvertToProtoRelevance(
+    const permissions::PermissionRequestRelevance relevance) {
+  switch (relevance) {
+    case permissions::PermissionRequestRelevance::kUnspecified:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED;
+    case permissions::PermissionRequestRelevance::kVeryLow:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_VERY_LOW;
+    case permissions::PermissionRequestRelevance::kLow:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_LOW;
+    case permissions::PermissionRequestRelevance::kMedium:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_MEDIUM;
+    case permissions::PermissionRequestRelevance::kHigh:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_HIGH;
+    case permissions::PermissionRequestRelevance::kVeryHigh:
+      return permissions::PermissionFeatures_Relevance_RELEVANCE_VERY_HIGH;
+  }
+
+  NOTREACHED();
+}
+
 void FillInStatsFeatures(const PredictionRequestFeatures::ActionCounts& counts,
                          StatsFeatures* features) {
   int total_counts = counts.total();
@@ -112,7 +132,8 @@
       proto_request->mutable_permission_features()->Add();
   FillInStatsFeatures(entity.requested_permission_counts,
                       permission_features->mutable_permission_stats());
-
+  permission_features->set_permission_relevance(
+      ConvertToProtoRelevance(entity.permission_relevance));
   switch (entity.type) {
     case RequestType::kNotifications:
       permission_features->mutable_notification_permission()->Clear();
diff --git a/components/permissions/prediction_service/prediction_request_features.h b/components/permissions/prediction_service/prediction_request_features.h
index 318a98d1..fc53722 100644
--- a/components/permissions/prediction_service/prediction_request_features.h
+++ b/components/permissions/prediction_service/prediction_request_features.h
@@ -39,6 +39,9 @@
   // 0 = default, client is in Finch experiment control group,
   // Different than 0 = client is in Finch enabled group.
   size_t experiment_id = 0;
+
+  // The permission request relevance generated by the genAI on-device model.
+  PermissionRequestRelevance permission_relevance;
 };
 
 }  // namespace permissions
diff --git a/components/permissions/prediction_service/prediction_service_messages.proto b/components/permissions/prediction_service/prediction_service_messages.proto
index f2ce360..e9cffe7 100644
--- a/components/permissions/prediction_service/prediction_service_messages.proto
+++ b/components/permissions/prediction_service/prediction_service_messages.proto
@@ -108,6 +108,20 @@
     NotificationPermission notification_permission = 2;
     GeolocationPermission geolocation_permission = 3;
   }
+
+  // Enum defining the permission relevance generated by a genAI and/or TFLite
+  // on-device model.
+  enum Relevance {
+    RELEVANCE_UNSPECIFIED = 0;
+    RELEVANCE_VERY_LOW = 1;
+    RELEVANCE_LOW = 2;
+    RELEVANCE_MEDIUM = 3;
+    RELEVANCE_HIGH = 4;
+    RELEVANCE_VERY_HIGH = 5;
+  }
+
+  // Optional. The permission relevance generated by an on-device model.
+  optional Relevance permission_relevance = 4;
 }
 // Permission suggestion with the predicted likelihood that the user will grant
 // the permission prompt (more details at go/hedgehog-backend).
diff --git a/components/permissions/prediction_service/prediction_service_unittest.cc b/components/permissions/prediction_service/prediction_service_unittest.cc
index 92f72e3..088ce4ca 100644
--- a/components/permissions/prediction_service/prediction_service_unittest.cc
+++ b/components/permissions/prediction_service/prediction_service_unittest.cc
@@ -350,6 +350,49 @@
   scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
 };
 
+// This test should be the first one, otherwise it fails.
+TEST_F(PredictionServiceTest, PromptCountsAreBucketed) {
+  struct {
+    size_t prompt_count;
+    int expected_bucket;
+  } kTests[] = {{4, 4},   {5, 5},   {6, 6},   {7, 7},    {8, 8},
+                {9, 9},   {10, 10}, {11, 10}, {12, 12},  {14, 12},
+                {15, 15}, {19, 15}, {20, 20}, {100, 20}, {1000, 20}};
+
+  prediction_service_->set_prediction_service_url_for_testing(
+      GURL(kUrl_Likely));
+
+  for (const auto& kTest : kTests) {
+    permissions::PredictionRequestFeatures features = kFeaturesAllCountsZero;
+    features.requested_permission_counts.denies = kTest.prompt_count;
+
+    permissions::GeneratePredictionsRequest expected_request =
+        kRequestAllCountsZero;
+    expected_request.mutable_permission_features()
+        ->at(0)
+        .mutable_permission_stats()
+        ->set_avg_deny_rate(1);
+    expected_request.mutable_permission_features()
+        ->at(0)
+        .mutable_permission_stats()
+        ->set_prompts_count(kTest.expected_bucket);
+    expected_request.mutable_permission_features()
+        ->at(0)
+        .set_permission_relevance(
+            permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+
+    base::RunLoop run_loop;
+    StartLookup(features, &run_loop, nullptr /* response_loop */);
+    run_loop.Run();
+
+    EXPECT_EQ(1u, received_requests_.size());
+    EXPECT_EQ(expected_request.SerializeAsString(),
+              received_requests_[0]->SerializeAsString());
+
+    received_requests_.clear();
+  }
+}
+
 TEST_F(PredictionServiceTest, BuiltProtoRequestIsCorrect) {
   // Test origin being added correctly in the request.
   base::test::ScopedFeatureList scoped_feature_list;
@@ -358,6 +401,26 @@
   kFeaturesAllCountsZero.url = test_requesting_url.GetWithEmptyPath();
   kRequestAllCountsZero.mutable_site_features()->set_origin(
       "https://www.test.example/");
+  kRequestAllCountsZero.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestRoundedCounts.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestEqualCountsTotal20.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestEqualCountsTotal20.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestDifferentCounts.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
 
   struct {
     PredictionRequestFeatures entity;
@@ -402,6 +465,27 @@
   kFeaturesEvenCountsOver100Alt.experiment_id = 1;
   kFeaturesDifferentCounts.experiment_id = 1;
 
+  kRequestAllCountsZero.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestRoundedCounts.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestEqualCountsTotal20.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestEqualCountsTotal20.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+  kRequestDifferentCounts.mutable_permission_features()
+      ->at(0)
+      .set_permission_relevance(
+          permissions::PermissionFeatures_Relevance_RELEVANCE_UNSPECIFIED);
+
   kRequestAllCountsZero.mutable_client_features()
       ->mutable_experiment_config()
       ->set_experiment_id(1);
@@ -569,42 +653,4 @@
   EXPECT_FALSE(received_responses_[0]);
 }
 
-TEST_F(PredictionServiceTest, PromptCountsAreBucketed) {
-  struct {
-    size_t prompt_count;
-    int expected_bucket;
-  } kTests[] = {{4, 4},   {5, 5},   {6, 6},   {7, 7},    {8, 8},
-                {9, 9},   {10, 10}, {11, 10}, {12, 12},  {14, 12},
-                {15, 15}, {19, 15}, {20, 20}, {100, 20}, {1000, 20}};
-
-  prediction_service_->set_prediction_service_url_for_testing(
-      GURL(kUrl_Likely));
-
-  for (const auto& kTest : kTests) {
-    permissions::PredictionRequestFeatures features = kFeaturesAllCountsZero;
-    features.requested_permission_counts.denies = kTest.prompt_count;
-
-    permissions::GeneratePredictionsRequest expected_request =
-        kRequestAllCountsZero;
-    expected_request.mutable_permission_features()
-        ->at(0)
-        .mutable_permission_stats()
-        ->set_avg_deny_rate(1);
-    expected_request.mutable_permission_features()
-        ->at(0)
-        .mutable_permission_stats()
-        ->set_prompts_count(kTest.expected_bucket);
-
-    base::RunLoop run_loop;
-    StartLookup(features, &run_loop, nullptr /* response_loop */);
-    run_loop.Run();
-
-    EXPECT_EQ(1u, received_requests_.size());
-    EXPECT_EQ(expected_request.SerializeAsString(),
-              received_requests_[0]->SerializeAsString());
-
-    received_requests_.clear();
-  }
-}
-
 }  // namespace permissions
diff --git a/components/policy/core/browser/cloud/user_policy_signin_service_base.cc b/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
index a6c96a8..0d7c78a 100644
--- a/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
+++ b/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
@@ -153,11 +153,8 @@
   // Don't run the callbacks to be consistent with
   // `CloudPolicyService::RefreshPolicy()` behavior during shutdown.
   policy_fetch_callbacks_.reset();
-  CloudPolicyManager* manager = policy_manager();
-  if (manager && manager->core()->client())
-    manager->core()->client()->RemoveObserver(this);
-  if (manager && manager->core()->service())
-    manager->core()->service()->RemoveObserver(this);
+  cloud_policy_client_observation_.Reset();
+  cloud_policy_service_observation_.Reset();
   registration_callback_.Cancel();
 }
 
@@ -258,9 +255,9 @@
   DCHECK(manager->core()->service());
 
   // Observe the client to detect errors fetching policy.
-  manager->core()->client()->AddObserver(this);
+  cloud_policy_client_observation_.Observe(manager->core()->client());
   // Observe the service to determine when it's initialized.
-  manager->core()->service()->AddObserver(this);
+  cloud_policy_service_observation_.Observe(manager->core()->service());
 }
 
 void UserPolicySigninServiceBase::ShutdownCloudPolicyManager() {
diff --git a/components/policy/core/browser/cloud/user_policy_signin_service_base.h b/components/policy/core/browser/cloud/user_policy_signin_service_base.h
index 6a96d58..197456a 100644
--- a/components/policy/core/browser/cloud/user_policy_signin_service_base.h
+++ b/components/policy/core/browser/cloud/user_policy_signin_service_base.h
@@ -14,6 +14,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
 #include "base/time/time.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/policy/core/common/cloud/cloud_policy_client.h"
@@ -264,6 +265,12 @@
   // shut down.
   base::CancelableOnceCallback<void()> registration_callback_;
 
+  base::ScopedObservation<CloudPolicyClient, CloudPolicyClient::Observer>
+      cloud_policy_client_observation_{this};
+
+  base::ScopedObservation<CloudPolicyService, CloudPolicyService::Observer>
+      cloud_policy_service_observation_{this};
+
   base::WeakPtrFactory<UserPolicySigninServiceBase> weak_factory_{this};
 
   // Weak pointer factory used for registration.
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index d61e9d9b..c4d5645 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -10431,7 +10431,6 @@
       Wird die Richtlinie während der Ausführung von <ph name="PRODUCT_NAME" /> geändert, wird sie nur auf neu geöffnete Tabs angewendet.</translation>
 <translation id="8685748277907759932">Verhindern, dass Nutzer „Zum Suchen antippen“ verwenden</translation>
 <translation id="8686700500128191717">Melden der Nutzer auf Geräten aktivieren</translation>
-<translation id="8687570136798972353"><ph name="GLIC" /> aktivieren</translation>
 <translation id="8687958770985542440">Damit wird die Web Components v0 API bis M84 wieder aktiviert.</translation>
 <translation id="8693243869659262736">Integrierten DNS-Client verwenden</translation>
 <translation id="8695006038397632296">Installationsanfragen für Erweiterungen erstellen und in der Admin-Konsole hochladen</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 9f19f15e..4fa8fb42 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -10912,7 +10912,6 @@
       Si esta política cambia mientras se ejecuta <ph name="PRODUCT_NAME" />, el cambio solo se aplicará a las pestañas que se abran a partir de ese momento.</translation>
 <translation id="8685748277907759932">Impide que los usuarios usen Tocar para buscar</translation>
 <translation id="8686700500128191717">Habilitar los informes de usuarios del dispositivo</translation>
-<translation id="8687570136798972353">Habilitar <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Vuelve a habilitar la API Web Components v0 hasta la versión M84</translation>
 <translation id="8693243869659262736">Utilizar cliente DNS integrado</translation>
 <translation id="8695006038397632296">Crear y subir solicitudes de instalación de extensiones a la Consola del administrador</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 31b30c9e..46807a5 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -243,6 +243,7 @@
 
       Si se le asigna el valor "False", no aparecerá la casilla "Permitir siempre" y el usuario verá un mensaje de confirmación cada vez que se invoque un protocolo externo.</translation>
 <translation id="1181598794547737681">Habilitar la interfaz del cuadro de descargas</translation>
+<translation id="1182701225491473405">Configuración de Controlled Frame</translation>
 <translation id="1184531093651606913">Impide que las extensiones se carguen desde la línea de comandos</translation>
 <translation id="1184562656144537588">Manifest V2 solo está habilitado para extensiones de instalación forzada</translation>
 <translation id="11903325225202653">Si se le asigna el valor "true" a esta política, el modo Contraste alto permanece activado. Si se le asigna el valor "false", el modo Contraste alto permanece desactivado.
@@ -1010,6 +1011,7 @@
       Si no se define esta política o se le asigna a una lista vacía, no se adjuntarán datos de depuración de bajo nivel a los comentarios de los usuarios.
       Lee la descripción de cada tipo de dispositivo para consultar el tipo concreto de datos de depuración de bajo nivel.</translation>
 <translation id="1744340218280697033">No permitir que los padres añadan cuentas supervisadas</translation>
+<translation id="1745981653910662565">Permitir la API Controlled Frame en estos sitios</translation>
 <translation id="1751429117283165017">Si se le asigna un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios no pueden pedir a los usuarios que les concedan acceso de escritura a archivos o directorios en el sistema de archivos del sistema operativo del host.
 
       Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios, si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario.
@@ -1230,6 +1232,7 @@
       Si no se define esta política, se desactivará la autenticación <ph name="HTTP_NEGOTIATE" /> en Android.</translation>
 <translation id="1923704782248889851">Habilitar el dictado</translation>
 <translation id="1924085079572112898">Los ajustes de F11 están inhabilitados</translation>
+<translation id="1924393228810864764">No permitir que los orígenes de aplicaciones web aisladas usen Controlled Frame</translation>
 <translation id="1925529914257504750">Actualización automática de conexiones P2P habilitada</translation>
 <translation id="1928355425032308464">Habilitar entrada de vídeo</translation>
 <translation id="1930094135927166199">Inhabilitar la energía compartida por USB</translation>
@@ -1302,6 +1305,7 @@
 
       Si se inhabilita esta política o no se le asigna ningún valor, no se usará la transición rápida.</translation>
 <translation id="1972134432340252414">Bloquea los puntos de extensión antiguos en el proceso del navegador</translation>
+<translation id="1973804850652157024">Controlar el uso de la API Controlled Frame</translation>
 <translation id="1977581177449752640">Si se le asigna un valor a esta política, el host de acceso remoto utilizará un certificado de cliente con el CN de emisor especificado para autenticarse en <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" />. Para usar cualquier certificado de cliente disponible, asígnale el valor <ph name="WILDCARD_VALUE" />. Esta función está inhabilitada si está vacía o no se le asigna ningún valor.</translation>
 <translation id="1984934843478301531">Automatización del inicio de aplicaciones</translation>
 <translation id="1985545260037812875">Mostrar pantalla de configuración del tamaño de visualización durante el inicio de sesión</translation>
@@ -4210,6 +4214,17 @@
 <translation id="4146319954420095470">(¡Advertencia! Esta dependencia se dejará de admitir pronto. Empieza a usar <ph name="GLS_POLICY_NAME" /> en su lugar). Si se asigna el valor <ph name="BLOCK_GEOLOCATION_SETTING" /> a esta política, los servicios del sistema de <ph name="PRODUCT_OS_NAME" /> y las aplicaciones Android no podrán acceder a la información de ubicación. Si se asigna cualquier otro valor a esta política o no se define, se pedirá al usuario que dé su permiso cuando una aplicación Android quiera acceder a la información de ubicación.</translation>
 <translation id="4147818922357566987">Habilitar variaciones referentes solo a correcciones críticas</translation>
 <translation id="4150201353443180367">Pantalla</translation>
+<translation id="4150646872548223241">La API Controlled Frame, disponible para ciertos contextos aislados, como las aplicaciones web aisladas (IWAs), permite que una aplicación inserte y manipule contenido arbitrario.
+Consulta https://github.com/WICG/controlled-frame para obtener más información.
+
+Si se define esta política, podrás indicar patrones de URL que especifiquen qué sitios pueden usar la API Controlled Frame.
+Los patrones válidos se limitan a las aplicaciones web aisladas.
+
+Si no se establece la política, <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> se aplicará a todos los sitios, si se ha definido.
+
+Los patrones de URL no deben entrar en conflicto con <ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política.
+
+Para obtener información detallada sobre los patrones de URL válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
 <translation id="4154221011709068799">No permitir dispositivos de almacenamiento externo</translation>
 <translation id="415445772247959702">Web Store (compatible a partir de la versión 89)</translation>
 <translation id="4157003184375321727">Informar de la versión del firmware y del sistema operativo</translation>
@@ -6947,6 +6962,7 @@
       Si no, se le podrá asignar uno de estos valores: "tls1.2" o "tls1.3". Si se define esta política, <ph name="PRODUCT_NAME" /> no usará versiones de SSL/TLS posteriores a la versión especificada. Los valores que no se reconozcan se ignorarán.</translation>
 <translation id="6120909112796019291">Permitir la edición de fotos basada en IA generativa y mejorar los modelos de IA.</translation>
 <translation id="6123052603197028610">No permitir que las consultas a los servidores de Google obtengan marcas de tiempo</translation>
+<translation id="6128539430475678271">Bloquear la API Controlled Frame en estos sitios</translation>
 <translation id="6130360423841559818">Controlar el nuevo comportamiento del cuadro de diálogo de cancelación producido por el evento beforeunload</translation>
 <translation id="6131803221304830537">Inhabilitar la integridad del código del renderizador</translation>
 <translation id="6132506775968708399">Bloquear cookies de terceros</translation>
@@ -7409,6 +7425,7 @@
       Si esta política no se establece para un sitio, se le aplicará la política de <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" />, si se ha definido. En caso contrario, el permiso se ajustará a los valores predeterminados del navegador y los usuarios podrán elegir este permiso en función del sitio.</translation>
 <translation id="6383774771168138899">Configura el flujo de <ph name="CLOUD_UPLOAD_NAME" /> para <ph name="MICROSOFT_ONE_DRIVE_NAME" /> y <ph name="MICROSOFT_365_NAME" /></translation>
 <translation id="6384542789059421431">Habilitar que se muestren páginas de resultados del buscador predeterminado en un panel lateral del navegador.</translation>
+<translation id="6389240462871677239">Permitir que los orígenes de aplicaciones web aisladas usen Controlled Frame</translation>
 <translation id="6389858262577493180">Habilitar el uso de <ph name="GLIC" /></translation>
 <translation id="6390338862225976270">Estas funciones de DevTools de <ph name="PRODUCT_NAME" /> emplean modelos de IA generativa para proporcionar información de depuración adicional. Para usar estas funciones, <ph name="PRODUCT_NAME" /> tiene que recoger datos como mensajes de error, rastreos de la pila, fragmentos de código y solicitudes de red, y enviarlos a un servidor que pertenece a Google y ejecuta un modelo de IA generativa. En los datos enviados al servidor no se incluyen el cuerpo de las respuestas ni los encabezados de autenticación y cookies de las solicitudes de red.
 
@@ -8181,6 +8198,17 @@
 <translation id="692096803256767290">Restaurar SO a la versión seleccionada</translation>
 <translation id="6921241119085515674">Permitir el flujo de <ph name="CLOUD_UPLOAD_NAME" /> para <ph name="MICROSOFT_ONE_DRIVE_NAME" /> y <ph name="MICROSOFT_365_NAME" /></translation>
 <translation id="6921544339867564740">Permitir que los dispositivos utilicen máquinas virtuales en ChromeOS</translation>
+<translation id="692161853658983957">La API Controlled Frame, disponible para ciertos contextos aislados, como las aplicaciones web aisladas (IWAs), permite que una aplicación inserte y manipule contenido arbitrario.
+Consulta https://github.com/WICG/controlled-frame para obtener más información.
+
+Si se define esta política, podrás indicar patrones de URL que especifiquen qué sitios no pueden usar la API Controlled Frame.
+Los patrones válidos se limitan a las aplicaciones web aisladas.
+
+Si no se establece la política, <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> se aplicará a todos los sitios, si se ha definido.
+
+Los patrones de URL no deben entrar en conflicto con <ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política.
+
+Para obtener información detallada sobre los patrones de URL válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
 <translation id="6922265559343919728">Elegir si las URLs blob se particionan durante la obtención y la navegación</translation>
 <translation id="6922884955650325312">Bloquear el complemento <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="6924223708804692571">Permite forzar la inhabilitación del corrector ortográfico de idiomas. Se ignorarán los idiomas no reconocidos de esa lista.
@@ -8198,6 +8226,12 @@
 <translation id="6929639826067341257">Sugerir a los usuarios que lleven sus datos al perfil gestionado, pero darles la opción de no hacerlo</translation>
 <translation id="6929746927224321095">Inhabilitar Autocompletar</translation>
 <translation id="6931242315485576290">Inhabilitar sincronización de datos con Google</translation>
+<translation id="6931967294677760242">La API Controlled Frame, disponible para ciertos contextos aislados, como las aplicaciones web aisladas (IWAs), permite que una aplicación inserte y manipule contenido arbitrario.
+Consulta https://github.com/WICG/controlled-frame para obtener más información.
+
+Si se le asigna el valor 1 a esta política o no se define, los orígenes de aplicaciones web aisladas podrán usar Controlled Frame.
+
+Si se le asigna el valor 2 a esta política, se impedirá que los orígenes de aplicaciones web aisladas usen Controlled Frame.</translation>
 <translation id="6932282102911647185">Color morado para la retroiluminación del teclado</translation>
 <translation id="6938424179790370595">Si se le asigna el valor None a esta política, la lupa se desactiva.
 
@@ -10502,7 +10536,6 @@
       Si se realizan cambios en esta política mientras <ph name="PRODUCT_NAME" /> está abierto, solo se aplicarán al abrir pestañas nuevas.</translation>
 <translation id="8685748277907759932">Evitar que los usuarios utilicen la función Tocar para buscar</translation>
 <translation id="8686700500128191717">Habilitar los informes sobre los usuarios del dispositivo</translation>
-<translation id="8687570136798972353">Habilitar <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Volver a habilitar la API v0 de componentes web hasta M84.</translation>
 <translation id="8693243869659262736">Utilizar cliente DNS integrado</translation>
 <translation id="8695006038397632296">Crear y subir solicitudes de instalación de extensiones a la consola de administración</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 19133c31..a07d549f 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -10443,7 +10443,6 @@
       Si <ph name="PRODUCT_NAME" /> est en cours d'utilisation lorsque le paramètre de cette règle change, la modification ne s'applique qu'aux nouveaux onglets ouverts.</translation>
 <translation id="8685748277907759932">Empêcher les utilisateurs d'employer la fonctionnalité Appuyer pour rechercher</translation>
 <translation id="8686700500128191717">Activer les rapports sur les utilisateurs de l'appareil</translation>
-<translation id="8687570136798972353">Activer <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Réactiver les API Web Components v0 jusqu'à la version M84.</translation>
 <translation id="8693243869659262736">Utiliser le client DNS intégré</translation>
 <translation id="8695006038397632296">Créer et importer des demandes d'installation d'extensions dans la console d'administration</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 5aaeef4..17e78a80 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -245,6 +245,7 @@
 
       Jika kebijakan ini ditetapkan ke Salah, kotak centang "Selalu izinkan" tidak akan ditampilkan dan pengguna akan diminta untuk mengonfirmasi setiap kali protokol eksternal dipanggil.</translation>
 <translation id="1181598794547737681">Aktifkan UI balon download</translation>
+<translation id="1182701225491473405">Setelan Controlled Frame</translation>
 <translation id="1184531093651606913">Blokir ekstensi agar tidak dimuat dari command line</translation>
 <translation id="1184562656144537588">Manifes v2 hanya diaktifkan untuk ekstensi yang diinstal otomatis</translation>
 <translation id="11903325225202653">Jika kebijakan ditetapkan ke Benar (True), Mode kontras tinggi akan tetap diaktifkan. Jika kebijakan ditetapkan ke Salah (False), Mode kontras tinggi akan tetap dinonaktifkan.
@@ -1077,6 +1078,7 @@
       Jika kebijakan ini tidak disetel atau disetel ke daftar kosong, tidak ada data debug tingkat rendah yang akan disertakan ke masukan pengguna.
       Lihat deskripsi setiap jenis perangkat untuk jenis data debug tingkat rendah tertentu.</translation>
 <translation id="1744340218280697033">Jangan izinkan orang tua menambahkan akun yang diawasi</translation>
+<translation id="1745981653910662565">Mengizinkan Controlled Frame API di situs ini</translation>
 <translation id="1751429117283165017">Menyetel kebijakan memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang tidak dapat meminta akses tulis ke file atau direktori di sistem file pada sistem operasi host.
 
       Tidak menyetel kebijakan berarti <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> akan berlaku untuk semua situs, jika disetel. Jika tidak, setelan pribadi pengguna akan berlaku.
@@ -1299,6 +1301,7 @@
       Jika kebijakan tidak disetel, autentikasi <ph name="HTTP_NEGOTIATE" /> akan dinonaktifkan di Android.</translation>
 <translation id="1923704782248889851">Aktifkan dikte</translation>
 <translation id="1924085079572112898">Setelan F11 dinonaktifkan</translation>
+<translation id="1924393228810864764">Jangan izinkan origin Aplikasi Web Terisolasi menggunakan Controlled Frame</translation>
 <translation id="1925529914257504750">Update P2P otomatis telah diaktifkan</translation>
 <translation id="1928355425032308464">Aktifkan input video</translation>
 <translation id="1930094135927166199">Nonaktifkan berbagi daya USB</translation>
@@ -1371,6 +1374,7 @@
 
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, Transisi Cepat tidak akan digunakan.</translation>
 <translation id="1972134432340252414">Blokir titik ekstensi lama dalam Proses browser</translation>
+<translation id="1973804850652157024">Mengontrol penggunaan Controlled Frame API</translation>
 <translation id="1977581177449752640">Jika kebijakan disetel, host akses jarak jauh akan menggunakan sertifikat klien dengan CN penerbit tertentu untuk melakukan autentikasi ke <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" />. Untuk menggunakan sertifikat klien yang tersedia, setel kebijakan ke <ph name="WILDCARD_VALUE" />. Jika kebijakan tidak disetel atau disetel ke kosong, fitur ini akan dinonaktifkan.</translation>
 <translation id="1984934843478301531">Otomatisasi Peluncuran Aplikasi</translation>
 <translation id="1985545260037812875">Tampilkan layar setelan ukuran tampilan selama login</translation>
@@ -4396,6 +4400,17 @@
 <translation id="4146319954420095470">(Peringatan! Dependensi ini akan segera dihentikan. Sebagai gantinya, mulai gunakan <ph name="GLS_POLICY_NAME" />) Jika kebijakan ini disetel ke <ph name="BLOCK_GEOLOCATION_SETTING" />, layanan sistem <ph name="PRODUCT_OS_NAME" /> dan aplikasi Android tidak dapat mengakses informasi lokasi. Jika kebijakan ini disetel ke nilai lain atau tidak disetel, pengguna akan dimintai izin saat aplikasi Android ingin mengakses informasi lokasi.</translation>
 <translation id="4147818922357566987">Aktifkan variasi terkait perbaikan penting saja</translation>
 <translation id="4150201353443180367">Tampilan</translation>
+<translation id="4150646872548223241">Controlled Frame API, yang tersedia untuk konteks terisolasi tertentu seperti Aplikasi Web Terisolasi (IWA), memungkinkan aplikasi menyematkan dan memanipulasi konten arbitrer.
+Lihat https://github.com/WICG/controlled-frame untuk mengetahui detail selengkapnya.
+
+Jika kebijakan ini disetel, Anda akan dapat menetapkan daftar pola URL yang menentukan situs mana yang diizinkan untuk menggunakan Controlled Frame API.
+Pola URL yang valid terbatas untuk Aplikasi Web Terisolasi.
+
+Jika kebijakan ini tidak disetel, <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> akan berlaku untuk semua situs, jika disetel.
+
+Pola URL tidak boleh bertentangan dengan <ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" />. Tidak ada kebijakan yang diprioritaskan jika URL cocok dengan keduanya.
+
+Untuk informasi mendetail tentang pola URL yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation>
 <translation id="4154221011709068799">Larang perangkat penyimpanan eksternal</translation>
 <translation id="415445772247959702">Web Store (didukung sejak versi 89)</translation>
 <translation id="4157003184375321727">Laporkan versi OS dan firmware</translation>
@@ -7210,6 +7225,7 @@
       Jika kebijakan dikonfigurasi, kebijakan dapat disetel ke salah satu nilai berikut: "tls1.2" atau "tls1.3". Jika disetel, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih besar dari versi yang ditentukan. Nilai yang tidak dikenali akan diabaikan.</translation>
 <translation id="6120909112796019291">Izinkan Pengeditan Foto AI Generatif dan tingkatkan kualitas model AI.</translation>
 <translation id="6123052603197028610">Jangan izinkan kueri ke server Google untuk mengambil stempel waktu</translation>
+<translation id="6128539430475678271">Memblokir Controlled Frame API di situs ini</translation>
 <translation id="6130360423841559818">Mengontrol perilaku baru untuk dialog pembatalan yang dihasilkan oleh peristiwa beforeunload</translation>
 <translation id="6131803221304830537">Nonaktifkan Integritas Kode Perender</translation>
 <translation id="6132506775968708399">Blokir cookie pihak ketiga</translation>
@@ -7719,6 +7735,7 @@
       Tidak menyetel kebijakan ini untuk suatu situs akan membuat kebijakan dari <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" /> berlaku untuk situs tersebut, jika disetel, atau izin akan mengikuti setelan default browser dan memungkinkan pengguna memilih izin ini untuk setiap situs.</translation>
 <translation id="6383774771168138899">Mengonfigurasi alur <ph name="CLOUD_UPLOAD_NAME" /> untuk <ph name="MICROSOFT_ONE_DRIVE_NAME" /> dan <ph name="MICROSOFT_365_NAME" /></translation>
 <translation id="6384542789059421431">Izinkan halaman hasil penelusuran mesin telusur default ditampilkan di panel samping Browser.</translation>
+<translation id="6389240462871677239">Mengizinkan origin Aplikasi Web Terisolasi menggunakan Controlled Frame</translation>
 <translation id="6389858262577493180">Aktifkan penggunaan <ph name="GLIC" /></translation>
 <translation id="6390338862225976270">Fitur di DevTools <ph name="PRODUCT_NAME" /> ini menggunakan model AI generatif untuk memberikan informasi proses debug tambahan. Untuk menggunakan fitur ini, <ph name="PRODUCT_NAME" /> harus mengumpulkan data seperti pesan error, stack trace, cuplikan kode, dan permintaan jaringan, lalu mengirimkannya ke server milik Google, yang menjalankan model AI generatif. Isi respons atau autentikasi dan header cookie dalam permintaan jaringan tidak disertakan dalam data yang dikirim ke server.
 
@@ -8528,6 +8545,17 @@
 <translation id="692096803256767290">Roll back OS ke versi target</translation>
 <translation id="6921241119085515674">Izinkan alur <ph name="CLOUD_UPLOAD_NAME" /> untuk <ph name="MICROSOFT_ONE_DRIVE_NAME" /> dan <ph name="MICROSOFT_365_NAME" /></translation>
 <translation id="6921544339867564740">Mengizinkan perangkat menjalankan mesin virtual di ChromeOS</translation>
+<translation id="692161853658983957">Controlled Frame API, yang tersedia untuk konteks terisolasi tertentu seperti Aplikasi Web Terisolasi (IWA), memungkinkan aplikasi menyematkan dan memanipulasi konten arbitrer.
+Lihat https://github.com/WICG/controlled-frame untuk mengetahui detail selengkapnya.
+
+Jika kebijakan ini disetel, Anda akan dapat menetapkan daftar pola URL yang menentukan situs mana yang tidak diizinkan menggunakan Controlled Frame API.
+Pola URL yang valid terbatas untuk Aplikasi Web Terisolasi.
+
+Jika kebijakan ini tidak disetel, <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> akan berlaku untuk semua situs, jika disetel.
+
+Pola URL tidak boleh bertentangan dengan <ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" />. Tidak ada kebijakan yang diprioritaskan jika URL cocok dengan keduanya.
+
+Untuk informasi mendetail tentang pola URL yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation>
 <translation id="6922265559343919728">Memilih apakah URL Blob akan dipartisi selama pengambilan dan navigasi</translation>
 <translation id="6922884955650325312">Blokir plugin <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="6924223708804692571">Menonaktifkan secara paksa bahasa pemeriksaan ejaan. Bahasa yang tidak dikenal dalam daftar tersebut akan diabaikan.
@@ -8545,6 +8573,12 @@
 <translation id="6929639826067341257">Sarankan kepada pengguna untuk memindahkan data mereka yang sudah ada ke profil terkelola dan memberi mereka pilihan untuk tidak melakukannya</translation>
 <translation id="6929746927224321095">Nonaktifkan Isi Otomatis</translation>
 <translation id="6931242315485576290">Nonaktifkan sinkronisasi data dengan Google</translation>
+<translation id="6931967294677760242">Controlled Frame API, yang tersedia untuk konteks terisolasi tertentu seperti Aplikasi Web Terisolasi (IWA), memungkinkan aplikasi menyematkan dan memanipulasi konten arbitrer.
+Lihat https://github.com/WICG/controlled-frame untuk mengetahui detail selengkapnya.
+
+Jika kebijakan ini disetel ke nilai 1 atau tidak disetel, origin Aplikasi Web Terisolasi akan dapat menggunakan Controlled Frame.
+
+Jika kebijakan ini disetel ke 2, origin Aplikasi Web Terisolasi tidak akan dapat menggunakan Controlled Frame.</translation>
 <translation id="6932282102911647185">Warna lampu latar keyboard ungu</translation>
 <translation id="6938424179790370595">Jika kebijakan disetel ke Tidak Ada (None), pembesar layar akan dinonaktifkan.
 
@@ -10897,7 +10931,6 @@
       Jika kebijakan ini berubah saat <ph name="PRODUCT_NAME" /> sedang berjalan, kebijakan hanya akan berlaku untuk tab yang baru dibuka.</translation>
 <translation id="8685748277907759932">Cegah pengguna menggunakan fitur Sentuh untuk Menelusuri</translation>
 <translation id="8686700500128191717">Aktifkan pelaporan pengguna perangkat</translation>
-<translation id="8687570136798972353">Aktifkan <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Mengaktifkan kembali Web Components v0 API hingga M84.</translation>
 <translation id="8693243869659262736">Gunakan klien DNS di dalamnya</translation>
 <translation id="8695006038397632296">Buat dan upload permintaan penginstalan ekstensi ke konsol Admin</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index aded002..b89a0a3 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -10637,7 +10637,6 @@
       Se il criterio viene modificato mentre <ph name="PRODUCT_NAME" /> è in esecuzione, viene applicato solo alle nuove schede aperte.</translation>
 <translation id="8685748277907759932">Impedisci agli utenti di usare la funzionalità Tocca per cercare</translation>
 <translation id="8686700500128191717">Attiva i report sugli utenti del dispositivo</translation>
-<translation id="8687570136798972353">Attiva <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Riattiva l'API Web Components v0 fino alla versione M84</translation>
 <translation id="8693243869659262736">Utilizza client DNS integrato</translation>
 <translation id="8695006038397632296">Crea o carica richieste di installazione di estensioni nella Console di amministrazione</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index c84b4fa..d005c66 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -239,6 +239,7 @@
 
       このポリシーを False に設定した場合、[常に許可] チェックボックスは表示されず、外部プロトコルが呼び出されるときには毎回確認メッセージが表示されます。</translation>
 <translation id="1181598794547737681">ダウンロードのバブル UI を有効にする</translation>
+<translation id="1182701225491473405">Controlled Frame の設定</translation>
 <translation id="1184531093651606913">コマンドラインから拡張機能が読み込まれないようにする</translation>
 <translation id="1184562656144537588">自動インストールされた拡張機能でのみ、Manifest V2 を有効にする</translation>
 <translation id="11903325225202653">このポリシーを True に設定した場合、ハイコントラスト モードが有効になります。このポリシーを False に設定した場合、ハイコントラスト モードが無効になります。
@@ -990,6 +991,7 @@
       このポリシーを未設定のままにするか空のリストを指定した場合、ユーザーのフィードバックに低レベルのデバッグデータは添付されません。
       送信される低レベルのデバッグデータの種類については、各デバイスタイプの説明をご覧ください。</translation>
 <translation id="1744340218280697033">保護者による管理対象のアカウントの追加を許可しない</translation>
+<translation id="1745981653910662565">Controlled Frame API を許可するサイトを指定する</translation>
 <translation id="1751429117283165017">このポリシーでは、ホスト オペレーティング システムのファイル システム内にあるファイルやディレクトリに書き込みアクセスすることに関して、ユーザーに許可を要求できないサイトの URL パターンリストを指定できます。
 
       このポリシーを未設定のままにした場合、<ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> が設定されていればその設定がすべてのサイトで使用され、設定されていなければユーザーの個人設定が適用されます。
@@ -1204,6 +1206,7 @@
       このポリシーを未設定のままにした場合、Android で <ph name="HTTP_NEGOTIATE" /> 認証は無効になります。</translation>
 <translation id="1923704782248889851">音声入力を有効にする</translation>
 <translation id="1924085079572112898">F11 の設定は無効</translation>
+<translation id="1924393228810864764">独立したウェブアプリのオリジンに Controlled Frame の使用を許可しない</translation>
 <translation id="1925529914257504750">P2P の自動更新の有効化</translation>
 <translation id="1928355425032308464">ビデオ入力を有効にする</translation>
 <translation id="1930094135927166199">USB 電力共有を無効にする</translation>
@@ -1274,6 +1277,7 @@
 
       このポリシーを無効に設定するか未設定のままにした場合、高速切り替えは使用されません。</translation>
 <translation id="1972134432340252414">ブラウザ プロセスで従来の拡張機能ポイントをブロックする</translation>
+<translation id="1973804850652157024">Controlled Frame API の使用を管理する</translation>
 <translation id="1977581177449752640">このポリシーを設定した場合、リモート アクセス ホストは発行元の CN が指定されたクライアント証明書を使用して <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" /> に対し認証を行います。利用可能な任意のクライアント証明書を使用するには、このポリシーを「<ph name="WILDCARD_VALUE" />」に設定します。このポリシーを空白にした場合または設定しない場合、この機能は無効になります。</translation>
 <translation id="1984934843478301531">アプリ起動の自動化</translation>
 <translation id="1985545260037812875">ログイン時にディスプレイ サイズ設定画面を表示する</translation>
@@ -1843,6 +1847,7 @@
 
       このポリシーで分離した発行元では、同一サイト内の他の発行元をスクリプト化することはできません。ただし、同じサイトの 2 つのドキュメント内で、document.domain の値が同一のものに変更されれば、このスクリプト化は可能になります。これは一般には行いません。管理者は、発行元の分離前にこのような操作が行われないよう管理する必要があります。このポリシーを無効に設定した場合は、すべてのサイト分離が無効になります。これには、デリケートなコンテンツを含むサイトの分離、IsolateOriginsAndroid と SitePerProcessAndroid のフィールド テスト、その他のサイト分離モードが含まれます。ただしユーザーはコマンドライン フラグを使用して手動で IsolateOrigins を有効にできます。このポリシーを未設定のままにした場合、ユーザーはこの設定を変更できます。注: Android で大量のサイトを分離する場合、特にメモリ容量の少ないデバイスでパフォーマンスに影響が生じる可能性があります。このポリシーは、厳密に 1 GB より大きい RAM を搭載した Android デバイスの Chrome のみに適用されます。Android 以外のプラットフォームにこのポリシーを適用するには、<ph name="ISOLATE_ORIGINS_POLICY_NAME" /> を使用してください。</translation>
 <translation id="2407758458436268630">スマート消灯モデルを有効にして、画面が暗くなるまでの時間を延長できるようにする</translation>
+<translation id="2410163749464044777">ローカル ユーザーデータ ストレージの設定</translation>
 <translation id="2411629345938804022">このポリシーを 3 に設定した場合、ウェブサイトに対して周辺の Bluetooth デバイスへのアクセスの要求が許可されます。このポリシーを 2 に設定した場合、周辺の Bluetooth デバイスへのアクセスは拒否されます。
 
       このポリシーを未設定のままにした場合、サイトに対してアクセスの要求は許可されますが、ユーザーはこの設定を変更できます。</translation>
@@ -2342,6 +2347,9 @@
 <translation id="2801378553855965587"><ph name="GOOGLE_CALENDAR_NAME" /> 統合を無効にする。</translation>
 <translation id="2805707493867224476">すべてのサイトに対してポップアップ表示を許可する</translation>
 <translation id="2806804577787377637">このポリシーは非推奨で、サポートされていません。代わりに <ph name="PER_APP_TIME_LIMITS_ALLOWLIST" /> を使用してください。</translation>
+<translation id="2812417768214606683">このポリシーでは、<ph name="EXTERNAL_STORAGE_DISABLED_POLICY_NAME" /> ポリシーと <ph name="EXTERNAL_STORAGE_READ_ONLY_POLICY_NAME" /> ポリシーの対象から除外する USB ストレージ デバイスのリストを指定します。
+
+リストの項目には、特定の USB デバイスモデルを表す USB ベンダー ID とプロダクト ID の組み合わせを指定します。</translation>
 <translation id="2815701930753942156">このポリシーでは、<ph name="PRODUCT_OS_NAME" /> デバイスを使用できない週単位の期間のリストを指定します。進行中のセッションはすべて終了し、ログインはブロックされます。
 
 重複する期間はサポートされていません。
@@ -4078,6 +4086,16 @@
 <translation id="4146319954420095470">(警告: この依存関係はまもなく破棄されるため、代わりに <ph name="GLS_POLICY_NAME" /> の使用を開始してください)このポリシーを <ph name="BLOCK_GEOLOCATION_SETTING" /> に設定した場合、<ph name="PRODUCT_OS_NAME" /> のシステム サービスと Android アプリは位置情報にアクセスできません。このポリシーを他の値に設定するか、未設定のままにすると、Android アプリが位置情報にアクセスする必要がある場合、ユーザーは許可を求められます。</translation>
 <translation id="4147818922357566987">重要な修正に関するバリエーションのみ有効にする</translation>
 <translation id="4150201353443180367">表示</translation>
+<translation id="4150646872548223241">Controlled Frame API を使用すると、独立したウェブアプリ(IWA)といった特定の独立したコンテキストで、任意のコンテンツを埋め込んだり操作したりできます。詳細については、https://github.com/WICG/controlled-frame をご覧ください。
+
+このポリシーでは、Controlled Frame API の使用を許可するサイトの URL パターンのリストを指定できます。
+有効なパターンは、独立したウェブアプリにのみ適用されます。
+
+このポリシーを未設定のままにした場合、<ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> が設定されていればその設定がすべてのサイトで使用されます。
+
+URL パターンは、<ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" /> と競合しないようにする必要があります。URL が両方のポリシーの URL パターンと一致する場合、どちらのポリシーも優先されません。
+
+有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。このポリシーの値に「<ph name="WILDCARD_VALUE" />」は使用できません。</translation>
 <translation id="4154221011709068799">外部ストレージ デバイスを許可しない</translation>
 <translation id="415445772247959702">ウェブストア(バージョン 89 以降でサポート)</translation>
 <translation id="4157003184375321727">OS とファームウェアのバージョンを報告する</translation>
@@ -6646,6 +6664,7 @@
       このポリシーを設定する場合は、値として「tls1.2」または「tls1.3」を指定できます。このポリシーが設定されている場合、<ph name="PRODUCT_NAME" /> では、指定されたバージョンより大きい SSL / TLS バージョンは使用されません。また、認識できない値は無視されます。</translation>
 <translation id="6120909112796019291">生成 AI 写真編集と AI モデルの改善を許可する。</translation>
 <translation id="6123052603197028610">タイムスタンプを取得するために Google サーバーへクエリを送信することを許可しない</translation>
+<translation id="6128539430475678271">Controlled Frame API をブロックするサイトを指定する</translation>
 <translation id="6130360423841559818">beforeunload イベントによって生成されるキャンセル ダイアログの新しい動作を制御する</translation>
 <translation id="6131803221304830537">レンダラコードの整合性チェックを無効にする</translation>
 <translation id="6132506775968708399">サードパーティ Cookie をブロックする</translation>
@@ -7070,6 +7089,7 @@
       このポリシーでサイトを指定しない場合は、<ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" /> のポリシーが適用されます。このポリシーでサイトを指定した場合は、ブラウザのデフォルトの権限設定が適用され、ユーザーはサイトごとに権限を選択できます。</translation>
 <translation id="6383774771168138899"><ph name="MICROSOFT_ONE_DRIVE_NAME" /> と <ph name="MICROSOFT_365_NAME" /> の<ph name="CLOUD_UPLOAD_NAME" /> フローを設定する</translation>
 <translation id="6384542789059421431">ブラウザのサイドパネルにおけるデフォルトの検索エンジンの検索結果ページの表示を有効にします。</translation>
+<translation id="6389240462871677239">独立したウェブアプリのオリジンに Controlled Frame の使用を許可する</translation>
 <translation id="6389858262577493180"><ph name="GLIC" /> の使用を有効にする</translation>
 <translation id="6390338862225976270"><ph name="PRODUCT_NAME" /> の DevTools のこれらの機能は、生成 AI モデルを利用して追加のデバッグ情報を提供します。これらの機能を使用するには、<ph name="PRODUCT_NAME" /> がエラー メッセージ、スタック トレース、コード スニペット、ネットワーク リクエストなどのデータを収集し、Google が所有するサーバーに送信する必要があります。そこで生成 AI モデルが実行されます。サーバーに送信されるデータには、ネットワーク リクエストのレスポンスの本文、認証および Cookie ヘッダーは含まれません。
 
@@ -7815,6 +7835,16 @@
 <translation id="692096803256767290">OS を対象バージョンにロールバックする</translation>
 <translation id="6921241119085515674"><ph name="MICROSOFT_ONE_DRIVE_NAME" /> と <ph name="MICROSOFT_365_NAME" /> の<ph name="CLOUD_UPLOAD_NAME" /> フローを許可する</translation>
 <translation id="6921544339867564740">ChromeOS 上で仮想マシンを実行することをデバイスに許可する</translation>
+<translation id="692161853658983957">Controlled Frame API を使用すると、独立したウェブアプリ(IWA)といった特定の独立したコンテキストで、任意のコンテンツを埋め込んだり操作したりできます。詳細については、https://github.com/WICG/controlled-frame をご覧ください。
+
+このポリシーでは、Controlled Frame API の使用を許可しないサイトの URL パターンのリストを指定できます。
+有効なパターンは、独立したウェブアプリにのみ適用されます。
+
+このポリシーを未設定のままにした場合、<ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> が設定されていればその設定がすべてのサイトで使用されます。
+
+URL パターンは、<ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" /> と競合しないようにする必要があります。URL が両方のポリシーの URL パターンと一致する場合、どちらのポリシーも優先されません。
+
+有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。このポリシーの値に「<ph name="WILDCARD_VALUE" />」は使用できません。</translation>
 <translation id="6922265559343919728">Blob URL を取得および処理する際にパーティション化するかどうかを選択する</translation>
 <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> プラグインをブロックする</translation>
 <translation id="6924223708804692571">言語のスペルチェックを自動的に無効にします。指定した言語のうち認識されないものは無視されます。
@@ -7832,6 +7862,11 @@
 <translation id="6929639826067341257">管理対象プロファイルに既存のデータを取り込むようユーザーに提案し、取り込まない選択肢も提供する</translation>
 <translation id="6929746927224321095">自動入力を無効にする</translation>
 <translation id="6931242315485576290">Google とのデータの同期を無効にする</translation>
+<translation id="6931967294677760242">Controlled Frame API を使用すると、独立したウェブアプリ(IWA)といった特定の独立したコンテキストで、任意のコンテンツを埋め込んだり操作したりできます。詳細については、https://github.com/WICG/controlled-frame をご覧ください。
+
+このポリシーを 1 に設定するか未設定のままにした場合、独立したウェブアプリのオリジンに Controlled Frame の使用を許可します。
+
+このポリシーを 2 に設定した場合、独立したウェブアプリのオリジンに Controlled Frame の使用を許可しません。</translation>
 <translation id="6932282102911647185">紫色のキーボード バックライト</translation>
 <translation id="6938424179790370595">このポリシーを None(なし)に設定した場合、拡大鏡が無効になります。
 
@@ -8067,6 +8102,7 @@
 このポリシーは、ユーザー補助 API を使用するサードパーティのパスワード マネージャーには影響しません。</translation>
 <translation id="7114169791477667553">デフォルトの検索プロバイダを無効にする</translation>
 <translation id="7115684775550072082">テキストと XML の MIME タイプでのみ空白文字を保持する</translation>
+<translation id="7119538491527883595">ローカル ユーザーデータ ストレージ</translation>
 <translation id="7121046543122812054">このポリシーはサポートが終了しています。代わりに <ph name="BROWSER_SIGNIN_POLICY_NAME" /> を使用してください。
 
       ユーザーによる <ph name="PRODUCT_NAME" /> へのログインを許可します。
@@ -8354,6 +8390,7 @@
 <translation id="7339315111520512972">ネットワーク用のコードをブラウザ プロセスで実行します</translation>
 <translation id="7340034977315324840">デバイス操作時間を報告する</translation>
 <translation id="734095828044419464">クライアント証明書のプロビジョニングを無効にする</translation>
+<translation id="7341773449551289679">外部ストレージの許可リスト</translation>
 <translation id="7343004974628511824">DNS 傍受チェックを行う</translation>
 <translation id="7343497214039883642">デバイスの企業プリンタ設定ファイル</translation>
 <translation id="7357148531287978404">オーディオ入力を無効にする</translation>
@@ -10036,7 +10073,6 @@
       <ph name="PRODUCT_NAME" /> の実行中にこのポリシーを変更した場合、変更内容は新しく開かれるタブにのみ適用されます。</translation>
 <translation id="8685748277907759932">ユーザーは「タップして検索」を使用できない</translation>
 <translation id="8686700500128191717">デバイスのユーザーの報告を有効にする</translation>
-<translation id="8687570136798972353"><ph name="GLIC" /> を有効にする</translation>
 <translation id="8687958770985542440">M84 まで Web Components v0 API を再度有効にします。</translation>
 <translation id="8693243869659262736">組み込みの DNS クライアントを使用する</translation>
 <translation id="8695006038397632296">拡張機能インストール リクエストを作成して管理コンソールにアップロードする</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 3e2a211..f9adee61 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -243,6 +243,7 @@
 
       이 정책이 False로 설정되면 '항상 허용' 체크박스가 표시되지 않고 외부 프로토콜이 호출될 때마다 사용자에게 메시지가 표시됩니다.</translation>
 <translation id="1181598794547737681">다운로드 도움말 풍선 UI 사용 설정</translation>
+<translation id="1182701225491473405">제어된 프레임 설정</translation>
 <translation id="1184531093651606913">확장 프로그램이 명령줄에서 로드되지 않도록 차단</translation>
 <translation id="1184562656144537588">매니페스트 v2가 강제 확장 프로그램에만 사용 설정됨</translation>
 <translation id="11903325225202653">이 정책을 True로 설정하면 고대비 모드가 사용 상태로 유지됩니다. 정책을 False로 설정하면 고대비 모드가 사용 중지 상태로 유지됩니다.
@@ -1023,6 +1024,7 @@
       정책을 설정하지 않거나 빈 목록으로 설정하면 사용자 의견에 하위 수준 디버그 데이터가 포함되지 않습니다.
       하위 수준 디버그 데이터의 구체적인 유형은 각 기기 유형에 관한 설명을 참고하세요.</translation>
 <translation id="1744340218280697033">부모가 감독 대상 계정을 추가하도록 허용 안함</translation>
+<translation id="1745981653910662565">이 사이트에서 Controlled Frame API 허용</translation>
 <translation id="1751429117283165017">정책을 설정하면 URL 패턴 목록을 만들어 사용자에게 호스트 운영체제의 파일 시스템 내 파일 또는 디렉터리에 대한 쓰기 액세스 권한을 요청할 수 없는 사이트를 지정하는 것이 가능합니다.
 
       정책을 설정하지 않았을 때 <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" />이 설정되어 있으면 모든 사이트에 적용되며 설정되어 있지 않으면 사용자의 개인 설정이 적용됩니다.
@@ -1243,6 +1245,7 @@
       정책을 설정하지 않으면 Android에서 <ph name="HTTP_NEGOTIATE" /> 인증이 사용 중지됩니다.</translation>
 <translation id="1923704782248889851">음성기록 사용 설정</translation>
 <translation id="1924085079572112898">F11 설정이 사용 중지되었습니다.</translation>
+<translation id="1924393228810864764">분리형 웹 앱 출처에서 제어 프레임을 사용하도록 허용 안함</translation>
 <translation id="1925529914257504750">P2P 자동 업데이트 사용</translation>
 <translation id="1928355425032308464">비디오 입력 사용 설정</translation>
 <translation id="1930094135927166199">USB 전력 공유 사용 중지</translation>
@@ -1315,6 +1318,7 @@
 
       정책을 사용 중지하거나 설정하지 않으면 빠른 전환이 사용되지 않습니다.</translation>
 <translation id="1972134432340252414">브라우저 프로세스에서 기존의 확장 프로그램 포인트를 차단합니다.</translation>
+<translation id="1973804850652157024">Controlled Frame API 사용 제어</translation>
 <translation id="1977581177449752640">정책을 설정하면 원격 액세스 호스트에 <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" />을 인증하기 위해 특정 발급자 CN이 포함된 클라이언트 인증서가 사용됩니다. 제공되는 클라이언트 인증서를 사용하려면 <ph name="WILDCARD_VALUE" />로 설정합니다. 비어 있거나 설정되어 있지 않으면 이 기능이 사용 중지됩니다.</translation>
 <translation id="1984934843478301531">앱 실행 자동화</translation>
 <translation id="1985545260037812875">로그인 중 디스플레이 크기 설정 화면 표시</translation>
@@ -1931,6 +1935,7 @@
 
       참고: Android에서 너무 많은 사이트를 격리하면 특히 메모리 용량이 부족한 기기에서 성능 문제가 발생할 수 있습니다. 이 정책을 Android용 Chrome에 적용하려면 기기에 반드시 1GB 이상의 RAM이 있어야 합니다. Android가 아닌 플랫폼에 정책을 적용하려면 <ph name="ISOLATE_ORIGINS_POLICY_NAME" /> 정책을 사용하세요.</translation>
 <translation id="2407758458436268630">스마트 밝기 낮추기 모델이 화면이 어두워질 때까지의 시간을 연장하도록 허용</translation>
+<translation id="2410163749464044777">로컬 사용자 데이터 저장소 설정</translation>
 <translation id="2411629345938804022">정책을 3으로 설정하면 웹사이트에서 근처 블루투스 기기 액세스를 요청하도록 허용합니다. 정책을 2로 설정하면 근처 블루투스 기기 액세스를 거부합니다.
 
       정책을 설정하지 않으면 사이트의 액세스 요청이 허용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation>
@@ -2449,6 +2454,9 @@
 <translation id="2801378553855965587"><ph name="GOOGLE_CALENDAR_NAME" /> 통합을 사용 중지합니다.</translation>
 <translation id="2805707493867224476">모든 사이트에서 팝업 표시 허용</translation>
 <translation id="2806804577787377637">이 정책은 지원 중단되었으며 지원되지 않습니다. 대신 <ph name="PER_APP_TIME_LIMITS_ALLOWLIST" /> 정책을 사용하세요.</translation>
+<translation id="2812417768214606683">이 정책은 <ph name="EXTERNAL_STORAGE_DISABLED_POLICY_NAME" /> 및 <ph name="EXTERNAL_STORAGE_READ_ONLY_POLICY_NAME" /> 정책의 적용을 받지 않는 USB 저장소 기기 목록을 지정합니다.
+
+항목은 특정 USB 기기 모델을 식별하는 USB 공급업체 식별자 및 제품 식별자의 쌍입니다.</translation>
 <translation id="2815701930753942156">이 정책은 <ph name="PRODUCT_OS_NAME" /> 기기를 사용할 수 없는 주간 간격 목록을 지정합니다. 진행 중인 모든 세션이 종료되고 로그인이 차단됩니다.
 
 겹치는 간격은 지원되지 않습니다.
@@ -4260,6 +4268,17 @@
 <translation id="4146319954420095470">(경고! 이 종속 항목이 곧 삭제되므로 대신 <ph name="GLS_POLICY_NAME" />를 사용하세요.) 정책을 <ph name="BLOCK_GEOLOCATION_SETTING" />으로 설정하면 <ph name="PRODUCT_OS_NAME" /> 시스템 서비스 및 Android 앱에서 위치 정보에 액세스할 수 없습니다. 이 정책을 다른 값으로 설정하거나 설정하지 않은 상태로 두면 Android 앱에서 위치 정보에 액세스할 필요가 있을 때 사용자에게 허용하라는 메시지가 표시됩니다.</translation>
 <translation id="4147818922357566987">중요한 수정사항과 관련된 변형만 사용</translation>
 <translation id="4150201353443180367">디스플레이</translation>
+<translation id="4150646872548223241">분리형 웹 앱(IWA)과 같은 특정 분리형 컨텍스트에서 사용할 수 있는 Controlled Frame API를 사용하면 앱에서 임의의 콘텐츠를 삽입하고 조작할 수 있습니다.
+자세한 내용은 https://github.com/WICG/controlled-frame을 참고하세요.
+
+정책을 설정하면 URL 패턴 목록을 작성하여 Controlled Frame API 사용이 허용되는 사이트를 지정할 수 있습니다.
+유효한 패턴은 분리형 웹 앱으로 제한됩니다.
+
+정책을 설정하지 않았을 때 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" />이 설정되어 있으면 모든 사이트에 적용되며
+
+URL 패턴은 <ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" />와 충돌하지 않아야 합니다. URL이 둘 모두와 일치하면 어떠한 정책도 우선 적용되지 않습니다.
+
+유효한 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" />는 이 정책에 허용되는 값이 아닙니다.</translation>
 <translation id="4154221011709068799">외부 저장소 기기 차단</translation>
 <translation id="415445772247959702">웹 스토어(버전 89부터 지원됨)</translation>
 <translation id="4157003184375321727">OS 및 펌웨어 버전을 보고합니다.</translation>
@@ -7023,6 +7042,7 @@
       그렇지 않은 경우 'tls1.2' 또는 'tls1.3' 값 중 하나로 설정할 수 있습니다. 설정되면 <ph name="PRODUCT_NAME" />에서 지정된 버전보다 높은 SSL/TLS 버전을 사용하지 않습니다. 인식할 수 없는 값은 무시됩니다.</translation>
 <translation id="6120909112796019291">생성형 AI 포토 편집을 허용하고 AI 모델을 개선합니다.</translation>
 <translation id="6123052603197028610">Google 서버로 전송된 쿼리가 타임스탬프를 가져오도록 허용하지 않음</translation>
+<translation id="6128539430475678271">이 사이트에서 Controlled Frame API 차단</translation>
 <translation id="6130360423841559818">beforeunload 이벤트에서 생성된 취소 대화상자의 새로운 동작을 제어합니다.</translation>
 <translation id="6131803221304830537">렌더러 코드 무결성 사용 중지</translation>
 <translation id="6132506775968708399">타사 쿠키 차단</translation>
@@ -7472,6 +7492,7 @@
       사이트에 해당 정책을 설정하지 않으면 <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" />의 정책이 설정되어 있는 경우 사이트에 적용됩니다. 설정되어 있지 않다면 권한이 브라우저의 기본값을 따르고 사용자는 사이트별로 이 권한을 선택할 수 있습니다.</translation>
 <translation id="6383774771168138899"><ph name="MICROSOFT_ONE_DRIVE_NAME" /> 및 <ph name="MICROSOFT_365_NAME" />의 <ph name="CLOUD_UPLOAD_NAME" /> 흐름 구성</translation>
 <translation id="6384542789059421431">브라우저 측면 패널에 기본 검색엔진 결과 페이지 표시를 사용 설정합니다.</translation>
+<translation id="6389240462871677239">분리형 웹 앱 출처에서 제어된 프레임을 사용하도록 허용</translation>
 <translation id="6389858262577493180"><ph name="GLIC" /> 사용 설정</translation>
 <translation id="6390338862225976270"><ph name="PRODUCT_NAME" />의 DevTools에 있는 이러한 기능은 생성형 AI 모델을 사용하여 추가 디버깅 정보를 제공합니다. 이러한 기능을 사용하려면 <ph name="PRODUCT_NAME" />에서 오류 메시지, 스택 트레이스, 코드 스니펫, 네트워크 요청과 같은 데이터를 수집하고 생성형 AI 모델을 실행하는 Google 소유의 서버로 이를 전송해야 합니다. 네트워크 요청의 응답 본문 또는 인증 및 쿠키 헤더는 서버로 전송되는 데이터에 포함되지 않습니다.
 
@@ -8253,6 +8274,17 @@
 <translation id="692096803256767290">OS를 대상 버전으로 롤백</translation>
 <translation id="6921241119085515674"><ph name="MICROSOFT_ONE_DRIVE_NAME" /> 및 <ph name="MICROSOFT_365_NAME" />의 <ph name="CLOUD_UPLOAD_NAME" /> 흐름 허용</translation>
 <translation id="6921544339867564740">기기가 ChromeOS에서 가상 머신을 실행하도록 허용</translation>
+<translation id="692161853658983957">분리형 웹 앱(IWA)과 같은 특정 분리형 컨텍스트에서 사용할 수 있는 Controlled Frame API를 사용하면 앱에서 임의의 콘텐츠를 삽입하고 조작할 수 있습니다.
+자세한 내용은 https://github.com/WICG/controlled-frame을 참고하세요.
+
+정책을 설정하면 URL 패턴 목록을 작성하여 Controlled Frame API 사용이 허용되지 않는 사이트를 지정할 수 있습니다.
+유효한 패턴은 분리형 웹 앱으로 제한됩니다.
+
+정책을 설정하지 않았을 때 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" />이 설정되어 있으면 모든 사이트에 적용되며
+
+URL 패턴은 <ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" />와 충돌하지 않아야 합니다. URL이 둘 모두와 일치하면 어떠한 정책도 우선 적용되지 않습니다.
+
+유효한 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" />는 이 정책에 허용되는 값이 아닙니다.</translation>
 <translation id="6922265559343919728">가져오기 및 탐색 중에 Blob URL을 파티셔닝할지 선택합니다</translation>
 <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> 플러그인 차단</translation>
 <translation id="6924223708804692571">맞춤법 검사 언어를 강제로 사용 중지합니다. 목록에서 인식할 수 없는 언어는 무시됩니다.
@@ -8270,6 +8302,12 @@
 <translation id="6929639826067341257">사용자에게 기존 데이터를 관리 프로필에 가져오도록 제안하고 '아니요'를 선택할 수 있는 옵션 제공</translation>
 <translation id="6929746927224321095">자동 완성 사용 안함</translation>
 <translation id="6931242315485576290">Google과 데이터 동기화 사용 중지</translation>
+<translation id="6931967294677760242">분리형 웹 앱(IWA)과 같은 특정 분리형 컨텍스트에서 사용할 수 있는 Controlled Frame API를 사용하면 앱에서 임의의 콘텐츠를 삽입하고 조작할 수 있습니다.
+자세한 내용은 https://github.com/WICG/controlled-frame을 참고하세요.
+
+정책을 1로 설정하거나 설정하지 않으면 분리형 웹 앱 출처에서 제어 프레임을 사용할 수 있습니다.
+
+정책을 2로 설정하면 분리형 웹 앱 출처에서 제어 프레임을 사용하지 못하도록 차단합니다.</translation>
 <translation id="6932282102911647185">키보드 백라이트 색상: 보라색</translation>
 <translation id="6938424179790370595">정책을 None으로 설정하면 화면 돋보기가 사용 중지됩니다.
 
@@ -8515,6 +8553,7 @@
 이 정책은 접근성 API를 사용하는 서드 파티 비밀번호 관리자에는 영향을 미치지 않습니다.</translation>
 <translation id="7114169791477667553">기본 검색 제공업체 사용 안함</translation>
 <translation id="7115684775550072082">텍스트 및 XML MIME 유형일 경우에만 공백 유지</translation>
+<translation id="7119538491527883595">로컬 사용자 데이터 저장소</translation>
 <translation id="7121046543122812054">이 정책은 지원 중단되었으므로 <ph name="BROWSER_SIGNIN_POLICY_NAME" /> 정책을 대신 사용하시기 바랍니다.
 
       사용자가 <ph name="PRODUCT_NAME" />에 로그인하도록 허용합니다.
@@ -8825,6 +8864,7 @@
 <translation id="7339315111520512972">브라우저 프로세스에서 네트워킹 코드를 강제로 실행</translation>
 <translation id="7340034977315324840">기기 활동 시간 보고</translation>
 <translation id="734095828044419464">클라이언트 인증서 프로비저닝 사용 중지</translation>
+<translation id="7341773449551289679">외부 저장소 허용 목록</translation>
 <translation id="7343004974628511824">DNS 가로채기 검사 진행</translation>
 <translation id="7343497214039883642">기기에 적용되는 엔터프라이즈 프린터 설정 파일</translation>
 <translation id="7357148531287978404">오디오 입력 사용 중지</translation>
@@ -10574,7 +10614,6 @@
       <ph name="PRODUCT_NAME" />을 실행하는 동안 정책을 변경하면 새로 열린 탭에만 적용됩니다.</translation>
 <translation id="8685748277907759932">사용자가 터치하여 검색을 사용하지 못하도록 차단</translation>
 <translation id="8686700500128191717">기기 사용자 보고 사용 설정</translation>
-<translation id="8687570136798972353"><ph name="GLIC" /> 사용 설정</translation>
 <translation id="8687958770985542440">M84까지 Web Components v0 API를 다시 사용 설정합니다.</translation>
 <translation id="8693243869659262736">내장 DNS 클라이언트 사용</translation>
 <translation id="8695006038397632296">확장 프로그램 설치 요청을 만들고 관리 콘솔에 업로드</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 75773a0a..e87ce48 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -10429,7 +10429,6 @@
       Als je dit beleid wijzigt terwijl <ph name="PRODUCT_NAME" /> wordt uitgevoerd, wordt het alleen toegepast op nieuw geopende tabbladen.</translation>
 <translation id="8685748277907759932">Niet toestaan dat gebruikers 'Tikken om te zoeken' gebruiken</translation>
 <translation id="8686700500128191717">Rapportage voor gebruikers van apparaat aanzetten</translation>
-<translation id="8687570136798972353"><ph name="GLIC" /> aanzetten</translation>
 <translation id="8687958770985542440">Web Components v0 API opnieuw aanzetten tot M84.</translation>
 <translation id="8693243869659262736">Ingebouwde DNS-client gebruiken</translation>
 <translation id="8695006038397632296">Installatieverzoeken voor extensies maken en uploaden naar de Beheerdersconsole</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 288aa9d..be5a8f4 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -10912,7 +10912,6 @@
       Se a política for modificada enquanto o <ph name="PRODUCT_NAME" /> estiver em execução, ela se aplicará apenas a guias abertas recentemente.</translation>
 <translation id="8685748277907759932">Impedir que os usuários usem o recurso Pesquisa por toque</translation>
 <translation id="8686700500128191717">Ativar relatórios sobre os usuários do dispositivo</translation>
-<translation id="8687570136798972353">Ativar <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Reativar API Web Components v0 até o M84.</translation>
 <translation id="8693243869659262736">Usar cliente DNS integrado</translation>
 <translation id="8695006038397632296">Criar e fazer upload de solicitações para instalar extensões no Admin Console</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 48b55ab..1e95d7a 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1923,6 +1923,7 @@
 
       Примечание. Изоляция слишком большого количества сайтов на устройствах Android может вызвать проблемы с производительностью, особенно на устройствах с недостаточным объемом памяти. Это правило действует только в Chrome на устройствах Android, имеющих более 1 ГБ ОЗУ. На других платформах используйте правило <ph name="ISOLATE_ORIGINS_POLICY_NAME" />.</translation>
 <translation id="2407758458436268630">Разрешить интеллектуальной модели затемнения продлевать время до затемнения экрана</translation>
+<translation id="2410163749464044777">Настройки хранилища локальных пользовательских данных</translation>
 <translation id="2411629345938804022">Если задано значение 3, сайты могут запрашивать доступ к находящимся неподалеку устройствам Bluetooth. Если указано значение 2, доступ к находящимся неподалеку устройствам Bluetooth запрещен.
 
       Если правило не настроено, сайтам разрешено запрашивать доступ к устройствам, но пользователи могут изменять этот параметр.</translation>
@@ -2438,6 +2439,9 @@
 <translation id="2801378553855965587">Отключить интеграцию с сервисом "<ph name="GOOGLE_CALENDAR_NAME" />"</translation>
 <translation id="2805707493867224476">Разрешить открытие всплывающих окон на всех сайтах</translation>
 <translation id="2806804577787377637">Это правило больше не поддерживается. Используйте вместо него правило <ph name="PER_APP_TIME_LIMITS_ALLOWLIST" />.</translation>
+<translation id="2812417768214606683">В правиле задается перечень USB-накопителей, для которых не действуют правила <ph name="EXTERNAL_STORAGE_DISABLED_POLICY_NAME" /> и <ph name="EXTERNAL_STORAGE_READ_ONLY_POLICY_NAME" />.
+
+Каждая запись содержит идентификатор продавца и идентификатор товара, которые позволяют точно определить модель USB-устройства.</translation>
 <translation id="2815701930753942156">Это правило позволяет настроить периоды в течение недели, во время которых устройство с <ph name="PRODUCT_OS_NAME" /> нельзя использовать. Все текущие сеансы завершатся, а вход будет заблокирован.
 
 Пересекающиеся периоды не поддерживаются.
@@ -8439,6 +8443,7 @@
 Это правило не влияет на сторонние менеджеры паролей, использующие API специальных возможностей.</translation>
 <translation id="7114169791477667553">Отключить поисковую систему по умолчанию</translation>
 <translation id="7115684775550072082">Оставлять пробельные символы только для MIME-типов text и xml</translation>
+<translation id="7119538491527883595">Хранилище локальных пользовательских данных</translation>
 <translation id="7121046543122812054">Это правило больше не поддерживается. Используйте вместо него правило <ph name="BROWSER_SIGNIN_POLICY_NAME" />.
 
       Это правило позволяет пользователю выполнять вход в <ph name="PRODUCT_NAME" />.
@@ -8748,6 +8753,7 @@
 <translation id="7339315111520512972">Принудительно запускать сетевой код в процессе браузера</translation>
 <translation id="7340034977315324840">Сообщать о продолжительности работы устройства</translation>
 <translation id="734095828044419464">Отключить предоставление сертификата клиента</translation>
+<translation id="7341773449551289679">Список разрешенных внешних накопителей</translation>
 <translation id="7343004974628511824">Выполнять проверки на перехват DNS</translation>
 <translation id="7343497214039883642">Файл конфигурации принтеров для устройств компании</translation>
 <translation id="7357148531287978404">Отключить аудиовход</translation>
@@ -10501,7 +10507,6 @@
       Если текущее правило было изменено во время работы <ph name="PRODUCT_NAME" />, оно будет действовать только для новых вкладок.</translation>
 <translation id="8685748277907759932">Запретить использование быстрого поиска</translation>
 <translation id="8686700500128191717">Включить отправку данных о пользователях устройства</translation>
-<translation id="8687570136798972353">Включение <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Повторное включение Web Components v0 API (правило будет недоступно после версии M84)</translation>
 <translation id="8693243869659262736">Встроенный клиент DNS</translation>
 <translation id="8695006038397632296">Создавать запросы на установку расширений и загружать такие запросы в консоль администратора</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index a2a8f2f..ba8068a 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -10444,7 +10444,6 @@
       หากนโยบายนี้เปลี่ยนแปลงในขณะที่ <ph name="PRODUCT_NAME" /> ทำงานอยู่ จะมีผลกับแท็บที่เปิดใหม่เท่านั้น</translation>
 <translation id="8685748277907759932">ป้องกันไม่ให้ผู้ใช้ใช้ "แตะเพื่อค้นหา"</translation>
 <translation id="8686700500128191717">เปิดใช้การรายงานผู้ใช้อุปกรณ์</translation>
-<translation id="8687570136798972353">เปิดใช้ <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">เปิดใช้ Web Components v0 API ได้อีกครั้งจนกว่าจะถึงเวอร์ชัน M84</translation>
 <translation id="8693243869659262736">ใช้ไคลเอ็นต์ DNS ในตัว</translation>
 <translation id="8695006038397632296">สร้างและอัปโหลดคำขอติดตั้งส่วนขยายไปยังคอนโซลผู้ดูแลระบบ</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 63a91a97..68abf2b 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -10635,7 +10635,6 @@
       <ph name="PRODUCT_NAME" /> çalışırken bu politika değiştirilirse bu değişiklik sadece yeni açılan sekmeler için geçerli olur.</translation>
 <translation id="8685748277907759932">Kullanıcıların Dokun ve Ara özelliğini kullanmalarını engelle</translation>
 <translation id="8686700500128191717">Cihaz kullanıcılarının raporlamasını etkinleştir</translation>
-<translation id="8687570136798972353"><ph name="GLIC" /> özelliğini etkinleştir</translation>
 <translation id="8687958770985542440">Web Bileşenleri v0 API'sini M84'e kadar yeniden etkinleştirin.</translation>
 <translation id="8693243869659262736">Dahili DNS istemcisini kullan</translation>
 <translation id="8695006038397632296">Uzantı yükleme isteklerini Yönetici Konsolu'nda oluştur ve oraya yükle</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 385f647d..d5b6c1e 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -10538,7 +10538,6 @@
       Зміни до цього правила, внесені, коли веб-переглядач <ph name="PRODUCT_NAME" /> запущений, застосовуються лише до нових вкладок.</translation>
 <translation id="8685748277907759932">Заборонити користувачам застосовувати функцію "Пошук дотиком"</translation>
 <translation id="8686700500128191717">Увімкнути звіти про користувачів пристрою</translation>
-<translation id="8687570136798972353">Увімкнути функцію <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Повторно ввімкнути Web Components v0 API у версіях до M84.</translation>
 <translation id="8693243869659262736">Використовувати вдубований клієнт DNS</translation>
 <translation id="8695006038397632296">Створювати й завантажувати запити на встановлення розширень у Консоль адміністратора</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 8f6fecb..b358144 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -10647,7 +10647,6 @@
       Nếu chính sách này thay đổi khi <ph name="PRODUCT_NAME" /> đang chạy, thì chính sách này chỉ áp dụng cho các thẻ mới mở.</translation>
 <translation id="8685748277907759932">Ngăn người dùng sử dụng tính năng Chạm để tìm kiếm</translation>
 <translation id="8686700500128191717">Bật tính năng báo cáo người dùng thiết bị</translation>
-<translation id="8687570136798972353">Bật <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">Bật lại API Thành phần web phiên bản 0 cho đến M84.</translation>
 <translation id="8693243869659262736">Sử dụng máy khách DNS tích hợp</translation>
 <translation id="8695006038397632296">Tạo hoặc tải yêu cầu cài đặt tiện ích lên Bảng điều khiển dành cho quản trị viên</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index c1297b9..38a6b664 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -243,6 +243,7 @@
 
       如果您将此政策设为 false,系统将不会显示“始终打开”复选框,并且在每次调用外部协议时都会提示用户。</translation>
 <translation id="1181598794547737681">启用下载气泡界面</translation>
+<translation id="1182701225491473405">Controlled Frame 设置</translation>
 <translation id="1184531093651606913">禁止从命令行加载扩展程序</translation>
 <translation id="1184562656144537588">仅为强制安装的扩展程序启用 Manifest V2</translation>
 <translation id="11903325225202653">将此政策设为 True 会使高对比度模式保持开启状态。将此政策设为 False 会使高对比度模式保持关闭状态。
@@ -1001,6 +1002,7 @@
       如果此政策未设置或设为空列表,系统不会向用户反馈附加任何低级别调试数据。
       如需了解特定类型的低级别调试数据,请参阅每种设备类型的说明。</translation>
 <translation id="1744340218280697033">不允许家长添加受监督的账号</translation>
+<translation id="1745981653910662565">允许在这些网站上使用 Controlled Frame API</translation>
 <translation id="1751429117283165017">通过设置此政策,您可以罗列一些网址格式,从而指定哪些网站无法请求用户向其授予对主机操作系统的文件系统中的文件或目录的写入权限。
 
       如果您未设置此政策,那么,倘若 <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> 已设置,系统便会将它应用于所有网站,否则就会应用用户的个人设置。
@@ -1219,6 +1221,7 @@
       如果您不设置此政策,Android 设备上将停用 <ph name="HTTP_NEGOTIATE" /> 身份验证。</translation>
 <translation id="1923704782248889851">允许输入语音</translation>
 <translation id="1924085079572112898">F11 设置已停用</translation>
+<translation id="1924393228810864764">不允许独立式 Web 应用 (IWA) 源使用 Controlled Frame</translation>
 <translation id="1925529914257504750">已启用点对点技术自动更新</translation>
 <translation id="1928355425032308464">启用视频输入</translation>
 <translation id="1930094135927166199">停用 USB 电源共享</translation>
@@ -1291,6 +1294,7 @@
 
       如果此政策已停用或未设置,系统便不会使用快速切换功能。</translation>
 <translation id="1972134432340252414">屏蔽浏览器进程中的旧版扩展点</translation>
+<translation id="1973804850652157024">控制对 Controlled Frame API 的使用</translation>
 <translation id="1977581177449752640">如果您设置了此政策,远程访问主机会使用带有指定颁发者 CN 的客户端证书向 <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" /> 验证身份。若要使用任意可用的客户端证书,请将此政策设为 <ph name="WILDCARD_VALUE" />。如果您未设置此政策或将它留空,系统会停用此功能。</translation>
 <translation id="1984934843478301531">应用启动自动化设置</translation>
 <translation id="1985545260037812875">在用户登录期间显示“显示大小”设置界面</translation>
@@ -1907,6 +1911,7 @@
 
       注意:在 Android 上隔离过多网站可能会导致性能问题,尤其是在低内存设备上。此政策仅适用于在 RAM 超过 1 GB 的设备上运行的 Android 版 Chrome。如需在非 Android 平台上应用此政策,请改用 <ph name="ISOLATE_ORIGINS_POLICY_NAME" />。</translation>
 <translation id="2407758458436268630">允许智能调暗模式最大限度地推迟屏幕变暗时间</translation>
+<translation id="2410163749464044777">本地用户数据存储设置</translation>
 <translation id="2411629345938804022">如果此政策设为 3,系统会允许网站请求访问附近的蓝牙设备。如果此政策设为 2,系统会禁止网站访问附近的蓝牙设备。
 
       如果此政策未设置,系统会允许网站请求访问,但用户可以更改此设置。</translation>
@@ -2419,6 +2424,9 @@
 <translation id="2801378553855965587">停用 <ph name="GOOGLE_CALENDAR_NAME" />集成。</translation>
 <translation id="2805707493867224476">允许所有网站显示弹出式窗口</translation>
 <translation id="2806804577787377637">此政策已被弃用且不再受支持,请改用 <ph name="PER_APP_TIME_LIMITS_ALLOWLIST" />。</translation>
+<translation id="2812417768214606683">此政策指定了一系列不受 <ph name="EXTERNAL_STORAGE_DISABLED_POLICY_NAME" /> 和 <ph name="EXTERNAL_STORAGE_READ_ONLY_POLICY_NAME" /> 政策约束的 USB 存储设备。
+
+条目是成对的 USB 供应商标识符和产品标识符,用于标识特定的 USB 设备型号。</translation>
 <translation id="2815701930753942156">此政策指定了一系列每周时段,在这些时段无法使用 <ph name="PRODUCT_OS_NAME" /> 设备。所有正在进行的会话都将关闭,登录将被阻止。
 
 不支持重叠的时段。
@@ -4178,6 +4186,17 @@
 <translation id="4146319954420095470">(警告!此依赖项很快将被舍弃,请开始改用 <ph name="GLS_POLICY_NAME" />)如果此政策设为 <ph name="BLOCK_GEOLOCATION_SETTING" />,<ph name="PRODUCT_OS_NAME" /> 系统服务和 Android 应用将无法使用位置信息。如果此政策设为任何其他值或未设置,则当 Android 应用想要使用位置信息时,系统会请求用户允许使用。</translation>
 <translation id="4147818922357566987">仅启用与重要修复程序有关的变体</translation>
 <translation id="4150201353443180367">显示</translation>
+<translation id="4150646872548223241">Controlled Frame API 适用于某些独立的环境(例如独立式 Web 应用 [IWA]),使应用能够嵌入和操作任意内容。
+如需了解详情,请参阅 https://github.com/WICG/controlled-frame。
+
+通过设置此政策,您可以罗列一些网址格式,从而指定允许哪些网站使用 Controlled Frame API。
+有效格式仅限于 IWA。
+
+如果您未设置此政策,那么,倘若 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> 已设置,系统便会将它应用于所有网站。
+
+网址格式不得与 <ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" /> 冲突。如果某个网址与这两项政策都相符,系统将不会优先应用任何一项政策。
+
+如需详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是此政策可接受的值。</translation>
 <translation id="4154221011709068799">禁止使用外部存储设备</translation>
 <translation id="415445772247959702">网上应用店(在 89 版及更高版本中受支持)</translation>
 <translation id="4157003184375321727">报告操作系统和固件版本</translation>
@@ -6858,6 +6877,7 @@
       否则,可将此政策设为以下值之一:“tls1.2”或“tls1.3”。如果您已配置此政策,<ph name="PRODUCT_NAME" /> 将不会使用比指定版本高的 SSL/TLS 版本。无法识别的值会被忽略。</translation>
 <translation id="6120909112796019291">允许使用生成式 AI 照片编辑功能并改进 AI 模型。</translation>
 <translation id="6123052603197028610">不允许向 Google 服务器发送检索时间戳的查询</translation>
+<translation id="6128539430475678271">禁止在这些网站上使用 Controlled Frame API</translation>
 <translation id="6130360423841559818">控制由 beforeunload 事件生成的取消对话框的新行为</translation>
 <translation id="6131803221304830537">停用“渲染程序代码完整性”</translation>
 <translation id="6132506775968708399">禁用第三方 Cookie</translation>
@@ -7306,6 +7326,7 @@
       如果您未为某个网站设置此政策,系统便会将 <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" /> 中的政策(若已设置)应用于该网站,或者让该网站遵循浏览器的默认权限设置并允许用户按网站选择这项权限。</translation>
 <translation id="6383774771168138899">为 <ph name="MICROSOFT_ONE_DRIVE_NAME" /> 和 <ph name="MICROSOFT_365_NAME" /> 配置<ph name="CLOUD_UPLOAD_NAME" />流程</translation>
 <translation id="6384542789059421431">允许在浏览器侧边栏中显示默认搜索引擎的搜索结果页面。</translation>
+<translation id="6389240462871677239">允许独立式 Web 应用 (IWA) 源使用 Controlled Frame</translation>
 <translation id="6389858262577493180">允许使用 <ph name="GLIC" /></translation>
 <translation id="6390338862225976270"><ph name="PRODUCT_NAME" /> 开发者工具中的这些功能采用生成式 AI 模型来提供额外的调试信息。如需使用这些功能,<ph name="PRODUCT_NAME" /> 必须收集错误消息、堆栈轨迹、代码段和网络请求等数据,并将这些数据发送到归 Google 所有的服务器,该服务器会运行生成式 AI 模型。网络请求中的响应正文或身份验证信息和 Cookie 标头不会包含在发送至服务器的数据中。
 
@@ -8076,6 +8097,17 @@
 <translation id="692096803256767290">将 OS 回滚到目标版本</translation>
 <translation id="6921241119085515674">允许 <ph name="MICROSOFT_ONE_DRIVE_NAME" /> 和 <ph name="MICROSOFT_365_NAME" /> 使用<ph name="CLOUD_UPLOAD_NAME" />流程</translation>
 <translation id="6921544339867564740">允许设备在 Chrome 操作系统中运行虚拟机</translation>
+<translation id="692161853658983957">Controlled Frame API 适用于某些独立的环境(例如独立式 Web 应用 [IWA]),使应用能够嵌入和操作任意内容。
+如需了解详情,请参阅 https://github.com/WICG/controlled-frame。
+
+通过设置此政策,您可以罗列一些网址格式,从而指定不允许哪些网站使用 Controlled Frame API。
+有效格式仅限于 IWA。
+
+如果您未设置此政策,那么,倘若 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> 已设置,系统便会将它应用于所有网站。
+
+网址格式不得与 <ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" /> 冲突。如果某个网址与这两项政策都相符,系统将不会优先应用任何一项政策。
+
+如需详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是此政策可接受的值。</translation>
 <translation id="6922265559343919728">选择在提取和导航期间是否对 Blob 网址进行分区</translation>
 <translation id="6922884955650325312">禁止 <ph name="FLASH_PLUGIN_NAME" /> 插件运行</translation>
 <translation id="6924223708804692571">强制停用语言拼写检查。该列表中未识别的语言将被忽略。
@@ -8093,6 +8125,12 @@
 <translation id="6929639826067341257">建议用户将其现有数据添加到受管个人资料名下,同时为用户提供用于拒绝这样做的选项</translation>
 <translation id="6929746927224321095">停用“自动填充”功能</translation>
 <translation id="6931242315485576290">停用与 Google 同步数据的功能</translation>
+<translation id="6931967294677760242">Controlled Frame API 适用于某些独立的环境(例如独立式 Web 应用 [IWA]),使应用能够嵌入和操作任意内容。
+如需了解详情,请参阅 https://github.com/WICG/controlled-frame。
+
+如果此政策设为 1 或未设置,系统会允许 IWA 源使用 Controlled Frame。
+
+如果此政策设为 2,系统会禁止 IWA 源使用 Controlled Frame。</translation>
 <translation id="6932282102911647185">键盘背光颜色:紫色</translation>
 <translation id="6938424179790370595">如果将此政策设为 None,系统会关闭屏幕放大镜。
 
@@ -8338,6 +8376,7 @@
 此政策不会影响使用无障碍功能 API 的第三方密码管理工具。</translation>
 <translation id="7114169791477667553">停用默认搜索服务提供商</translation>
 <translation id="7115684775550072082">仅保留文本和 XML MIME 类型的空白</translation>
+<translation id="7119538491527883595">本地用户数据存储</translation>
 <translation id="7121046543122812054">此政策已被弃用,请考虑改用 <ph name="BROWSER_SIGNIN_POLICY_NAME" />。
 
       用于允许用户登录 <ph name="PRODUCT_NAME" />。
@@ -8645,6 +8684,7 @@
 <translation id="7339315111520512972">强制网络代码在浏览器进程中运行</translation>
 <translation id="7340034977315324840">报告设备活动时间</translation>
 <translation id="734095828044419464">停用客户端证书配置</translation>
+<translation id="7341773449551289679">外部存储空间许可名单</translation>
 <translation id="7343004974628511824">执行 DNS 拦截检查</translation>
 <translation id="7343497214039883642">设备的企业打印机配置文件</translation>
 <translation id="7357148531287978404">停用音频输入</translation>
@@ -10359,7 +10399,6 @@
       如果此政策在 <ph name="PRODUCT_NAME" /> 运行期间发生了更改,相应更改将仅适用于新打开的标签页。</translation>
 <translation id="8685748277907759932">阻止用户使用“轻触搜索”功能</translation>
 <translation id="8686700500128191717">启用设备用户报告功能</translation>
-<translation id="8687570136798972353">启用 <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">重新启用 Web Components v0 API 直至 M84。</translation>
 <translation id="8693243869659262736">使用内置 DNS 客户端</translation>
 <translation id="8695006038397632296">创建扩展程序安装请求并将其上传到管理控制台</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 3b81f28..46f8902 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -245,6 +245,7 @@
 
       如果將這項政策設為 False,系統將不會顯示「一律允許」核取方塊,並會在每次叫用外部通訊協定時向使用者顯示提示。</translation>
 <translation id="1181598794547737681">啟用下載對話框 UI</translation>
+<translation id="1182701225491473405">受控頁框設定</translation>
 <translation id="1184531093651606913">禁止透過指令列載入擴充功能</translation>
 <translation id="1184562656144537588">僅針對強制安裝的擴充功能啟用資訊清單 v2</translation>
 <translation id="11903325225202653">將這項政策設為 True 時,系統會讓高對比模式保持在啟用狀態。將這項政策設為 False 時,系統會讓高對比模式保持在停用狀態。
@@ -987,6 +988,7 @@
       如果不設定這項政策或設為空白清單,就無法在使用者意見回饋中附加低階偵錯資料。
       如要瞭解低階偵錯資料的特定類型,請參閱各種裝置類型的說明。</translation>
 <translation id="1744340218280697033">不允許家長新增受監護的帳戶</translation>
+<translation id="1745981653910662565">允許這些網站使用 Controlled Frame API</translation>
 <translation id="1751429117283165017">你可以透過這項政策建立網址模式清單,指定哪些網站無法要求使用者授予寫入權限,以寫入主機作業系統中檔案系統的檔案或目錄。
 
       如果未設定這項政策,系統會針對所有網站套用 <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> 政策 (如果已設定)。否則系統會套用使用者的個人設定。
@@ -1206,6 +1208,7 @@
       如果未設定這項政策,系統會關閉 Android 上的 <ph name="HTTP_NEGOTIATE" /> 驗證。</translation>
 <translation id="1923704782248889851">啟用語音輸入功能</translation>
 <translation id="1924085079572112898">F11 設定已停用</translation>
+<translation id="1924393228810864764">禁止隔離網頁應用程式來源使用受控頁框</translation>
 <translation id="1925529914257504750">已啟用自動更新 P2P</translation>
 <translation id="1928355425032308464">啟用影片輸入</translation>
 <translation id="1930094135927166199">停用 USB 電力共享功能</translation>
@@ -1279,6 +1282,7 @@
 
       如果將這項政策設為停用或不設定,則系統不會使用「快速轉換」。</translation>
 <translation id="1972134432340252414">封鎖瀏覽器程序中的舊版擴充點</translation>
+<translation id="1973804850652157024">控管 Controlled Frame API 的使用情形</translation>
 <translation id="1977581177449752640">如果設定這項政策,遠端存取主機會使用用戶端憑證和指定核發機構一般名稱 (CN),向 <ph name="REMOTE_ACCESS_HOST_TOKEN_VALIDATION_URL_POLICY_NAME" /> 進行驗證。如要使用任何可用的用戶端憑證,請將其設為 <ph name="WILDCARD_VALUE" />。如果設為空白或不設定,系統會停用這項功能。</translation>
 <translation id="1984934843478301531">應用程式啟動自動化作業</translation>
 <translation id="1985545260037812875">在登入時顯示「顯示大小」設定畫面</translation>
@@ -4110,6 +4114,17 @@
 <translation id="4146319954420095470">(警告!這個依附元件即將停用,請改用 <ph name="GLS_POLICY_NAME" />) 如果這項政策設為 <ph name="BLOCK_GEOLOCATION_SETTING" />,<ph name="PRODUCT_OS_NAME" /> 系統服務和 Android 應用程式將無法存取位置資訊。如果將這項政策設為其他值或不設定,Android 應用程式要存取位置資訊時,會要求使用者授予存取權。</translation>
 <translation id="4147818922357566987">僅啟用與重大修正項目相關的變化版本</translation>
 <translation id="4150201353443180367">顯示設定</translation>
+<translation id="4150646872548223241">Controlled Frame API (適用於隔離網頁應用程式 (IWA) 等特定隔離情境) 可讓應用程式嵌入及操控任何內容。
+詳情請參閱 https://github.com/WICG/controlled-frame。
+
+設定這項政策後,你可以使用網址模式清單,指定哪些網站能夠使用 Controlled Frame API。
+有效的網址模式僅限於隔離網頁應用程式。
+
+如果未設定這項政策,系統會將 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> 政策套用到所有網站 (如果已設定)。
+
+網址模式不得與 <ph name="CONTROLLED_FRAME_BLOCKED_FOR_URLS_POLICY_NAME" /> 政策衝突。如果網址同時符合兩項政策,系統不會優先採用任何一項政策。
+
+如要進一步瞭解有效的網址模式,請前往 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation>
 <translation id="4154221011709068799">不允許外部儲存空間</translation>
 <translation id="415445772247959702">線上應用程式商店 (自 89 版開始支援)</translation>
 <translation id="4157003184375321727">回報作業系統和韌體版本</translation>
@@ -6758,6 +6773,7 @@
       在其他情況下,政策值可設為「tls1.2」或「tls1.3」。如果設定了這項政策,<ph name="PRODUCT_NAME" /> 將不會使用高於指定版本的安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 版本。系統將忽略無法辨識的值。</translation>
 <translation id="6120909112796019291">允許使用生成式 AI 相片編輯功能並協助改善 AI 模型。</translation>
 <translation id="6123052603197028610">不允許向 Google 伺服器發送擷取時間戳記的查詢</translation>
+<translation id="6128539430475678271">禁止這些網站使用 Controlled Frame API</translation>
 <translation id="6130360423841559818">控制 beforeunload 事件產生取消對話方塊的新行為</translation>
 <translation id="6131803221304830537">停用轉譯器程式碼完整性功能</translation>
 <translation id="6132506775968708399">封鎖第三方 Cookie</translation>
@@ -7197,6 +7213,7 @@
       如果尚未針對某個網站設定這項政策,該網站就會套用 <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" /> 已設定的政策;如果已針對某個網站設定這項政策,則網站會依照瀏覽器的預設權限設定,使用者可依網站選擇這項權限。</translation>
 <translation id="6383774771168138899">設定 <ph name="MICROSOFT_ONE_DRIVE_NAME" /> 和 <ph name="MICROSOFT_365_NAME" /> 的<ph name="CLOUD_UPLOAD_NAME" />資料流</translation>
 <translation id="6384542789059421431">允許在瀏覽器側邊面板中顯示預設搜尋引擎的搜尋結果頁面。</translation>
+<translation id="6389240462871677239">允許隔離網頁應用程式來源使用受控頁框</translation>
 <translation id="6389858262577493180">允許使用 <ph name="GLIC" /></translation>
 <translation id="6390338862225976270">這些 <ph name="PRODUCT_NAME" /> 開發人員工具功能採用生成式 AI 模型,可提供額外偵錯資訊。如要使用這些功能,<ph name="PRODUCT_NAME" /> 必須收集錯誤訊息、堆疊追蹤、程式碼片段和網路要求等資料,再傳送到執行生成式 AI 模型的 Google 伺服器。傳送到伺服器的資料不會有網路要求中的回應內文、驗證和 Cookie 標頭。
 
@@ -7959,6 +7976,18 @@
 <translation id="692096803256767290">將 OS 復原至目標版本</translation>
 <translation id="6921241119085515674">允許 <ph name="MICROSOFT_ONE_DRIVE_NAME" /> 和 <ph name="MICROSOFT_365_NAME" /> 的<ph name="CLOUD_UPLOAD_NAME" />資料流</translation>
 <translation id="6921544339867564740">允許裝置在 Chrome OS 上執行虛擬機器</translation>
+<translation id="692161853658983957">Controlled Frame API (適用於隔離網頁應用程式 (IWA) 等特定隔離情境) 可讓應用程式嵌入及操控任何內容。
+詳情請參閱 https://github.com/WICG/controlled-frame。
+
+設定這項政策後,你可以使用網址模式清單,指定哪些網站不得使用 Controlled Frame API。
+
+有效的網址模式僅限於隔離網頁應用程式。
+
+如果未設定這項政策,系統會將 <ph name="DEFAULT_CONTROLLED_FRAME_SETTING_POLICY_NAME" /> 政策套用到所有網站 (如果已設定)。
+
+網址模式不得與 <ph name="CONTROLLED_FRAME_ALLOWED_FOR_URLS_POLICY_NAME" /> 政策衝突。如果網址同時符合兩項政策,系統不會優先採用任何一項政策。
+
+如要進一步瞭解有效的網址模式,請前往 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation>
 <translation id="6922265559343919728">選擇是否要在擷取和瀏覽期間分割 Blob 網址</translation>
 <translation id="6922884955650325312">封鎖 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式</translation>
 <translation id="6924223708804692571">這項政策會強制停用指定語言的拼字檢查功能。系統會忽略該清單中無法辨識的語言。
@@ -7976,6 +8005,12 @@
 <translation id="6929639826067341257">建議使用者將現有資料匯入受管理設定檔,並提供不匯入的選項</translation>
 <translation id="6929746927224321095">停用自動填入功能</translation>
 <translation id="6931242315485576290">停用 Google 資料同步處理功能</translation>
+<translation id="6931967294677760242">Controlled Frame API (適用於隔離網頁應用程式 (IWA) 等特定隔離情境) 可讓應用程式嵌入及操控任何內容。
+詳情請參閱 https://github.com/WICG/controlled-frame。
+
+如果將這項政策設為 1 或不設定,隔離網頁應用程式來源就能使用受控頁框。
+
+如果將這項政策設為 2,系統會禁止隔離網頁應用程式來源使用受控頁框。</translation>
 <translation id="6932282102911647185">紫色鍵盤背光顏色</translation>
 <translation id="6938424179790370595">將這項政策設為 None 時,系統會停用放大鏡。
 
@@ -10218,7 +10253,6 @@
       如果這項政策在 <ph name="PRODUCT_NAME" /> 執行時有所變動,變更只會套用到新開啟的分頁。</translation>
 <translation id="8685748277907759932">禁止使用「輕觸搜尋」功能</translation>
 <translation id="8686700500128191717">啟用裝置使用者回報功能</translation>
-<translation id="8687570136798972353">啟用 <ph name="GLIC" /></translation>
 <translation id="8687958770985542440">重新啟用 Web Components v0 API,直到 M84 版為止。</translation>
 <translation id="8693243869659262736">使用內建的 DNS 用戶端</translation>
 <translation id="8695006038397632296">建立擴充功能安裝要求並上傳到管理控制台</translation>
diff --git a/components/policy/test/data/pref_mapping/GlicSettings.json b/components/policy/test/data/pref_mapping/GlicSettings.json
index feebfdd..5bc8102f 100644
--- a/components/policy/test/data/pref_mapping/GlicSettings.json
+++ b/components/policy/test/data/pref_mapping/GlicSettings.json
@@ -6,7 +6,7 @@
       "win"
     ],
     "simple_policy_pref_mapping_test": {
-      "pref_name": "glic.enabled_by_policy",
+      "pref_name": "glic.settings_policy",
       "default_value": 0,
       "values_to_test": [
         0,
diff --git a/components/regional_capabilities/BUILD.gn b/components/regional_capabilities/BUILD.gn
index d7430f6..69aac93 100644
--- a/components/regional_capabilities/BUILD.gn
+++ b/components/regional_capabilities/BUILD.gn
@@ -4,6 +4,7 @@
 
 static_library("regional_capabilities") {
   sources = [
+    "eea_countries_ids.h",
     "regional_capabilities_service.cc",
     "regional_capabilities_service.h",
     "regional_capabilities_switches.cc",
@@ -17,15 +18,7 @@
     "//components/country_codes",
     "//components/keyed_service/core",
     "//components/prefs",
-    "//components/search_engines:search_engine_utils",
-
-    # TODO(crbug.com/388792357): Refactor out search_engines dependency.
-    "//components/search_engines:search_engines_switches",
   ]
-
-  if (is_android) {
-    deps += [ "//components/regional_capabilities/android:jni_headers" ]
-  }
 }
 
 static_library("test_support") {
@@ -43,7 +36,10 @@
 
 source_set("unit_tests") {
   testonly = true
-  sources = [ "regional_capabilities_service_unittest.cc" ]
+  sources = [
+    "regional_capabilities_service_unittest.cc",
+    "regional_capabilities_utils_unittest.cc",
+  ]
 
   deps = [
     ":regional_capabilities",
@@ -51,16 +47,7 @@
     "//base/test:test_support",
     "//components/country_codes",
     "//components/metrics",
-    "//components/search_engines:search_engines_switches",
     "//components/sync_preferences:test_support",
     "//testing/gtest",
   ]
-
-  if (is_android) {
-    # Note: "//components/regional_capabilities/android:test_utils_java" is also
-    # also needed, but it seems that for now it needs to be added in the `deps`
-    # of `//components:components_unittests`.
-    deps +=
-        [ "//components/regional_capabilities/android:test_utils_jni_headers" ]
-  }
 }
diff --git a/components/regional_capabilities/DEPS b/components/regional_capabilities/DEPS
index 7c80ee4..6540356 100644
--- a/components/regional_capabilities/DEPS
+++ b/components/regional_capabilities/DEPS
@@ -2,13 +2,6 @@
   "+components/country_codes",
   "+components/keyed_service/core",
   "+components/prefs",
-
-  # TODO(crbug.com/388792357): Remove //component/search_engines dependencies.
-  # This is done temporarily to establish the APIs, moving the implementation
-  # into the new component will be done in follow-ups.
-  "+components/search_engines/android/java",
-  "+components/search_engines/search_engines_switches.h",
-  "+components/search_engines/search_engine_choice/search_engine_choice_utils.h",
 ]
 
 specific_include_rules = {
diff --git a/components/search_engines/eea_countries_ids.h b/components/regional_capabilities/eea_countries_ids.h
similarity index 93%
rename from components/search_engines/eea_countries_ids.h
rename to components/regional_capabilities/eea_countries_ids.h
index 2d76992..d2c25b85 100644
--- a/components/search_engines/eea_countries_ids.h
+++ b/components/regional_capabilities/eea_countries_ids.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SEARCH_ENGINES_EEA_COUNTRIES_IDS_H_
-#define COMPONENTS_SEARCH_ENGINES_EEA_COUNTRIES_IDS_H_
+#ifndef COMPONENTS_REGIONAL_CAPABILITIES_EEA_COUNTRIES_IDS_H_
+#define COMPONENTS_REGIONAL_CAPABILITIES_EEA_COUNTRIES_IDS_H_
 
 #include "base/containers/fixed_flat_set.h"
 #include "components/country_codes/country_codes.h"
 
-namespace search_engines {
+namespace regional_capabilities {
 
 // Google-internal reference: http://go/geoscope-comparisons.
 inline constexpr auto kEeaChoiceCountriesIds = base::MakeFixedFlatSet<int>({
@@ -64,6 +64,6 @@
     country_codes::CountryCharsToCountryID('Y', 'T'),  // Mayotte
 });
 
-}  // namespace search_engines
+}  // namespace regional_capabilities
 
-#endif  // COMPONENTS_SEARCH_ENGINES_EEA_COUNTRIES_IDS_H_
+#endif  // COMPONENTS_REGIONAL_CAPABILITIES_EEA_COUNTRIES_IDS_H_
diff --git a/components/regional_capabilities/regional_capabilities_service.cc b/components/regional_capabilities/regional_capabilities_service.cc
index 198bd68..82a7841 100644
--- a/components/regional_capabilities/regional_capabilities_service.cc
+++ b/components/regional_capabilities/regional_capabilities_service.cc
@@ -14,13 +14,6 @@
 #include "components/regional_capabilities/regional_capabilities_switches.h"
 #include "components/regional_capabilities/regional_capabilities_utils.h"
 
-#if BUILDFLAG(IS_ANDROID)
-#include "base/android/jni_android.h"
-#include "base/android/jni_string.h"
-#include "base/memory/ptr_util.h"
-#include "components/regional_capabilities/android/jni_headers/RegionalCapabilitiesServiceClientAndroid_jni.h"
-#endif
-
 namespace regional_capabilities {
 namespace {
 
@@ -38,60 +31,6 @@
 
 }  // namespace
 
-// --- RegionalCapabilitiesService::Client ------------------------------------
-
-RegionalCapabilitiesService::Client::~Client() = default;
-
-#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX)
-void RegionalCapabilitiesService::Client::FetchCountryId(
-    CountryIdCallback on_country_id_fetched) {
-#if BUILDFLAG(IS_ANDROID)
-  // On Android get it from a device API in Java.
-  // Usage of `WeakPtr` is crucial here, as `RegionalCapabilitiesService` is
-  // not guaranteed to be alive when the response from Java arrives.
-  auto heap_callback =
-      std::make_unique<CountryIdCallback>(std::move(on_country_id_fetched));
-  // The ownership of the callback on the heap is passed to Java. It will be
-  // deleted by JNI_RegionalCapabilitiesService_ProcessDeviceCountryResponse.
-  Java_RegionalCapabilitiesServiceClientAndroid_requestDeviceCountry(
-      base::android::AttachCurrentThread(),
-      reinterpret_cast<intptr_t>(heap_callback.release()));
-#else
-  // On other platforms, `GetCurrentCountryID()` already returns a reliable
-  // value.
-  std::move(on_country_id_fetched).Run(country_codes::GetCurrentCountryID());
-#endif
-}
-#endif
-
-#if BUILDFLAG(IS_ANDROID)
-void JNI_RegionalCapabilitiesServiceClientAndroid_ProcessDeviceCountryResponse(
-    JNIEnv* env,
-    jlong ptr_to_native_callback,
-    const base::android::JavaParamRef<jstring>& j_device_country) {
-  // Using base::WrapUnique ensures that the callback is deleted when this goes
-  // out of scope.
-  using CountryIdCallback =
-      RegionalCapabilitiesService::Client::CountryIdCallback;
-  std::unique_ptr<CountryIdCallback> heap_callback = base::WrapUnique(
-      reinterpret_cast<CountryIdCallback*>(ptr_to_native_callback));
-  CHECK(heap_callback);
-  if (!j_device_country) {
-    return;
-  }
-  std::string device_country =
-      base::android::ConvertJavaStringToUTF8(env, j_device_country);
-  int device_country_id =
-      country_codes::CountryStringToCountryID(device_country);
-  if (device_country_id == country_codes::kCountryIDUnknown) {
-    return;
-  }
-  std::move(*heap_callback).Run(device_country_id);
-}
-#endif
-
-// --- RegionalCapabilitiesService --------------------------------------------
-
 RegionalCapabilitiesService::RegionalCapabilitiesService(
     PrefService& profile_prefs,
     std::unique_ptr<Client> regional_capabilities_client)
@@ -119,9 +58,13 @@
   return country_id_cache_.value();
 }
 
+bool RegionalCapabilitiesService::IsInEeaCountry() {
+  return IsEeaCountry(GetCountryId());
+}
+
 void RegionalCapabilitiesService::InitializeCountryIdCache() {
-  // TODO(b:328040066): Move `kCountryIDAtInstall` pref declaration in this
-  // class.
+  // TODO(crbug.com/328040066): Move `kCountryIDAtInstall` pref declaration in
+  // this file / package.
   std::optional<int> country_id;
 
   // Check the validity of the initially persisted value, if present.
@@ -134,14 +77,16 @@
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
       if (base::FeatureList::IsEnabled(switches::kClearPrefForUnknownCountry)) {
         profile_prefs_->ClearPref(country_codes::kCountryIDAtInstall);
+        country_id.reset();
         base::UmaHistogramEnumeration(kUnknownCountryIdStored,
                                       UnknownCountryIdStored::kClearedPref);
-        country_id.reset();
-      }
+      } else
 #endif
-      base::UmaHistogramEnumeration(
-          kUnknownCountryIdStored,
-          UnknownCountryIdStored::kDontClearInvalidCountry);
+      {
+        base::UmaHistogramEnumeration(
+            kUnknownCountryIdStored,
+            UnknownCountryIdStored::kDontClearInvalidCountry);
+      }
     }
   }
 
@@ -159,11 +104,10 @@
       country_id =
           profile_prefs_->GetInteger(country_codes::kCountryIDAtInstall);
     } else {
-      // The initialization failed or did not complete synchronously. Fall
-      // back to `country_codes::GetCurrentCountryID()` without persisting it.
-      // If the fetch completes later, the country will be picked up at the
-      // next startup.
-      country_id = country_codes::GetCurrentCountryID();
+      // The initialization failed or did not complete synchronously. Use the
+      // fallback value and don't persist it. If the fetch completes later, the
+      // country will be picked up at the next startup.
+      country_id = client_->GetFallbackCountryId();
     }
   }
 
diff --git a/components/regional_capabilities/regional_capabilities_service.h b/components/regional_capabilities/regional_capabilities_service.h
index 69abdba..5a31df0 100644
--- a/components/regional_capabilities/regional_capabilities_service.h
+++ b/components/regional_capabilities/regional_capabilities_service.h
@@ -10,17 +10,24 @@
 #include "base/functional/callback_forward.h"
 #include "base/memory/raw_ref.h"
 #include "base/memory/weak_ptr.h"
-#include "build/build_config.h"
 #include "components/keyed_service/core/keyed_service.h"
 
 namespace search_engines {
 class SearchEngineChoiceService;
 }
 
+
+namespace regional_capabilities {
+class RegionalCapabilitiesService;
+}
+
+namespace testing::regional_capabilities {
+int GetCountryId(::regional_capabilities::RegionalCapabilitiesService&);
+}
+
 class PrefService;
 
 namespace regional_capabilities {
-
 // Service for managing the state related to Search Engine Choice (mostly
 // for the country information).
 class RegionalCapabilitiesService : public KeyedService {
@@ -31,13 +38,20 @@
    public:
     using CountryIdCallback = base::OnceCallback<void(int)>;
 
-    virtual ~Client();
+    virtual ~Client() = default;
 
-    virtual void FetchCountryId(CountryIdCallback country_id_fetched_callback)
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-        = 0
-#endif
-        ;
+    // Synchronously returns a country to use in current run for this profile.
+    //
+    // The default implementation uses `country_codes::GetCurrentCountryID()`.
+    virtual int GetFallbackCountryId() = 0;
+
+    // Computes a country to associate with this profile, returning it by
+    // running `country_id_fetched_callback`. If it is not run synchronously,
+    // `GetFallbackCountryId()` should be used by the service for the current
+    // run. `country_id_fetched_callback` should be called only if a country was
+    // successfully obtained.
+    virtual void FetchCountryId(
+        CountryIdCallback country_id_fetched_callback) = 0;
   };
 
   RegionalCapabilitiesService(
@@ -45,6 +59,12 @@
       std::unique_ptr<Client> regional_capabilities_client);
   ~RegionalCapabilitiesService() override;
 
+  // Returns whether the profile country is a EEA member.
+  //
+  // Testing note: To control the value this returns in manual or automated
+  // tests, see `switches::kSearchEngineChoiceCountry`.
+  bool IsInEeaCountry();
+
   // Clears the country id cache to be able to change countries multiple times
   // in tests.
   void ClearCountryIdCacheForTesting();
@@ -53,7 +73,8 @@
   // TODO(b:328040066): Investigate friend-ing methods instead whole classes
   // to tighten private access further.
   friend class search_engines::SearchEngineChoiceService;
-  friend class RegionalCapabilitiesServiceTest;
+  friend int ::testing::regional_capabilities::GetCountryId(
+      ::regional_capabilities::RegionalCapabilitiesService&);
 
   // Returns the country ID to use in the context of regional checks.
   // Can be overridden using `switches::kSearchEngineChoiceCountry`.
@@ -73,8 +94,6 @@
   base::WeakPtrFactory<RegionalCapabilitiesService> weak_ptr_factory_{this};
 };
 
-bool IsEeaCountry(int country_id);
-
 }  // namespace regional_capabilities
 
 #endif  // COMPONENTS_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_SERVICE_H_
diff --git a/components/regional_capabilities/regional_capabilities_service_unittest.cc b/components/regional_capabilities/regional_capabilities_service_unittest.cc
index 7fffa2ea..a51a2fd 100644
--- a/components/regional_capabilities/regional_capabilities_service_unittest.cc
+++ b/components/regional_capabilities/regional_capabilities_service_unittest.cc
@@ -5,55 +5,68 @@
 #include "components/regional_capabilities/regional_capabilities_service.h"
 
 #include <memory>
+#include <optional>
 
 #include "base/check_deref.h"
+#include "base/memory/weak_ptr.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "components/country_codes/country_codes.h"
 #include "components/regional_capabilities/regional_capabilities_switches.h"
-#include "components/regional_capabilities/regional_capabilities_test_utils.h"
-#include "components/search_engines/search_engines_switches.h"
 #include "components/sync_preferences/testing_pref_service_syncable.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if BUILDFLAG(IS_ANDROID)
-#include "base/android/jni_android.h"
-#include "base/android/jni_string.h"
-#include "components/regional_capabilities/android/test_utils_jni_headers/RegionalCapabilitiesServiceTestUtil_jni.h"
-#endif
-
 namespace regional_capabilities {
 
+using testing::regional_capabilities::GetCountryId;
+
 namespace {
 
-#if BUILDFLAG(IS_ANDROID)
-class TestSupportAndroid {
+class AsyncRegionalCapabilitiesServiceClient
+    : public RegionalCapabilitiesService::Client {
  public:
-  TestSupportAndroid() {
-    JNIEnv* env = base::android::AttachCurrentThread();
-    base::android::ScopedJavaLocalRef<jobject> java_ref =
-        Java_RegionalCapabilitiesServiceTestUtil_Constructor(env);
-    java_test_util_ref_.Reset(env, java_ref.obj());
+  explicit AsyncRegionalCapabilitiesServiceClient(
+      int fallback_country_id = country_codes::kCountryIDUnknown)
+      : fallback_country_id_(fallback_country_id) {}
+
+  ~AsyncRegionalCapabilitiesServiceClient() override = default;
+
+  int GetFallbackCountryId() override { return fallback_country_id_; }
+
+  void FetchCountryId(CountryIdCallback country_id_fetched_callback) override {
+    ASSERT_FALSE(cached_country_id_callback_) << "Test setup error";
+    if (fetched_country_id_.has_value()) {
+      std::move(country_id_fetched_callback).Run(fetched_country_id_.value());
+    } else {
+      // To be run next time we run `SetFetchedCountry()`;
+      cached_country_id_callback_ = std::move(country_id_fetched_callback);
+    }
   }
 
-  ~TestSupportAndroid() {
-    JNIEnv* env = base::android::AttachCurrentThread();
-    Java_RegionalCapabilitiesServiceTestUtil_destroy(env, java_test_util_ref_);
+  void SetFetchedCountry(std::optional<int> fetched_country_id) {
+    fetched_country_id_ = fetched_country_id;
+    if (cached_country_id_callback_ && fetched_country_id_.has_value()) {
+      std::move(cached_country_id_callback_).Run(fetched_country_id_.value());
+    }
   }
 
-  void ReturnDeviceCountry(const std::string& device_country) {
-    JNIEnv* env = base::android::AttachCurrentThread();
-    Java_RegionalCapabilitiesServiceTestUtil_returnDeviceCountry(
-        env, java_test_util_ref_,
-        base::android::ConvertUTF8ToJavaString(env, device_country));
+  base::WeakPtr<AsyncRegionalCapabilitiesServiceClient> AsWeakPtr() {
+    return weak_ptr_factory_.GetWeakPtr();
   }
 
  private:
-  base::android::ScopedJavaGlobalRef<jobject> java_test_util_ref_;
-};
-#endif
+  const int fallback_country_id_;
+  std::optional<int> fetched_country_id_;
+  CountryIdCallback cached_country_id_callback_;
 
-const int kBelgiumCountryId = country_codes::CountryCharsToCountryID('B', 'E');
+  base::WeakPtrFactory<AsyncRegionalCapabilitiesServiceClient>
+      weak_ptr_factory_{this};
+};
+
+constexpr char kBelgiumCountryCode[] = "BE";
+
+constexpr int kBelgiumCountryId =
+    country_codes::CountryCharsToCountryID('B', 'E');
 
 }  // namespace
 
@@ -61,40 +74,41 @@
  public:
   RegionalCapabilitiesServiceTest() {
     country_codes::RegisterProfilePrefs(pref_service_.registry());
-
-    // Override the country checks to simulate being in Belgium.
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kSearchEngineChoiceCountry, "BE");
   }
 
   ~RegionalCapabilitiesServiceTest() override = default;
 
-  void InitService(
-      int variation_country_id = country_codes::kCountryIDUnknown) {
-    CHECK(!regional_capabilities_service_);
-    std::unique_ptr<RegionalCapabilitiesService::Client> client =
-#if BUILDFLAG(IS_ANDROID)
-        // Use a real C++ client to test the JNI integration code, faking is
-        // done via `TestSupportAndroid`.
-        std::make_unique<RegionalCapabilitiesService::Client>();
-#else
-        std::make_unique<FakeRegionalCapabilitiesServiceClient>(
-            variation_country_id);
-#endif
-
-    regional_capabilities_service_ =
-        std::make_unique<RegionalCapabilitiesService>(pref_service_,
-                                                      std::move(client));
+  void ClearCommandLineCountry() {
+    base::CommandLine::ForCurrentProcess()->RemoveSwitch(
+        switches::kSearchEngineChoiceCountry);
   }
 
-  int GetCountryId() { return regional_capabilities_service().GetCountryId(); }
+  void SetCommandLineCountry(std::string_view country_code) {
+    ClearCommandLineCountry();
+    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+        switches::kSearchEngineChoiceCountry, country_code);
+  }
 
-  RegionalCapabilitiesService& regional_capabilities_service() {
-    if (!regional_capabilities_service_) {
-      InitService();
+  std::optional<int> GetPrefCountry() {
+    if (!pref_service().HasPrefPath(country_codes::kCountryIDAtInstall)) {
+      return std::nullopt;
     }
 
-    return CHECK_DEREF(regional_capabilities_service_.get());
+    return pref_service().GetInteger(country_codes::kCountryIDAtInstall);
+  }
+
+  void SetPrefCountry(int country_id) {
+    pref_service().SetInteger(country_codes::kCountryIDAtInstall, country_id);
+  }
+
+  std::unique_ptr<RegionalCapabilitiesService> InitService(
+      int fallback_country_id = country_codes::kCountryIDUnknown) {
+    auto client = std::make_unique<AsyncRegionalCapabilitiesServiceClient>(
+        fallback_country_id);
+    weak_client_ = client->AsWeakPtr();
+
+    return std::make_unique<RegionalCapabilitiesService>(pref_service_,
+                                                         std::move(client));
   }
 
   sync_preferences::TestingPrefServiceSyncable& pref_service() {
@@ -103,149 +117,187 @@
 
   base::HistogramTester& histogram_tester() { return histogram_tester_; }
 
+  base::WeakPtr<AsyncRegionalCapabilitiesServiceClient> client() {
+    return weak_client_;
+  }
+
  private:
   sync_preferences::TestingPrefServiceSyncable pref_service_;
   TestingPrefServiceSimple local_state_;
-  std::unique_ptr<RegionalCapabilitiesService> regional_capabilities_service_;
+  base::WeakPtr<AsyncRegionalCapabilitiesServiceClient> weak_client_;
 
   base::HistogramTester histogram_tester_;
 };
 
 TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdCommandLineOverride) {
-  // The test is set up to use the command line to simulate the country as being
-  // Belgium.
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
+  // The command line value bypasses the country ID cache and does not
+  // require recreating the service.
+  std::unique_ptr<RegionalCapabilitiesService> service = InitService();
 
-  // When removing the command line flag, the default value is based on the
-  // device locale.
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
+  SetCommandLineCountry(kBelgiumCountryCode);
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
 
-  // Note that if the format matches (2-character strings), we might get a
+  // If the format matches (2-character strings), we might get a
   // country ID that is not valid/supported.
-  base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-      switches::kSearchEngineChoiceCountry, "??");
-  EXPECT_NE(GetCountryId(), country_codes::kCountryIDUnknown);
-  EXPECT_EQ(GetCountryId(), country_codes::CountryCharsToCountryID('?', '?'));
-}
-
-TEST_F(RegionalCapabilitiesServiceTest,
-       GetCountryIdCommandLineOverrideSetsToUnknownOnFormatMismatch) {
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
+  SetCommandLineCountry("??");
+  EXPECT_NE(GetCountryId(*service), country_codes::kCountryIDUnknown);
+  EXPECT_EQ(GetCountryId(*service),
+            country_codes::CountryCharsToCountryID('?', '?'));
 
   // When the command line value is invalid, the country code should be unknown.
-  base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-      switches::kSearchEngineChoiceCountry, "USA");
-  EXPECT_EQ(GetCountryId(), country_codes::kCountryIDUnknown);
+  SetCommandLineCountry("USA");
+  EXPECT_EQ(GetCountryId(*service), country_codes::kCountryIDUnknown);
 }
 
-#if BUILDFLAG(IS_ANDROID)
-TEST_F(RegionalCapabilitiesServiceTest, PlayResponseBeforeGetCountryId) {
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
-  TestSupportAndroid test_support;
-  test_support.ReturnDeviceCountry(
-      country_codes::CountryIDToCountryString(kBelgiumCountryId));
+TEST_F(RegionalCapabilitiesServiceTest, GetCountryId_FetchedSync) {
+  const int kFallbackCountryId = country_codes::CountryStringToCountryID("FR");
 
-  // We got response from Play API before `GetCountryId` was invoked for the
-  // first time this run, so the new value should be used right away.
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kFallbackCountryId);
+  client()->SetFetchedCountry(kBelgiumCountryId);
+
+  // The fetched country is available synchronously, before `GetCountryId` was
+  // invoked for the first time this run, so the new value should be used
+  // right away.
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
   // The pref should be updated as well.
-  EXPECT_EQ(pref_service().GetInteger(country_codes::kCountryIDAtInstall),
-            kBelgiumCountryId);
+  EXPECT_EQ(GetPrefCountry(), kBelgiumCountryId);
 }
 
-TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdBeforePlayResponse) {
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
+TEST_F(RegionalCapabilitiesServiceTest, GetCountryId_FetchedAsyncUsesFallback) {
+  const int kFallbackCountryId = country_codes::CountryStringToCountryID("FR");
 
-  TestSupportAndroid test_support;
-  // We didn't get a response from Play API before `GetCountryId` was invoked,
-  // so the last known country from prefs should be used.
-  EXPECT_EQ(GetCountryId(), country_codes::GetCurrentCountryID());
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kFallbackCountryId);
+
+  // We didn't get a response from the device API call before `GetCountryId`
+  // was invoked, so the fallback country should be used.
+  EXPECT_EQ(GetCountryId(*service), kFallbackCountryId);
+  // The pref should not be updated.
+  EXPECT_EQ(GetPrefCountry(), std::nullopt);
 
   // Simulate a response arriving after the first `GetCountryId` call.
-  test_support.ReturnDeviceCountry(
-      country_codes::CountryIDToCountryString(kBelgiumCountryId));
+  client()->SetFetchedCountry(kBelgiumCountryId);
 
   // The pref should be updated so the new country can be used the next run.
-  EXPECT_EQ(pref_service().GetInteger(country_codes::kCountryIDAtInstall),
-            kBelgiumCountryId);
-  // However, `GetCountryId` result shouldn't change until the next run.
-  EXPECT_EQ(GetCountryId(), country_codes::GetCurrentCountryID());
+  EXPECT_EQ(GetPrefCountry(), kBelgiumCountryId);
+  // However, the `GetCountryId()` result shouldn't change until the next run.
+  EXPECT_EQ(GetCountryId(*service), kFallbackCountryId);
 }
 
-TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdPrefAlreadyWritten) {
-  // The value set from the pref should be used.
-  pref_service().SetInteger(country_codes::kCountryIDAtInstall,
-                            kBelgiumCountryId);
-  // Don't create `TestSupportAndroid` - since the pref isn't set we should not
-  // reach out to Java.
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
-}
-#else
-// On Android, internal device APIs are used to get the current country.
-TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdDefault) {
-  // Remove the command line flag set by the test.
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
+TEST_F(RegionalCapabilitiesServiceTest, GetCountryId_PrefAlreadyWritten) {
+  const int kFallbackCountryId = country_codes::CountryStringToCountryID("FR");
+  const int kFetchedCountryId = country_codes::CountryStringToCountryID("US");
 
-  // The default value should be based on the device locale.
-  EXPECT_EQ(GetCountryId(), country_codes::GetCurrentCountryID());
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kFallbackCountryId);
+  client()->SetFetchedCountry(kFetchedCountryId);
+
+  SetPrefCountry(kBelgiumCountryId);
+
+  // The value set from the pref should be used instead of the ones from the
+  // client.
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
+
+  // The fetched value from the client does not overwrite the prefs either.
+  EXPECT_EQ(GetPrefCountry(), kBelgiumCountryId);
 }
 
-TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdFromPrefs) {
-  // Remove the command line flag set by the test.
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
+TEST_F(RegionalCapabilitiesServiceTest, GetCountryId_PrefChangesAfterReading) {
+  const int kFallbackCountryId = country_codes::CountryStringToCountryID("FR");
+
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kFallbackCountryId);
 
   // The value set from the pref should be used.
-  pref_service().SetInteger(country_codes::kCountryIDAtInstall,
-                            kBelgiumCountryId);
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
-}
-
-TEST_F(RegionalCapabilitiesServiceTest, GetCountryIdChangesAfterReading) {
-  // Remove the command line flag set by the test.
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
-
-  // The value set from the pref should be used.
-  pref_service().SetInteger(country_codes::kCountryIDAtInstall,
-                            kBelgiumCountryId);
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
+  SetPrefCountry(kBelgiumCountryId);
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
 
   // Change the value in pref.
-  pref_service().SetInteger(country_codes::kCountryIDAtInstall,
-                            country_codes::CountryCharsToCountryID('U', 'S'));
+  SetPrefCountry(country_codes::CountryStringToCountryID("US"));
   // The value returned by `GetCountryId` shouldn't change.
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
 }
-#endif  // !BUILDFLAG(IS_ANDROID)
+
+// TODO: make it parameterized?
 
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
 TEST_F(RegionalCapabilitiesServiceTest, ClearPrefForUnknownCountry) {
-#if BUILDFLAG(IS_ANDROID)
-  TestSupportAndroid test_support;
-  test_support.ReturnDeviceCountry(
-      country_codes::CountryIDToCountryString(kBelgiumCountryId));
-#endif
   base::test::ScopedFeatureList scoped_feature_list{
       switches::kClearPrefForUnknownCountry};
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
-  InitService(kBelgiumCountryId);
+
+  SetPrefCountry(country_codes::kCountryIDUnknown);
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kBelgiumCountryId);
+
+  // The fetch needs to succeed, otherwise the obtained value is the fallback
+  // one and the pref will not be persisted.
+  client()->SetFetchedCountry(kBelgiumCountryId);
+
   histogram_tester().ExpectTotalCount(
       "Search.ChoiceDebug.UnknownCountryIdStored", 0);
 
-  pref_service().SetInteger(country_codes::kCountryIDAtInstall,
-                            country_codes::kCountryIDUnknown);
-  EXPECT_EQ(GetCountryId(), kBelgiumCountryId);
-  histogram_tester().ExpectBucketCount(
-      "Search.ChoiceDebug.UnknownCountryIdStored", 2, 1);
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
+  histogram_tester().ExpectUniqueSample(
+      "Search.ChoiceDebug.UnknownCountryIdStored", 2 /* kClearedPref */, 1);
+  EXPECT_EQ(GetPrefCountry(), kBelgiumCountryId);
+}
+
+TEST_F(RegionalCapabilitiesServiceTest, ClearPrefForUnknownCountry_Disabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(
+      switches::kClearPrefForUnknownCountry);
+
+  SetPrefCountry(country_codes::kCountryIDUnknown);
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kBelgiumCountryId);
+  histogram_tester().ExpectTotalCount(
+      "Search.ChoiceDebug.UnknownCountryIdStored", 0);
+
+  EXPECT_EQ(GetCountryId(*service), country_codes::kCountryIDUnknown);
+  histogram_tester().ExpectUniqueSample(
+      "Search.ChoiceDebug.UnknownCountryIdStored",
+      1 /* kDontClearInvalidCountry */, 1);
+  EXPECT_EQ(GetPrefCountry(), country_codes::kCountryIDUnknown);
+}
+
+TEST_F(RegionalCapabilitiesServiceTest, ClearPrefForUnknownCountry_Valid) {
+  base::test::ScopedFeatureList scoped_feature_list{
+      switches::kClearPrefForUnknownCountry};
+
+  SetPrefCountry(kBelgiumCountryId);
+  std::unique_ptr<RegionalCapabilitiesService> service = InitService();
+
+  histogram_tester().ExpectTotalCount(
+      "Search.ChoiceDebug.UnknownCountryIdStored", 0);
+
+  EXPECT_EQ(GetCountryId(*service), kBelgiumCountryId);
+  histogram_tester().ExpectUniqueSample(
+      "Search.ChoiceDebug.UnknownCountryIdStored", 0 /* kValidCountryId */, 1);
+  EXPECT_EQ(GetPrefCountry(), kBelgiumCountryId);
 }
 #endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) ||
         // BUILDFLAG(IS_LINUX)
 
+TEST_F(RegionalCapabilitiesServiceTest, IsInEeaCountry) {
+  std::unique_ptr<RegionalCapabilitiesService> service =
+      InitService(kBelgiumCountryId);
+  EXPECT_TRUE(service->IsInEeaCountry());
+
+  SetCommandLineCountry("US");
+  EXPECT_FALSE(service->IsInEeaCountry());
+
+  SetCommandLineCountry(kBelgiumCountryCode);
+  EXPECT_TRUE(service->IsInEeaCountry());
+
+  // When --search-engine-choice-country is set to DEFAULT_EEA or EEA_ALL, the
+  // country is always considered as being in the EEA.
+
+  SetCommandLineCountry(switches::kDefaultListCountryOverride);
+  EXPECT_TRUE(service->IsInEeaCountry());
+
+  SetCommandLineCountry(switches::kEeaListCountryOverride);
+  EXPECT_TRUE(service->IsInEeaCountry());
+}
+
 }  // namespace regional_capabilities
diff --git a/components/regional_capabilities/regional_capabilities_switches.h b/components/regional_capabilities/regional_capabilities_switches.h
index 22e88e93..5754995 100644
--- a/components/regional_capabilities/regional_capabilities_switches.h
+++ b/components/regional_capabilities/regional_capabilities_switches.h
@@ -9,6 +9,22 @@
 #include "build/build_config.h"
 
 namespace switches {
+
+// Overrides the profile country (which is among other things used for search
+// engine choice region checks for example).
+// Intended for testing. Expects 2-letter country codes.
+inline constexpr char kSearchEngineChoiceCountry[] =
+    "search-engine-choice-country";
+
+// `kDefaultListCountryOverride` and `kEeaRegionCountryOverrideString` are
+// special values for `kSearchEngineChoiceCountry`.
+// `kDefaultListCountryOverride` will override the list of search engines to
+// display the default set.
+// `kEeaListCountryOverride` will override the list
+// of search engines to display list of all EEA engines.
+inline constexpr char kDefaultListCountryOverride[] = "DEFAULT_EEA";
+inline constexpr char kEeaListCountryOverride[] = "EEA_ALL";
+
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
 // When the `country_codes::kCountryIDUnknown` is stored in prefs and this
 // feature is enabled the pref will be cleared allowing a valid country to be
diff --git a/components/regional_capabilities/regional_capabilities_test_utils.cc b/components/regional_capabilities/regional_capabilities_test_utils.cc
index 6185b01..d308a15 100644
--- a/components/regional_capabilities/regional_capabilities_test_utils.cc
+++ b/components/regional_capabilities/regional_capabilities_test_utils.cc
@@ -4,7 +4,10 @@
 
 #include "components/regional_capabilities/regional_capabilities_test_utils.h"
 
+#include <memory>
+
 #include "base/functional/callback.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
 
 namespace regional_capabilities {
 
@@ -23,9 +26,24 @@
 FakeRegionalCapabilitiesServiceClient::
     ~FakeRegionalCapabilitiesServiceClient() = default;
 
+int FakeRegionalCapabilitiesServiceClient::GetFallbackCountryId() {
+  return country_id_;
+}
+
 void FakeRegionalCapabilitiesServiceClient::FetchCountryId(
     base::OnceCallback<void(int)> on_country_id_fetched) {
   std::move(on_country_id_fetched).Run(country_id_);
 }
 
+namespace testing {}  // namespace testing
+
 }  // namespace regional_capabilities
+
+namespace testing::regional_capabilities {
+
+int GetCountryId(
+    ::regional_capabilities::RegionalCapabilitiesService& service) {
+  return service.GetCountryId();
+}
+
+}  // namespace testing::regional_capabilities
diff --git a/components/regional_capabilities/regional_capabilities_test_utils.h b/components/regional_capabilities/regional_capabilities_test_utils.h
index 530f481a..5732249 100644
--- a/components/regional_capabilities/regional_capabilities_test_utils.h
+++ b/components/regional_capabilities/regional_capabilities_test_utils.h
@@ -5,12 +5,21 @@
 #ifndef COMPONENTS_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_TEST_UTILS_H_
 #define COMPONENTS_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_TEST_UTILS_H_
 
+#include <memory>
+
 #include "base/functional/callback_forward.h"
 #include "components/country_codes/country_codes.h"
 #include "components/regional_capabilities/regional_capabilities_service.h"
 
+// The API & structure of the component is not yet stable. Until it stabilizes,
+// we forward this include here so tests can keep referencing
+// `kEeaChoiceCountriesIds`.
+#include "components/regional_capabilities/eea_countries_ids.h"  // IWYU pragma: export
+
 namespace regional_capabilities {
 
+class RegionalCapabilitiesService;
+
 std::unique_ptr<RegionalCapabilitiesService> CreateServiceWithFakeClient(
     PrefService& profile_prefs,
     int country_id = country_codes::kCountryIDUnknown);
@@ -31,10 +40,20 @@
   void FetchCountryId(
       base::OnceCallback<void(int)> on_country_id_fetched) override;
 
+  int GetFallbackCountryId() override;
+
  private:
   const int country_id_;
 };
 
 }  // namespace regional_capabilities
 
+namespace testing::regional_capabilities {
+
+// Exposes `RegionalCapabilitiesService::GetCountryId()` to test functions,
+// as it is a friended private method.
+int GetCountryId(::regional_capabilities::RegionalCapabilitiesService& service);
+
+}  // namespace testing::regional_capabilities
+
 #endif  // COMPONENTS_REGIONAL_CAPABILITIES_REGIONAL_CAPABILITIES_TEST_UTILS_H_
diff --git a/components/regional_capabilities/regional_capabilities_utils.cc b/components/regional_capabilities/regional_capabilities_utils.cc
index b678097a..cbdceda 100644
--- a/components/regional_capabilities/regional_capabilities_utils.cc
+++ b/components/regional_capabilities/regional_capabilities_utils.cc
@@ -9,11 +9,23 @@
 #include <variant>
 
 #include "base/command_line.h"
-#include "components/country_codes/country_codes.h"
-#include "components/search_engines/search_engines_switches.h"
+#include "components/regional_capabilities/eea_countries_ids.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
 
 namespace regional_capabilities {
 
+bool IsEeaCountry(int country_id) {
+  // The `HasSearchEngineCountryListOverride()` check is here for compatibility
+  // with the way EEA presence was checked from `search_engines`. But it should
+  // logically be done only when the EEA presence is checked specifically for
+  // the current profile country.
+  // TODO(crbug.com/328040066): Move this check to
+  // `RegionalCapabilitiesService::IsInEeaCountry()`.
+  return HasSearchEngineCountryListOverride()
+             ? true
+             : kEeaChoiceCountriesIds.contains(country_id);
+}
+
 std::optional<SearchEngineCountryOverride> GetSearchEngineCountryOverride() {
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if (!command_line->HasSwitch(switches::kSearchEngineChoiceCountry)) {
diff --git a/components/regional_capabilities/regional_capabilities_utils.h b/components/regional_capabilities/regional_capabilities_utils.h
index 93eb902d..e92e19f0 100644
--- a/components/regional_capabilities/regional_capabilities_utils.h
+++ b/components/regional_capabilities/regional_capabilities_utils.h
@@ -10,6 +10,11 @@
 
 namespace regional_capabilities {
 
+// Returns whether `country_id` refers to a country member of the European
+// Economic Area.
+// See `//components/country_codes` for the Country ID format.
+bool IsEeaCountry(int country_id);
+
 // The state of the search engine choice country command line override.
 // See `switches::kSearchEngineChoiceCountry`.
 enum class SearchEngineCountryListOverride {
diff --git a/components/regional_capabilities/regional_capabilities_utils_unittest.cc b/components/regional_capabilities/regional_capabilities_utils_unittest.cc
new file mode 100644
index 0000000..a284676
--- /dev/null
+++ b/components/regional_capabilities/regional_capabilities_utils_unittest.cc
@@ -0,0 +1,28 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/regional_capabilities/regional_capabilities_utils.h"
+
+#include "components/country_codes/country_codes.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace regional_capabilities {
+
+// Sanity check the list.
+TEST(RegionalCapabilitiesUtilsTest, IsEeaCountry) {
+  using country_codes::CountryCharsToCountryID;
+
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('D', 'E')));
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('F', 'R')));
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('V', 'A')));
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('A', 'X')));
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('Y', 'T')));
+  EXPECT_TRUE(IsEeaCountry(CountryCharsToCountryID('N', 'C')));
+
+  EXPECT_FALSE(IsEeaCountry(CountryCharsToCountryID('U', 'S')));
+  EXPECT_FALSE(IsEeaCountry(CountryCharsToCountryID('J', 'P')));
+  EXPECT_FALSE(IsEeaCountry(country_codes::kCountryIDUnknown));
+}
+
+}  // namespace regional_capabilities
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
index f252db69..3b72d92a 100644
--- a/components/search_engines/BUILD.gn
+++ b/components/search_engines/BUILD.gn
@@ -14,7 +14,6 @@
     "choice_made_location.h",
     "default_search_manager.cc",
     "default_search_manager.h",
-    "eea_countries_ids.h",
     "enterprise/default_search_policy_handler.cc",
     "enterprise/default_search_policy_handler.h",
     "enterprise/enterprise_search_manager.cc",
@@ -283,7 +282,12 @@
     "search_engines_switches.h",
   ]
 
-  deps = [ "//base" ]
+  deps = [
+    "//base",
+
+    # TODO(crbug.com/390993114): Remove with the header forwarding.
+    "//components/regional_capabilities",
+  ]
 }
 
 if (!is_android) {
diff --git a/components/search_engines/android/template_url_service_android_unittest.cc b/components/search_engines/android/template_url_service_android_unittest.cc
index e360d701..ecf8cb67 100644
--- a/components/search_engines/android/template_url_service_android_unittest.cc
+++ b/components/search_engines/android/template_url_service_android_unittest.cc
@@ -12,9 +12,9 @@
 #include "base/command_line.h"
 #include "base/functional/callback_forward.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_utils.h"
 #include "components/search_engines/search_engines_pref_names.h"
-#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/search_terms_data.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
 #include "components/search_engines/template_url_service.h"
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_service.cc b/components/search_engines/search_engine_choice/search_engine_choice_service.cc
index 2ea45d5e..6b04cb4 100644
--- a/components/search_engines/search_engine_choice/search_engine_choice_service.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_service.cc
@@ -32,7 +32,7 @@
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
 #include "components/regional_capabilities/regional_capabilities_service.h"
-#include "components/search_engines/eea_countries_ids.h"
+#include "components/regional_capabilities/regional_capabilities_utils.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_metrics_service_accessor.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_utils.h"
 #include "components/search_engines/search_engine_type.h"
@@ -193,7 +193,7 @@
       is_profile_eligbile_for_dse_guest_propagation &&
       base::FeatureList::IsEnabled(
           switches::kSearchEngineChoiceGuestExperience) &&
-      IsEeaChoiceCountry(GetCountryId());
+      regional_capabilities_service_->IsInEeaCountry();
 
   ProcessPendingChoiceScreenDisplayState();
   PreprocessPrefsForReprompt();
@@ -242,7 +242,7 @@
     return SearchEngineChoiceScreenConditions::kAlreadyCompleted;
   }
 
-  if (!IsEeaChoiceCountry(GetCountryId())) {
+  if (!regional_capabilities_service_->IsInEeaCountry()) {
     return SearchEngineChoiceScreenConditions::kNotInRegionalScope;
   }
 
@@ -337,7 +337,7 @@
   CHECK_NE(choice_location, ChoiceMadeLocation::kOther);
 
   // Don't modify the pref if the user is not in the EEA region.
-  if (!IsEeaChoiceCountry(GetCountryId())) {
+  if (!regional_capabilities_service_->IsInEeaCountry()) {
     return;
   }
 
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_service_unittest.cc b/components/search_engines/search_engine_choice/search_engine_choice_service_unittest.cc
index e3520e4..97dcb74 100644
--- a/components/search_engines/search_engine_choice/search_engine_choice_service_unittest.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_service_unittest.cc
@@ -27,10 +27,11 @@
 #include "components/policy/policy_constants.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/testing_pref_service.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
 #include "components/regional_capabilities/regional_capabilities_test_utils.h"
 #include "components/search_engines/choice_made_location.h"
 #include "components/search_engines/default_search_manager.h"
-#include "components/search_engines/eea_countries_ids.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_metrics_service_accessor.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_utils.h"
 #include "components/search_engines/search_engine_type.h"
@@ -54,6 +55,15 @@
 namespace {
 
 const int kBelgiumCountryId = country_codes::CountryCharsToCountryID('B', 'E');
+const int kUsaCountryId = country_codes::CountryCharsToCountryID('U', 'S');
+
+// For SearchEngineChoiceServiceTest::InitService();
+struct InitServiceArgs {
+  int variation_country_id = country_codes::kCountryIDUnknown;
+  int client_country_id = country_codes::kCountryIDUnknown;
+  bool force_reset = false;
+  bool is_profile_eligible_for_dse_guest_propagation = false;
+};
 
 }  // namespace
 
@@ -82,10 +92,8 @@
 
   ~SearchEngineChoiceServiceTest() override = default;
 
-  void InitService(int variation_country_id = country_codes::kCountryIDUnknown,
-                   bool force_reset = false,
-                   bool is_profile_eligible_for_dse_guest_propagation = false) {
-    if (force_reset) {
+  void InitService(InitServiceArgs args = {}) {
+    if (args.force_reset) {
       // Explicitly reset the services in reverse initialization order, to avoid
       // dangling pointers issues due to interdependencies.
       search_engine_choice_service_.reset();
@@ -99,11 +107,12 @@
 
     regional_capabilities_service_ =
         regional_capabilities::CreateServiceWithFakeClient(
-            pref_service_, variation_country_id);
+            pref_service_, args.client_country_id);
 
     search_engine_choice_service_ = std::make_unique<SearchEngineChoiceService>(
         pref_service_, &local_state_, *regional_capabilities_service_,
-        is_profile_eligible_for_dse_guest_propagation, variation_country_id);
+        args.is_profile_eligible_for_dse_guest_propagation,
+        args.variation_country_id);
   }
 
   policy::MockPolicyService& policy_service() { return policy_service_; }
@@ -281,9 +290,8 @@
 TEST_F(SearchEngineChoiceServiceTest, GuestSessionDsePropagation) {
   base::test::ScopedFeatureList scoped_feature_list{
       switches::kSearchEngineChoiceGuestExperience};
-  InitService(kBelgiumCountryId,
-              /*=force_reset=*/true,
-              /*is_profile_eligible_for_dse_guest_propagation=*/true);
+  InitService({.force_reset = true,
+               .is_profile_eligible_for_dse_guest_propagation = true});
 
   EXPECT_FALSE(local_state().HasPrefPath(
       prefs::kDefaultSearchProviderGuestModePrepopulatedId));
@@ -302,17 +310,15 @@
       prepopulated_id);
 
   // The guest DSE is not propagated to services that are not guest profiles.
-  InitService(kBelgiumCountryId,
-              /*=force_reset=*/true,
-              /*is_profile_eligible_for_dse_guest_propagation=*/false);
+  InitService({.force_reset = true,
+               .is_profile_eligible_for_dse_guest_propagation = false});
   EXPECT_FALSE(search_engine_choice_service()
                    .GetSavedSearchEngineBetweenGuestSessions()
                    .has_value());
 
   // A new guest service propagates the DSE.
-  InitService(country_codes::kCountryIDUnknown,
-              /*=force_reset=*/true,
-              /*is_profile_eligible_for_dse_guest_propagation=*/true);
+  InitService({.force_reset = true,
+               .is_profile_eligible_for_dse_guest_propagation = true});
   EXPECT_EQ(
       search_engine_choice_service().GetSavedSearchEngineBetweenGuestSessions(),
       prepopulated_id);
@@ -322,9 +328,8 @@
        UpdatesDefaultSearchEngineManagerForGuestMode) {
   base::test::ScopedFeatureList scoped_feature_list{
       switches::kSearchEngineChoiceGuestExperience};
-  InitService(kBelgiumCountryId,
-              /*=force_reset=*/true,
-              /*is_profile_eligible_for_dse_guest_propagation=*/true);
+  InitService({.force_reset = true,
+               .is_profile_eligible_for_dse_guest_propagation = true});
 
   DefaultSearchManager manager(pref_service(), &search_engine_choice_service(),
                                base::NullCallback());
@@ -801,7 +806,58 @@
 }
 
 TEST_F(SearchEngineChoiceServiceTest, MaybeRecordChoiceScreenDisplayState) {
-  InitService(kBelgiumCountryId, true);
+  InitService({.variation_country_id = kBelgiumCountryId,
+               .client_country_id = kBelgiumCountryId,
+               .force_reset = true});
+  ChoiceScreenData choice_screen_data(
+      OwnedTemplateURLVectorFromPrepopulatedEngines(
+          {&TemplateURLPrepopulateData::google,
+           &TemplateURLPrepopulateData::bing,
+           &TemplateURLPrepopulateData::yahoo}),
+      kBelgiumCountryId, SearchTermsData());
+  ChoiceScreenDisplayState display_state = choice_screen_data.display_state();
+  display_state.selected_engine_index = 2;
+
+  base::HistogramTester histogram_tester;
+  search_engine_choice_service().MaybeRecordChoiceScreenDisplayState(
+      display_state);
+
+  histogram_tester.ExpectUniqueSample(
+      kSearchEngineChoiceScreenSelectedEngineIndexHistogram, 2, 1);
+  histogram_tester.ExpectBucketCount(
+      kSearchEngineChoiceScreenShowedEngineAtCountryMismatchHistogram, false,
+      1);
+  histogram_tester.ExpectUniqueSample(
+      base::StringPrintf(
+          kSearchEngineChoiceScreenShowedEngineAtHistogramPattern, 0),
+      SEARCH_ENGINE_GOOGLE, 1);
+  histogram_tester.ExpectUniqueSample(
+      base::StringPrintf(
+          kSearchEngineChoiceScreenShowedEngineAtHistogramPattern, 1),
+      SEARCH_ENGINE_BING, 1);
+  histogram_tester.ExpectUniqueSample(
+      base::StringPrintf(
+          kSearchEngineChoiceScreenShowedEngineAtHistogramPattern, 2),
+      SEARCH_ENGINE_YAHOO, 1);
+
+  // There is no search engine shown at index 3, since we have only 3 options.
+  histogram_tester.ExpectTotalCount(
+      base::StringPrintf(
+          kSearchEngineChoiceScreenShowedEngineAtHistogramPattern, 3),
+      0);
+
+  // We logged the display state, so we don't need to cache it.
+  EXPECT_FALSE(pref_service()->HasPrefPath(
+      prefs::kDefaultSearchProviderPendingChoiceScreenDisplayState));
+}
+
+TEST_F(SearchEngineChoiceServiceTest,
+       MaybeRecordChoiceScreenDisplayState_ProfileCountryMismatch) {
+  // The actual profile of the country does not matter, we are checking the
+  // `ChoiceScreenData` country against the variations country.
+  InitService({.variation_country_id = kBelgiumCountryId,
+               .client_country_id = kUsaCountryId,
+               .force_reset = true});
   ChoiceScreenData choice_screen_data(
       OwnedTemplateURLVectorFromPrepopulatedEngines(
           {&TemplateURLPrepopulateData::google,
@@ -853,7 +909,8 @@
 
   {
     // Unknown country.
-    InitService(country_codes::kCountryIDUnknown, /*force_reset=*/true);
+    InitService({.variation_country_id = country_codes::kCountryIDUnknown,
+                 .force_reset = true});
     ChoiceScreenData choice_screen_data(
         OwnedTemplateURLVectorFromPrepopulatedEngines(engines),
         country_codes::kCountryIDUnknown, SearchTermsData());
@@ -875,9 +932,8 @@
       prefs::kDefaultSearchProviderPendingChoiceScreenDisplayState));
 
   {
-    // Non-EEA country.
-    const int kUsaCountryId = country_codes::CountryStringToCountryID("US");
-    InitService(kUsaCountryId, /*force_reset=*/true);
+    // Non-EEA variations country.
+    InitService({.variation_country_id = kUsaCountryId, .force_reset = true});
     ChoiceScreenData choice_screen_data(
         OwnedTemplateURLVectorFromPrepopulatedEngines(engines), kUsaCountryId,
         SearchTermsData());
@@ -906,8 +962,9 @@
   base::HistogramTester histogram_tester;
 
   // Mismatch between the variations and choice screen data country.
-  InitService(country_codes::CountryStringToCountryID("DE"),
-              /*force_reset=*/true);
+  InitService(
+      {.variation_country_id = country_codes::CountryStringToCountryID("DE"),
+       .force_reset = true});
   ChoiceScreenData choice_screen_data(
       OwnedTemplateURLVectorFromPrepopulatedEngines(engines), kBelgiumCountryId,
       SearchTermsData());
@@ -965,7 +1022,7 @@
   search_engines::MarkSearchEngineChoiceCompletedForTesting(*pref_service());
 
   base::HistogramTester histogram_tester;
-  InitService(kBelgiumCountryId, /*force_reset=*/true);
+  InitService({.variation_country_id = kBelgiumCountryId, .force_reset = true});
 
   histogram_tester.ExpectUniqueSample(
       base::StringPrintf(
@@ -1005,7 +1062,8 @@
   search_engines::MarkSearchEngineChoiceCompletedForTesting(*pref_service());
 
   base::HistogramTester histogram_tester;
-  InitService(country_codes::kCountryIDUnknown, /*force_reset=*/true);
+  InitService({.variation_country_id = country_codes::kCountryIDUnknown,
+               .force_reset = true});
 
   histogram_tester.ExpectTotalCount(
       base::StringPrintf(
@@ -1044,7 +1102,8 @@
       display_state.ToDict());
 
   base::HistogramTester histogram_tester;
-  InitService(country_codes::kCountryIDUnknown, /*force_reset=*/true);
+  InitService({.variation_country_id = country_codes::kCountryIDUnknown,
+               .force_reset = true});
 
   histogram_tester.ExpectTotalCount(
       kSearchEngineChoiceScreenShowedEngineAtCountryMismatchHistogram, 0);
@@ -1083,7 +1142,7 @@
   EXPECT_TRUE(pref_service()->HasPrefPath(
       prefs::kDefaultSearchProviderPendingChoiceScreenDisplayState));
 
-  InitService(kBelgiumCountryId, /*force_reset=*/true);
+  InitService({.variation_country_id = kBelgiumCountryId, .force_reset = true});
   EXPECT_FALSE(pref_service()->HasPrefPath(
       prefs::kDefaultSearchProviderPendingChoiceScreenDisplayState));
 
@@ -1437,7 +1496,7 @@
   ASSERT_FALSE(base::CommandLine::ForCurrentProcess()->HasSwitch(
       switches::kSearchEngineChoiceCountry));
 
-  for (int country_id : search_engines::kEeaChoiceCountriesIds) {
+  for (int country_id : regional_capabilities::kEeaChoiceCountriesIds) {
     pref_service()->SetInteger(country_codes::kCountryIDAtInstall, country_id);
     std::vector<std::unique_ptr<TemplateURLData>> urls =
         TemplateURLPrepopulateData::GetPrepopulatedEngines(
@@ -1452,88 +1511,4 @@
 
 #endif  // !BUILDFLAG(IS_ANDROID)
 
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-
-class SearchEngineChoiceServiceWithVariationsTest : public ::testing::Test {
- public:
-  SearchEngineChoiceServiceWithVariationsTest() {
-    TemplateURLPrepopulateData::RegisterProfilePrefs(pref_service_.registry());
-    TemplateURLService::RegisterProfilePrefs(pref_service_.registry());
-
-    local_state_.registry()->RegisterBooleanPref(
-        metrics::prefs::kMetricsReportingEnabled, true);
-  }
-
-  void InitRegionalCapabilitiesService(
-      int variation_country_id = country_codes::kCountryIDUnknown,
-      bool force_reset = false) {
-    if (!force_reset) {
-      // If something refers to the existing instance, expect to run into
-      // issues!
-      CHECK(!regional_capabilities_);
-    }
-
-    regional_capabilities_ = regional_capabilities::CreateServiceWithFakeClient(
-        pref_service_, variation_country_id);
-  }
-
-  PrefService& pref_service() { return pref_service_; }
-
-  PrefService& local_state() { return local_state_; }
-
-  regional_capabilities::RegionalCapabilitiesService& regional_capabilities() {
-    if (!regional_capabilities_) {
-      InitRegionalCapabilitiesService();
-    }
-
-    return *regional_capabilities_;
-  }
-
- private:
-  TestingPrefServiceSimple local_state_;
-  sync_preferences::TestingPrefServiceSyncable pref_service_;
-  std::unique_ptr<regional_capabilities::RegionalCapabilitiesService>
-      regional_capabilities_;
-};
-
-// Tests that the country falls back to `country_codes::GetCurrentCountryID()`
-// when the variations country is not available.
-TEST_F(SearchEngineChoiceServiceWithVariationsTest, NoVariationsCountry) {
-  ASSERT_FALSE(base::CommandLine::ForCurrentProcess()->HasSwitch(
-      switches::kSearchEngineChoiceCountry));
-
-  InitRegionalCapabilitiesService(country_codes::kCountryIDUnknown);
-
-  SearchEngineChoiceService search_engine_choice_service(
-      pref_service(), &local_state(), regional_capabilities(),
-      /*is_profile_eligible_for_dse_guest_propagation=*/false,
-      country_codes::kCountryIDUnknown);
-
-  EXPECT_EQ(search_engine_choice_service.GetCountryId(),
-            country_codes::GetCurrentCountryID());
-}
-
-// Tests that the country is read from the variations service when available.
-TEST_F(SearchEngineChoiceServiceWithVariationsTest, WithVariationsCountry) {
-  ASSERT_FALSE(base::CommandLine::ForCurrentProcess()->HasSwitch(
-      switches::kSearchEngineChoiceCountry));
-
-  int variation_country_id = country_codes::CountryStringToCountryID("FR");
-  if (country_codes::GetCurrentCountryCode() == "FR") {
-    // Make sure to use a country different from the current one.
-    variation_country_id = country_codes::CountryStringToCountryID("DE");
-  }
-
-  InitRegionalCapabilitiesService(variation_country_id);
-
-  SearchEngineChoiceService search_engine_choice_service(
-      pref_service(), &local_state(), regional_capabilities(),
-      /*is_profile_eligible_for_dse_guest_propagation=*/false,
-      variation_country_id);
-
-  EXPECT_EQ(variation_country_id, search_engine_choice_service.GetCountryId());
-}
-
-#endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-
 }  // namespace search_engines
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
index 69f05b1d..a36caff 100644
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
@@ -25,7 +25,6 @@
 #include "components/prefs/pref_service.h"
 #include "components/regional_capabilities/regional_capabilities_utils.h"
 #include "components/search_engines/choice_made_location.h"
-#include "components/search_engines/eea_countries_ids.h"
 #include "components/search_engines/search_engine_type.h"
 #include "components/search_engines/search_engines_pref_names.h"
 #include "components/search_engines/search_engines_switches.h"
@@ -141,11 +140,7 @@
 ChoiceScreenData::~ChoiceScreenData() = default;
 
 bool IsEeaChoiceCountry(int country_id) {
-  // Consider the search engine list command line country override as an EEA
-  // region country to display the search engine choice screen.
-  return regional_capabilities::HasSearchEngineCountryListOverride()
-             ? true
-             : kEeaChoiceCountriesIds.contains(country_id);
+  return regional_capabilities::IsEeaCountry(country_id);
 }
 
 void RecordChoiceScreenProfileInitCondition(
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils_unittest.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils_unittest.cc
index 11f09f6..880b318 100644
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils_unittest.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils_unittest.cc
@@ -22,10 +22,8 @@
 #include "components/policy/core/common/policy_types.h"
 #include "components/policy/policy_constants.h"
 #include "components/prefs/testing_pref_service.h"
-#include "components/search_engines/eea_countries_ids.h"
 #include "components/search_engines/search_engine_type.h"
 #include "components/search_engines/search_engines_pref_names.h"
-#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/template_url_data_util.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
 #include "components/search_engines/template_url_service.h"
@@ -56,33 +54,6 @@
   std::unique_ptr<TemplateURLService> template_url_service_;
 };
 
-// Sanity check the list.
-TEST_F(SearchEngineChoiceUtilsTest, IsEeaChoiceCountry) {
-  using country_codes::CountryCharsToCountryID;
-  using search_engines::IsEeaChoiceCountry;
-
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('D', 'E')));
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('F', 'R')));
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('V', 'A')));
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('A', 'X')));
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('Y', 'T')));
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('N', 'C')));
-
-  EXPECT_FALSE(IsEeaChoiceCountry(CountryCharsToCountryID('U', 'S')));
-
-  base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-      switches::kSearchEngineChoiceCountry,
-      switches::kDefaultListCountryOverride);
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('U', 'S')));
-
-  base::CommandLine::ForCurrentProcess()->RemoveSwitch(
-      switches::kSearchEngineChoiceCountry);
-
-  base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-      switches::kSearchEngineChoiceCountry, switches::kEeaListCountryOverride);
-  EXPECT_TRUE(IsEeaChoiceCountry(CountryCharsToCountryID('U', 'S')));
-}
-
 TEST_F(SearchEngineChoiceUtilsTest, ChoiceScreenDisplayState_ToDict) {
   ChoiceScreenDisplayState display_state(
       /*search_engines=*/{SEARCH_ENGINE_QWANT, SEARCH_ENGINE_DUCKDUCKGO,
diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc
index 23ff966..06ff7919 100644
--- a/components/search_engines/search_engines_switches.cc
+++ b/components/search_engines/search_engines_switches.cc
@@ -13,11 +13,6 @@
 COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
 const char kExtraSearchQueryParams[] = "extra-search-query-params";
 
-// Override the country used for search engine choice region checks.
-// Intended for testing. Expects 2-letter country codes.
-COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
-const char kSearchEngineChoiceCountry[] = "search-engine-choice-country";
-
 // Override the --no-first-run dialog suppression for the search dialog
 // for testing
 COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
diff --git a/components/search_engines/search_engines_switches.h b/components/search_engines/search_engines_switches.h
index 52c132a..c25b2750 100644
--- a/components/search_engines/search_engines_switches.h
+++ b/components/search_engines/search_engines_switches.h
@@ -12,24 +12,15 @@
 #include "base/metrics/field_trial_params.h"
 #include "build/build_config.h"
 
+// TODO(crbug.com/390993114): Remove, replace with direct includes.
+#include "components/regional_capabilities/regional_capabilities_switches.h"  // IWYU pragma: export
+
 namespace switches {
 
 COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
 extern const char kExtraSearchQueryParams[];
 
 COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
-extern const char kSearchEngineChoiceCountry[];
-
-// `kDefaultListCountryOverride` and `kEeaRegionCountryOverrideString` are
-// special values for `kSearchEngineChoiceCountry`.
-// `kDefaultListCountryOverride` will override the list of search engines to
-// display the default set.
-// `kEeaListCountryOverride` will override the list
-// of search engines to display list of all EEA engines.
-inline const char kDefaultListCountryOverride[] = "DEFAULT_EEA";
-inline const char kEeaListCountryOverride[] = "EEA_ALL";
-
-COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
 extern const char kIgnoreNoFirstRunForSearchEngineChoiceScreen[];
 
 COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
diff --git a/components/search_engines/search_engines_test_environment.cc b/components/search_engines/search_engines_test_environment.cc
index 3d8b633..269c965 100644
--- a/components/search_engines/search_engines_test_environment.cc
+++ b/components/search_engines/search_engines_test_environment.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "components/metrics/metrics_pref_names.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
 #include "components/regional_capabilities/regional_capabilities_test_utils.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
 #include "components/search_engines/template_url_service.h"
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
index d66b2de..ac33f41 100644
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -21,8 +21,8 @@
 #include "components/country_codes/country_codes.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
+#include "components/regional_capabilities/eea_countries_ids.h"
 #include "components/regional_capabilities/regional_capabilities_utils.h"
-#include "components/search_engines/eea_countries_ids.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
 #include "components/search_engines/search_engines_pref_names.h"
 #include "components/search_engines/template_url_data.h"
@@ -337,7 +337,7 @@
   // because they point to the same search engine so we only want to record one
   // instance.
   base::flat_set<int> used_engines;
-  for (int eea_country_id : search_engines::kEeaChoiceCountriesIds) {
+  for (int eea_country_id : regional_capabilities::kEeaChoiceCountriesIds) {
     std::vector<EngineAndTier> country_engines =
         GetPrepopulationSetFromCountryID(eea_country_id);
     for (const EngineAndTier& engine : country_engines) {
diff --git a/components/search_engines/template_url_prepopulate_data_unittest.cc b/components/search_engines/template_url_prepopulate_data_unittest.cc
index 3ffcb12..f6c6179 100644
--- a/components/search_engines/template_url_prepopulate_data_unittest.cc
+++ b/components/search_engines/template_url_prepopulate_data_unittest.cc
@@ -20,12 +20,12 @@
 #include "base/values.h"
 #include "components/country_codes/country_codes.h"
 #include "components/google/core/common/google_switches.h"
-#include "components/search_engines/eea_countries_ids.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
+#include "components/regional_capabilities/regional_capabilities_test_utils.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_utils.h"
 #include "components/search_engines/search_engine_type.h"
 #include "components/search_engines/search_engines_pref_names.h"
-#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/search_engines_test_environment.h"
 #include "components/search_engines/search_engines_test_util.h"
 #include "components/search_engines/search_terms_data.h"
@@ -930,8 +930,8 @@
 INSTANTIATE_TEST_SUITE_P(
     ,
     TemplateURLPrepopulateDataListTest,
-    ::testing::ValuesIn(search_engines::kEeaChoiceCountriesIds.begin(),
-                        search_engines::kEeaChoiceCountriesIds.end()),
+    ::testing::ValuesIn(regional_capabilities::kEeaChoiceCountriesIds.begin(),
+                        regional_capabilities::kEeaChoiceCountriesIds.end()),
     TemplateURLPrepopulateDataListTest::ParamToTestSuffix);
 
 // Quick version of the test intended to flag glaring issues as part of the
diff --git a/components/search_engines/template_url_service_test_util.cc b/components/search_engines/template_url_service_test_util.cc
index cb801aa..1ec4cd2 100644
--- a/components/search_engines/template_url_service_test_util.cc
+++ b/components/search_engines/template_url_service_test_util.cc
@@ -10,10 +10,11 @@
 #include "components/country_codes/country_codes.h"
 #include "components/metrics/metrics_pref_names.h"
 #include "components/os_crypt/async/browser/test_utils.h"
+#include "components/regional_capabilities/regional_capabilities_service.h"
+#include "components/regional_capabilities/regional_capabilities_switches.h"
 #include "components/regional_capabilities/regional_capabilities_test_utils.h"
 #include "components/search_engines/keyword_table.h"
 #include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
-#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/search_terms_data.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
 #include "components/search_engines/template_url_service.h"
diff --git a/components/segmentation_platform/internal/signals/histogram_signal_handler.h b/components/segmentation_platform/internal/signals/histogram_signal_handler.h
index a3fee27f..df5c5b19 100644
--- a/components/segmentation_platform/internal/signals/histogram_signal_handler.h
+++ b/components/segmentation_platform/internal/signals/histogram_signal_handler.h
@@ -36,7 +36,7 @@
     // Called when a histogram signal tracked by segmentation platform is
     // updated and written to database.
     virtual void OnHistogramSignalUpdated(const std::string& histogram_name,
-                                          base::HistogramBase::Sample) = 0;
+                                          base::HistogramBase::Sample32) = 0;
     ~Observer() override = default;
 
    protected:
diff --git a/components/segmentation_platform/internal/signals/histogram_signal_handler_unittest.cc b/components/segmentation_platform/internal/signals/histogram_signal_handler_unittest.cc
index 7809db40..ceda60a 100644
--- a/components/segmentation_platform/internal/signals/histogram_signal_handler_unittest.cc
+++ b/components/segmentation_platform/internal/signals/histogram_signal_handler_unittest.cc
@@ -41,7 +41,7 @@
   ~MockObserver() override = default;
   MOCK_METHOD(void,
               OnHistogramSignalUpdated,
-              (const std::string&, base::HistogramBase::Sample),
+              (const std::string&, base::HistogramBase::Sample32),
               (override));
 };
 
diff --git a/components/signin/public/base/signin_feature_map.cc b/components/signin/public/base/signin_feature_map.cc
index 356fe0b..304253d7 100644
--- a/components/signin/public/base/signin_feature_map.cc
+++ b/components/signin/public/base/signin_feature_map.cc
@@ -19,9 +19,10 @@
 namespace {
 // Array of features exposed through the Java SigninFeatures API.
 const base::Feature* const kFeaturesExposedToJava[] = {
-    &switches::kForceSupervisedSigninWithCapabilities,
-    &switches::kSkipCheckForAccountManagementOnSignin,
     &switches::kCctSignInPrompt,
+    &switches::kForceSupervisedSigninWithCapabilities,
+    &switches::kHistoryOptInEntryPoints,
+    &switches::kSkipCheckForAccountManagementOnSignin,
     &switches::kUnoForAuto,
     &switches::kUseHostedDomainForManagementCheckOnSignin,
 };
diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc
index 91f1f88..3f748ad0 100644
--- a/components/signin/public/base/signin_switches.cc
+++ b/components/signin/public/base/signin_switches.cc
@@ -13,6 +13,21 @@
 // All switches in alphabetical order.
 
 #if BUILDFLAG(IS_ANDROID)
+BASE_FEATURE(kCctSignInPrompt,
+             "CctSignInPrompt",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Migrate usages of USM flag to force child account sign-in to use the account
+// capability `IsSubjectToParentalControls`.
+BASE_FEATURE(kForceSupervisedSigninWithCapabilities,
+             "ForceSupervisedSigninWithCapabilities",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Add some history opt-in entry points on Android.
+BASE_FEATURE(kHistoryOptInEntryPoints,
+             "HistoryOptInEntryPoints",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // Feature to bypass double-checking that signin callers have correctly gotten
 // the user to accept account management. This check is slow and not strictly
 // necessary, so disable it while we work on adding caching.
@@ -22,18 +37,8 @@
              "SkipCheckForAccountManagementOnSignin",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
-BASE_FEATURE(kCctSignInPrompt,
-             "CctSignInPrompt",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 BASE_FEATURE(kUnoForAuto, "UnoForAuto", base::FEATURE_ENABLED_BY_DEFAULT);
 
-// Migrate usages of USM flag to force child account sign-in to use the account
-// capability `IsSubjectToParentalControls`.
-BASE_FEATURE(kForceSupervisedSigninWithCapabilities,
-             "ForceSupervisedSigninWithCapabilities",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 BASE_FEATURE(kUseHostedDomainForManagementCheckOnSignin,
              "UseHostedDomainForManagementCheckOnSignin",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/signin/public/base/signin_switches.h b/components/signin/public/base/signin_switches.h
index 1661d68..d1447eb 100644
--- a/components/signin/public/base/signin_switches.h
+++ b/components/signin/public/base/signin_switches.h
@@ -28,16 +28,19 @@
 
 #if BUILDFLAG(IS_ANDROID)
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
-BASE_DECLARE_FEATURE(kSkipCheckForAccountManagementOnSignin);
-
-COMPONENT_EXPORT(SIGNIN_SWITCHES)
 BASE_DECLARE_FEATURE(kCctSignInPrompt);
 
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
-BASE_DECLARE_FEATURE(kUnoForAuto);
+BASE_DECLARE_FEATURE(kForceSupervisedSigninWithCapabilities);
 
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
-BASE_DECLARE_FEATURE(kForceSupervisedSigninWithCapabilities);
+BASE_DECLARE_FEATURE(kHistoryOptInEntryPoints);
+
+COMPONENT_EXPORT(SIGNIN_SWITCHES)
+BASE_DECLARE_FEATURE(kSkipCheckForAccountManagementOnSignin);
+
+COMPONENT_EXPORT(SIGNIN_SWITCHES)
+BASE_DECLARE_FEATURE(kUnoForAuto);
 
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
 BASE_DECLARE_FEATURE(kUseHostedDomainForManagementCheckOnSignin);
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index f314f9f6..d5ebfce 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Sluit en gebruik jou sleutelbord</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Skrywershulpbronne</translation>
+<translation id="2979639724566107830">Maak in nuwe venster oop</translation>
 <translation id="2980742331521553164">Hierdie kaart se CVC sal geënkripteer word en in jou Google-rekening gestoor word om korter by betaalpunt te wees</translation>
 <translation id="2983666748527428214">Maak Incognito-oortjie oop</translation>
 <translation id="2985306909656435243">As dit geaktiveer is, sal Chromium 'n kopie van jou kaart op hierdie toestel stoor om vorms vinniger in te vul.</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index e4a0df7..4edab051 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ይቆልፉ እና የቁልፍ ሰሌዳዎን ይጠቀሙ</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">የጸሐፊዎች መርጃዎች</translation>
+<translation id="2979639724566107830">በአዲስ መስኮት ክፈት</translation>
 <translation id="2980742331521553164">የዚህ ካርድ የካርድ ማረጋገጫ ኮድ ለበለጠ ፈጣን ክፍያ ማጠናቀቅ ይመሰጠራል እና የእርስዎ Google መለያ ውስጥ ይቀመጣል</translation>
 <translation id="2983666748527428214">ማንነት የማያሳውቅ ትርን ክፈት</translation>
 <translation id="2985306909656435243">ከነቃ Chromium ለተሻለ የቅጽ አሞላል ፍጥነት ሲባል በዚህ መሣሪያ ላይ ያለው የካርድዎን ቅጂ ያከማቻል።</translation>
@@ -1966,6 +1967,7 @@
 <translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation>
 <translation id="443673843213245140">የተኪ መጠቀም ተሰናክሏል ግን ግልፅ የሆነ የተኪ ውቅር ተገልጿል።</translation>
 <translation id="4438821706955556403">የተለመደ ዋጋ</translation>
+<translation id="444116852243722675">ሁሉንም (<ph name="ITEMS" />) ክፈት</translation>
 <translation id="4441832193888514600">መመሪያው ሊዋቀር የሚችለው እንደ ደመና ተጠቃሚ መመሪያ ብቻ ስለሆነ ችላ ተብሏል።</translation>
 <translation id="4445133368066241428">ታዋቂ ርዕሶች</translation>
 <translation id="4445964943162061557">ይህ የሙከራ ባህሪ ሲሆን ሁልጊዜም ትክክል አይሆንም።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 21399a8d..6310648 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1110,6 +1110,7 @@
 <translation id="2977847223286097084">قفل لوحة المفاتيح واستخدامها</translation>
 <translation id="2978824962390592855">أوبرا</translation>
 <translation id="2979424420072875974">موارد للكُتَّاب</translation>
+<translation id="2979639724566107830">الفتح في نافذة جديدة</translation>
 <translation id="2980742331521553164">‏سيتم تشفير رمز التحقق من هذه البطاقة (CVC) وحفظه في حسابك على Google للدفع بشكل أسرع.</translation>
 <translation id="2983666748527428214">فتح علامة تبويب في وضع التصفّح المتخفي</translation>
 <translation id="2985306909656435243">‏عند التفعيل، سيُخزن Chromium نسخة من بطاقتك على هذا الجهاز لتعبئة النماذج بشكل أسرع.</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 4c8b0f8d..43c4582 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">আপোনাৰ কীব’ৰ্ড লক কৰক আৰু ব্যৱহাৰ কৰক</translation>
 <translation id="2978824962390592855">অ’পেৰা</translation>
 <translation id="2979424420072875974">লেখকৰ উৎস</translation>
+<translation id="2979639724566107830">নতুন ৱিণ্ড'ত খোলক</translation>
 <translation id="2980742331521553164">এই কাৰ্ডখনৰ CVC এনক্ৰিপ্ট কৰা হৈছে আৰু ক্ষিপ্ৰভাৱে চেকআউট কৰিবলৈ আপোনাৰ Google একাউণ্টত ছেভ কৰা হ’ব</translation>
 <translation id="2983666748527428214">ইনক’গনিট’ টেব খোলক</translation>
 <translation id="2985306909656435243">যদি সক্ষম কৰা হয়, তেন্তে দ্ৰুতভাৱে ফৰ্ম পূৰাবলৈ Chromiumএ আপোনাৰ কার্ডৰ এটা প্ৰতিলিপি এই ডিভাইচটোত ষ্ট’ৰ কৰিব।</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 05dd53d..7881018c 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Klaviaturanı kilidləyin və istifadə edin</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Yazıçı resursları</translation>
+<translation id="2979639724566107830">Yeni pəncərədə açın</translation>
 <translation id="2980742331521553164">Bu kartın CVC-si şifrələnəcək və sürətli ödəmə üçün Google Hesabında yadda saxlanacaq</translation>
 <translation id="2983666748527428214">Anonim Tab açın</translation>
 <translation id="2985306909656435243">Aktiv edildiyi halda Chromium kartınızın kopyasını bu cihazda saxlayacaq ki, forma doldurmaq daha sürətli olsun.</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index 8be3c86..8dedaa3 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -1110,6 +1110,7 @@
 <translation id="2977847223286097084">Заблакіраваць і выкарыстоўваць клавіятуру</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Рэсурсы для пісьменнікаў</translation>
+<translation id="2979639724566107830">Адкрыць у новым акне</translation>
 <translation id="2980742331521553164">Код CVC карткі будзе зашыфраваны і захаваны ва Уліковым запісе Google для больш хуткай аплаты</translation>
 <translation id="2983666748527428214">Адкрыць укладку ў рэжыме інкогніта</translation>
 <translation id="2985306909656435243">Калі ўключана, Chromium будзе захоўваць копію вашай карткі на гэтай прыладзе ў мэтах хутчэйшага запаўнення форм.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index c05c2b64..cc48eeff 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Заключване и използване на клавиатурата ви</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Ресурси за писатели</translation>
+<translation id="2979639724566107830">Отваряне в нов прозорец</translation>
 <translation id="2980742331521553164">Кодът за проверка на тази карта ще бъде шифрован и запазен в профила ви в Google с цел по-бързо плащане</translation>
 <translation id="2983666748527428214">Отваряне на раздел в режим „инкогнито“</translation>
 <translation id="2985306909656435243">Ако настройката е активирана, Chromium ще съхранява на това устройство копие на картата ви с цел по-бързо попълване на формуляри.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">Изскач. прозорци и пренасочвания</translation>
 <translation id="443673843213245140">Използването на прокси сървър е деактивирано, но е посочена изрична негова конфигурация.</translation>
 <translation id="4438821706955556403">Обичайна цена</translation>
+<translation id="444116852243722675">Отваряне на всички (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Пренебрегнато, защото правилото може да бъде зададено само като правило за потребители в облака.</translation>
 <translation id="4445133368066241428">Популярни теми</translation>
 <translation id="4445964943162061557">Това е експериментална функция и понякога греши.</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index d30b955..e9f679b 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -1110,6 +1110,7 @@
 <translation id="2977847223286097084">কীবোর্ড লক করুন ও ব্যবহার করুন</translation>
 <translation id="2978824962390592855">অপেরা</translation>
 <translation id="2979424420072875974">লেখক সম্পর্কিত রিসোর্স</translation>
+<translation id="2979639724566107830">নতুন উইন্ডোতে খুলুন</translation>
 <translation id="2980742331521553164">আরও দ্রুত চেক-আউটের জন্য এই কার্ডের CVC আপনার Google অ্যাকাউন্টে এনক্রিপ্ট করে সেভ করা হবে</translation>
 <translation id="2983666748527428214">ছদ্মবেশী ট্যাব খুলুন</translation>
 <translation id="2985306909656435243">চালু করা হলে, ফর্ম পূরণের কাজ দ্রুত করতে Chromium এই ডিভাইসে আপনার কার্ডের একটি কপি স্টোর করবে।</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index f998e4f..fd9f81a 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">zaključati i koristiti vašu tastaturu</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Resursi za pisce</translation>
+<translation id="2979639724566107830">Otvori u novom prozoru</translation>
 <translation id="2980742331521553164">CVC kartice će se šifrirati i sačuvati na Google račun radi bržeg nastavka na plaćanje</translation>
 <translation id="2983666748527428214">Otvori anonimnu karticu</translation>
 <translation id="2985306909656435243">Ako je omogućeno, Chromium će pohraniti kopiju vaše kartice na ovom uređaju za brže popunjavanje.</translation>
@@ -2634,6 +2635,7 @@
 <translation id="5675809467256309336">Plesna i elektronska muzika</translation>
 <translation id="5675959228867414813">Prikaži po datumu</translation>
 <translation id="567604591393105935">Donja tabela trgovine je otvorena na pola visine</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">Folija</translation>
 <translation id="5680642791693447368">Trileri, kriminalistički filmovi i misterije</translation>
 <translation id="568292603005599551">X položaj slike</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 27d93a54..9f77f0f5 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquejar i utilitzar el teclat</translation>
 <translation id="2978824962390592855">Òpera</translation>
 <translation id="2979424420072875974">Recursos per a escriptors</translation>
+<translation id="2979639724566107830">Obre-ho en una finestra nova</translation>
 <translation id="2980742331521553164">El CVC d'aquesta targeta s'encriptarà i es desarà al teu Compte de Google per tramitar les compres més ràpidament</translation>
 <translation id="2983666748527428214">Obre una pestanya d'incògnit</translation>
 <translation id="2985306909656435243">Si s'activa aquesta opció, Chromium desa una còpia de la vostra targeta en aquest dispositiu per agilitzar l'emplenament de formularis.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index bd82f67..00601674 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Zamykat a používat klávesnici</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Zdroje pro psaní</translation>
+<translation id="2979639724566107830">Otevřít v novém okně</translation>
 <translation id="2980742331521553164">Kód CVC této karty bude zašifrován a uložen ve vašem účtu Google pro rychlejší placení</translation>
 <translation id="2983666748527428214">Otevřít anonymní kartu</translation>
 <translation id="2985306909656435243">Pokud je tato možnost aktivována, prohlížeč Chromium do zařízení uloží kopii karty za účelem rychlejšího vyplňování formulářů.</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb
index 20a6578..a49acb0 100644
--- a/components/strings/components_strings_cy.xtb
+++ b/components/strings/components_strings_cy.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Cloi a defnyddio'ch bysellfwrdd</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Adnoddau Awduron</translation>
+<translation id="2979639724566107830">Agor mewn ffenestr newydd</translation>
 <translation id="2980742331521553164">Bydd CVC y cerdyn hwn yn cael ei amgryptio a'i gadw yn eich Cyfrif Google i dalu'n gyflymach</translation>
 <translation id="2983666748527428214">Agor Tab Anhysbys</translation>
 <translation id="2985306909656435243">Os yw wedi'i alluogi, bydd Chromium yn storio copi o'ch cerdyn ar y ddyfais hon er mwyn llenwi ffurflenni yn gyflymach.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">Ffenestri naid ac ailgyfeiriadau</translation>
 <translation id="443673843213245140">Mae'r defnydd o ddirprwy weinydd wedi'i ddiffodd, ond mae ffurfweddiad dirprwyol penodol wedi'i nodi.</translation>
 <translation id="4438821706955556403">Pris arferol</translation>
+<translation id="444116852243722675">Agor pob un (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Anwybyddwyd oherwydd dim ond fel polisi defnyddiwr cwmwl y gellir gosod y polisi.</translation>
 <translation id="4445133368066241428">Pynciau poblogaidd</translation>
 <translation id="4445964943162061557">Mae hon yn nodwedd arbrofol ac ni fydd bob amser yn ei chael yn iawn.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index f9c5ad0f..598af73 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Lås og brug dit tastatur</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Forfatterressourcer</translation>
+<translation id="2979639724566107830">Åbn i nyt vindue</translation>
 <translation id="2980742331521553164">Kortets CVC krypteres og gemmes på din Google-konto, så du kan betale hurtigere</translation>
 <translation id="2983666748527428214">Åbn inkognitofane</translation>
 <translation id="2985306909656435243">Hvis denne indstilling er slået til, gemmer Chromium en kopi af dit kort på denne enhed for at gøre det hurtigere at udfylde formularer.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 3c7956dc..a078b61 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Tastatur sperren und verwenden</translation>
 <translation id="2978824962390592855">Oper</translation>
 <translation id="2979424420072875974">Ressourcen für Autoren</translation>
+<translation id="2979639724566107830">In neuem Fenster öffnen</translation>
 <translation id="2980742331521553164">Der CVC dieser Karte wird verschlüsselt und für einen schnelleren Bezahlvorgang in deinem Google-Konto gespeichert</translation>
 <translation id="2983666748527428214">Inkognitotab öffnen</translation>
 <translation id="2985306909656435243">Wenn du diese Option auswählst, speichert Chromium eine Kopie deiner Karte auf diesem Gerät, damit Formulare schneller ausgefüllt werden können.</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index ad50d92..47d603e 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Να κλειδώσει και να χρησιμοποιήσει το πληκτρολόγιό σας</translation>
 <translation id="2978824962390592855">Όπερα</translation>
 <translation id="2979424420072875974">Πόροι συγγραφέων</translation>
+<translation id="2979639724566107830">Άνοιγμα σε νέο παράθυρο</translation>
 <translation id="2980742331521553164">Ο κωδικός CVC αυτής της κάρτας θα κρυπτογραφηθεί και θα αποθηκευτεί στον Λογαριασμό σας Google για ταχύτερη ολοκλήρωση αγοράς</translation>
 <translation id="2983666748527428214">Άνοιγμα καρτέλας ανώνυμης περιήγησης</translation>
 <translation id="2985306909656435243">Εάν ενεργοποιηθεί, το Chromium θα αποθηκεύσει ένα αντίγραφο της κάρτας σας σε αυτήν τη συσκευή για ταχύτερη συμπλήρωση φορμών.</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 8899fcb3..91edc31 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Lock and use your keyboard</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Writers Resources</translation>
+<translation id="2979639724566107830">Open in new window</translation>
 <translation id="2980742331521553164">This card's CVC will be encrypted and saved in your Google Account for faster checkout</translation>
 <translation id="2983666748527428214">Open Incognito Tab</translation>
 <translation id="2985306909656435243">If enabled, Chromium will store a copy of your card on this device for faster form filling.</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 0966fa5..9d3bb30 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquear y usar el teclado</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Recursos para escritores</translation>
+<translation id="2979639724566107830">Abrir en una ventana nueva</translation>
 <translation id="2980742331521553164">Se encriptará el CVC de esta tarjeta y se guardará en tu Cuenta de Google para agilizar las confirmaciones de compras</translation>
 <translation id="2983666748527428214">Abrir una pestaña de incógnito</translation>
 <translation id="2985306909656435243">Si se habilita esta opción, Chromium almacenará una copia de la tarjeta en el dispositivo para completar más rápidamente los formularios.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 41c0dd51..b27e0af 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquear y usar tu teclado</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Recursos para escritores</translation>
+<translation id="2979639724566107830">Abrir en una ventana nueva</translation>
 <translation id="2980742331521553164">El CVC de esta tarjeta se cifrará y se guardará en tu cuenta de Google para tramitar las compras más rápido</translation>
 <translation id="2983666748527428214">Abrir pestaña de Incógnito</translation>
 <translation id="2985306909656435243">Si se habilita esta opción, Chromium guardará una copia de tu tarjeta en este dispositivo para completar formularios más rápidamente.</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index c66ef68..f848577 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -85,6 +85,7 @@
 <translation id="1158211211994409885">Host <ph name="HOST_NAME" /> sulges ootamatult ühenduse.</translation>
 <translation id="1160009341934077418">Hinnaajalugu kogu veebis</translation>
 <translation id="1161325031994447685">Ühendage uuesti WiFi-ga</translation>
+<translation id="1161663161838091892">Jätkamiseks vahelehtede ja ajaloo sünkroonimine</translation>
 <translation id="1163507966173624031">Traditsiooniline ja folkmuusika</translation>
 <translation id="11635448457105324">Nupp Aadresside haldamine, aktiveerige nupp, et Chrome'i seadetes aadresse lisada ja hallata</translation>
 <translation id="1165039591588034296">Viga</translation>
@@ -1105,10 +1106,12 @@
 <translation id="297173220375858963">Kompaktkirjastamine</translation>
 <translation id="2972581237482394796">&amp;Tee uuesti</translation>
 <translation id="2974468223369775963">Seda IBAN-it ei saanud teie Google'i kontole salvestada. See salvestati selles seadmes hoopis Chrome'i. Kui kasutate seda IBAN-it järgmine kord, küsib Chrome teilt seda uuesti.</translation>
+<translation id="297667759942911166">Vahelehegruppides koos töötamine</translation>
 <translation id="2977665033722899841"><ph name="ROW_NAME" />, praegu valitud. <ph name="ROW_CONTENT" /></translation>
 <translation id="2977847223286097084">Lukustada ja kasutada teie klaviatuuri</translation>
 <translation id="2978824962390592855">Ooper</translation>
 <translation id="2979424420072875974">Ressursid kirjanikele ja kirjutajatele</translation>
+<translation id="2979639724566107830">Ava uues aknas</translation>
 <translation id="2980742331521553164">Selle kaardi CVC krüpteeritakse ja salvestatakse teie Google'i kontole, et saaksite kiiremini maksta</translation>
 <translation id="2983666748527428214">Inkognito vahelehe avamine</translation>
 <translation id="2985306909656435243">Kui see on lubatud, salvestab Chromium teie kaardi koopia vormide kiiremaks täitmiseks sellesse seadmesse.</translation>
@@ -2062,6 +2065,7 @@
 <translation id="4661556981531699496">Lemmikloomad ja loomad</translation>
 <translation id="4661868874067696603">Otsige rohkem ostuvõimalusi</translation>
 <translation id="4663373278480897665">Kaamera on lubatud</translation>
+<translation id="4664084870155869900">Automaatne täitmine järgmine kord. Kaart salvestatakse teie seadmesse.</translation>
 <translation id="466561305373967878">Lauamängud</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4670064810192446073">Virtuaalreaalsus</translation>
@@ -2670,6 +2674,7 @@
 <translation id="573555826359077410">Nupp Loo vorm, aktiveerige nupp, et luua teenuses Google'i vormid kiiresti uus vorm</translation>
 <translation id="5737183892635480227">{NUM_CARDS,plural, =1{Salvestage kaart oma Google'i kontole}other{Salvestage kaardid oma Google'i kontole}}</translation>
 <translation id="5738385766833540397">Hallake, kuidas saate jälgitavate toodete puhul hinnaalanduse märguandeid</translation>
+<translation id="573974402615125334">Vahelehegruppide jagamiseks, nendega liitumiseks ning nendes koos töötamiseks sünkroonige oma ajalugu ja vahelehed</translation>
 <translation id="5740911612628596808">Ümbrik C9</translation>
 <translation id="5742806904559466333">Baarid, klubid ja ööelu</translation>
 <translation id="5743684619253032786">Küünehooldustooted</translation>
@@ -3870,6 +3875,7 @@
 <translation id="7865448901209910068">Suurim kiirus</translation>
 <translation id="7870281855125116701">Leiti allahindlus</translation>
 <translation id="7871445724586827387">Google'i konto parooli muutmine</translation>
+<translation id="787226752901403048">Vahelehegruppide jagamiseks ja nendega liitumiseks ning ideede põhjal koos töötamiseks logige Chrome'i sisse</translation>
 <translation id="7877007680666472091">kaitstud sisu ID-d</translation>
 <translation id="7878562273885520351">Teie parool võib olla ohus</translation>
 <translation id="7882421473871500483">Pruun</translation>
@@ -4324,6 +4330,7 @@
 <translation id="8702965365666568344">Montaažiteip</translation>
 <translation id="8703575177326907206">Teie ühendus <ph name="DOMAIN" />'ga pole krüptitud.</translation>
 <translation id="8705331520020532516">Seerianumber</translation>
+<translation id="8706806585855470492">Vahelehegruppe saate jagada, nendega liituda ja neis koostööd teha</translation>
 <translation id="8708134712139312373">Saab küsida luba Bluetooth-seadmetega ühenduse loomiseks</translation>
 <translation id="8710842507289500830">Fondi stiil</translation>
 <translation id="8712637175834984815">Selge</translation>
@@ -4466,6 +4473,7 @@
 <translation id="8975263830901772334">Teie prinditavate failide nimed</translation>
 <translation id="8982884016487650216">PDF-i laadimine viidi lõpule</translation>
 <translation id="8983369100812962543">Teil on nüüd võimalik rakenduse suurust muuta</translation>
+<translation id="8985112471026018799">Kiiremaks maksmiseks salvestage kaart</translation>
 <translation id="8987245424886630962"><ph name="VIEW_CHROME_HISTORY_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome'is oma sirvimisajaloo vaatamiseks vajutage tabulaatorit ja seejärel sisestusklahvi.</translation>
 <translation id="8987663052629670333">Fotode printimisteenused</translation>
 <translation id="8987927404178983737">kuu</translation>
@@ -4532,6 +4540,7 @@
 <translation id="9090993752571911635">Internetiteenuse pakkujad (ISP-d)</translation>
 <translation id="9093723786115107672">Magamisrõivad</translation>
 <translation id="9094544726794842788">Mittemeeldivaks märkimine avab vormi üksikasjaliku tagasiside saatmiseks selle kohta, miks teile need tulemused ei meeldi</translation>
+<translation id="9094809883254050729">Automaatne täitmine järgmine kord. Kaart on salvestamisel krüpteeritud.</translation>
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />. Vajutage tabulaatorit, seejärel sisestusklahvi, et määrata Chrome iOS-i seadetes süsteemi vaikebrauseriks</translation>
 <translation id="9101450247048146228">Kaamera kasutamine ja liigutamine (<ph name="CAMERAS_COUNT" />)</translation>
 <translation id="9101630580131696064">Salv 1</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index a373f85..fd38e06 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Teklatua blokeatu eta erabili</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Idazleentzako baliabideak</translation>
+<translation id="2979639724566107830">Ireki beste leiho batean</translation>
 <translation id="2980742331521553164">Txartel honen CVCa enkriptatuko da, eta Google-ko kontuan gordeko, azkarrago ordaintzeko</translation>
 <translation id="2983666748527428214">Ireki ezkutuko moduko fitxa bat</translation>
 <translation id="2985306909656435243">Gaituta badago, Chromium-ek txartelaren kopia bat gordeko du gailuan, inprimakiak bizkorrago betetzeko.</translation>
@@ -1963,6 +1964,7 @@
 <translation id="4434045419905280838">Leiho gainerak. / Birbideratzeak</translation>
 <translation id="443673843213245140">Proxya erabiltzeko aukera desgaitu da, baina proxy-konfigurazio esplizitua zehaztu da.</translation>
 <translation id="4438821706955556403">Ohiko prezioa</translation>
+<translation id="444116852243722675">Ireki guztiak (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Ez ikusi egin zaio hodeiko erabiltzaile-gidalerro gisa soilik ezar daitekeelako gidalerroa.</translation>
 <translation id="4445133368066241428">Gai ezagunak</translation>
 <translation id="4445964943162061557">Eginbide esperimental bat da hau, eta ez du beti dena ongi egingo.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 13a8870..51928be 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">صفحه‌کلید را قفل و از آن استفاده کند</translation>
 <translation id="2978824962390592855">اپرا</translation>
 <translation id="2979424420072875974">منابع نویسندگان</translation>
+<translation id="2979639724566107830">باز کردن در پنجرهٔ جدید</translation>
 <translation id="2980742331521553164">‏برای تسویه‌حساب سریع‌تر، کد تأیید این کارت رمزگذاری خواهد شد و در «حساب Google» شما ذخیره می‌شود</translation>
 <translation id="2983666748527428214">باز کردن «برگه ناشناس»</translation>
 <translation id="2985306909656435243">‏اگر فعال شود، Chromium برای پر کردن سریع‌تر فرم، یک کپی از کارت شما در این دستگاه ذخیره می‌کند.</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index ea389764..5bf9db02 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">lukita näppäimistön ja käyttää sitä</translation>
 <translation id="2978824962390592855">Ooppera</translation>
 <translation id="2979424420072875974">Kirjoittajan oppaat</translation>
+<translation id="2979639724566107830">Avaa uudessa ikkunassa</translation>
 <translation id="2980742331521553164">Kortin CVC-koodi salataan ja tallennetaan Google-tilillesi nopeampaa maksamista varten</translation>
 <translation id="2983666748527428214">Avaa incognito-välilehti</translation>
 <translation id="2985306909656435243">Jos tämä on käytössä, Chromium tallentaa kortin kopion tälle laitteelle nopeuttaakseen lomakkeiden täyttöä.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 4d181e1c..25384cca 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">I-lock at gamitin ang iyong keyboard</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Mga Resource ng Mga Manunulat</translation>
+<translation id="2979639724566107830">Buksan ng bagong window</translation>
 <translation id="2980742331521553164">Ie-encypt at ise-save sa iyong Google Account ang CVC ng card na ito para sa mas mabilis na pag-checkout</translation>
 <translation id="2983666748527428214">Magbukas ng Tab na Incognito</translation>
 <translation id="2985306909656435243">Kung naka-enable, mag-iimbak ang Chromium ng kopya ng iyong card sa device na ito para sa mas mabilis na pagsagot sa form.</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index 1d7e5af..94c22f60 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">verrouiller et utiliser votre clavier.</translation>
 <translation id="2978824962390592855">Opéra</translation>
 <translation id="2979424420072875974">Ressources pour les auteurs</translation>
+<translation id="2979639724566107830">Ouvrir dans une nouvelle fenêtre</translation>
 <translation id="2980742331521553164">Le code CVC de cette carte sera chiffré et enregistré dans votre compte Google pour un paiement plus rapide</translation>
 <translation id="2983666748527428214">Ouvrir l'onglet de navigation privée</translation>
 <translation id="2985306909656435243">Si l'option est activée, Chromium conservera une copie de votre carte sur cet appareil pour vous permettre de remplir plus rapidement vos formulaires.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 253d8af..e4061a8 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Verrouiller et utiliser votre clavier</translation>
 <translation id="2978824962390592855">Opéra</translation>
 <translation id="2979424420072875974">Ressources pour rédacteurs</translation>
+<translation id="2979639724566107830">Ouvrir dans une nouvelle fenêtre</translation>
 <translation id="2980742331521553164">Le code CVC de cette carte sera chiffré et enregistré dans votre compte Google pour accélérer le paiement</translation>
 <translation id="2983666748527428214">Ouvrir un onglet de navigation privée</translation>
 <translation id="2985306909656435243">Si cette option est activée, Chromium enregistre une copie de votre carte sur cet appareil pour vous permettre de remplir plus rapidement les formulaires.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 2c4bbf81..3b0a6cd 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquear e usar o teclado</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Recursos para escritores</translation>
+<translation id="2979639724566107830">Abre o marcador nunha ventá nova</translation>
 <translation id="2980742331521553164">O CVC desta tarxeta encriptarase e gardarase na túa Conta de Google para que a tramitación das compras sexa máis rápida</translation>
 <translation id="2983666748527428214">Abrir pestana do modo de incógnito</translation>
 <translation id="2985306909656435243">Se se activa esta opción, Chromium almacenará unha copia da túa tarxeta neste dispositivo para completar os formularios máis rápido.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index d2af2367..4a124ec5 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">તમારું કીબોર્ડ લૉક કરી તેનો ઉપયોગ કરવા</translation>
 <translation id="2978824962390592855">ઑપેરા</translation>
 <translation id="2979424420072875974">લેખકો સંબંધિત સંસાધનો</translation>
+<translation id="2979639724566107830">નવી વિંડોમાં ખોલો</translation>
 <translation id="2980742331521553164">આ કાર્ડના CVCનો એન્ક્રિપ્ટેડ હશે અને વધુ ઝડપી ચેકઆઉટ માટે તેને તમારા Google એકાઉન્ટમાં સાચવવામાં આવશે</translation>
 <translation id="2983666748527428214">છૂપી ટૅબ ખોલો</translation>
 <translation id="2985306909656435243">જો સક્ષમ કરેલું હોય, તો ઝડપથી ફોર્મ ભરવા માટે Chromium આ ઉપકરણ પર તમારા કાર્ડની એક કૉપિ સંગ્રહિત કરશે.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index a981e20..7fe341c 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -1110,6 +1110,7 @@
 <translation id="2977847223286097084">अपना कीबोर्ड लॉक करें और उसका इस्तेमाल करें</translation>
 <translation id="2978824962390592855">ऑपरा</translation>
 <translation id="2979424420072875974">लेखक के रिसॉर्स</translation>
+<translation id="2979639724566107830">नई विंडो में खोलें</translation>
 <translation id="2980742331521553164">इस कार्ड के सीवीसी को एन्क्रिप्ट (सुरक्षित) करके आपके Google खाते में सेव किया जाएगा, ताकि आप तेज़ी से चेकआउट कर सकें</translation>
 <translation id="2983666748527428214">गुप्त टैब खोलें</translation>
 <translation id="2985306909656435243">अगर सक्षम किया गया हो, तो ज़्यादा तेज़ी से फ़ॉर्म भरने के लिए क्रोमियम इस डिवाइस पर आपके कार्ड की एक कॉपी संग्रहित करेगा.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index cbaf40c7..5466904 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Zaključavanje i upotreba tipkovnice</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Resursi za pisce</translation>
+<translation id="2979639724566107830">Otvori u novom prozoru</translation>
 <translation id="2980742331521553164">CVC te kartice šifrirat će se i spremiti na vaš Google račun radi brže naplate</translation>
 <translation id="2983666748527428214">Otvori anonimnu karticu</translation>
 <translation id="2985306909656435243">Ako je to omogućeno, Chromium će pohraniti kopiju vaše kartice na uređaj radi bržeg ispunjavanja obrazaca.</translation>
@@ -2633,6 +2634,7 @@
 <translation id="5675809467256309336">Dance i elektronička glazba</translation>
 <translation id="5675959228867414813">Prikaži po datumu</translation>
 <translation id="567604591393105935">Donja tablica trgovine otvorena u pola visine</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">Folija</translation>
 <translation id="5680642791693447368">Trileri, kriminalistički filmovi i filmovi o misterijima</translation>
 <translation id="568292603005599551">X-položaj slike</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 6f0d4ee..a446a04 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">A billentyűzet zárolása és használata</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Források íróknak</translation>
+<translation id="2979639724566107830">Megnyitás új ablakban</translation>
 <translation id="2980742331521553164">A rendszer titkosítja, és az Ön Google-fiókjába menti a kártya CVC-kódját a gyorsabb fizetés érdekében</translation>
 <translation id="2983666748527428214">Inkognitó lap megnyitása</translation>
 <translation id="2985306909656435243">Ha engedélyezi, a Chromium megőrzi a kártya másolatát ezen az eszközön a gyorsabb űrlapkitöltés érdekében.</translation>
@@ -1964,6 +1965,7 @@
 <translation id="4434045419905280838">Előugró ablakok és átirányítások</translation>
 <translation id="443673843213245140">A proxy használata le van tiltva, de kifejezett proxykonfiguráció van megadva.</translation>
 <translation id="4438821706955556403">Átlagos ár</translation>
+<translation id="444116852243722675">Összes (<ph name="ITEMS" />) megnyitása</translation>
 <translation id="4441832193888514600">Figyelmen kívül hagyva, mert a szabályzatot csak felhőalapú felhasználói szabályzatként lehet beállítani.</translation>
 <translation id="4445133368066241428">Népszerű témák</translation>
 <translation id="4445964943162061557">Ez egy kísérleti funkció, amely nem mindig működik megfelelően.</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index 607f161..38c851ea 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -1115,6 +1115,7 @@
 <translation id="2977847223286097084">Կողպել և օգտագործել ձեր ստեղնաշարը</translation>
 <translation id="2978824962390592855">Օպերա</translation>
 <translation id="2979424420072875974">Գրողների ռեսուրսներ</translation>
+<translation id="2979639724566107830">Բացել նոր պատուհանում</translation>
 <translation id="2980742331521553164">Այս քարտի CVC կոդը կգաղտնագրվի և կպահվի ձեր Google հաշվում՝ ավելի արագ վճարման համար</translation>
 <translation id="2983666748527428214">Բացել ինկոգնիտո ներդիր</translation>
 <translation id="2985306909656435243">Եթե միացված է, Chromium-ն այս սարքում կպահի ձեր քարտի կրկնօրինակը՝ ձևն արագ լրացնելու համար:</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index c3372e1..384e599 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1110,6 +1110,7 @@
 <translation id="2977847223286097084">Mengunci dan menggunakan keyboard Anda</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Sumber Daya Penulis</translation>
+<translation id="2979639724566107830">Buka di jendela baru</translation>
 <translation id="2980742331521553164">CVC kartu ini akan dienkripsi dan disimpan di Akun Google Anda untuk checkout yang lebih cepat</translation>
 <translation id="2983666748527428214">Buka Tab Samaran</translation>
 <translation id="2985306909656435243">Jika diaktifkan, Chromium akan menyimpan salinan kartu Anda di perangkat ini untuk pengisian formulir yang lebih cepat.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index de58b10..f0bf51c 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Læsa og nota lyklaborðið þitt</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Tilföng fyrir rithöfunda</translation>
+<translation id="2979639724566107830">Opna í nýjum glugga</translation>
 <translation id="2980742331521553164">CVC-númer þessa korts verður dulkóðað og vistað á Google-reikningnum þínum til að flýta fyrir greiðslu</translation>
 <translation id="2983666748527428214">Opna huliðsflipa</translation>
 <translation id="2985306909656435243">Ef kveikt er á þessu mun Chromium geyma afrit af kortinu þínu í þessu tæki til að flýta fyrir útfyllingu eyðublaða.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">Sprettigluggar og framsendingar</translation>
 <translation id="443673843213245140">Slökkt er á notkun proxy-þjóns en sérstök proxy-stilling er tilgreind.</translation>
 <translation id="4438821706955556403">Dæmigert verð</translation>
+<translation id="444116852243722675">Opna allar (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Hunsað vegna þess að aðeins er hægt að stilla regluna sem notendareglu í skýi.</translation>
 <translation id="4445133368066241428">Vinsæl umfjöllunarefni</translation>
 <translation id="4445964943162061557">Þessi eiginleiki er á tilraunastigi og er ekki fullkomlega áreiðanlegur.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 74f29fb..3642da4 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Blocca e usa la tastiera</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Risorse per scrittori</translation>
+<translation id="2979639724566107830">Apri in un'altra finestra</translation>
 <translation id="2980742331521553164">Il CVC di questa carta verrà criptato e salvato nel tuo Account Google per un pagamento più rapido</translation>
 <translation id="2983666748527428214">Apri scheda di navigazione in incognito</translation>
 <translation id="2985306909656435243">Se questa opzione viene attivata, Chromium memorizza una copia della carta sul dispositivo per velocizzare la compilazione dei moduli.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index e15cc33..8321edb 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">לנעול את המקלדת ולהשתמש בה</translation>
 <translation id="2978824962390592855">אופרה</translation>
 <translation id="2979424420072875974">משאבים לכותבים</translation>
+<translation id="2979639724566107830">פתיחה בחלון חדש</translation>
 <translation id="2980742331521553164">‏כדי שתהליך התשלום יהיה מהיר יותר, קוד האימות (CVC) של הכרטיס הזה יוצפן ויישמר בחשבון Google שלך</translation>
 <translation id="2983666748527428214">פתיחת כרטיסייה פרטית</translation>
 <translation id="2985306909656435243">‏אם האפשרות תופעל, Chromium יאחסן עותק של הכרטיס שלך במכשיר הזה למילוי מהיר יותר של טפסים.</translation>
@@ -2638,6 +2639,7 @@
 <translation id="5675809467256309336">מוזיקת דאנס ומוזיקה אלקטרונית</translation>
 <translation id="5675959228867414813">הצגה לפי תאריך</translation>
 <translation id="567604591393105935">הגיליון התחתון של המסחר נפתח בחצי מגובה המסך</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">Foil</translation>
 <translation id="5680642791693447368">סרטי מתח, פשע ומסתורין</translation>
 <translation id="568292603005599551">‏מיקום תמונה על ציר X</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 0d21632..928916b 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">キーボードのロックと使用</translation>
 <translation id="2978824962390592855">オペラ</translation>
 <translation id="2979424420072875974">作家、ライター向け情報</translation>
+<translation id="2979639724566107830">新しいウィンドウで開く</translation>
 <translation id="2980742331521553164">すばやく決済できるように、このカードの CVC は暗号化されて、Google アカウントに保存されます</translation>
 <translation id="2983666748527428214">シークレット タブを開く</translation>
 <translation id="2985306909656435243">有効にすると、Chromium がカード情報をこのデバイスに保存するためフォームにすばやく入力できるようになります。</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">ポップアップとリダイレクト</translation>
 <translation id="443673843213245140">プロキシの使用は無効ですが、プロキシの設定が明示的に指定されています。</translation>
 <translation id="4438821706955556403">一般的な価格</translation>
+<translation id="444116852243722675">すべて開く(<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">ポリシーは、クラウド ユーザー ポリシーとしてのみ設定可能なため無視されました。</translation>
 <translation id="4445133368066241428">人気のトピック</translation>
 <translation id="4445964943162061557">これは試験運用版の機能であり、常に適切な結果が得られるとは限りません。</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index e586b8ef..7219257 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">თქვენი კლავიატურის დაბლოკვა და გამოყენება</translation>
 <translation id="2978824962390592855">ოპერა</translation>
 <translation id="2979424420072875974">სამწერლობო რესურსები</translation>
+<translation id="2979639724566107830">ახალ ფანჯარაში გახსნა</translation>
 <translation id="2980742331521553164">უფრო სწრაფი ანგარიშსწორების მიზნით, ამ ბარათის CVC დაიშიფრება და შეინახება თქვენს Google ანგარიშში</translation>
 <translation id="2983666748527428214">ინკოგნიტო ჩანართის გახსნა</translation>
 <translation id="2985306909656435243">ჩართვის შემთხვევაში, Chromium ფორმების უფრო სწრაფად შევსების მიზნით, თქვენი ბარათის ასლს ამ მოწყობილობაში შეინახავს.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">ამომხ. ფანჯრები/გადამისამართება</translation>
 <translation id="443673843213245140">პროქსის გამოყენება გამორთულია, მაგრამ მითითებულია პროქსის დეტალური კონფიგურაცია.</translation>
 <translation id="4438821706955556403">ტიპური ფასი</translation>
+<translation id="444116852243722675">ყველას გახსნა (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">იგნორირებულია, რადგან წესების განსაზღვრა შესაძლებელია მხოლოდ ღრუბლოვან სამომხმარებლო წესების სახით.</translation>
 <translation id="4445133368066241428">პოპულარული თემები</translation>
 <translation id="4445964943162061557">ეს ექსპერიმენტული საშუალებაა და ის ყოველთვის არ იქნება ზუსტი.</translation>
@@ -2633,6 +2635,7 @@
 <translation id="5675809467256309336">საცეკვაო და ელექტრონული მუსიკა</translation>
 <translation id="5675959228867414813">თარიღის მიხედვით ჩვენება</translation>
 <translation id="567604591393105935">კომერციის ქვედა ფურცელი გაიხსნა ნახევარ სიმაღლეზე</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">ფოლგა</translation>
 <translation id="5680642791693447368">ტრილერის, დეტექტივისა და მისტიკის ჟანრის ფილმები</translation>
 <translation id="568292603005599551">სურათის პოზიცია X ღერძზე</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index cbc39a2..e6b383e 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Пернетақтаңызды құлыптап пайдалану</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Жазушылар ресурстары</translation>
+<translation id="2979639724566107830">Жаңа терезеде ашу</translation>
 <translation id="2980742331521553164">Жылдам төлеу үшін бұл картаның CVC коды шифрланады және Google аккаунтыңызға сақталады.</translation>
 <translation id="2983666748527428214">Инкогнито қойындысын ашу</translation>
 <translation id="2985306909656435243">Іске қосылса, Chromium нысанды жылдамырақ толтыру үшін картаңыздың көшірмесін осы құрылғыға сақтайды.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 7251c86c..be41661 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -1112,6 +1112,7 @@
 <translation id="2977847223286097084">ចាក់សោ និងប្រើក្ដារចុចរបស់អ្នក</translation>
 <translation id="2978824962390592855">អូប៉េរ៉ា</translation>
 <translation id="2979424420072875974">ធនធាន​អ្នកនិពន្ធ</translation>
+<translation id="2979639724566107830">បើក​នៅក្នុង​វិនដូថ្មី</translation>
 <translation id="2980742331521553164">CVC របស់​កាតនេះ​នឹងត្រូវបាន​អ៊ីនគ្រីប និង​រក្សាទុក​នៅក្នុង​គណនី Google របស់អ្នក ដើម្បី​បង់ប្រាក់ចេញ​កាន់តែរហ័ស</translation>
 <translation id="2983666748527428214">បើកផ្ទាំង​ឯកជន</translation>
 <translation id="2985306909656435243">បើបើកដំណើរការ នោះ Chromium នឹងផ្ទុកច្បាប់ចម្លងកាតរបស់អ្នកនៅលើឧបករណ៍នេះសម្រាប់ការបំពេញសំណុំបែបបទឲ្យបានលឿនជាងមុន។</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index b73512f..120689d 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಿ ಮತ್ತು ಬಳಸಿ</translation>
 <translation id="2978824962390592855">ಓಪೆರಾ</translation>
 <translation id="2979424420072875974">ಬರಹಗಾರರ ಸಂಪನ್ಮೂಲಗಳು</translation>
+<translation id="2979639724566107830">ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="2980742331521553164">ಈ ಕಾರ್ಡ್‌ನ CVC ಅನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ವೇಗವಾಗಿ ಚೆಕ್‌ಔಟ್ ಮಾಡಲು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸೇವ್ ಮಾಡಲಾಗುತ್ತದೆ</translation>
 <translation id="2983666748527428214">ಅಜ್ಞಾತ ಟ್ಯಾಬ್ ತೆರೆಯಿರಿ</translation>
 <translation id="2985306909656435243">ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ, ವೇಗವಾಗಿ ಫಾರ್ಮ್ ಭರ್ತಿ ಮಾಡಲು Chromium ಈ ಸಾಧನದಲ್ಲಿ ನಿಮ್ಮ ಕಾರ್ಡ್‌ನ ಪ್ರತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 65ed6a9..81a42d5 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">키보드를 잠그고 사용합니다</translation>
 <translation id="2978824962390592855">오페라</translation>
 <translation id="2979424420072875974">작문 정보</translation>
+<translation id="2979639724566107830">새 창에서 열기</translation>
 <translation id="2980742331521553164">더 빠른 결제를 위해 이 카드의 CVC가 암호화되고 Google 계정에 저장됩니다.</translation>
 <translation id="2983666748527428214">시크릿 탭 열기</translation>
 <translation id="2985306909656435243">선택하면 이 기기에 카드 사본이 저장되어 Chromium에서 양식을 더 빠르게 작성할 수 있습니다.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">팝업 및 리디렉션</translation>
 <translation id="443673843213245140">프록시 사용은 중지되었지만 명시적 프록시 설정이 지정되어 있습니다.</translation>
 <translation id="4438821706955556403">일반 가격</translation>
+<translation id="444116852243722675">모두(<ph name="ITEMS" />개) 열기</translation>
 <translation id="4441832193888514600">클라우드 사용자 정책으로만 설정할 수 있는 정책이므로 무시되었습니다.</translation>
 <translation id="4445133368066241428">인기 주제</translation>
 <translation id="4445964943162061557">실험용 기능이므로 정확하지 않을 수 있습니다.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index c5d9464d..a800757 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Клавиатураңызды кулпулап, колдонуу уруксатын сурайт</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Жазуучулар булактары</translation>
+<translation id="2979639724566107830">Жаңы терезеде ачуу</translation>
 <translation id="2980742331521553164">Бул картанын CVC коду шифрленип, тезирээк төлөө үчүн Google аккаунтуңузда сакталат</translation>
 <translation id="2983666748527428214">Жашыруун өтмөктү ачуу</translation>
 <translation id="2985306909656435243">Эгер иштетилсе, форманы тезирээк толтуруу үчүн карточкаңыздын көчүрмөсүн Chromium ушул түзмөккө сактап коёт.</translation>
@@ -1966,6 +1967,7 @@
 <translation id="4434045419905280838">Калкыма терезелер жана багыттоолор</translation>
 <translation id="443673843213245140">Прокси пайдалануу мүмкүнчүлүгү өчүрүлгөнү менен, ачык-айкын прокси конфигурациясы белгиленген.</translation>
 <translation id="4438821706955556403">Адаттагы баасы</translation>
+<translation id="444116852243722675">Баарын ачуу (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Четке кагылды, анткени саясатты булуттагы колдонуучулар үчүн саясат катары гана коюуга болот.</translation>
 <translation id="4445133368066241428">Таанымал темалар</translation>
 <translation id="4445964943162061557">Бул сынамык функция жана ал ар дайым туура иштебейт.</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 8592af0..2e791c71 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ລັອກ ແລະ ໃຊ້ແປ້ນພິມຂອງທ່ານ</translation>
 <translation id="2978824962390592855">ໂອເປຣາ</translation>
 <translation id="2979424420072875974">ແຫຼ່ງຂໍ້ມູນນັກຂຽນ</translation>
+<translation id="2979639724566107830">ເປີດໃນໜ້າຈໍໃໝ່</translation>
 <translation id="2980742331521553164">CVC ຂອງບັດນີ້ຈະຖືກເຂົ້າລະຫັດ ແລະ ບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານເພື່ອການຈ່າຍເງິນທີ່ໄວຂຶ້ນ</translation>
 <translation id="2983666748527428214">ເປີດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="2985306909656435243">ຖ້າເປີດໃຊ້, Chromium ຈະບັນທຶກຂໍ້ມູນສຳເນົາບັດຂອງທ່ານໄວ້ໃນອຸປະກອນນີ້ເພື່ອໃຫ້ສາມາດຕື່ມຂໍ້ມູນແບບຟອມໄດ້ໄວຂຶ້ນ.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index b99760b..28e52e21 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Klaviatūros užrakinimas ir naudojimas</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Rašytojų ištekliai</translation>
+<translation id="2979639724566107830">Atidaryti naujame lange</translation>
 <translation id="2980742331521553164">Šios kortelės saugos kodas (CVC) bus šifruotas ir išsaugotas „Google“ paskyroje, kad galėtumėte greičiau atsiskaityti</translation>
 <translation id="2983666748527428214">Inkognito skirtuko atidarymas</translation>
 <translation id="2985306909656435243">Jei šis nustatymas įgalintas, „Chromium“ išsaugos kortelės kopiją įrenginyje, kad galėtumėte greičiau užpildyti formas.</translation>
@@ -2635,6 +2636,7 @@
 <translation id="5675809467256309336">Šokių ir elektroninė muzika</translation>
 <translation id="5675959228867414813">Rodyti pagal datą</translation>
 <translation id="567604591393105935">Prekybos apatinis lapas atidarytas iki pusės aukščio</translation>
+<translation id="5676641328629468296">„Google Pay“, „Pix“</translation>
 <translation id="5678007133659493065">Folija</translation>
 <translation id="5680642791693447368">Trileriai, kriminaliniai ir detektyviniai filmai</translation>
 <translation id="568292603005599551">Vaizdo X padėtis</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 77b52b8..91d0b9a 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloķēt un izmantot tastatūru</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Rakstnieku resursi</translation>
+<translation id="2979639724566107830">Atvērt jaunā logā</translation>
 <translation id="2980742331521553164">Šīs kartes CVC tiks šifrēts un saglabāts jūsu Google kontā ātrākiem norēķiniem.</translation>
 <translation id="2983666748527428214">Atvērt inkognito cilni</translation>
 <translation id="2985306909656435243">Ja šī opcija ir iespējota, Chromium saglabās jūsu kartes informāciju šajā ierīcē, lai nodrošinātu ātrāku veidlapu aizpildi.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 3bdf4ed..f0236eb 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">да ја заклучи и користи тастатурата</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Ресурси за писатели</translation>
+<translation id="2979639724566107830">Отвори во нов прозорец</translation>
 <translation id="2980742331521553164">За побрзо плаќање, CVC на картичкава ќе се шифрира и зачува во вашата сметка на Google</translation>
 <translation id="2983666748527428214">Отвори картичка „Инкогнито“</translation>
 <translation id="2985306909656435243">Ако е овозможено, Chromium ќе складира копија од вашата картичка на уредов за побрзо пополнување формулари.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index dba54171..4c484efa 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">നിങ്ങളുടെ കീബോർഡ് ലോക്ക് ചെയ്ത് ഉപയോഗിക്കാൻ</translation>
 <translation id="2978824962390592855">ഓപ്പറ</translation>
 <translation id="2979424420072875974">എഴുത്തുകാർക്കുള്ള വിഭവങ്ങൾ</translation>
+<translation id="2979639724566107830">പുതിയ വിന്‍ഡോയില്‍ തുറക്കുക</translation>
 <translation id="2980742331521553164">വേഗത്തിലുള്ള ചെക്ക്ഔട്ടിനായി ഈ കാർഡിന്റെ CVC എൻക്രിപ്റ്റ് ചെയ്ത് നിങ്ങളുടെ Google Account-ൽ സംരക്ഷിക്കും</translation>
 <translation id="2983666748527428214">അദൃശ്യ ടാബ് തുറക്കുക</translation>
 <translation id="2985306909656435243">പ്രവർത്തനക്ഷമമാക്കിയെങ്കിൽ, വേഗത്തിൽ ഫോം പൂരിപ്പിക്കാൻ Chromium ഈ ഉപകരണത്തിൽ നിങ്ങളുടെ കാർഡിന്റെ ഒരു പകർപ്പ് സൂക്ഷിക്കും.</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 4b51bbc..1a539755 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Гараа түгжих ба ашиглах</translation>
 <translation id="2978824962390592855">Дуурь</translation>
 <translation id="2979424420072875974">Зохиолчийн нөөцүүд</translation>
+<translation id="2979639724566107830">Шинэ цонхонд нээх</translation>
 <translation id="2980742331521553164">Энэ картын Карт баталгаажуулалтын кодыг шифрлэх бөгөөд илүү хурдан тооцоо хийхэд зориулж таны Google Бүртгэлд хадгална</translation>
 <translation id="2983666748527428214">Нууцлалтай табыг нээх</translation>
 <translation id="2985306909656435243">Идэвхжүүлсэн тохиолдолд Chromium нь таны энэ төхөөрөмжийн картын хуулбарыг маягт хурдан бөглөхийн тулд хадгалах болно.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 8f722e4..297a542 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">तुमचा कीबोर्ड लॉक करा आणि वापरा</translation>
 <translation id="2978824962390592855">ऑपेरा</translation>
 <translation id="2979424420072875974">लेखक स्रोत</translation>
+<translation id="2979639724566107830">नवीन विंडोमध्ये उघडा</translation>
 <translation id="2980742331521553164">या कार्डचा CVC एन्क्रिप्ट केला जाईल आणि जलद चेकआउट करण्यासाठी तुमच्या Google खाते मध्ये सेव्ह केला जाईल</translation>
 <translation id="2983666748527428214">गुप्त टॅब उघडा</translation>
 <translation id="2985306909656435243">सक्षम केल्‍यास, Chromium जलदपणे फॉर्म भरण्‍यासाठी तुमच्या कार्डची एक प्रत या डिव्‍हाइसवर संग्रहित करेल.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 6bf583c..cbc7658e 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -85,6 +85,7 @@
 <translation id="1158211211994409885"><ph name="HOST_NAME" /> menutup sambungan tanpa di jangka.</translation>
 <translation id="1160009341934077418">Sejarah Harga Merentas Web</translation>
 <translation id="1161325031994447685">Menyambung semula kepada Wi-Fi</translation>
+<translation id="1161663161838091892">Segerakkan tab dan sejarah untuk meneruskan proses</translation>
 <translation id="1163507966173624031">Muzik Rakyat &amp; Tradisional</translation>
 <translation id="11635448457105324">Butang urus alamat, aktifkan untuk menambahkan dan mengurus alamat dalam tetapan Chrome</translation>
 <translation id="1165039591588034296">Ralat</translation>
@@ -1105,10 +1106,12 @@
 <translation id="297173220375858963">Penerbitan Desktop</translation>
 <translation id="2972581237482394796">&amp;Buat Semula</translation>
 <translation id="2974468223369775963">IBAN ini tidak dapat disimpan dalam Google Account anda. Kad ini telah disimpan pada Chrome pada peranti ini. Chrome akan meminta anda sekali lagi apabila anda menggunakan IBAN ini selepas ini.</translation>
+<translation id="297667759942911166">Bekerjasama dalam kumpulan tab</translation>
 <translation id="2977665033722899841"><ph name="ROW_NAME" />, dipilih pada masa ini. <ph name="ROW_CONTENT" /></translation>
 <translation id="2977847223286097084">Kunci dan gunakan papan kekunci anda</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Sumber Penulis</translation>
+<translation id="2979639724566107830">Buka dalam tetingkap baharu</translation>
 <translation id="2980742331521553164">CVC kad ini akan disulitkan dan disimpan dalam Google Account anda untuk semak keluar yang lebih pantas</translation>
 <translation id="2983666748527428214">Buka Tap Inkognito</translation>
 <translation id="2985306909656435243">Jika didayakan, Chromium akan menyimpan salinan kad anda pada peranti ini untuk pengisian borang yang lebih cepat.</translation>
@@ -2064,6 +2067,7 @@
 <translation id="4661556981531699496">Haiwan Kesayangan &amp; Binatang</translation>
 <translation id="4661868874067696603">Cari Lebih Banyak Pilihan Pembelian</translation>
 <translation id="4663373278480897665">Kamera dibenarkan</translation>
+<translation id="4664084870155869900">Autolengkap pada kali seterusnya. Kad disimpan pada peranti anda.</translation>
 <translation id="466561305373967878">Permainan Berpapan</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4670064810192446073">Realiti maya</translation>
@@ -2672,6 +2676,7 @@
 <translation id="573555826359077410">Butang buat borang, aktifkan untuk membuat borang baharu dalam Google Forms dengan pantas</translation>
 <translation id="5737183892635480227">{NUM_CARDS,plural, =1{Simpan kad ke Google Account anda}other{Simpan kad ke Google Account anda}}</translation>
 <translation id="5738385766833540397">Urus cara anda menerima makluman penurunan harga untuk produk yang anda jejaki</translation>
+<translation id="573974402615125334">Untuk berkongsi, menyertai dan bekerjasama dalam kumpulan tab, segerakkan sejarah dan tab anda</translation>
 <translation id="5740911612628596808">Sampul C9</translation>
 <translation id="5742806904559466333">Bar, Kelab &amp; Hiburan Malam</translation>
 <translation id="5743684619253032786">Produk Penjagaan Kuku</translation>
@@ -3872,6 +3877,7 @@
 <translation id="7865448901209910068">Kelajuan terbaik</translation>
 <translation id="7870281855125116701">Diskaun ditemukan</translation>
 <translation id="7871445724586827387">Tukar kata laluan Google Account anda</translation>
+<translation id="787226752901403048">Log masuk ke Chrome untuk berkongsi dan menyertai kumpulan tab serta bekerjasama untuk menghasilkan idea</translation>
 <translation id="7877007680666472091">ID kandungan yang dilindungi</translation>
 <translation id="7878562273885520351">Kata laluan anda mungkin terjejas</translation>
 <translation id="7882421473871500483">Coklat</translation>
@@ -4327,6 +4333,7 @@
 <translation id="8702965365666568344">Pita Pelekapan</translation>
 <translation id="8703575177326907206">Sambungan anda ke <ph name="DOMAIN" /> tidak disulitkan.</translation>
 <translation id="8705331520020532516">Nombor Siri</translation>
+<translation id="8706806585855470492">Anda akan dapat berkongsi, menyertai dan bekerjasama dalam kumpulan tab</translation>
 <translation id="8708134712139312373">Boleh meminta untuk menyambung kepada peranti Bluetooth</translation>
 <translation id="8710842507289500830">Gaya fon</translation>
 <translation id="8712637175834984815">Faham</translation>
@@ -4469,6 +4476,7 @@
 <translation id="8975263830901772334">Nama fail yang anda cetak</translation>
 <translation id="8982884016487650216">Tamat memuatkan PDF</translation>
 <translation id="8983369100812962543">Kini anda boleh mengubah saiz apl</translation>
+<translation id="8985112471026018799">Simpan kad untuk semak keluar yang lebih pantas</translation>
 <translation id="8987245424886630962"><ph name="VIEW_CHROME_HISTORY_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tekan Tab kemudian Enter untuk melihat sejarah penyemakan imbas anda dalam Chrome</translation>
 <translation id="8987663052629670333">Perkhidmatan Pencetakan Foto</translation>
 <translation id="8987927404178983737">Bulan</translation>
@@ -4535,6 +4543,7 @@
 <translation id="9090993752571911635">Penyedia Perkhidmatan Internet (ISP)</translation>
 <translation id="9093723786115107672">Pakaian Tidur</translation>
 <translation id="9094544726794842788">Isyarat tidak menyukai membuka borang untuk menyerahkan butiran maklum balas tentang sebab anda tidak menyukai hasil ini</translation>
+<translation id="9094809883254050729">Autolengkap pada kali seterusnya. Kad disulitkan apabila disimpan.</translation>
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tekan tab kemudian Enter untuk menetapkan Chrome sebagai penyemak imbas lalai sistem dalam tetapan iOS</translation>
 <translation id="9101450247048146228">Penggunaan &amp; pergerakan kamera (<ph name="CAMERAS_COUNT" />)</translation>
 <translation id="9101630580131696064">Dulang 1</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 8c15b984..e8f4535 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -1114,6 +1114,7 @@
 <translation id="2977847223286097084">သင့်ကီးဘုတ်ကို လော့ခ်ချပြီး အသုံးပြုခြင်း</translation>
 <translation id="2978824962390592855">အော်ပရာ</translation>
 <translation id="2979424420072875974">စာရေးဆရာ ရင်းမြစ်</translation>
+<translation id="2979639724566107830">ဝင်းဒိုးအသစ်တွင် ဖွင့်ပါ</translation>
 <translation id="2980742331521553164">ပိုမိုမြန်ဆန်စွာ ငွေရှင်းနိုင်ရန် ဤကတ်၏ CVC နံပါတ်ကို သင့် Google Account တွင် အသွင်ဝှက်ပြီး သိမ်းပါမည်</translation>
 <translation id="2983666748527428214">ရုပ်ဖျက်တဘ်ဖွင့်ရန်</translation>
 <translation id="2985306909656435243">ဖွင့်ထားလျှင်၊ ပုံစံဖြည့်မှု မြန်လာစေရန် Chrome က သင့်ကဒ်၏ မိတ္ထူကို ဤကိရိယာထဲတွင် သိမ်းထားပါမည်။</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index 6aa58255..fb09d275 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">किबोर्ड लक गर्नुहोस् र प्रयोग गर्नुहोस्</translation>
 <translation id="2978824962390592855">ओपेरा</translation>
 <translation id="2979424420072875974">लेखकसम्बन्धी स्रोत साधन</translation>
+<translation id="2979639724566107830">नयाँ विन्डोमा खोल्नुहोस्</translation>
 <translation id="2980742331521553164">तपाईं छिटोछरितो रूपमा चेक आउट गर्न सक्नुहोस् भन्नाका लागि यो कार्डको CVC इन्क्रिप्ट गरिने छ र तपाईंको Google खातामा सेभ गरिने छ</translation>
 <translation id="2983666748527428214">इन्कोग्निटो ट्याब खोल्नुहोस्</translation>
 <translation id="2985306909656435243">सक्रिय गरिएको खण्डमा अझ छिटो फाराम भर्नका लागि Chromium ले यस यन्त्रमा तपाईँको कार्डको प्रतिलिपि भण्डारण गर्ने छ।</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index bbb8875..c670305 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Je toetsenbord vergrendelen en gebruiken</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Bronnen voor schrijvers</translation>
+<translation id="2979639724566107830">Openen in nieuw venster</translation>
 <translation id="2980742331521553164">De CVC van deze kaart wordt versleuteld en opgeslagen in je Google-account zodat je sneller kunt betalen</translation>
 <translation id="2983666748527428214">Incognitotabblad openen</translation>
 <translation id="2985306909656435243">Als deze instelling aanstaat, slaat Chromium een kopie van je pas op dit apparaat op zodat formulieren sneller kunnen worden ingevuld.</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index f1cd5d8..5889c81 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">låse og bruke tastaturet ditt</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Skriveressurser</translation>
+<translation id="2979639724566107830">Åpne i nytt vindu</translation>
 <translation id="2980742331521553164">Verifiseringskoden for dette kortet blir kryptert og lagret i Google-kontoen din for raskere betaling</translation>
 <translation id="2983666748527428214">Åpne en inkognitofane</translation>
 <translation id="2985306909656435243">Hvis du slår på dette alternativet, lagrer Chromium en kopi av kortet ditt på denne enheten, slik at det går raskere å fylle ut skjemaer.</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index f7b2d613..d7660035 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ଆପଣଙ୍କ କୀବୋର୍ଡ ଲକ କରି ଏହାକୁ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="2978824962390592855">ଅପେରା</translation>
 <translation id="2979424420072875974">ଲେଖକ ରିସୋର୍ସ</translation>
+<translation id="2979639724566107830">ନୂତନ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="2980742331521553164">ଦ୍ରୁତ ଚେକଆଉଟ ପାଇଁ ଏହି କାର୍ଡର CVCକୁ ଏନକ୍ରିପ୍ଟ କରାଯାଇ ଆପଣଙ୍କ Google ଅକାଉଣ୍ଟରେ ସେଭ କରାଯିବ</translation>
 <translation id="2983666748527428214">ଇନକଗ୍ନିଟୋ ଟାବ ଖୋଲନ୍ତୁ</translation>
 <translation id="2985306909656435243">ଯଦି ସକ୍ଷମ କରାଯାଏ, ତେବେ ଦ୍ରୁତତର ଫର୍ମ ପୂରଣ ପାଇଁ ଆପଣଙ୍କ କାର୍ଡର ଏକ କପି ଏହି ଡିଭାଇସ୍‌ରେ ଷ୍ଟୋର୍ କରିବ।</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 2c535e7..9a86956 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ਤੁਹਾਡੇ ਕੀ-ਬੋਰਡ ਨੂੰ ਲਾਕ ਕਰ ਕੇ ਵਰਤਣਾ</translation>
 <translation id="2978824962390592855">ਓਪੇਰਾ</translation>
 <translation id="2979424420072875974">ਲੇਖਕਾਂ ਲਈ ਸਰੋਤ</translation>
+<translation id="2979639724566107830">ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="2980742331521553164">ਤੇਜ਼ੀ ਨਾਲ ਚੈੱਕ-ਆਊਟ ਕਰਨ ਲਈ, ਤੁਹਾਡੇ ਕਾਰਡ ਦੇ CVC ਨੂੰ ਇਨਕ੍ਰਿਪਟ ਕਰ ਕੇ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ</translation>
 <translation id="2983666748527428214">ਇਨਕੋਗਨਿਟੋ ਟੈਬ ਖੋਲ੍ਹੋ</translation>
 <translation id="2985306909656435243">ਜੇਕਰ ਚਾਲੂ ਹੈ, ਤਾਂ Chromium ਤੇਜ਼ੀ ਨਾਲ ਫ਼ਾਰਮ ਭਰਨ ਲਈ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਤੁੁਹਾਡੇ ਕਾਰਡ ਦੀ ਇੱਕ ਕਾਪੀ ਸਟੋਰ ਕਰੇਗਾ।</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index eed0d63..7ad48983 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Zablokować klawiaturę i jej używać</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Zasoby dla pisarzy</translation>
+<translation id="2979639724566107830">Otwórz w nowym oknie</translation>
 <translation id="2980742331521553164">Kod CVC tej karty zostanie zaszyfrowany i zapisany na Twoim koncie Google – umożliwi to szybsze płatności</translation>
 <translation id="2983666748527428214">Otwórz kartę incognito</translation>
 <translation id="2985306909656435243">Jeśli włączysz tę opcję, Chromium zapisze kopię Twojej karty na tym urządzeniu, by umożliwić Ci szybsze wypełnianie formularzy.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 81705fc..ad5fc59 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquear e usar o teclado</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Recursos para escritores</translation>
+<translation id="2979639724566107830">Abrir em uma nova janela</translation>
 <translation id="2980742331521553164">O CVC desse cartão será criptografado e salvo na sua Conta do Google para agilizar pagamentos</translation>
 <translation id="2983666748527428214">Abrir guia anônima</translation>
 <translation id="2985306909656435243">Se esta opção for ativada, o Chromium armazenará uma cópia do seu cartão neste dispositivo para preencher formulários mais rapidamente.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 948a5e6b..e174298 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Bloquear e usar o teclado</translation>
 <translation id="2978824962390592855">Ópera</translation>
 <translation id="2979424420072875974">Recursos para escritores</translation>
+<translation id="2979639724566107830">Abrir numa nova janela</translation>
 <translation id="2980742331521553164">O Código de Segurança/CVC deste cartão vai ser encriptado e guardado na sua Conta Google para um pagamento mais rápido</translation>
 <translation id="2983666748527428214">Abrir separador de navegação anónima</translation>
 <translation id="2985306909656435243">Se ativada, o Chromium armazena uma cópia do seu cartão neste dispositivo para preencher formulários mais rapidamente.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 49a3b62..8b744fa4 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Blochează și folosește tastatura</translation>
 <translation id="2978824962390592855">Operă</translation>
 <translation id="2979424420072875974">Resurse pentru scriitori</translation>
+<translation id="2979639724566107830">Deschide într-o fereastră nouă</translation>
 <translation id="2980742331521553164">Codul CVC al acestui card va fi criptat și salvat în Contul Google pentru finalizarea mai rapidă a achiziției</translation>
 <translation id="2983666748527428214">Deschide o filă incognito</translation>
 <translation id="2985306909656435243">Dacă opțiunea este activată, Chromium va stoca o copie a cardului pe dispozitiv pentru a completa formularul mai rapid.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">Ferestre pop-up și redirecționări</translation>
 <translation id="443673843213245140">Utilizarea unui proxy este dezactivată, dar o configurare proxy este specificată în mod explicit.</translation>
 <translation id="4438821706955556403">Prețul standard</translation>
+<translation id="444116852243722675">Deschide-le pe toate (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Ignorată deoarece politica poate fi setată numai ca politică privind utilizatorii cloud.</translation>
 <translation id="4445133368066241428">Subiecte populare</translation>
 <translation id="4445964943162061557">Aceasta este o funcție experimentală și nu va răspunde întotdeauna corect.</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index c2501fa..f988191 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Управление клавиатурой</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Ресурсы для писателей</translation>
+<translation id="2979639724566107830">Открыть в новом окне</translation>
 <translation id="2980742331521553164">CVC-код этой карты будет зашифрован и сохранен в вашем аккаунте Google, чтобы вы могли оплачивать покупки быстрее.</translation>
 <translation id="2983666748527428214">Открыть вкладку инкогнито</translation>
 <translation id="2985306909656435243">Если функция включена, Chromium будет хранить на этом устройстве данные карты для быстрого заполнения форм.</translation>
@@ -1966,6 +1967,7 @@
 <translation id="4434045419905280838">Всплывающие окна и переадресация</translation>
 <translation id="443673843213245140">Прокси-сервер отключен, но при этом его конфигурация задана явным образом.</translation>
 <translation id="4438821706955556403">Средняя цена</translation>
+<translation id="444116852243722675">Открыть все (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Игнорируется, так как правило может быть настроено только на уровне облака.</translation>
 <translation id="4445133368066241428">Популярные темы</translation>
 <translation id="4445964943162061557">Это экспериментальная функция. Она не всегда работает корректно.</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index dd936f24..2d1f679 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ඔබේ යතුරු පුවරුව අගුලු දමා භාවිත කරන්න</translation>
 <translation id="2978824962390592855">ඔපෙරා</translation>
 <translation id="2979424420072875974">ලියන්නන්ගේ සම්පත්</translation>
+<translation id="2979639724566107830">නව කවුළුවක විවෘත කරන්න</translation>
 <translation id="2980742331521553164">මෙම කාඩ්පතේ CVC සංකේතනය කර වේගවත් පිටවීම සඳහා ඔබේ Google ගිණුමේ සුරකිනු ඇත</translation>
 <translation id="2983666748527428214">අප්‍රකට ටැබය විවෘත කරන්න</translation>
 <translation id="2985306909656435243">සබල නම්, වඩා වේගවත් පෝරමක් පිරවීම සඳහා Chromium ඔබේ කාඩ්පතේ පිටපතක් මෙම උපාංගයෙහි ගබඩා කරනු ඇත.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 0968385..b01c8c6 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Uzamykať a používať klávesnicu</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Zdroje pre spisovateľov</translation>
+<translation id="2979639724566107830">Otvoriť v novom okne</translation>
 <translation id="2980742331521553164">Overovací kód tejto karty bude zašifrovaný a uložený do vášho účtu Google na zrýchlenie platieb</translation>
 <translation id="2983666748527428214">Otvoriť kartu inkognito</translation>
 <translation id="2985306909656435243">Ak túto možnosť povolíte, Chromium uloží na tomto zariadení kópiu karty, aby ste mohli rýchlejšie vypĺňať formuláre.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index e7bf38b2..16c3685 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Zakleniti in uporabiti tipkovnico</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Viri za pisatelje</translation>
+<translation id="2979639724566107830">Odpri v novem oknu</translation>
 <translation id="2980742331521553164">Koda CVC te kartice bo šifrirana in shranjena v računu Google zaradi hitrejšega zaključka nakupa</translation>
 <translation id="2983666748527428214">Odpri anonimni zavihek</translation>
 <translation id="2985306909656435243">Če je to omogočeno, Chromium shrani kopijo kartice v tej napravi zaradi hitrejšega izpolnjevanja obrazcev.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 6602ba1..c17f2eb 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Kyç dhe përdor tastierën</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Burime për shkrimtarë</translation>
+<translation id="2979639724566107830">Hape në një dritare të re</translation>
 <translation id="2980742331521553164">CVC-ja e kësaj karte do të enkriptohet dhe do të ruhet në "Llogarinë tënde të Google" për përfundim më të shpejtë të blerjes</translation>
 <translation id="2983666748527428214">Hap skedën "e fshehtë"</translation>
 <translation id="2985306909656435243">Nëse aktivizohet, Chromium do të ruajë një kopje të kartës tënde në këtë pajisje për plotësim më të shpejtë të formularit.</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index c10b022..6f8f817a 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -85,6 +85,7 @@
 <translation id="1158211211994409885">Host <ph name="HOST_NAME" /> je neočekivano prekinuo vezu.</translation>
 <translation id="1160009341934077418">Istorija cena širom veba</translation>
 <translation id="1161325031994447685">ponovo da se povežete sa WiFi mrežom</translation>
+<translation id="1161663161838091892">Sinhronizujte kartice i istoriju da biste nastavili</translation>
 <translation id="1163507966173624031">Narodna i tradicionalna muzika</translation>
 <translation id="11635448457105324">Dugme Upravljajte adresama, aktivirajte ga da biste dodali adrese i upravljali njima u podešavanjima Chrome-a</translation>
 <translation id="1165039591588034296">Greška</translation>
@@ -1105,10 +1106,12 @@
 <translation id="297173220375858963">Stono izdavaštvo</translation>
 <translation id="2972581237482394796">&amp;Ponovi radnju</translation>
 <translation id="2974468223369775963">Ovaj IBAN nije sačuvan na Google nalogu. Umesto toga, sačuvan je u Chrome-u na ovom uređaju. Chrome će vas ponovo pitati sledeći put kada koristite ovaj IBAN.</translation>
+<translation id="297667759942911166">Sarađujte u grupama kartica</translation>
 <translation id="2977665033722899841"><ph name="ROW_NAME" />, trenutno izabrano. <ph name="ROW_CONTENT" /></translation>
 <translation id="2977847223286097084">zaključa i koristi tastaturu</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Resursi za pisce</translation>
+<translation id="2979639724566107830">Otvorite u novom prozoru</translation>
 <translation id="2980742331521553164">CVC ove kartice će biti šifrovan i sačuvan na Google nalogu radi bržeg plaćanja</translation>
 <translation id="2983666748527428214">Otvori karticu bez arhiviranja</translation>
 <translation id="2985306909656435243">Ako omogućite ovu opciju, Chromium će skladištiti kopiju kartice na ovom uređaju radi bržeg popunjavanja obrazaca.</translation>
@@ -2063,6 +2066,7 @@
 <translation id="4661556981531699496">Kućni ljubimci i životinje</translation>
 <translation id="4661868874067696603">Pretražite još opcija kupovine</translation>
 <translation id="4663373278480897665">Kamera je dozvoljena</translation>
+<translation id="4664084870155869900">Automatski se popunjava sledeći put. Kartica je sačuvana na uređaju.</translation>
 <translation id="466561305373967878">Društvene igre</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4670064810192446073">Virtuelna realnost</translation>
@@ -2634,6 +2638,7 @@
 <translation id="5675809467256309336">Dens i elektronska muzika</translation>
 <translation id="5675959228867414813">Prikaži prema datumu</translation>
 <translation id="567604591393105935">Donja tabela za trgovinu je otvorena do polovine ekrana</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">Folija</translation>
 <translation id="5680642791693447368">Trileri, kriminalistički filmovi i filmovi misterije</translation>
 <translation id="568292603005599551">Pozicija slike na X osi</translation>
@@ -2671,6 +2676,7 @@
 <translation id="573555826359077410">Dugme Napravi upitnik, aktivirajte ga da biste brzo napravili nov upitnik u Google upitnicima</translation>
 <translation id="5737183892635480227">{NUM_CARDS,plural, =1{Sačuvajte karticu na Google nalogu}one{Sačuvajte kartice na Google nalogu}few{Sačuvajte kartice na Google nalogu}other{Sačuvajte kartice na Google nalogu}}</translation>
 <translation id="5738385766833540397">Upravljajte načinom na koji primate obaveštenja o sniženjima za proizvode koje pratite</translation>
+<translation id="573974402615125334">Da biste delili grupe kartica, pridruživali im se i sarađivali u njima, sinhronizujte istoriju i kartice</translation>
 <translation id="5740911612628596808">Koverta C9</translation>
 <translation id="5742806904559466333">Barovi, klubovi i noćni život</translation>
 <translation id="5743684619253032786">Proizvodi za negu noktiju</translation>
@@ -3870,6 +3876,7 @@
 <translation id="7865448901209910068">Najbolja brzina</translation>
 <translation id="7870281855125116701">Pronađen je popust</translation>
 <translation id="7871445724586827387">Promenite lozinku za Google nalog</translation>
+<translation id="787226752901403048">Prijavite se u Chrome da biste delili grupe kartica, pridruživali im se i sarađivali na idejama</translation>
 <translation id="7877007680666472091">ID-ovi zaštićenog sadržaja</translation>
 <translation id="7878562273885520351">Lozinka je možda kompromitovana</translation>
 <translation id="7882421473871500483">Braon</translation>
@@ -4325,6 +4332,7 @@
 <translation id="8702965365666568344">Traka za montiranje</translation>
 <translation id="8703575177326907206">Vaša veza sa domenom <ph name="DOMAIN" /> nije šifrovana.</translation>
 <translation id="8705331520020532516">Serijski broj</translation>
+<translation id="8706806585855470492">Moći ćete da delite grupe kartica, pridružujete im se i sarađujete u njima</translation>
 <translation id="8708134712139312373">Može da traži da se povezuje sa Bluetooth uređajima</translation>
 <translation id="8710842507289500830">Stil fonta</translation>
 <translation id="8712637175834984815">Važi</translation>
@@ -4467,6 +4475,7 @@
 <translation id="8975263830901772334">Nazivi datoteka koje štampate</translation>
 <translation id="8982884016487650216">Učitavanje PDF-a je završeno</translation>
 <translation id="8983369100812962543">Sada možete da promenite veličinu aplikacije</translation>
+<translation id="8985112471026018799">Sačuvajte karticu da biste brže plaćali</translation>
 <translation id="8987245424886630962"><ph name="VIEW_CHROME_HISTORY_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, pa Enter da biste pregledali istoriju pregledanja u Chrome-u</translation>
 <translation id="8987663052629670333">Usluge izrade fotografija</translation>
 <translation id="8987927404178983737">Mesec</translation>
@@ -4533,6 +4542,7 @@
 <translation id="9090993752571911635">Internet provajderi</translation>
 <translation id="9093723786115107672">Odeća za spavanje</translation>
 <translation id="9094544726794842788">Opcija Ne sviđa mi se otvara obrazac za slanje detaljnih povratnih informacija o tome zašto vam se ne sviđaju ovi rezultati</translation>
+<translation id="9094809883254050729">Automatski se popunjava sledeći put. Kartica se šifruje kada se sačuva.</translation>
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tab, pa Enter da biste podesili Chrome kao podrazumevani pregledač sistema u podešavanjima iOS-a</translation>
 <translation id="9101450247048146228">Korišćenje i kretanje kamere (<ph name="CAMERAS_COUNT" />)</translation>
 <translation id="9101630580131696064">1. fioka</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index 3c71fde..95e8280 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -85,6 +85,7 @@
 <translation id="1158211211994409885">Хост <ph name="HOST_NAME" /> је неочекивано прекинуо везу.</translation>
 <translation id="1160009341934077418">Историја цена широм веба</translation>
 <translation id="1161325031994447685">поново да се повежете са WiFi мрежом</translation>
+<translation id="1161663161838091892">Синхронизујте картице и историју да бисте наставили</translation>
 <translation id="1163507966173624031">Народна и традиционална музика</translation>
 <translation id="11635448457105324">Дугме Управљајте адресама, активирајте га да бисте додали адресе и управљали њима у подешавањима Chrome-а</translation>
 <translation id="1165039591588034296">Грешка</translation>
@@ -1105,10 +1106,12 @@
 <translation id="297173220375858963">Стоно издаваштво</translation>
 <translation id="2972581237482394796">&amp;Понови радњу</translation>
 <translation id="2974468223369775963">Овај IBAN није сачуван на Google налогу. Уместо тога, сачуван је у Chrome-у на овом уређају. Chrome ће вас поново питати следећи пут када користите овај IBAN.</translation>
+<translation id="297667759942911166">Сарађујте у групама картица</translation>
 <translation id="2977665033722899841"><ph name="ROW_NAME" />, тренутно изабрано. <ph name="ROW_CONTENT" /></translation>
 <translation id="2977847223286097084">закључа и користи тастатуру</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Ресурси за писце</translation>
+<translation id="2979639724566107830">Отворите у новом прозору</translation>
 <translation id="2980742331521553164">CVC ове картице ће бити шифрован и сачуван на Google налогу ради бржег плаћања</translation>
 <translation id="2983666748527428214">Отвори картицу без архивирања</translation>
 <translation id="2985306909656435243">Ако омогућите ову опцију, Chromium ће складиштити копију картице на овом уређају ради бржег попуњавања образаца.</translation>
@@ -2063,6 +2066,7 @@
 <translation id="4661556981531699496">Кућни љубимци и животиње</translation>
 <translation id="4661868874067696603">Претражите још опција куповине</translation>
 <translation id="4663373278480897665">Камера је дозвољена</translation>
+<translation id="4664084870155869900">Аутоматски се попуњава следећи пут. Картица је сачувана на уређају.</translation>
 <translation id="466561305373967878">Друштвене игре</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4670064810192446073">Виртуелна реалност</translation>
@@ -2634,6 +2638,7 @@
 <translation id="5675809467256309336">Денс и електронска музика</translation>
 <translation id="5675959228867414813">Прикажи према датуму</translation>
 <translation id="567604591393105935">Доња табела за трговину је отворена до половине екрана</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">Фолија</translation>
 <translation id="5680642791693447368">Трилери, криминалистички филмови и филмови мистерије</translation>
 <translation id="568292603005599551">Позиција слике на X оси</translation>
@@ -2671,6 +2676,7 @@
 <translation id="573555826359077410">Дугме Направи упитник, активирајте га да бисте брзо направили нов упитник у Google упитницима</translation>
 <translation id="5737183892635480227">{NUM_CARDS,plural, =1{Сачувајте картицу на Google налогу}one{Сачувајте картице на Google налогу}few{Сачувајте картице на Google налогу}other{Сачувајте картице на Google налогу}}</translation>
 <translation id="5738385766833540397">Управљајте начином на који примате обавештења о снижењима за производе које пратите</translation>
+<translation id="573974402615125334">Да бисте делили групе картица, придруживали им се и сарађивали у њима, синхронизујте историју и картице</translation>
 <translation id="5740911612628596808">Коверта C9</translation>
 <translation id="5742806904559466333">Барови, клубови и ноћни живот</translation>
 <translation id="5743684619253032786">Производи за негу ноктију</translation>
@@ -3870,6 +3876,7 @@
 <translation id="7865448901209910068">Најбоља брзина</translation>
 <translation id="7870281855125116701">Пронађен је попуст</translation>
 <translation id="7871445724586827387">Промените лозинку за Google налог</translation>
+<translation id="787226752901403048">Пријавите се у Chrome да бисте делили групе картица, придруживали им се и сарађивали на идејама</translation>
 <translation id="7877007680666472091">ИД-ови заштићеног садржаја</translation>
 <translation id="7878562273885520351">Лозинка је можда компромитована</translation>
 <translation id="7882421473871500483">Браон</translation>
@@ -4325,6 +4332,7 @@
 <translation id="8702965365666568344">Трака за монтирање</translation>
 <translation id="8703575177326907206">Ваша веза са доменом <ph name="DOMAIN" /> није шифрована.</translation>
 <translation id="8705331520020532516">Серијски број</translation>
+<translation id="8706806585855470492">Моћи ћете да делите групе картица, придружујете им се и сарађујете у њима</translation>
 <translation id="8708134712139312373">Може да тражи да се повезује са Bluetooth уређајима</translation>
 <translation id="8710842507289500830">Стил фонта</translation>
 <translation id="8712637175834984815">Важи</translation>
@@ -4467,6 +4475,7 @@
 <translation id="8975263830901772334">Називи датотека које штампате</translation>
 <translation id="8982884016487650216">Учитавање PDF-а је завршено</translation>
 <translation id="8983369100812962543">Сада можете да промените величину апликације</translation>
+<translation id="8985112471026018799">Сачувајте картицу да бисте брже плаћали</translation>
 <translation id="8987245424886630962"><ph name="VIEW_CHROME_HISTORY_FOCUSED_FRIENDLY_MATCH_TEXT" />, притисните Tab, па Enter да бисте прегледали историју прегледања у Chrome-у</translation>
 <translation id="8987663052629670333">Услуге израде фотографија</translation>
 <translation id="8987927404178983737">Месец</translation>
@@ -4533,6 +4542,7 @@
 <translation id="9090993752571911635">Интернет провајдери</translation>
 <translation id="9093723786115107672">Одећа за спавање</translation>
 <translation id="9094544726794842788">Опција Не свиђа ми се отвара образац за слање детаљних повратних информација о томе зашто вам се не свиђају ови резултати</translation>
+<translation id="9094809883254050729">Аутоматски се попуњава следећи пут. Картица се шифрује када се сачува.</translation>
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, притисните tab, па Enter да бисте подесили Chrome као подразумевани прегледач система у подешавањима iOS-а</translation>
 <translation id="9101450247048146228">Коришћење и кретање камере (<ph name="CAMERAS_COUNT" />)</translation>
 <translation id="9101630580131696064">1. фиока</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 36ea3513..e159d0d 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Låsa och använda tangentbordet</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Resurser för skribenter</translation>
+<translation id="2979639724566107830">Öppna i nytt fönster</translation>
 <translation id="2980742331521553164">Kortets CVC-kod krypteras och sparas i ditt Google-konto så det går snabbare i kassan</translation>
 <translation id="2983666748527428214">Öppna inkognitoflik</translation>
 <translation id="2985306909656435243">Om alternativet är aktiverat sparar Chromium en kopia av kortet på enheten så att det går snabbare att fylla i formulär.</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 669e997..74855838 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Kufunga na kutumia kibodi yako</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Nyenzo za Waandishi</translation>
+<translation id="2979639724566107830">Fungua katika dirisha jipya</translation>
 <translation id="2980742331521553164">CVC ya kadi hii itasimbwa kwa njia fiche na kuhifadhiwa kwenye Akaunti yako ya Google ili ulipe haraka</translation>
 <translation id="2983666748527428214">Fungua Kichupo Fiche</translation>
 <translation id="2985306909656435243">Ikiwashwa, Chromium itahifadhi nakala ya kadi yako kwenye kifaa hiki kwa ajili ya kujaza fomu haraka zaidi.</translation>
@@ -1967,6 +1968,7 @@
 <translation id="4434045419905280838">Madirisha ibukizi/kuelekeza kwingine</translation>
 <translation id="443673843213245140">Matumizi ya proksi yamelemazwa lakini usanidi wa proksi wazi umebainishwa.</translation>
 <translation id="4438821706955556403">Bei ya kawaida</translation>
+<translation id="444116852243722675">Fungua yote (<ph name="ITEMS" />)</translation>
 <translation id="4441832193888514600">Imepuuzwa kwa sababu sera inaweza kuwekwa tu kama sera ya mtumiaji wa wingu.</translation>
 <translation id="4445133368066241428">Mada maarufu</translation>
 <translation id="4445964943162061557">Hiki ni kipengele cha majaribio na hakitatoa matokeo sahihi kila wakati.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 2c98786..cdc6c80 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">கீபோர்டை லாக் செய்தல் மற்றும் பயன்படுத்துதல்</translation>
 <translation id="2978824962390592855">ஓபெரா</translation>
 <translation id="2979424420072875974">எழுத்தாளர்களுக்கான ஆதாரங்கள்</translation>
+<translation id="2979639724566107830">புதிய சாளரத்தில் திற</translation>
 <translation id="2980742331521553164">விரைவான செக்-அவுட்டிற்காக இந்தக் கார்டின் CVC என்க்ரிப்ஷன் செய்யப்பட்டு உங்கள் Google கணக்கில் சேமிக்கப்படும்</translation>
 <translation id="2983666748527428214">மறைநிலைப் பக்கத்தைத் திற</translation>
 <translation id="2985306909656435243">இது இயக்கப்பட்டால், விரைவாகப் படிவத்தை நிரப்ப, உங்கள் கார்டின் நகலை Chromium இந்தச் சாதனத்தில் சேமிக்கும்.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index f82ec72d..979579ea 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -85,6 +85,7 @@
 <translation id="1158211211994409885"><ph name="HOST_NAME" /> ఊహించని విధంగా కనెక్షన్‌ను మూసివేసింది.</translation>
 <translation id="1160009341934077418">వెబ్ అంతటా గల ధర హిస్టరీ</translation>
 <translation id="1161325031994447685">Wi-Fiకి మళ్లీ కనెక్ట్ చేయడం</translation>
+<translation id="1161663161838091892">కొనసాగించడానికి ట్యాబ్‌లను, హిస్టరీని సింక్ చేయండి</translation>
 <translation id="1163507966173624031">జానపద &amp; సంప్రదాయ మ్యూజిక్</translation>
 <translation id="11635448457105324">'అడ్రస్‌లను మేనేజ్ చేయండి' బటన్, Chrome సెట్టింగ్‌లలో అడ్రస్‌లను జోడించడానికి, మేనేజ్ చేయడానికి దీన్ని యాక్టివేట్ చేయండి</translation>
 <translation id="1165039591588034296">ఎర్రర్</translation>
@@ -1100,10 +1101,12 @@
 <translation id="297173220375858963">డెస్క్‌టాప్ పబ్లిషింగ్</translation>
 <translation id="2972581237482394796">&amp;పునరావృతం</translation>
 <translation id="2974468223369775963">ఈ IBANను మీ Google ఖాతాలో సేవ్ చేయడం సాధ్యం కాలేదు. బదులుగా, ఈ పరికరంలోని Chromeలో సేవ్ అయింది. తర్వాతిసారి మీరు IBANను ఉపయోగించేటప్పుడు Chrome మళ్లీ మిమ్మల్ని అడుగుతుంది.</translation>
+<translation id="297667759942911166">ట్యాబ్ గ్రూప్‌లలో సహకరించండి</translation>
 <translation id="2977665033722899841"><ph name="ROW_NAME" />, ప్రస్తుతం ఎంచుకోబడింది. <ph name="ROW_CONTENT" /></translation>
 <translation id="2977847223286097084">మీ కీబోర్డ్‌ను లాక్ చేసి ఉపయోగించండి</translation>
 <translation id="2978824962390592855">ఓప్రా</translation>
 <translation id="2979424420072875974">రచయితలకు సంబంధించిన రిసోర్స్‌లు</translation>
+<translation id="2979639724566107830">కొత్త విండోలో తెరవండి</translation>
 <translation id="2980742331521553164">వేగవంతమైన చెక్అవుట్ కోసం ఈ కార్డ్ CVC ఎన్‌క్రిప్ట్ చేయబడుతుంది, మీ Google ఖాతాలో సేవ్ చేయబడుతుంది</translation>
 <translation id="2983666748527428214">అజ్ఞాత ట్యాబ్‌ను తెరవండి</translation>
 <translation id="2985306909656435243">ప్రారంభిస్తే, Chromium వేగవంతమైన ఫారమ్ పూరింపు కోసం ఈ పరికరంలో మీ కార్డ్ కాపీని స్టోరేజ్‌ చేస్తుంది.</translation>
@@ -1962,6 +1965,7 @@
 <translation id="4434045419905280838">పాప్-అప్‌లు మరియు మళ్లింపులు</translation>
 <translation id="443673843213245140">ప్రాక్సీని ఉపయోగించడం ఆపివేయబడింది కానీ స్పష్టమైన ప్రాక్సీ కాన్ఫిగరేషన్ పేర్కొనబడింది.</translation>
 <translation id="4438821706955556403">సాధారణ ధర</translation>
+<translation id="444116852243722675">అన్నింటినీ (<ph name="ITEMS" />) తెరవండి</translation>
 <translation id="4441832193888514600">క్లౌడ్ యూజర్ పాలసీ ద్వారా మాత్రమే పాలసీని సెట్ చేయాలి కాబట్టి ఇది విస్మరించబడింది.</translation>
 <translation id="4445133368066241428">జనాదరణ పొందిన టాపిక్‌లు</translation>
 <translation id="4445964943162061557">ఇది ప్రయోగాత్మక ఫీచర్, ఇది నూటికి నూరు శాతం సరైనదని చెప్పలేము.</translation>
@@ -2057,6 +2061,7 @@
 <translation id="4661556981531699496">పెంపుడు జంతువులు &amp; ఇతర జంతువులు</translation>
 <translation id="4661868874067696603">మరిన్ని కొనుగోలు ఆప్షన్‌లను సెర్చ్ చేయండి</translation>
 <translation id="4663373278480897665">కెమెరా అనుమతించబడింది</translation>
+<translation id="4664084870155869900">తర్వాతిసారి ఆటోఫిల్ చేయండి. మీ పరికరంలో కార్డ్ సేవ్ అయింది.</translation>
 <translation id="466561305373967878">బోర్డ్ గేమ్‌లు</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4670064810192446073">వర్చువల్ రియాలిటీ</translation>
@@ -2665,6 +2670,7 @@
 <translation id="573555826359077410">'ఫారమ్‌ను క్రియేట్ చేయండి' బటన్, Google Formsలో క్విక్‌గా కొత్త ఫారమ్‌ను క్రియేట్ చేయడానికి దీన్ని యాక్టివేట్ చేయండి</translation>
 <translation id="5737183892635480227">{NUM_CARDS,plural, =1{కార్డ్‌ను మీ Google ఖాతాలో సేవ్ చేయండి}other{కార్డ్‌లను మీ Google ఖాతాలో సేవ్ చేయండి}}</translation>
 <translation id="5738385766833540397">మీరు ట్రాక్ చేసే ప్రోడక్ట్‌లకు సంబంధించి మీరు ధర తగ్గుదల అలర్ట్‌లను స్వీకరించే విధానాన్ని మేనేజ్ చేయండి</translation>
+<translation id="573974402615125334">ట్యాబ్ గ్రూప్‌లలో షేర్ చేయడానికి, చేరడానికి, సహకరించడానికి, మీ హిస్టరీని, ట్యాబ్‌లను సింక్ చేయండి</translation>
 <translation id="5740911612628596808">ఎన్వలప్ C9</translation>
 <translation id="5742806904559466333">బార్‌లు, క్లబ్‌లు &amp; నైట్‌లైఫ్</translation>
 <translation id="5743684619253032786">గోళ్ల సంరక్షణా ప్రోడక్ట్‌లు</translation>
@@ -3865,6 +3871,7 @@
 <translation id="7865448901209910068">ఉత్తమ వేగం</translation>
 <translation id="7870281855125116701">డిస్కౌంట్ కనుగొనబడింది</translation>
 <translation id="7871445724586827387">మీ Google ఖాతా పాస్‌వర్డ్‌ను మార్చండి</translation>
+<translation id="787226752901403048">Chromeకు సైన్ ఇన్ చేసి ట్యాబ్ గ్రూప్‌లలో షేర్ చేయండి, చేరండి, వచ్చిన ఐడియాలపై కలిసి పని చేయండి</translation>
 <translation id="7877007680666472091">సురక్షితమైన కంటెంట్ IDలు</translation>
 <translation id="7878562273885520351">మీ పాస్‌వర్డ్ ఎవరికైనా తెలిసిపోయి ఉండవచ్చు</translation>
 <translation id="7882421473871500483">గోధుమ రంగు</translation>
@@ -4319,6 +4326,7 @@
 <translation id="8702965365666568344">మౌంటింగ్ టేప్</translation>
 <translation id="8703575177326907206"><ph name="DOMAIN" />కు మీ కనెక్షన్ ఎన్‌క్రిప్ట్ చేయ‌బ‌డ‌లేదు.</translation>
 <translation id="8705331520020532516">క్రమ సంఖ్య</translation>
+<translation id="8706806585855470492">ట్యాబ్ గ్రూప్‌లలో మీరు షేర్ చేయవచ్చు, చేరవచ్చు, సహకరించవచ్చు</translation>
 <translation id="8708134712139312373">బ్లూటూత్ పరికరాలకు కనెక్ట్ చేయడం కోసం సైట్ అనుమతి అడగవచ్చు</translation>
 <translation id="8710842507289500830">ఫాంట్ స్టయిల్</translation>
 <translation id="8712637175834984815">అర్థమైంది</translation>
@@ -4461,6 +4469,7 @@
 <translation id="8975263830901772334">మీరు ముద్రించే ఫైళ్ల పేర్లు</translation>
 <translation id="8982884016487650216">PDFను లోడ్ చేయడం పూర్తయింది</translation>
 <translation id="8983369100812962543">మీరు ఇప్పుడు యాప్ సైజ్‌ మార్చవచ్చు</translation>
+<translation id="8985112471026018799">వేగంగా చెక్ అవుట్ చేయడానికి కార్డ్‌ను సేవ్ చేయండి</translation>
 <translation id="8987245424886630962"><ph name="VIEW_CHROME_HISTORY_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeలో మీ బ్రౌజింగ్ హిస్టరీని చూడడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
 <translation id="8987663052629670333">ఫోటో ప్రింటింగ్ సర్వీస్‌లు</translation>
 <translation id="8987927404178983737">నెల</translation>
@@ -4527,6 +4536,7 @@
 <translation id="9090993752571911635">ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్‌లు (ISPలు)</translation>
 <translation id="9093723786115107672">నైట్ డ్రెస్</translation>
 <translation id="9094544726794842788">మీరు ఈ ఫలితాలను ఎందుకు డిస్‌లైక్ చేశారు అనే దాని గురించి వివరణాత్మక ఫీడ్‌బ్యాక్‌ను పంపడానికి 'బాగా లేదు' ఆప్షన్ మీ కోసం ఫారమ్‌ను తెరుస్తుంది</translation>
+<translation id="9094809883254050729">తర్వాతిసారి ఆటోఫిల్ చేయండి. సేవ్ చేసినప్పుడు కార్డ్ ఎన్‌క్రిప్ట్ చేయబడింది.</translation>
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, ట్యాబ్‌ను నొక్కి, ఆపై 'Enter'ను నొక్కి iOS సెట్టింగ్‌లలో Chromeను సిస్టమ్ ఆటోమేటిక్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="9101450247048146228">కెమెరా ఉపయోగం &amp; తరలింపు (<ph name="CAMERAS_COUNT" />)</translation>
 <translation id="9101630580131696064">ట్రే 1</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 2eb6992..255c73a 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">ล็อกและใช้แป้นพิมพ์</translation>
 <translation id="2978824962390592855">อุปรากร</translation>
 <translation id="2979424420072875974">ทรัพยากรสำหรับนักเขียน</translation>
+<translation id="2979639724566107830">เปิดในหน้าต่างใหม่</translation>
 <translation id="2980742331521553164">ระบบจะเข้ารหัส CVC ของบัตรนี้และบันทึกไว้ในบัญชี Google ของคุณเพื่อการชำระเงินที่เร็วขึ้น</translation>
 <translation id="2983666748527428214">เปิดแท็บที่ไม่ระบุตัวตน</translation>
 <translation id="2985306909656435243">หากเปิดใช้ไว้ Chromium จะจัดเก็บสำเนาบัตรของคุณในอุปกรณ์นี้เพื่อการกรอกแบบฟอร์มที่รวดเร็วขึ้น</translation>
@@ -2633,6 +2634,7 @@
 <translation id="5675809467256309336">เพลงแดนซ์และอิเล็กทรอนิก</translation>
 <translation id="5675959228867414813">แสดงตามวันที่</translation>
 <translation id="567604591393105935">Bottom Sheet ของ Commerce เปิดแบบครึ่งหน้า</translation>
+<translation id="5676641328629468296">Google Pay, Pix</translation>
 <translation id="5678007133659493065">ฟอยล์</translation>
 <translation id="5680642791693447368">ภาพยนตร์ลึกลับ สืบสวน และเขย่าขวัญ</translation>
 <translation id="568292603005599551">ตำแหน่งรูปภาพตามแกน X</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index b4ebd869..5acf225 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Klavyenizi kilitleme ve kullanma</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Yazar Kaynakları</translation>
+<translation id="2979639724566107830">Yeni pencerede aç</translation>
 <translation id="2980742331521553164">Daha hızlı ödeme için bu kartın CVC'si şifrelenip Google Hesabınıza kaydedilir</translation>
 <translation id="2983666748527428214">Gizli Sekme Aç</translation>
 <translation id="2985306909656435243">Bu seçenek etkinleştirildiğinde Chromium, formları daha hızlı doldurmak için kartınızın bir kopyasını bu cihazda saklar.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 60fbcc8..74db06d 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Блокувати й використовувати клавіатуру</translation>
 <translation id="2978824962390592855">Опера</translation>
 <translation id="2979424420072875974">Ресурси для письменників</translation>
+<translation id="2979639724566107830">Відкрити в новому вікні</translation>
 <translation id="2980742331521553164">Код CVC цієї картки буде зашифровано й збережено в обліковому записі Google, щоб ви могли швидше оплачувати замовлення</translation>
 <translation id="2983666748527428214">Відкрити анонімну вкладку</translation>
 <translation id="2985306909656435243">Якщо цю функцію ввімкнено, Chromium зберігає копію даних вашої картки на пристрої, щоб ви могли швидше заповнювати форми.</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 10fc38f..3410a43 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">اپنے کی بورڈ کو لاک کریں اور استعمال کریں</translation>
 <translation id="2978824962390592855">اوپیرا</translation>
 <translation id="2979424420072875974">قلمکاروں کے وسائل</translation>
+<translation id="2979639724566107830">نئی ونڈو میں کھولیں</translation>
 <translation id="2980742331521553164">‏اس کارڈ کا CVC تیزی سے چیک آؤٹ کے لیے آپ کے Google اکاؤنٹ میں مرموز اور محفوظ کیا جائے گا</translation>
 <translation id="2983666748527428214">پوشیدگی ٹیب کھولیں</translation>
 <translation id="2985306909656435243">‏فعال ہونے پر، زیادہ تیزی سے فارم بھرنے کیلئے Chromium آپ کے کارڈ کی کاپی کو اس آلہ پر اسٹور کرے گا۔</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 8749c7c..13ec387c 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -1108,6 +1108,7 @@
 <translation id="2977847223286097084">Klaviaturani boshqarish</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Yozuvchilik resurslari</translation>
+<translation id="2979639724566107830">Yangi oynada ochish</translation>
 <translation id="2980742331521553164">Bu kartaning CVC kodi tezkor hisob-kitob uchun shifrlanadi va Google hisobingizga saqlanadi</translation>
 <translation id="2983666748527428214">Inkognito varaq ochish</translation>
 <translation id="2985306909656435243">Chromium shakllarni tezroq to‘ldirish uchun karta ma’lumotlarini ushbu qurilmaga saqlaydi.</translation>
@@ -1962,6 +1963,7 @@
 <translation id="4434045419905280838">Qalquvchi oyna va yo‘naltirishlar</translation>
 <translation id="443673843213245140">Proksi-server o‘chiq, lekin uning sozlamalari aniq belgilangan.</translation>
 <translation id="4438821706955556403">Odatiy narxi</translation>
+<translation id="444116852243722675">Hammasini (<ph name="ITEMS" />) ochish</translation>
 <translation id="4441832193888514600">Parametr faqat bulutdagi foydalanuvchilar siyosati tomonidan belgilanishi mumkinligi uchun inkor etildi.</translation>
 <translation id="4445133368066241428">Ommaviy mavzular</translation>
 <translation id="4445964943162061557">Bu tajribaviy funksiya va ishlashida xatolar chiqishi mumkin.</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 00c79da..c22bf876 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Khoá và sử dụng bàn phím của bạn</translation>
 <translation id="2978824962390592855">Opera</translation>
 <translation id="2979424420072875974">Tài nguyên của nhà văn</translation>
+<translation id="2979639724566107830">Mở trong cửa sổ mới</translation>
 <translation id="2980742331521553164">CVC của thẻ này sẽ được mã hoá và lưu vào Tài khoản Google của bạn để giúp bạn thanh toán nhanh hơn</translation>
 <translation id="2983666748527428214">Mở thẻ ẩn danh</translation>
 <translation id="2985306909656435243">Nếu được bật, Chromium sẽ lưu trữ bản sao thẻ của bạn trên thiết bị này để điền vào biểu mẫu nhanh hơn.</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index b473c9f..81486c2 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">锁定和使用键盘</translation>
 <translation id="2978824962390592855">歌剧</translation>
 <translation id="2979424420072875974">写作资源</translation>
+<translation id="2979639724566107830">在新窗口中打开</translation>
 <translation id="2980742331521553164">这张银行卡的验证码 (CVC) 将会经过加密并保存到您的 Google 账号,以便您更快捷地结账</translation>
 <translation id="2983666748527428214">打开无痕式标签页</translation>
 <translation id="2985306909656435243">启用后,Chromium 会将您的信用卡副本存储在此设备上,以加快表单填写速度。</translation>
@@ -1963,6 +1964,7 @@
 <translation id="4434045419905280838">弹出式窗口和重定向</translation>
 <translation id="443673843213245140">已停用代理,但是指定了明确的代理配置。</translation>
 <translation id="4438821706955556403">一般价格</translation>
+<translation id="444116852243722675">打开全部内容(<ph name="ITEMS" /> 个)</translation>
 <translation id="4441832193888514600">被忽略了,因为此政策只能设为云端用户政策。</translation>
 <translation id="4445133368066241428">热门主题</translation>
 <translation id="4445964943162061557">这是一项实验性功能,有时可能会出错。</translation>
@@ -2629,6 +2631,7 @@
 <translation id="5675809467256309336">舞曲与电子音乐</translation>
 <translation id="5675959228867414813">按日期显示</translation>
 <translation id="567604591393105935">商务底部动作条已半屏打开</translation>
+<translation id="5676641328629468296">Google Pay、Pix</translation>
 <translation id="5678007133659493065">箔</translation>
 <translation id="5680642791693447368">惊悚片、犯罪片与悬疑片</translation>
 <translation id="568292603005599551">图片 X 轴位置</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index a7469568..2cf1f8e 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">鎖定和使用鍵盤</translation>
 <translation id="2978824962390592855">歌劇</translation>
 <translation id="2979424420072875974">作家資源</translation>
+<translation id="2979639724566107830">在新視窗中開啟</translation>
 <translation id="2980742331521553164">此付款卡的 CVC 經已加密並儲存至你的 Google 帳戶,以便快速結帳</translation>
 <translation id="2983666748527428214">開啟無痕式分頁</translation>
 <translation id="2985306909656435243">啟用後,Chromium 會在此裝置上儲存信用卡資料副本,以加快填表速度。</translation>
@@ -1966,6 +1967,7 @@
 <translation id="4434045419905280838">彈出式視窗和重新導向</translation>
 <translation id="443673843213245140">雖然已停用 Proxy,不過已明確指定了 Proxy 設定。</translation>
 <translation id="4438821706955556403">一般價格</translation>
+<translation id="444116852243722675">全部開啟 (<ph name="ITEMS" /> 個)</translation>
 <translation id="4441832193888514600">由於此政策只能設定為雲端使用者政策,因此系統已忽略。</translation>
 <translation id="4445133368066241428">熱門主題</translation>
 <translation id="4445964943162061557">這是實驗版功能,提供的建議不一定符合需求。</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 7c093ea..68d1a567 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -1108,6 +1108,7 @@
 <translation id="2977847223286097084">鎖定並使用你的鍵盤</translation>
 <translation id="2978824962390592855">歌劇</translation>
 <translation id="2979424420072875974">寫作資源</translation>
+<translation id="2979639724566107830">於新視窗中開啟</translation>
 <translation id="2980742331521553164">為加快結帳速度,這張卡片的驗證碼會加密儲存在你的 Google 帳戶中</translation>
 <translation id="2983666748527428214">開啟無痕分頁</translation>
 <translation id="2985306909656435243">啟用後,Chromium 會將您的信用卡資料儲存在這個裝置上,以加快表單填寫速度。</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index dd159de3..ebebb5c 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -1109,6 +1109,7 @@
 <translation id="2977847223286097084">Ukukhiya nokusebenzisa ikhibhodi yakho</translation>
 <translation id="2978824962390592855">I-Opera</translation>
 <translation id="2979424420072875974">Izinsiza Zabalobi</translation>
+<translation id="2979639724566107830">Vula ewindini elisha</translation>
 <translation id="2980742331521553164">I-CVC yaleli khadi izobhalwa ngendlela esakhodi ukuze ingafundeki bese ilondolozwa ku-Google Account yakho ukuze kusheshe lapho uthenga</translation>
 <translation id="2983666748527428214">Vula Ithebhu ye-Incognito</translation>
 <translation id="2985306909656435243">Uma inikwe amandla, i-Chromium izogcina ikhophi yekhadi lakho kule divayisi ngokugcwalisa ifomu ngokushesha.</translation>
diff --git a/components/webauthn/core/browser/passkey_model_utils.cc b/components/webauthn/core/browser/passkey_model_utils.cc
index b14d88ae4..e57adf0 100644
--- a/components/webauthn/core/browser/passkey_model_utils.cc
+++ b/components/webauthn/core/browser/passkey_model_utils.cc
@@ -104,6 +104,47 @@
 
 }  // namespace
 
+ExtensionInputData::ExtensionInputData(base::span<const uint8_t> prf_input1,
+                                       base::span<const uint8_t> prf_input2) {
+  // prf_input must be created even if prf_input1 is empty, as it is an
+  // indication the the PRF extension is requested.
+  prf_input = device::PRFInput();
+  if (!prf_input1.empty()) {
+    prf_input->input1.insert(prf_input->input1.end(), prf_input1.begin(),
+                             prf_input1.end());
+    if (!prf_input2.empty()) {
+      std::vector<uint8_t> input2;
+      input2.insert(input2.end(), prf_input2.begin(), prf_input2.end());
+      prf_input->input2 = input2;
+    }
+  }
+  prf_input->HashInputsIntoSalts();
+}
+
+ExtensionInputData::ExtensionInputData() = default;
+ExtensionInputData::ExtensionInputData(const ExtensionInputData&) = default;
+ExtensionInputData::~ExtensionInputData() = default;
+
+bool ExtensionInputData::hasPRF() const {
+  return prf_input.has_value();
+}
+
+std::optional<cbor::Value> ExtensionInputData::ToCBOR() const {
+  if (!hasPRF()) {
+    return std::nullopt;
+  }
+
+  cbor::Value::MapValue prf_ext;
+  prf_ext.emplace(device::kExtensionPRFEnabled, true);
+  if (!prf_input->input1.empty()) {
+    prf_ext.emplace(device::kExtensionPRFEval, prf_input->ToCBOR());
+  }
+
+  cbor::Value::MapValue extensions;
+  extensions.emplace(device::kExtensionPRF, std::move(prf_ext));
+  return cbor::Value(std::move(extensions));
+}
+
 std::vector<sync_pb::WebauthnCredentialSpecifics> FilterShadowedCredentials(
     base::span<const sync_pb::WebauthnCredentialSpecifics> passkeys) {
   // Collect all explicitly shadowed credentials.
@@ -142,11 +183,12 @@
 }
 
 std::pair<sync_pb::WebauthnCredentialSpecifics, std::vector<uint8_t>>
-GeneratePasskeyAndEncryptSecrets(std::string_view rp_id,
-                                 const PasskeyModel::UserEntity& user_entity,
-                                 base::span<const uint8_t> trusted_vault_key,
-                                 int32_t trusted_vault_key_version,
-                                 bool generate_hmac_secret) {
+GeneratePasskeyAndEncryptSecrets(
+    std::string_view rp_id,
+    const PasskeyModel::UserEntity& user_entity,
+    base::span<const uint8_t> trusted_vault_key,
+    int32_t trusted_vault_key_version,
+    const ExtensionInputData& extension_input_data) {
   sync_pb::WebauthnCredentialSpecifics specifics;
   specifics.set_sync_id(base::RandBytesAsString(kSyncIdLength));
   specifics.set_credential_id(base::RandBytesAsString(kCredentialIdLength));
@@ -162,7 +204,7 @@
   CHECK(ec_key->ExportPrivateKey(&private_key_pkcs8));
   encrypted.set_private_key(
       {private_key_pkcs8.begin(), private_key_pkcs8.end()});
-  if (generate_hmac_secret) {
+  if (extension_input_data.hasPRF()) {
     encrypted.set_hmac_secret(base::RandBytesAsString(kHmacSecretSize));
   }
   CHECK(EncryptWebauthnCredentialSpecificsData(trusted_vault_key, encrypted,
@@ -259,23 +301,29 @@
   return true;
 }
 
-std::vector<uint8_t> MakeAuthenticatorDataForAssertion(std::string_view rp_id) {
+std::vector<uint8_t> MakeAuthenticatorDataForAssertion(
+    std::string_view rp_id,
+    const ExtensionInputData& extension_input_data) {
   using Flag = device::AuthenticatorData::Flag;
   uint8_t flags = base::strict_cast<uint8_t>(Flag::kTestOfUserPresence) |
                   base::strict_cast<uint8_t>(Flag::kTestOfUserVerification) |
                   base::strict_cast<uint8_t>(Flag::kBackupEligible) |
                   base::strict_cast<uint8_t>(Flag::kBackupState);
+  std::optional<cbor::Value> extensions = extension_input_data.ToCBOR();
+  if (extensions.has_value()) {
+    flags |= base::strict_cast<uint8_t>(Flag::kExtensionDataIncluded);
+  }
   return device::AuthenticatorData(
              crypto::SHA256Hash(base::as_byte_span(rp_id)), flags,
-             kSignatureCounter, /*data=*/std::nullopt,
-             /*extensions=*/std::nullopt)
+             kSignatureCounter, /*data=*/std::nullopt, std::move(extensions))
       .SerializeToByteArray();
 }
 
 std::vector<uint8_t> MakeAttestationObjectForCreation(
     std::string_view rp_id,
     base::span<const uint8_t> credential_id,
-    base::span<const uint8_t> public_key_spki_der) {
+    base::span<const uint8_t> public_key_spki_der,
+    const ExtensionInputData& extension_input_data) {
   static constexpr std::array<const uint8_t, 16> kGpmAaguid{
       0xea, 0x9b, 0x8d, 0x66, 0x4d, 0x01, 0x1d, 0x21,
       0x3c, 0xe4, 0xb6, 0xb4, 0x8c, 0xb5, 0x75, 0xd4};
@@ -287,14 +335,18 @@
           public_key_spki_der);
   device::AttestedCredentialData attested_credential_data(
       kGpmAaguid, credential_id, std::move(public_key));
+  std::optional<cbor::Value> extensions = extension_input_data.ToCBOR();
   uint8_t flags = base::strict_cast<uint8_t>(Flag::kTestOfUserPresence) |
                   base::strict_cast<uint8_t>(Flag::kTestOfUserVerification) |
                   base::strict_cast<uint8_t>(Flag::kBackupEligible) |
                   base::strict_cast<uint8_t>(Flag::kBackupState) |
                   base::strict_cast<uint8_t>(Flag::kAttestation);
+  if (extensions.has_value()) {
+    flags |= base::strict_cast<uint8_t>(Flag::kExtensionDataIncluded);
+  }
   device::AuthenticatorData authenticator_data(
       crypto::SHA256Hash(base::as_byte_span(rp_id)), flags, kSignatureCounter,
-      std::move(attested_credential_data), /*extensions=*/std::nullopt);
+      std::move(attested_credential_data), std::move(extensions));
   device::AttestationObject attestationObject(
       std::move(authenticator_data),
       std::make_unique<device::NoneAttestationStatement>());
diff --git a/components/webauthn/core/browser/passkey_model_utils.h b/components/webauthn/core/browser/passkey_model_utils.h
index ae3d41e..6e490582 100644
--- a/components/webauthn/core/browser/passkey_model_utils.h
+++ b/components/webauthn/core/browser/passkey_model_utils.h
@@ -9,6 +9,11 @@
 
 #include "base/containers/span.h"
 #include "components/webauthn/core/browser/passkey_model.h"
+#include "device/fido/prf_input.h"
+
+namespace cbor {
+class Value;
+}  // namespace cbor
 
 namespace sync_pb {
 class WebauthnCredentialSpecifics;
@@ -17,6 +22,32 @@
 
 namespace webauthn::passkey_model_utils {
 
+// Extension input data for passkey creation and assertion.
+struct ExtensionInputData {
+  // This constructor must be used if there is an extension present in the
+  // passkey request. Even if there's no PRF data, this constructor will
+  // initialize `prf_input` so that `hasPRF` can later return true, so that PRF
+  // support can be returned as part of the creation or assertion response.
+  ExtensionInputData(base::span<const uint8_t> prf_input1,
+                     base::span<const uint8_t> prf_input2);
+
+  // This constructor must be used when there are no extensions present in the
+  // passkey request.
+  ExtensionInputData();
+
+  ExtensionInputData(const ExtensionInputData&);
+  ~ExtensionInputData();
+
+  // Returns whether the extension data contains the PRF extension.
+  bool hasPRF() const;
+
+  // Generates a CBOR output from the extension input data.
+  std::optional<cbor::Value> ToCBOR() const;
+
+ private:
+  std::optional<device::PRFInput> prf_input;
+};
+
 // Returns a list containing members from `passkeys` that are not shadowed.
 // A credential is shadowed if another credential contains it in its
 // `newly_shadowed_credential_ids` member, or if another credential for the same
@@ -32,14 +63,15 @@
 // Generates a passkey for the given RP ID and user. `trusted_vault_key` must be
 // the security domain secret of the `hw_protected` domain. Returns a passkey
 // sync entity with the sealed `encrypted` member set, and the unsealed private
-// key. If `generate_hmac_secret` is true, hmac_secret is part of the sealed
-// `encrypted` member.
+// key. If `extension_input_data` has PRF enabled, the hmac_secret will be
+// created as part of the sealed `encrypted` member.
 std::pair<sync_pb::WebauthnCredentialSpecifics, std::vector<uint8_t>>
-GeneratePasskeyAndEncryptSecrets(std::string_view rp_id,
-                                 const PasskeyModel::UserEntity& user_entity,
-                                 base::span<const uint8_t> trusted_vault_key,
-                                 int32_t trusted_vault_key_version,
-                                 bool generate_hmac_secret);
+GeneratePasskeyAndEncryptSecrets(
+    std::string_view rp_id,
+    const PasskeyModel::UserEntity& user_entity,
+    base::span<const uint8_t> trusted_vault_key,
+    int32_t trusted_vault_key_version,
+    const ExtensionInputData& extension_input_data);
 
 // Attempts to decrypt data from the `encrypted_data` field of `in` and
 // deserialize it into `out`. The return value indicates whether decryption and
@@ -63,17 +95,20 @@
 // Returns the WebAuthn authenticator data for the GPM authenticator.
 // For assertion signatures, the AT flag MUST NOT be set and the
 // attestedCredentialData MUST NOT be included. See
-// https://w3c.github.io/webauthn/#authenticator-data.
-std::vector<uint8_t> MakeAuthenticatorDataForAssertion(std::string_view rp_id);
+// https://w3c.github.io/webauthn/#authenticator-data
+std::vector<uint8_t> MakeAuthenticatorDataForAssertion(
+    std::string_view rp_id,
+    const ExtensionInputData& extension_input_data);
 
 // Returns the WebAuthn attestation object for the GPM authenticator.
 // For attestation signatures, the authenticator MUST set the AT flag and
 // include the attestedCredentialData. See
-// https://w3c.github.io/webauthn/#authenticator-data.
+// https://w3c.github.io/webauthn/#authenticator-data
 std::vector<uint8_t> MakeAttestationObjectForCreation(
     std::string_view rp_id,
     base::span<const uint8_t> credential_id,
-    base::span<const uint8_t> public_key_spki_der);
+    base::span<const uint8_t> public_key_spki_der,
+    const ExtensionInputData& extension_input_data);
 
 // Performs the signing operation over the signed over data using the private
 // key. The signed over data is the concatenation to the authenticator data and
diff --git a/components/webauthn/core/browser/passkey_model_utils_unittest.cc b/components/webauthn/core/browser/passkey_model_utils_unittest.cc
index a556086..76024f6 100644
--- a/components/webauthn/core/browser/passkey_model_utils_unittest.cc
+++ b/components/webauthn/core/browser/passkey_model_utils_unittest.cc
@@ -143,8 +143,7 @@
 
 TEST(PasskeyModelUtilsTest, GeneratePasskeyAndEncryptSecrets) {
   auto [passkey, public_key_spki_der] = GeneratePasskeyAndEncryptSecrets(
-      kRpId, kTestUser, kTestKey, kTestKeyVersion,
-      /*generate_hmac_secret=*/false);
+      kRpId, kTestUser, kTestKey, kTestKeyVersion, /*extension_input_data=*/{});
   EXPECT_EQ(passkey.sync_id().size(), 16u);
   EXPECT_EQ(passkey.credential_id().size(), 16u);
   EXPECT_EQ(passkey.rp_id(), kRpId);
@@ -180,9 +179,11 @@
 }
 
 TEST(PasskeyModelUtilsTest, GeneratePasskeyWithHMACAndEncryptSecrets) {
+  std::vector<uint8_t> prf_input1, prf_input2;
+  prf_input1.emplace_back('a');
+  ExtensionInputData extension_input_data(prf_input1, prf_input2);
   auto [passkey, public_key_spki_der] = GeneratePasskeyAndEncryptSecrets(
-      kRpId, kTestUser, kTestKey, kTestKeyVersion,
-      /*generate_hmac_secret=*/true);
+      kRpId, kTestUser, kTestKey, kTestKeyVersion, extension_input_data);
   EXPECT_EQ(passkey.sync_id().size(), 16u);
   EXPECT_EQ(passkey.credential_id().size(), 16u);
   EXPECT_EQ(passkey.rp_id(), kRpId);
diff --git a/components/webauthn/core/browser/passkey_sync_bridge.cc b/components/webauthn/core/browser/passkey_sync_bridge.cc
index f783688..37033ba 100644
--- a/components/webauthn/core/browser/passkey_sync_bridge.cc
+++ b/components/webauthn/core/browser/passkey_sync_bridge.cc
@@ -431,7 +431,7 @@
   auto [specifics, public_key_spki_der] =
       webauthn::passkey_model_utils::GeneratePasskeyAndEncryptSecrets(
           rp_id, user_entity, trusted_vault_key, trusted_vault_key_version,
-          /*generate_hmac_secret=*/false);
+          /*extension_input_data=*/{});
 
   AddShadowedCredentialIdsToNewPasskey(specifics);
 
diff --git a/components/webauthn/core/browser/test_passkey_model.cc b/components/webauthn/core/browser/test_passkey_model.cc
index f864ce02..6d8ae98 100644
--- a/components/webauthn/core/browser/test_passkey_model.cc
+++ b/components/webauthn/core/browser/test_passkey_model.cc
@@ -99,7 +99,7 @@
   auto [specifics, public_key_spki_der] =
       webauthn::passkey_model_utils::GeneratePasskeyAndEncryptSecrets(
           rp_id, user_entity, trusted_vault_key, trusted_vault_key_version,
-          /*generate_hmac_secret=*/false);
+          /*extension_input_data=*/{});
 
   AddShadowedCredentialIdsToNewPasskey(specifics);
   credentials_.push_back(specifics);
diff --git a/content/browser/back_forward_cache_internal_browsertest.cc b/content/browser/back_forward_cache_internal_browsertest.cc
index 2b56c638..08d8730 100644
--- a/content/browser/back_forward_cache_internal_browsertest.cc
+++ b/content/browser/back_forward_cache_internal_browsertest.cc
@@ -2564,7 +2564,7 @@
 
   ExpectBucketCount(
       "BackForwardCache.UnexpectedRendererToBrowserMessage.InterfaceName",
-      base::HistogramBase::Sample(
+      base::HistogramBase::Sample32(
           static_cast<int32_t>(base::HashMetricName(mojom::Echo::Name_))),
       1);
 }
@@ -2649,7 +2649,7 @@
 
   ExpectBucketCount(
       "BackForwardCache.UnexpectedRendererToBrowserMessage.InterfaceName",
-      base::HistogramBase::Sample(
+      base::HistogramBase::Sample32(
           static_cast<int32_t>(base::HashMetricName(mojom::Echo::Name_))),
       1);
 
diff --git a/content/browser/renderer_host/input/input_transfer_handler_android.cc b/content/browser/renderer_host/input/input_transfer_handler_android.cc
index e30c585e..d9ebe78c 100644
--- a/content/browser/renderer_host/input/input_transfer_handler_android.cc
+++ b/content/browser/renderer_host/input/input_transfer_handler_android.cc
@@ -41,6 +41,8 @@
   CHECK(input::IsTransferInputToVizSupported());
 }
 
+InputTransferHandlerAndroid::InputTransferHandlerAndroid() = default;
+
 InputTransferHandlerAndroid::~InputTransferHandlerAndroid() = default;
 
 bool InputTransferHandlerAndroid::OnTouchEvent(const ui::MotionEvent& event) {
@@ -70,6 +72,10 @@
     return false;
   }
 
+  if (event.GetToolType() != ui::MotionEvent::ToolType::FINGER) {
+    return false;
+  }
+
   touch_transferred_ =
       jni_delegate_->MaybeTransferInputToViz(client_->GetRootSurfaceHandle());
   if (touch_transferred_) {
diff --git a/content/browser/renderer_host/input/input_transfer_handler_android.h b/content/browser/renderer_host/input/input_transfer_handler_android.h
index 47956f47..1321a819 100644
--- a/content/browser/renderer_host/input/input_transfer_handler_android.h
+++ b/content/browser/renderer_host/input/input_transfer_handler_android.h
@@ -39,9 +39,10 @@
 
   explicit InputTransferHandlerAndroid(
       InputTransferHandlerAndroidClient* client);
-  ~InputTransferHandlerAndroid();
+  virtual ~InputTransferHandlerAndroid();
 
-  bool OnTouchEvent(const ui::MotionEvent& event);
+  // Virtual for testing.
+  virtual bool OnTouchEvent(const ui::MotionEvent& event);
 
   void set_jni_delegate_for_testing(std::unique_ptr<JniDelegate> delegate) {
     jni_delegate_ = std::move(delegate);
@@ -55,6 +56,9 @@
  private:
   void Reset();
 
+  friend class MockInputTransferHandler;
+  InputTransferHandlerAndroid();
+
   raw_ptr<InputTransferHandlerAndroidClient> client_ = nullptr;
   bool touch_transferred_ = false;
   int touch_moves_seen_after_transfer_ = 0;
diff --git a/content/browser/renderer_host/input/input_transfer_handler_android_unittest.cc b/content/browser/renderer_host/input/input_transfer_handler_android_unittest.cc
index 80f0ce8..2eef26ea 100644
--- a/content/browser/renderer_host/input/input_transfer_handler_android_unittest.cc
+++ b/content/browser/renderer_host/input/input_transfer_handler_android_unittest.cc
@@ -64,6 +64,7 @@
         new MockJniDelegate());
     mock_ = static_cast<MockJniDelegate*>(delegate.get());
     transfer_handler_->set_jni_delegate_for_testing(std::move(delegate));
+    finger_pointer_.tool_type = ui::MotionEvent::ToolType::FINGER;
   }
 
   void TearDown() override {
@@ -76,6 +77,7 @@
   raw_ptr<MockJniDelegate> mock_;
   std::unique_ptr<FakeInputTransferHandlerClient>
       input_transfer_handler_client_;
+  ui::PointerProperties finger_pointer_;
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
@@ -83,8 +85,9 @@
 
 TEST_F(InputTransferHandlerTest, ConsumeEventsIfSequenceTransferred) {
   base::TimeTicks event_time = base::TimeTicks::Now();
+
   ui::MotionEventGeneric down_event(ui::MotionEvent::Action::DOWN, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
 
   EXPECT_CALL(*mock_, MaybeTransferInputToViz(_)).WillOnce(Return(true));
   EXPECT_CALL(*input_transfer_handler_client_, SendStateOnTouchTransfer(_))
@@ -92,12 +95,12 @@
   EXPECT_TRUE(transfer_handler_->OnTouchEvent(down_event));
 
   ui::MotionEventGeneric move_event(ui::MotionEvent::Action::MOVE, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   EXPECT_TRUE(transfer_handler_->OnTouchEvent(move_event));
   EXPECT_TRUE(transfer_handler_->OnTouchEvent(move_event));
 
   ui::MotionEventGeneric cancel_event(ui::MotionEvent::Action::CANCEL,
-                                      event_time, ui::PointerProperties());
+                                      event_time, finger_pointer_);
   EXPECT_TRUE(transfer_handler_->OnTouchEvent(cancel_event));
 
   EXPECT_CALL(*mock_, MaybeTransferInputToViz(_)).WillOnce(Return(false));
@@ -109,11 +112,11 @@
 TEST_F(InputTransferHandlerTest, EmitsTouchMovesSeenAfterTransferHistogram) {
   base::TimeTicks event_time = base::TimeTicks::Now();
   ui::MotionEventGeneric down_event(ui::MotionEvent::Action::DOWN, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   ui::MotionEventGeneric move_event(ui::MotionEvent::Action::MOVE, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   ui::MotionEventGeneric cancel_event(ui::MotionEvent::Action::CANCEL,
-                                      event_time, ui::PointerProperties());
+                                      event_time, finger_pointer_);
 
   for (int touch_moves_seen = 0; touch_moves_seen <= 2; touch_moves_seen++) {
     base::HistogramTester histogram_tester;
@@ -132,11 +135,11 @@
 TEST_F(InputTransferHandlerTest, EmitsEventsAfterTransferHistogram) {
   base::TimeTicks event_time = base::TimeTicks::Now();
   ui::MotionEventGeneric down_event(ui::MotionEvent::Action::DOWN, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   ui::MotionEventGeneric move_event(ui::MotionEvent::Action::MOVE, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   ui::MotionEventGeneric cancel_event(ui::MotionEvent::Action::CANCEL,
-                                      event_time, ui::PointerProperties());
+                                      event_time, finger_pointer_);
 
   const std::vector<std::pair<ui::MotionEvent::Action, int>>
       event_expected_histogram_pairs = {
@@ -154,8 +157,7 @@
     EXPECT_CALL(*mock_, MaybeTransferInputToViz(_)).WillOnce(Return(true));
     EXPECT_TRUE(transfer_handler_->OnTouchEvent(down_event));
 
-    ui::MotionEventGeneric event(event_action, event_time,
-                                 ui::PointerProperties());
+    ui::MotionEventGeneric event(event_action, event_time, finger_pointer_);
     EXPECT_TRUE(transfer_handler_->OnTouchEvent(event));
     histogram_tester.ExpectUniqueSample(
         InputTransferHandlerAndroid::kEventsAfterTransferHistogram,
@@ -168,19 +170,41 @@
 TEST_F(InputTransferHandlerTest, DoNotConsumeEventsIfSequenceNotTransferred) {
   base::TimeTicks event_time = base::TimeTicks::Now();
   ui::MotionEventGeneric down_event(ui::MotionEvent::Action::DOWN, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
 
   EXPECT_CALL(*mock_, MaybeTransferInputToViz(_)).WillOnce(Return(false));
   EXPECT_FALSE(transfer_handler_->OnTouchEvent(down_event));
 
   ui::MotionEventGeneric move_event(ui::MotionEvent::Action::MOVE, event_time,
-                                    ui::PointerProperties());
+                                    finger_pointer_);
   EXPECT_FALSE(transfer_handler_->OnTouchEvent(move_event));
   EXPECT_FALSE(transfer_handler_->OnTouchEvent(move_event));
 
   ui::MotionEventGeneric cancel_event(ui::MotionEvent::Action::CANCEL,
-                                      event_time, ui::PointerProperties());
+                                      event_time, finger_pointer_);
   EXPECT_FALSE(transfer_handler_->OnTouchEvent(cancel_event));
 }
 
+TEST_F(InputTransferHandlerTest, DoNotConsumeNonFingerEvents) {
+  for (int tool_type = 0;
+       tool_type <= static_cast<int>(ui::MotionEvent::ToolType::LAST);
+       tool_type++) {
+    if (tool_type == static_cast<int>(ui::MotionEvent::ToolType::FINGER)) {
+      continue;
+    }
+
+    base::TimeTicks event_time = base::TimeTicks::Now();
+    ui::PointerProperties non_finger_pointer;
+    non_finger_pointer.tool_type =
+        static_cast<ui::MotionEvent::ToolType>(tool_type);
+    ui::MotionEventGeneric down_event(ui::MotionEvent::Action::DOWN, event_time,
+                                      non_finger_pointer);
+    ui::MotionEventGeneric up_event(ui::MotionEvent::Action::UP, event_time,
+                                    non_finger_pointer);
+    EXPECT_CALL(*mock_, MaybeTransferInputToViz(_)).Times(0);
+    EXPECT_FALSE(transfer_handler_->OnTouchEvent(down_event));
+    EXPECT_FALSE(transfer_handler_->OnTouchEvent(up_event));
+  }
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index dd0c7c97..3819b73 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -1450,6 +1450,20 @@
     return true;
   }
 
+  // In case input transfer to Viz is supported, let `input_transfer_handler_`
+  // request the transfer on touch down, we are not expecting to receive the
+  // entire sequence until the touch cancel. Any events that might end up on
+  // Browser after transfer will be consumed by it.
+  // This should be called before FilteredGestureProvider::OnTouchEvent, since
+  // that results in events being queued to TouchDispositionGestureFilter. The
+  // transferred events living in TouchDispositionGestureFilter causes crash
+  // when a touch sequence is handled on Browser, as it will try to compare a
+  // lingering transferred event's touch id and touch id of acked event that the
+  // Browser is now handling.
+  if (input_transfer_handler_ && input_transfer_handler_->OnTouchEvent(event)) {
+    return true;
+  }
+
   ui::FilteredGestureProvider::TouchHandlingResult result =
       gesture_provider_.OnTouchEvent(event);
   if (!result.succeeded)
@@ -1461,14 +1475,6 @@
   if (web_event.GetType() == blink::WebInputEvent::Type::kUndefined)
     return false;
 
-  // In case input transfer to Viz is supported, let `input_transfer_handler_`
-  // request the transfer on touch down, we are not expecting to receive the
-  // entire sequence until the touch cancel. Any events that might end up on
-  // Browser after transfer will be consumed by it.
-  if (input_transfer_handler_ && input_transfer_handler_->OnTouchEvent(event)) {
-    return true;
-  }
-
   input_helper_->RouteOrForwardTouchEvent(web_event);
 
   // Send a proactive BeginFrame for this vsync to reduce scroll latency for
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index f74e5e4..92c1e58 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -457,6 +457,11 @@
     return input_transfer_handler_.get();
   }
 
+  void SetInputTransferHandlerForTesting(InputTransferHandlerAndroid* handler) {
+    input_transfer_handler_ =
+        std::unique_ptr<InputTransferHandlerAndroid>(handler);
+  }
+
  protected:
   ~RenderWidgetHostViewAndroid() override;
 
diff --git a/content/browser/renderer_host/render_widget_host_view_android_unittest.cc b/content/browser/renderer_host/render_widget_host_view_android_unittest.cc
index d85f5f9e..d1e7ec0 100644
--- a/content/browser/renderer_host/render_widget_host_view_android_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android_unittest.cc
@@ -22,14 +22,21 @@
 #include "content/test/mock_render_widget_host_delegate.h"
 #include "content/test/test_render_view_host.h"
 #include "content/test/test_web_contents.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/android/test_view_android_delegate.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
+#include "ui/events/android/motion_event_android_java.h"
+#include "ui/events/base_event_utils.h"
 
 namespace content {
 
 namespace {
+
+using ::testing::_;
+using ::testing::Return;
+
 // Allows for RenderWidgetHostViewAndroidRotationTest to override the ScreenInfo
 // so that different configurations can be tests. The default path fallbacks on
 // an empty ScreenInfo in testing, assuming it has no effect.
@@ -85,6 +92,11 @@
 
 }  // namespace
 
+class MockInputTransferHandler : public InputTransferHandlerAndroid {
+ public:
+  MOCK_METHOD(bool, OnTouchEvent, (const ui::MotionEvent& event), (override));
+};
+
 class RenderWidgetHostViewAndroidTest : public RenderViewHostImplTestHarness {
  public:
   RenderWidgetHostViewAndroidTest();
@@ -400,6 +412,39 @@
   GetLocalSurfaceIdAndConfirmNewerThan(initial_local_surface_id);
 }
 
+// Test that InputTransferHandler receives input before FilteredGestureProvider.
+// This is to prevent crash related to transferred events which stayed in
+// TouchDispositionGestureFilter's queue, which it received through
+// FilteredGestureProvider.
+TEST_F(RenderWidgetHostViewAndroidTest,
+       EventsPassedToInputTransferHandlerBeforedGestureProvider) {
+  RenderWidgetHostViewAndroid* rwhva = render_widget_host_view_android();
+
+  MockInputTransferHandler* handler = new MockInputTransferHandler();
+  rwhva->SetInputTransferHandlerForTesting(handler);
+
+  auto& gesture_provider = rwhva->GetGestureProvider();
+
+  gfx::Point point(/*x=*/100, /*y=*/100);
+  ui::MotionEventAndroid::Pointer p(0, point.x(), point.y(), 10, 0, 0, 0, 0);
+  JNIEnv* env = base::android::AttachCurrentThread();
+  auto time_ns = (ui::EventTimeForNow() - base::TimeTicks()).InNanoseconds();
+  auto action = ui::MotionEvent::Action::DOWN;
+  ui::MotionEventAndroidJava touch_down(
+      env, nullptr, 1.f, 0, 0, 0, base::TimeTicks::FromJavaNanoTime(time_ns),
+      ui::MotionEventAndroid::GetAndroidAction(action), 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, false, &p, nullptr);
+
+  EXPECT_CALL(*handler, OnTouchEvent(_)).WillOnce(Return(true));
+  EXPECT_EQ(gesture_provider.GetCurrentDownEvent(), nullptr);
+  rwhva->OnTouchEvent(touch_down);
+  EXPECT_EQ(gesture_provider.GetCurrentDownEvent(), nullptr);
+
+  EXPECT_CALL(*handler, OnTouchEvent(_)).WillOnce(Return(false));
+  rwhva->OnTouchEvent(touch_down);
+  EXPECT_NE(gesture_provider.GetCurrentDownEvent(), nullptr);
+}
+
 // Tests rotation and fullscreen cases that are supported by visual properties
 // analysis. Some of which fail with the fullscreen killswitch legacy path.
 //
diff --git a/content/browser/webid/digital_credentials/digital_identity_request_impl.cc b/content/browser/webid/digital_credentials/digital_identity_request_impl.cc
index 912fe8a..42801c1 100644
--- a/content/browser/webid/digital_credentials/digital_identity_request_impl.cc
+++ b/content/browser/webid/digital_credentials/digital_identity_request_impl.cc
@@ -289,19 +289,11 @@
                            base::OptionalFromExpected(response));
 }
 
-std::optional<base::Value> BuildGetRequest(
+base::Value BuildGetRequest(
     blink::mojom::DigitalCredentialProviderPtr provider) {
   auto result = Value::Dict();
-
-  if (!provider->protocol) {
-    return std::nullopt;
-  }
-  result.Set("protocol", *provider->protocol);
-
-  if (!provider->request) {
-    return std::nullopt;
-  }
-  result.Set("request", *provider->request);
+  result.Set("protocol", provider->protocol);
+  result.Set("request", provider->request);
 
   base::Value::Dict out =
       Value::Dict().Set("providers", Value::List().Append(std::move(result)));
@@ -373,9 +365,9 @@
   std::optional<std::string> protocol = digital_credential_provider->protocol;
   std::optional<std::string> request_json_string =
       digital_credential_provider->request;
-  std::optional<base::Value> request_to_send =
+  base::Value request_to_send =
       BuildGetRequest(std::move(digital_credential_provider));
-  if (!request_json_string || !request_to_send) {
+  if (!request_json_string) {
     CompleteRequestWithError(RequestStatusForMetrics::kErrorOther);
     return;
   }
@@ -384,7 +376,7 @@
       *request_json_string,
       base::BindOnce(&DigitalIdentityRequestImpl::OnGetRequestJsonParsed,
                      weak_ptr_factory_.GetWeakPtr(), std::move(protocol),
-                     std::move(*request_to_send)));
+                     std::move(request_to_send)));
 }
 
 void DigitalIdentityRequestImpl::Create(
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/InputTransferHandler.java b/content/public/android/java/src/org/chromium/content_public/browser/InputTransferHandler.java
index 2721ffa..3b75af1 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/InputTransferHandler.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/InputTransferHandler.java
@@ -4,8 +4,10 @@
 
 package org.chromium.content_public.browser;
 
+import android.content.Context;
 import android.os.Build;
 import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
 import android.window.InputTransferToken;
 
 import androidx.annotation.RequiresApi;
@@ -16,20 +18,86 @@
 import org.chromium.base.TraceEvent;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
+import org.chromium.ui.base.WindowAndroid;
 
 @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
 @NullMarked
-public class InputTransferHandler {
+public class InputTransferHandler implements WindowAndroid.SelectionHandlesObserver {
+    // TODO(crbug.com/365985685): Remove `Delegate` once overscroll controller works with input
+    // coming on Viz. Since that is the only use case it covers.
+    public static interface Delegate {
+        // To give embedders an option to stop input transfer to Viz.
+        public default boolean canTransferInputToViz() {
+            return true;
+        }
+
+        // Called before `InputTransferHandler` is being removed from
+        // `SurfaceInputTransferHandlerMap`, giving the `Delegate` a chance to remove itself from
+        // various observer queues.
+        public default void destroy() {}
+    }
+    ;
+
     private InputTransferToken mBrowserToken;
     private @Nullable InputTransferToken mVizToken;
+    private boolean mSelectionHandlesActive;
+    private Delegate mDelegate;
+    private WindowAndroid mWindowAndroid;
 
-    public InputTransferHandler(InputTransferToken browserToken) {
+    public InputTransferHandler(
+            InputTransferToken browserToken, Delegate delegate, WindowAndroid windowAndroid) {
         mBrowserToken = browserToken;
+        mDelegate = delegate;
+        mWindowAndroid = windowAndroid;
+        mWindowAndroid.addSelectionHandlesObserver(this);
+    }
+
+    /** WindowAndroid.SelectionHandlesObserver impl. */
+    @Override
+    public void onSelectionHandlesStateChanged(boolean active) {
+        mSelectionHandlesActive = active;
+    }
+
+    public void destroy() {
+        mWindowAndroid.removeSelectionHandlesObserver(this);
+        mDelegate.destroy();
     }
 
     private boolean canTransferInputToViz() {
-        // TODO(370506271): Implement logic for when can we transfer vs not.
-        return false;
+        // To handle an early touch sequence, where Viz might not have sent back it's
+        // TouchTransferToken back to Browser.
+        // This also handles multi-window case, where Viz doesn't create InputReceiver for more than
+        // one window and as a result `mVizToken` will be null.
+        if (mVizToken == null) {
+            return false;
+        }
+
+        // To prevent ordering issues between touch input and text selection commands. On Browser
+        // side `FrameWidgetInputHandler` and `WidgetInputHandler` are associated, so this ordering
+        // issue doesn't exists.
+        if (mSelectionHandlesActive) {
+            return false;
+        }
+
+        // To prevent ordering issues between touch input and ime input. For e.g. if Viz is allowed
+        // to handle touch input while IME is active we could see cases like these: where user typed
+        // something and then moved the cursor, it might reach renderer as touch input coming before
+        // text i.e. the cursor moved and then typing happens, which would be contrary to what user
+        // would have expected.
+        InputMethodManager imm =
+                (InputMethodManager)
+                        ContextUtils.getApplicationContext()
+                                .getSystemService(Context.INPUT_METHOD_SERVICE);
+        if (imm.isAcceptingText()) {
+            return false;
+        }
+
+        // Give embedders an opportunity to decide when not to transfer.
+        if (!mDelegate.canTransferInputToViz()) {
+            return false;
+        }
+
+        return true;
     }
 
     public void setVizToken(InputTransferToken token) {
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/SurfaceInputTransferHandlerMap.java b/content/public/android/java/src/org/chromium/content_public/browser/SurfaceInputTransferHandlerMap.java
index 71acd8b3..6409f56 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/SurfaceInputTransferHandlerMap.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/SurfaceInputTransferHandlerMap.java
@@ -30,4 +30,11 @@
     public static Map<Integer, InputTransferHandler> getMap() {
         return LazyHolder.INSTANCE.mInputTransferHandlerMap;
     }
+
+    public static void remove(int surfaceId) {
+        InputTransferHandler handler = getMap().get(surfaceId);
+        assert handler != null;
+        handler.destroy();
+        getMap().remove(surfaceId);
+    }
 }
diff --git a/extensions/browser/api/metrics_private/metrics_private_api.cc b/extensions/browser/api/metrics_private/metrics_private_api.cc
index 7afae1f0..8bc9f70 100644
--- a/extensions/browser/api/metrics_private/metrics_private_api.cc
+++ b/extensions/browser/api/metrics_private/metrics_private_api.cc
@@ -306,7 +306,7 @@
 
   for (std::unique_ptr<base::SampleCountIterator> it = samples->Iterator();
        !it->Done(); it->Next()) {
-    base::HistogramBase::Sample min = 0;
+    base::HistogramBase::Sample32 min = 0;
     int64_t max = 0;
     base::HistogramBase::Count count = 0;
     it->Get(&min, &max, &count);
diff --git a/gpu/command_buffer/client/client_shared_image.cc b/gpu/command_buffer/client/client_shared_image.cc
index d7b8044..8ceb232 100644
--- a/gpu/command_buffer/client/client_shared_image.cc
+++ b/gpu/command_buffer/client/client_shared_image.cc
@@ -66,9 +66,6 @@
       int importance) override {
     NOTREACHED();
   }
-  base::UnguessableToken GetSharedMemoryGuid() override {
-    return mapping_->guid();
-  }
 
  private:
   SharedImageMetadata metadata_;
@@ -136,13 +133,6 @@
     buffer_->OnMemoryDump(pmd, buffer_dump_guid, tracing_process_id,
                           importance);
   }
-  base::UnguessableToken GetSharedMemoryGuid() override {
-    CHECK(buffer_);
-    CHECK(IsSharedMemory());
-    return static_cast<GpuMemoryBufferImplSharedMemory*>(buffer_)
-        ->GetSharedMemoryGUID();
-  }
-
   bool Init(gfx::GpuMemoryBuffer* gpu_memory_buffer, bool is_already_mapped) {
     if (!gpu_memory_buffer) {
       LOG(ERROR) << "No GpuMemoryBuffer.";
diff --git a/gpu/command_buffer/client/client_shared_image.h b/gpu/command_buffer/client/client_shared_image.h
index 55ed1ca..049d58d 100644
--- a/gpu/command_buffer/client/client_shared_image.h
+++ b/gpu/command_buffer/client/client_shared_image.h
@@ -83,10 +83,6 @@
         uint64_t tracing_process_id,
         int importance) = 0;
 
-    // Returns a memory dump GUID consistent across processes. Should be called
-    // only if IsSharedMemory() is true.
-    virtual base::UnguessableToken GetSharedMemoryGuid() = 0;
-
    private:
     friend class ClientSharedImage;
 
diff --git a/gpu/command_buffer/service/shared_image/dawn_fallback_image_representation.cc b/gpu/command_buffer/service/shared_image/dawn_fallback_image_representation.cc
index 6d89cb9..188bb15 100644
--- a/gpu/command_buffer/service/shared_image/dawn_fallback_image_representation.cc
+++ b/gpu/command_buffer/service/shared_image/dawn_fallback_image_representation.cc
@@ -13,6 +13,7 @@
 #include "gpu/command_buffer/common/shared_image_usage.h"
 #include "gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h"
 #include "gpu/config/gpu_finch_features.h"
+#include "third_party/skia/include/core/SkColorSpace.h"
 #include "ui/gfx/geometry/skia_conversions.h"
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc
index 076eedb..5f43307 100644
--- a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc
+++ b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc
@@ -116,9 +116,7 @@
 
   if ((usage.HasAny(SHARED_IMAGE_USAGE_WEBGPU_READ |
                     SHARED_IMAGE_USAGE_WEBGPU_WRITE)) &&
-      (gr_context_type != GrContextType::kGL ||
-       gl::GetGLImplementation() != gl::kGLImplementationEGLANGLE ||
-       gl::GetANGLEImplementation() != gl::ANGLEImplementation::kOpenGL)) {
+      (use_webgpu_adapter_ != WebGPUAdapterName::kOpenGLES)) {
     return false;
   }
 
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc
index de7baf8..5f54ca3 100644
--- a/gpu/ipc/client/command_buffer_proxy_impl.cc
+++ b/gpu/ipc/client/command_buffer_proxy_impl.cc
@@ -706,9 +706,9 @@
     //
     // Histogram values are in microseconds.
 
-    std::vector<base::HistogramBase::Sample> intervals;
-    constexpr base::HistogramBase::Sample k15Milliseconds = 15 * 1000;
-    constexpr base::HistogramBase::Sample k30Seconds = 30 * 1000 * 1000;
+    std::vector<base::HistogramBase::Sample32> intervals;
+    constexpr base::HistogramBase::Sample32 k15Milliseconds = 15 * 1000;
+    constexpr base::HistogramBase::Sample32 k30Seconds = 30 * 1000 * 1000;
     constexpr int kFirstPartCount = 60;
     constexpr int kSecondPartCount = 120;
     intervals.reserve(kFirstPartCount + kSecondPartCount);
diff --git a/headless/README.md b/headless/README.md
index 2253e8be..739a1ad 100644
--- a/headless/README.md
+++ b/headless/README.md
@@ -9,14 +9,20 @@
 under the name `chrome-headless-shell` via [Chrome for Testing
 infrastructure](https://googlechromelabs.github.io/chrome-for-testing/).
 
+As of M132, headless shell functionality is no longer part of
+the Chrome binary, so --headless=old has no effect.
+If you are using old Headless functionality you should
+now migrate to `chrome-headless-shell`.
+[Read more](https://developer.chrome.com/blog/removing-headless-old-from-chrome).
+
 There are two ways to use Headless Chromium:
 
 ## Usage via the DevTools remote debugging protocol
 
-1. Start a normal Chrome binary with the `--headless=old` command line flag:
+1. Start Chrome in headless mode using the `--headless` command line flag:
 
 ```sh
-$ chrome --headless=old --remote-debugging-port=9222 https://chromium.org/
+$ chrome --headless --remote-debugging-port=9222 https://chromium.org/
 ```
 
 2. Navigate to `chrome://inspect/` in another instance of Chrome.
diff --git a/infra/config/generated/builders/ci/linux-trees-in-viz-rel/targets/chromium.fyi.json b/infra/config/generated/builders/ci/linux-trees-in-viz-rel/targets/chromium.fyi.json
index 315aa75f5..12847e8 100644
--- a/infra/config/generated/builders/ci/linux-trees-in-viz-rel/targets/chromium.fyi.json
+++ b/infra/config/generated/builders/ci/linux-trees-in-viz-rel/targets/chromium.fyi.json
@@ -3,7 +3,8 @@
     "gtest_tests": [
       {
         "args": [
-          "--enable-features=TreesInViz"
+          "--enable-features=TreesInViz",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/trees_in_viz.cc_unittests.filter"
         ],
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/infra/config/generated/builders/try/linux-trees-in-viz-rel/targets/chromium.fyi.json b/infra/config/generated/builders/try/linux-trees-in-viz-rel/targets/chromium.fyi.json
index 315aa75f5..12847e8 100644
--- a/infra/config/generated/builders/try/linux-trees-in-viz-rel/targets/chromium.fyi.json
+++ b/infra/config/generated/builders/try/linux-trees-in-viz-rel/targets/chromium.fyi.json
@@ -3,7 +3,8 @@
     "gtest_tests": [
       {
         "args": [
-          "--enable-features=TreesInViz"
+          "--enable-features=TreesInViz",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/trees_in_viz.cc_unittests.filter"
         ],
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/infra/config/targets/tests.star b/infra/config/targets/tests.star
index 000e59d..b879677 100644
--- a/infra/config/targets/tests.star
+++ b/infra/config/targets/tests.star
@@ -2184,6 +2184,7 @@
     name = "trees_in_viz_cc_unittests",
     args = [
         "--enable-features=TreesInViz",
+        "--test-launcher-filter-file=../../testing/buildbot/filters/trees_in_viz.cc_unittests.filter",
     ],
     binary = "cc_unittests",
 )
diff --git a/ios/chrome/app/app_startup_parameters.mm b/ios/chrome/app/app_startup_parameters.mm
index 09e1ee0..a761517 100644
--- a/ios/chrome/app/app_startup_parameters.mm
+++ b/ios/chrome/app/app_startup_parameters.mm
@@ -222,13 +222,15 @@
       [_pendingBlocks addObject:block];
       _applicationModeRequestStatus = ApplicationModeRequestStatus::kRequested;
       __weak __typeof(self) weakSelf = self;
-      auto callback = base::BindOnce(
-          [](AppStartupParameters* startupParams, bool isAppSwitcherIncognito) {
-            [startupParams handleApplicationModeRequest:isAppSwitcherIncognito];
+      auto fetching_response = base::BindOnce(
+          [](AppStartupParameters* startupParams, bool isAppSwitcherIncognito,
+             NSError* error) {
+            [startupParams handleApplicationModeRequest:isAppSwitcherIncognito
+                                                  error:error];
           },
           weakSelf);
       ios::provider::FetchApplicationMode(_externalURL, _sourceAppID,
-                                          std::move(callback));
+                                          std::move(fetching_response));
       break;
     }
   }
@@ -255,7 +257,8 @@
   return _applicationMode;
 }
 
-- (void)handleApplicationModeRequest:(BOOL)isAppSwitcherIncognito {
+- (void)handleApplicationModeRequest:(BOOL)isAppSwitcherIncognito
+                               error:(NSError*)error {
   _applicationModeRequestStatus = ApplicationModeRequestStatus::kAvailable;
   if (isAppSwitcherIncognito) {
     _applicationMode = ApplicationModeForTabOpening::APP_SWITCHER_INCOGNITO;
diff --git a/ios/chrome/app/perf_tests_hook.mm b/ios/chrome/app/perf_tests_hook.mm
index 03ef79f..8b3c913 100644
--- a/ios/chrome/app/perf_tests_hook.mm
+++ b/ios/chrome/app/perf_tests_hook.mm
@@ -67,6 +67,9 @@
 policy::ConfigurationPolicyProvider* GetOverriddenPlatformPolicyProvider() {
   return nullptr;
 }
+bool SimulatePostDeviceRestore() {
+  return false;
+}
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager() {
   return nullptr;
 }
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
index 20bd1927..041fe25 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">Ovo će se koristiti za kreiranje događaja u vašem Apple Calendaru iz Chromiuma i Google Objektiva.</translation>
 <translation id="5571094606370987472">Otvaranje nedavnih kartica u Chromiumu.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Prebacivanje Chromiuma</translation>
 <translation id="5664395081284292058">Otvaranje posljednje kartice u Chromiumu</translation>
 <translation id="5671188105328420281">Savjeti za Chromium</translation>
 <translation id="5688047395118852662">Kartica prikazuje prijedloge o tome kako iskoristiti sve prednosti Chromiuma.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">Vaša organizacija postavlja Chromium...</translation>
 <translation id="6794054469102824109">Otvara igru Dinosaur u Chromiumu.</translation>
 <translation id="6820823224820483452">Chromium nije mogao provjeriti sve lozinke. Pokušajte ponovo sutra.</translation>
+<translation id="6830782797004194206">Brže se prijavite uz automatsko popunjavanje u Chromiumu</translation>
 <translation id="6831043979455480757">Prevedi</translation>
 <translation id="6852419005633611413">Brže pristupajte Chromiumu s trake na početnom ekranu</translation>
 <translation id="6852799557929001644">Pristupajte lozinkama u Chromiumu i ostalom u drugim aplikacijama na ovom uređaju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
index 6baff8b0..d02d5dcd 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">To će se upotrebljavati za izradu događaja u vašem Apple kalendaru iz Chromiuma i Google objektiva.</translation>
 <translation id="5571094606370987472">Otvara nedavne kartice u Chromiumu.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Prebacivanje Chromiuma</translation>
 <translation id="5664395081284292058">Otvaranje moje najnovije kartice u Chromiumu</translation>
 <translation id="5671188105328420281">Savjeti za Chromium</translation>
 <translation id="5688047395118852662">Na ovoj se kartici prikazuju prijedlozi o tome kako iskoristiti sve prednosti Chromiuma.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">Vaša organizacija postavlja Chromium...</translation>
 <translation id="6794054469102824109">Otvara igru Dinosaur na Chromiumu.</translation>
 <translation id="6820823224820483452">Chromium nije uspio provjeriti sve zaporke. Pokušajte ponovo sutra.</translation>
+<translation id="6830782797004194206">Brže se prijavite uz automatsko popunjavanje u Chromiumu</translation>
 <translation id="6831043979455480757">Prevedi</translation>
 <translation id="6852419005633611413">Brže pristupite Chromiumu putem donje trake početnog zaslona</translation>
 <translation id="6852799557929001644">Pristupajte zaporkama u Chromiumu i ostalom u drugim aplikacijama na ovom uređaju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
index f3a2f7e..50990e86c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">‏הנתונים מ-Chromium ומ-Google Lens ישמשו ליצירת אירועים ב-Apple Calendar.</translation>
 <translation id="5571094606370987472">‏ייפתחו הכרטיסיות האחרונות ב-Chromium.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">‏החלפת מצב של Chromium</translation>
 <translation id="5664395081284292058">‏פתיחת הכרטיסייה האחרונה שלי ב-Chromium</translation>
 <translation id="5671188105328420281">‏טיפים ל-Chromium</translation>
 <translation id="5688047395118852662">‏בכרטיס הזה מוצגות הצעות שיעזרו לך ליהנות מהמיטב של Chromium.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">‏הארגון שלך מגדיר את Chromium…</translation>
 <translation id="6794054469102824109">‏פתיחת המשחק Chromium Dino.</translation>
 <translation id="6820823224820483452">‏Chromium לא הצליח לבדוק את כל הסיסמאות. אפשר לנסות שוב מחר.</translation>
+<translation id="6830782797004194206">‏כניסה מהירה יותר עם המילוי האוטומטי של Chromium</translation>
 <translation id="6831043979455480757">תרגום</translation>
 <translation id="6852419005633611413">‏גישה מהירה יותר ל-Chromium דרך ה-Dock של מסך הבית</translation>
 <translation id="6852799557929001644">‏גישה לסיסמאות ולעוד אפשרויות ב-Chromium מאפליקציות נוספות במכשיר הזה.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
index 004c4d3..b5fbb8e1 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">ამის მეშვეობით შესაძლებელი გახდება, Chromium-ისა და Google Lens-ის მეშვეობით შექმნათ მოვლენები თქვენს Apple Calendar-ში.</translation>
 <translation id="5571094606370987472">გახსნის Chromium-ის ბოლოდროინდელ ჩანართებს.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Chromium-ის გადართვა</translation>
 <translation id="5664395081284292058">ჩემი ყველაზე ბოლო ჩანართის გახსნა Chromium-ში</translation>
 <translation id="5671188105328420281">მინიშნებები Chromium-ისთვის</translation>
 <translation id="5688047395118852662">ამ ბარათზე მოცემულია რეკომენდაციები Chromium-ის შესაძლებლობების მაქსიმალურად გამოყენებასთან დაკავშირებით.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">თქვენი ორგანიზაცია აყენებს Chromium-ს...</translation>
 <translation id="6794054469102824109">გახსნის Chromium დინოზავრის თამაშს.</translation>
 <translation id="6820823224820483452">Chromium-მა ვერ შეამოწმა ყველა პაროლი. ცადეთ ხვალ.</translation>
+<translation id="6830782797004194206">უფრო სწრაფად შესვლა Chromium-ის ავტომატური შევსებით</translation>
 <translation id="6831043979455480757">თარგმნა</translation>
 <translation id="6852419005633611413">იქონიეთ უფრო სწრაფი წვდომა Chromium-ზე მთავარი ეკრანის სამაგრის მეშვეობით</translation>
 <translation id="6852799557929001644">იქონიეთ წვდომა თქვენს Chromium პაროლებსა და სხვა კონტენტზე ამ მოწყობილობაზე არსებულ სხვა აპებში..</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
index 5d06e1d..d3aa117 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">Šie duomenys bus naudojami įvykiams programoje „Apple Calendar“ kurti naudojant „Chromium“ ir „Google Lens“.</translation>
 <translation id="5571094606370987472">Atidaromi „Chromium“ naujausi skirtukai.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Perjunkite „Chromium“</translation>
 <translation id="5664395081284292058">Atidaryti naujausią skirtuką naršyklėje „Chromium“</translation>
 <translation id="5671188105328420281">„Chromium“ patarimai</translation>
 <translation id="5688047395118852662">Šioje kortelėje pateikiami pasiūlymai, kaip išnaudoti visas „Chromium“ galimybes.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">Jūsų organizacija konfigūruoja „Chromium“...</translation>
 <translation id="6794054469102824109">Atidaromas „Chromium“ dinozauro žaidimas.</translation>
 <translation id="6820823224820483452">„Chromium“ nepavyko patikrinti visų slaptažodžių. Rytoj bandykite dar kartą.</translation>
+<translation id="6830782797004194206">Prisijunkite greičiau naudodami „Chromium“ automatinį pildymą</translation>
 <translation id="6831043979455480757">Vertėjas</translation>
 <translation id="6852419005633611413">Greičiau pasiekite „Chromium“ naudodami pagrindinio ekrano doką</translation>
 <translation id="6852799557929001644">Pasiekite „Chromium“ slaptažodžius ir kitas programas kitose šio įrenginio programose.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
index 88e34b0..af9d7021 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">Ovo će se koristiti za pravljenje događaja u Apple Calendar-u iz Chromium-a i Google objektiva.</translation>
 <translation id="5571094606370987472">Otvara Chromium nedavne kartice.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Uključite ili isključite Chromium</translation>
 <translation id="5664395081284292058">Otvaranje moje najnovije kartice u Chromium-u</translation>
 <translation id="5671188105328420281">Saveti za Chromium</translation>
 <translation id="5688047395118852662">Ova kartica vam prikazuje predloge o tome kako da iskoristite Chromium-a na najbolji način.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">Vaša organizacija podešava Chromium...</translation>
 <translation id="6794054469102824109">Otvara igru Chromium dinosaurus.</translation>
 <translation id="6820823224820483452">Chromium nije uspeo da proveri sve lozinke. Probajte ponovo sutra.</translation>
+<translation id="6830782797004194206">Brže se prijavljujte pomoću automatskog popunjavanja u Chromium-u</translation>
 <translation id="6831043979455480757">Prevedi</translation>
 <translation id="6852419005633611413">Brže pristupajte Chromium-u sa trake s aplikacijama na početnom ekranu</translation>
 <translation id="6852799557929001644">Pristupajte Chromium lozinkama i ostalim funkcijama u drugim aplikacijama na ovom uređaju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
index 2839e3b..7b42f806 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">Ово ће се користити за прављење догађаја у Apple Calendar-у из Chromium-а и Google објектива.</translation>
 <translation id="5571094606370987472">Отвара Chromium недавне картице.</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">Укључите или искључите Chromium</translation>
 <translation id="5664395081284292058">Отварање моје најновије картице у Chromium-у</translation>
 <translation id="5671188105328420281">Савети за Chromium</translation>
 <translation id="5688047395118852662">Ова картица вам приказује предлоге о томе како да искористите Chromium-а на најбољи начин.</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">Ваша организација подешава Chromium...</translation>
 <translation id="6794054469102824109">Отвара игру Chromium диносаурус.</translation>
 <translation id="6820823224820483452">Chromium није успео да провери све лозинке. Пробајте поново сутра.</translation>
+<translation id="6830782797004194206">Брже се пријављујте помоћу аутоматског попуњавања у Chromium-у</translation>
 <translation id="6831043979455480757">Преведи</translation>
 <translation id="6852419005633611413">Брже приступајте Chromium-у са траке с апликацијама на почетном екрану</translation>
 <translation id="6852799557929001644">Приступајте Chromium лозинкама и осталим функцијама у другим апликацијама на овом уређају.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
index 8df817c..9bf6db5 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">ระบบจะใช้เพื่อสร้างกิจกรรมจาก Chromium และ Google Lens ในปฏิทินของ Apple</translation>
 <translation id="5571094606370987472">เปิดแท็บล่าสุดใน Chromium</translation>
 <translation id="5603085937604338780">chromium</translation>
+<translation id="5657280937522795751">เปิด Chromium</translation>
 <translation id="5664395081284292058">เปิดแท็บล่าสุดของฉันใน Chromium</translation>
 <translation id="5671188105328420281">เคล็ดลับในการใช้ Chromium</translation>
 <translation id="5688047395118852662">การ์ดนี้แสดงคำแนะนำเกี่ยวกับวิธีใช้ Chromium ให้เกิดประโยชน์สูงสุด</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">องค์กรของคุณกำลังตั้งค่า Chromium...</translation>
 <translation id="6794054469102824109">เปิดเกมไดโนเสาร์ของ Chromium</translation>
 <translation id="6820823224820483452">Chromium ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด โปรดลองอีกครั้งในวันพรุ่งนี้</translation>
+<translation id="6830782797004194206">ลงชื่อเข้าใช้ได้เร็วขึ้นด้วยฟีเจอร์ป้อนข้อความอัตโนมัติของ Chromium</translation>
 <translation id="6831043979455480757">แปลภาษา</translation>
 <translation id="6852419005633611413">เข้าถึง Chromium ได้เร็วขึ้นจากแถบแอปในหน้าจอหลัก</translation>
 <translation id="6852799557929001644">เข้าถึงรหัสผ่าน Chromium และอีกมากมายจากแอปอื่นๆ ในอุปกรณ์นี้</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
index 13c1592..bd71ba7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
@@ -185,6 +185,7 @@
 <translation id="5534584691915394889">这是为了在 Apple 日历中通过 Chromium 和 Google 智能镜头创建活动。</translation>
 <translation id="5571094606370987472">打开最近使用 Chromium 打开的标签页。</translation>
 <translation id="5603085937604338780">Chromium</translation>
+<translation id="5657280937522795751">开启 Chromium</translation>
 <translation id="5664395081284292058">在 Chromium 中打开我最近打开的标签页</translation>
 <translation id="5671188105328420281">Chromium 提示</translation>
 <translation id="5688047395118852662">此卡片会为您提供一些建议,帮助您充分利用 Chromium。</translation>
@@ -228,6 +229,7 @@
 <translation id="6752854822223394465">贵组织正在设置 Chromium…</translation>
 <translation id="6794054469102824109">打开 Chromium 恐龙游戏。</translation>
 <translation id="6820823224820483452">Chromium 无法检查所有密码。请明天再试。</translation>
+<translation id="6830782797004194206">使用 Chromium 自动填充功能更快地登录</translation>
 <translation id="6831043979455480757">翻译</translation>
 <translation id="6852419005633611413">从主屏幕上的程序坞更快速地访问 Chromium</translation>
 <translation id="6852799557929001644">在此设备上的其他应用中使用 Chromium 中保存的密码和其他信息。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
index 64d72c6..c84fee9 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">Otvorite Postavke &gt; Privatnost &gt; Kamera &gt; Google Chrome i uključite kameru.</translation>
 <translation id="5642200033778930880">Google Chrome ne može koristiti vašu kameru u podijeljenom načinu prikaza</translation>
 <translation id="5661521615548540542">Google upravitelj lozinki nije uspio provjeriti sve lozinke. Pokušajte ponovo kasnije.</translation>
+<translation id="5681291952421236520">Prebacivanje Chromea</translation>
 <translation id="5690398455483874150">{count,plural, =1{Trenutno se prikazuje 1 prozor Chromea}one{Trenutno se prikazuje {count} prozor Chromea}few{Trenutno se prikazuju {count} prozora Chromea}other{Trenutno se prikazuje {count} prozora Chromea}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">Postavite Chrome kao zadani preglednik</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">Prijavljeni ste kao <ph name="EMAIL" />.
 
 Vaši podaci su šifrirani pristupnim izrazom. Unesite ga da koristite i sačuvate podatke Chromea na Google računu.</translation>
+<translation id="6533470733797826516">Brže se prijavite uz automatsko popunjavanje u Chromeu</translation>
 <translation id="6545449117344801102">Chrome otkriva adrese i koristi Google Mape da vam daje smjernice i lokalne informacije.</translation>
 <translation id="6634107063912726160">Kada se odjavite Chrome neće sinhronizirati nove podatke s vašim Google računom. Prethodno sinhronizirani podaci ostaju na računu.</translation>
 <translation id="6636941099779251629">Vaša organizacija zahtijeva da se prijavite da koristite Chrome. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
index 4ac10ae..6541072d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">Otvorite Postavke &gt; Privatnost &gt; Fotoaparat &gt; Google Chrome i uključite fotoaparat.</translation>
 <translation id="5642200033778930880">Google Chrome ne može upotrebljavati vaš fotoaparat u načinu podijeljenog prikaza</translation>
 <translation id="5661521615548540542">Google upravitelj zaporki nije uspio provjeriti sve zaporke. Pokušajte ponovo kasnije.</translation>
+<translation id="5681291952421236520">Prebacivanje Chromea</translation>
 <translation id="5690398455483874150">{count,plural, =1{Sada se prikazuje jedan Chromeov prozor.}one{Sada se prikazuje {count} Chromeov prozor}few{Sada se prikazuju {count} Chromeova prozora}other{Sada se prikazuje {count} Chromeovih prozora}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">Postavite Chrome kao zadani preglednik</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">Prijavljeni ste kao <ph name="EMAIL" />.
 
 Vaši se podaci šifriraju vašom šifrom. Unesite je da biste upotrebljavali i spremali podatke Chromea na svojem Google računu.</translation>
+<translation id="6533470733797826516">Brže se prijavite uz automatsko popunjavanje u Chromeu</translation>
 <translation id="6545449117344801102">Chrome otkriva adrese i upotrebljava Google karte kako bi vam pružio upute i lokalne informacije.</translation>
 <translation id="6634107063912726160">Kad se odjavite, Chrome neće sinkronizirati nove podatke s vašim Google računom. Ranije sinkronizirani podaci ostat će na računu.</translation>
 <translation id="6636941099779251629">Vaša organizacija zahtijeva da se prijavite da biste koristili Chrome. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
index ac845cac..13edfa5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">‏יש לעבור אל 'הגדרות' &gt; 'פרטיות' &gt; 'מצלמה' &gt; Google Chrome ולהפעיל את המצלמה.</translation>
 <translation id="5642200033778930880">‏Google Chrome לא יכול להשתמש במצלמה במצב תצוגה מפוצלת</translation>
 <translation id="5661521615548540542">‏למנהל הסיסמאות של Google לא הייתה אפשרות לבדוק את כל הסיסמאות. אפשר לנסות שוב מאוחר יותר.</translation>
+<translation id="5681291952421236520">‏החלפת מצב של Chrome</translation>
 <translation id="5690398455483874150">{count,plural, =1{‏כרגע מוצג חלון Chrome אחד}one{‏כרגע מוצגים {count} חלונות Chrome}two{‏כרגע מוצגים {count} חלונות Chrome}other{‏כרגע מוצגים {count} חלונות Chrome}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">‏הגדרת Chrome כדפדפן ברירת המחדל</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">‏נכנסת לחשבון בתור <ph name="EMAIL" />.
 
 הנתונים שלך מוצפנים באמצעות ביטוי הסיסמה. כדי להשתמש בנתוני Chrome ולשמור אותם בחשבון Google, עליך להזין אותו.</translation>
+<translation id="6533470733797826516">‏כניסה מהירה יותר עם המילוי האוטומטי של Chrome</translation>
 <translation id="6545449117344801102">‏Chrome מזהה כתובות ונעזר במפות Google כדי לספק מסלולים ומידע מקומי.</translation>
 <translation id="6634107063912726160">‏לאחר היציאה מהחשבון, לא יתבצע סנכרון של נתונים חדשים מ-Chrome לחשבון Google שלך. נתונים שסונכרנו בעבר יישארו בחשבון.</translation>
 <translation id="6636941099779251629">‏לפי דרישת הארגון שלך, עליך להיכנס לחשבון כדי להשתמש ב-Chrome. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
index 43f10be..8359983 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">გახსენით: პარამეტრები &gt; კონფიდენციალურობა &gt; კამერა &gt; Google Chrome და ჩართეთ კამერა.</translation>
 <translation id="5642200033778930880">Google Chrome თქვენს კამერას გაყოფილი ხედის რეჟიმში ვერ გამოიყენებს</translation>
 <translation id="5661521615548540542">Google პაროლების მმართველმა ყველა პაროლი ვერ შეამოწმა. ცადეთ მოგვიანებით.</translation>
+<translation id="5681291952421236520">Chrome-ის გადართვა</translation>
 <translation id="5690398455483874150">{count,plural, =1{ახლა ნაჩვენებია Chrome-ის 1 ფანჯარა}other{ახლა ნაჩვენებია Chrome-ის {count} ფანჯარა}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">დააყენეთ Chrome ნაგულისხმევ ბრაუზერად</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">შესული ხართ, როგორც <ph name="EMAIL" />.
 
 თქვენი მონაცემები დაშიფრულია თქვენი საიდუმლო ფრაზით. შეიყვანეთ ის, რომ გამოიყენოთ და შეინახოთ Chrome მონაცემები თქვენს Google ანგარიშში.</translation>
+<translation id="6533470733797826516">უფრო სწრაფად შესვლა Chrome-ის ავტომატური შევსებით</translation>
 <translation id="6545449117344801102">Chrome აღმოაჩენს მისამართებს და იყენებს Google Maps-ს, რომ შემოგთავაზოთ მიმართულებები და ადგილობრივი ინფორმაცია.</translation>
 <translation id="6634107063912726160">გასვლისას Chrome არ შეასრულებს ახალი მონაცემების სინქრონიზაციას თქვენს Google ანგარიშთან. ადრე სინქრონიზებული მონაცემები ანგარიშში დარჩება.</translation>
 <translation id="6636941099779251629">თქვენი ორგანიზაცია მოითხოვს, რომ Chrome-ის გამოსაყენებლად შეხვიდეთ. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
index 89211ed5..d44fa81 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">Atidarykite „Nustatymai“ &gt; „Privatumas“ &gt; „Fotoaparatas“ &gt; „Google Chrome“ ir įjunkite fotoaparatą.</translation>
 <translation id="5642200033778930880">„Google Chrome“ negali naudoti fotoaparato padalyto rodinio režimu</translation>
 <translation id="5661521615548540542">„Google“ slaptažodžių tvarkyklei nepavyko patikrinti visų slaptažodžių. Vėliau bandykite dar kartą.</translation>
+<translation id="5681291952421236520">Perjunkite „Chrome“</translation>
 <translation id="5690398455483874150">{count,plural, =1{Dabar rodomas vienas „Chrome“ langas}one{Dabar rodomas {count} „Chrome“ langas}few{Dabar rodomi {count} „Chrome“ langai}many{Dabar rodoma {count} „Chrome“ lango}other{Dabar rodoma {count} „Chrome“ langų}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">Nustatyti „Chrome“ kaip numatytąją naršyklę</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">Prisijungta kaip <ph name="EMAIL" />.
 
 Duomenys užšifruoti naudojant slaptafrazę. Įveskite ją, kad galėtumėte naudoti ir išsaugoti „Chrome“ duomenis „Google“ paskyroje.</translation>
+<translation id="6533470733797826516">Prisijunkite greičiau naudodami „Chrome“ automatinį pildymą</translation>
 <translation id="6545449117344801102">„Chrome“ aptinka adresus ir naudoja „Google“ žemėlapius, kad pateiktų jums nuorodų ir vietinės informacijos.</translation>
 <translation id="6634107063912726160">Kai atsijungsite, „Chrome“ nesinchronizuos jokių naujų duomenų su jūsų „Google“ paskyra. Anksčiau sinchronizuoti duomenys lieka paskyroje.</translation>
 <translation id="6636941099779251629">Organizacija reikalauja prisijungti, kad galėtumėte naudoti „Chrome“. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
index 3efe24fc..927f65ae 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
@@ -228,7 +228,7 @@
 <translation id="7056826488869329999">Abre e realiza a Confirmação de segurança no Chrome.</translation>
 <translation id="7061455974939528301">Toque no ícone do Chrome, pressione e clique em "Editar tela inicial"</translation>
 <translation id="7065813315247345131">Mover o Chrome para o Dock</translation>
-<translation id="7124339256045485976">Manter o Chrome atualizado</translation>
+<translation id="7124339256045485976">Mantenha o Chrome atualizado</translation>
 <translation id="7161390184744336561">O Google Chrome está desatualizado</translation>
 <translation id="7165736900384873061">Começar a usar o leitor de QR do Google Chrome</translation>
 <translation id="7175129790242719365">Dica do Chrome: fazer login no Chrome</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
index 7dd0b2e4..7b5ea56 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">Otvorite Podešavanja &gt; Privatnost &gt; Kamera &gt; Google Chrome i uključite kameru.</translation>
 <translation id="5642200033778930880">Google Chrome ne može da koristi kameru u režimu podeljenog prikaza</translation>
 <translation id="5661521615548540542">Google menadžer lozinki nije uspeo da proveri sve lozinke. Probajte ponovo kasnije.</translation>
+<translation id="5681291952421236520">Uključite ili isključite Chrome</translation>
 <translation id="5690398455483874150">{count,plural, =1{Sada se prikazuje 1 Chrome prozor}one{Sada se prikazuje {count} Chrome prozor}few{Sada se prikazuju {count} Chrome prozora}other{Sada se prikazuje {count} Chrome prozora}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">Podesite Chrome kao podrazumevani pregledač</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">Prijavljeni ste kao <ph name="EMAIL" />.
 
 Podaci se šifruju pomoću pristupne fraze. Unesite je da biste koristili i sačuvali Chrome podatke na Google nalogu.</translation>
+<translation id="6533470733797826516">Brže se prijavljujte pomoću automatskog popunjavanja u Chrome-u</translation>
 <translation id="6545449117344801102">Chrome otkriva adrese i koristi Google mape da bi vam pružao uputstva i lokalne informacije.</translation>
 <translation id="6634107063912726160">Kada se odjavite, Chrome ne sinhronizuje nikakve nove podatke sa Google nalogom. Prethodno sinhronizovani podaci ostaju na nalogu.</translation>
 <translation id="6636941099779251629">Organizacija zahteva da se prijavite da biste koristili Chrome. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
index fede4b3..5ea21e2f 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">Отворите Подешавања &gt; Приватност &gt; Камера &gt; Google Chrome и укључите камеру.</translation>
 <translation id="5642200033778930880">Google Chrome не може да користи камеру у режиму подељеног приказа</translation>
 <translation id="5661521615548540542">Google менаџер лозинки није успео да провери све лозинке. Пробајте поново касније.</translation>
+<translation id="5681291952421236520">Укључите или искључите Chrome</translation>
 <translation id="5690398455483874150">{count,plural, =1{Сада се приказује 1 Chrome прозор}one{Сада се приказује {count} Chrome прозор}few{Сада се приказују {count} Chrome прозора}other{Сада се приказује {count} Chrome прозора}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">Подесите Chrome као подразумевани прегледач</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">Пријављени сте као <ph name="EMAIL" />.
 
 Подаци се шифрују помоћу приступне фразе. Унесите је да бисте користили и сачували Chrome податке на Google налогу.</translation>
+<translation id="6533470733797826516">Брже се пријављујте помоћу аутоматског попуњавања у Chrome-у</translation>
 <translation id="6545449117344801102">Chrome открива адресе и користи Google мапе да би вам пружао упутства и локалне информације.</translation>
 <translation id="6634107063912726160">Када се одјавите, Chrome не синхронизује никакве нове податке са Google налогом. Претходно синхронизовани подаци остају на налогу.</translation>
 <translation id="6636941099779251629">Организација захтева да се пријавите да бисте користили Chrome. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
index 06b9328..bd213c3 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">เปิดการตั้งค่า &gt; ความเป็นส่วนตัว &gt; กล้อง &gt; Google Chrome เพื่อเปิดกล้องถ่ายรูป</translation>
 <translation id="5642200033778930880">Google Chrome ไม่สามารถใช้กล้องถ่ายรูปในโหมด Split View</translation>
 <translation id="5661521615548540542">เครื่องมือจัดการรหัสผ่านบน Google ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด โปรดลองอีกครั้งในภายหลัง</translation>
+<translation id="5681291952421236520">เปิด Chrome</translation>
 <translation id="5690398455483874150">{count,plural, =1{กำลังแสดงหน้าต่าง Chrome 1 หน้าต่าง}other{กำลังแสดงหน้าต่าง Chrome {count} หน้าต่าง}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">ตั้ง Chrome เป็นเบราว์เซอร์เริ่มต้น</translation>
@@ -204,6 +205,7 @@
 <translation id="6484712497741564393">ลงชื่อเข้าใช้ด้วย <ph name="EMAIL" />
 
 ข้อมูลของคุณมีการเข้ารหัสด้วยรหัสผ่าน ป้อนรหัสผ่านเพื่อใช้และบันทึกข้อมูล Chrome ในบัญชี Google</translation>
+<translation id="6533470733797826516">ลงชื่อเข้าใช้ได้เร็วขึ้นด้วยฟีเจอร์ป้อนข้อความอัตโนมัติของ Chrome</translation>
 <translation id="6545449117344801102">Chrome ตรวจหาที่อยู่และใช้ Google Maps เพื่อแสดงเส้นทางและข้อมูลในพื้นที่</translation>
 <translation id="6634107063912726160">Chrome จะไม่ซิงค์ข้อมูลใหม่กับบัญชี Google ของคุณเมื่อออกจากระบบ แต่ข้อมูลที่ซิงค์ไว้ก่อนหน้านี้จะยังอยู่ในบัญชี</translation>
 <translation id="6636941099779251629">องค์กรกำหนดให้คุณต้องลงชื่อเพื่อเข้าใช้ Chrome <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
index 22babd87..ed831f6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
@@ -169,6 +169,7 @@
 <translation id="5639704535586432836">打开“设置”&gt;“隐私”&gt;“相机”&gt;“Google Chrome”,然后开启相机。</translation>
 <translation id="5642200033778930880">Google Chrome 无法在分割视图模式下使用您的相机</translation>
 <translation id="5661521615548540542">Google 密码管理工具无法检查所有密码。请稍后重试。</translation>
+<translation id="5681291952421236520">开启 Chrome</translation>
 <translation id="5690398455483874150">{count,plural, =1{目前显示了 1 个 Chrome 窗口}other{目前显示了 {count} 个 Chrome 窗口}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="5709557627224531708">将 Chrome 设为您的默认浏览器</translation>
@@ -202,6 +203,7 @@
 <translation id="6427126399757991875">贵组织正在设置 Chrome…</translation>
 <translation id="6481963882741794338">关联 Chrome 和其他 Google 服务,以便获得个性化体验和实现其他用途</translation>
 <translation id="6484712497741564393">目前登录的账号是 <ph name="EMAIL" />。您的数据已使用您的口令加密。请输入该口令,以便将 Chrome 数据保存在您的 Google 账号中并使用这些数据。</translation>
+<translation id="6533470733797826516">使用 Chrome 自动填充功能更快地登录</translation>
 <translation id="6545449117344801102">Chrome 会检测地址,并使用 Google 地图为您提供路线和本地信息。</translation>
 <translation id="6634107063912726160">当您退出登录后,Chrome 不会将任何新数据同步到您的 Google 账号。先前已同步的数据将会保留在账号中。</translation>
 <translation id="6636941099779251629">根据贵组织的要求,您必须登录才能使用 Chrome。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index b18dfddd..16424d76 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Voeg wagwoord by</translation>
 <translation id="8202744799033457229">Wys geskiedenis</translation>
 <translation id="8205564605687841303">Kanselleer</translation>
-<translation id="820568752112382238">Mees besoekte werwe</translation>
 <translation id="8206354486702514201">Hierdie instelling word deur jou administrateur afgedwing.</translation>
 <translation id="8209050860603202033">Maak prent oop</translation>
 <translation id="8211030355252954494">Jy het wagwoorde ontvang vir <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index e253418..53aa39e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">ታሪክ እና ተጨማሪ</translation>
 <translation id="313283613037595347">አዲስ ማንነት የማያሳውቅ ትር ፍጠር።</translation>
 <translation id="3138611310073113613">ምርጫ አስወግድ</translation>
+<translation id="3140825265190223781">የተቀመጡ የይለፍ ቃሎች እና የይለፍ ቁልፎች</translation>
 <translation id="3143515551205905069">ስምረትን ሰርዝ</translation>
 <translation id="314837624430314508">የቅርብ ጊዜ ዜናዎችን፣ የዋጋ መከታተያ ዝማኔዎችን እና ሌሎችንም ይከታተሉ።</translation>
 <translation id="3157387275655328056">ወደ የንባብ ዝርዝር አክል</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">ተከናውኗል</translation>
 <translation id="3955822496205734389">ደካማ የይለፍ ቃላት አሉዎት።</translation>
 <translation id="3958312024468322930">በመነሻ ማያዎ ግርጌ ላይ ወደሚገኘው መትከያ ይውሰዱት</translation>
+<translation id="3960218941754097036">በGoogle ሌንስ በማያ ገፅዎ ላይ ማንኛውንም ነገር ይፈልጉ</translation>
 <translation id="3962326069546168954">ያስቀምጡ</translation>
 <translation id="3967327056943561740">ዕልባቶች</translation>
 <translation id="3967822245660637423">ማውረድ ተጠናቅቋል</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google ፎቶዎች</translation>
 <translation id="4148023517926189160">ይህ ድር ጣቢያ አንድ ፋይል አውርዶ ወደ የቀን መቁጠሪያዎ ማከል ይፈልጋል።</translation>
 <translation id="4152011295694446843">የእርስዎን እልባቶች እዚህ ያገኛሉ</translation>
+<translation id="4154753961803534698">በካሜራ ፈልግ</translation>
 <translation id="4158491215857439601">የይለፍ ቃል አስተዳዳሪ</translation>
 <translation id="4163699139741158298">{count,plural, =1{ዕልባት ወደ «{title}» ተቀምጧል። የተቀመጠው በዚህ መሣሪያ ላይ ብቻ ነው።}one{{count} ዕልባት ወደ «{title}» ተቀምጧል። የተቀመጠው በዚህ መሣሪያ ላይ ብቻ ነው።}other{{count} ዕልባቶች ወደ «{title}» ተቀምጠዋል። የተቀመጡት በዚህ መሣሪያ ላይ ብቻ ነው።}}</translation>
 <translation id="4168651806173792090">በ<ph name="LAST_FOUR_DIGITS" /> የሚያበቃ <ph name="NETWORK_NAME" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">የጽሑፍ አስተያየት ጥቆማዎች</translation>
 <translation id="6169031022444660352">ሁሉንም የተቀመጡ የመግቢያ ማስረጃዎች ለመሰረዝ መጀመሪያ በመሣሪያዎ ላይ ይለፍ ኮድ ማዋቀር አለብዎት።</translation>
 <translation id="6173499589275053515">የይለፍ ቃል የእርስዎ Google መለያ <ph name="EMAIL" /> ውስጥ ተቀምጧል</translation>
+<translation id="6181969657494915430">የፍለጋ ማያ ገፅ</translation>
 <translation id="6187302354554850004">ለመጨረሻ ጊዜ የተመሳሰለው፦ <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" /> ላይ የተፈጠረ</translation>
 <translation id="6189413832092199491">ያልተነበበ</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">በዚህ መሣሪያ ላይ ወደ Google የይለፍ ቃል አስተዳዳሪ</translation>
 <translation id="8011489434346330032">የድር አጣሪ</translation>
 <translation id="802154636333426148">ማውረድ አልተሳካም</translation>
+<translation id="8023170444051056234">ለ«<ph name="GROUP_NAME" />» የትር ቡድን ያለዎትን መዳረሻ ወዲያንውኑ ያጣሉ እና ከሁሉም መሣሪያዎችዎ ላይ ይሰረዛል</translation>
 <translation id="8023878949384262191">ክፍሉን ይዘረጋዋል።</translation>
 <translation id="8027581147000338959">በአዲስ መስኮት ክፈት</translation>
 <translation id="8032569120109842252">የምከተላቸው</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">የይለፍ ቃል ያክሉ</translation>
 <translation id="8202744799033457229">ታሪክ አሳይ</translation>
 <translation id="8205564605687841303">ተወው</translation>
-<translation id="820568752112382238">በብዛት የተጎበኙ ጣቢያዎች</translation>
 <translation id="8206354486702514201">ይህ ቅንብር በአስተዳዳሪዎ ነው በግዳጅ እንዲፈጸም የተደረገው።</translation>
 <translation id="8209050860603202033">ምስል ክፈት</translation>
 <translation id="8211030355252954494">ለ<ph name="WEBSITE" /> የይለፍ ቃሎች ደርሰዎታል</translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">ድሩን በግል ለማሰስ ማንነት የማያሳውቅ ትር ይክፈቱ።</translation>
 <translation id="8307481894409578819">ይህን ፋይል መስቀል አልተቻለም</translation>
 <translation id="8319076807703933069">አዲስ ፍለጋ</translation>
+<translation id="833647236762414178">በቀላሉ ወደ ጣቢያዎች እና መተግበሪያዎች በመለያ ለመግባት የእርስዎን የይለፍ ቃሎች እና የይለፍ ቁልፎች ይፍጠሩ፣ ያስቀምጡ እና ያስተዳድሩ። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">የእርስዎን ነገሮች ምትኬ ያስቀምጡ እና በማንኛውም መሣሪያ ላይ ይጠቀሙበት።</translation>
 <translation id="8349305172487531364">የዕልባቶች አሞሌ</translation>
 <translation id="8364563001733875155">የእርስዎን ፒን ለመቀየር መጀመሪያ በመሣሪያዎ ላይ የይለፍ ኮድ ያዋቅሩ።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index cc83d74..6e691398d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -651,6 +651,7 @@
 <translation id="3955740319737378355">تم</translation>
 <translation id="3955822496205734389">لديك كلمات مرور ضعيفة.</translation>
 <translation id="3958312024468322930">اسحب رمز التطبيق إلى شريط التطبيقات في أسفل شاشتك الرئيسية</translation>
+<translation id="3960218941754097036">‏البحث باستخدام "عدسة Google" عن أي محتوى يظهر على شاشتك</translation>
 <translation id="3962326069546168954">حفظ</translation>
 <translation id="3967327056943561740">الإشارات المرجعية</translation>
 <translation id="3967822245660637423">اكتمل التنزيل</translation>
@@ -693,6 +694,7 @@
 <translation id="4147897805161313378">‏صور Google‏‏</translation>
 <translation id="4148023517926189160">يطلب هذا الموقع الإلكتروني تنزيل ملف وإضافته إلى تقويمك.</translation>
 <translation id="4152011295694446843">ستظهر الإشارات المرجعية هنا</translation>
+<translation id="4154753961803534698">البحث باستخدام الكاميرا</translation>
 <translation id="4158491215857439601">مدير كلمات المرور</translation>
 <translation id="4163699139741158298">{count,plural, =1{تم حفظ الإشارة المرجعية في "{title}" على هذا الجهاز فقط.}zero{تم حفظ {count} إشارة مرجعية في "{title}" على هذا الجهاز فقط.}two{تم حفظ إشارتَين مرجعيتَين ({count}) في "{title}" على هذا الجهاز فقط.}few{تم حفظ {count} إشارات مرجعية في "{title}" على هذا الجهاز فقط.}many{تم حفظ {count} إشارة مرجعية في "{title}" على هذا الجهاز فقط.}other{تم حفظ {count} إشارة مرجعية في "{title}" على هذا الجهاز فقط.}}</translation>
 <translation id="4168651806173792090">بطاقة ائتمان من النوع <ph name="NETWORK_NAME" /> تنتهي بالرقم <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1157,6 +1159,7 @@
 <translation id="6168647875670665004">اقتراحات المقالات</translation>
 <translation id="6169031022444660352">لحذف جميع بيانات الاعتماد المحفوظة، عليك أولاً ضبط رمز مرور على جهازك.</translation>
 <translation id="6173499589275053515">‏تم حفظ كلمة المرور في حساب Google الخاص بك: <ph name="EMAIL" />.</translation>
+<translation id="6181969657494915430">البحث عن محتوى على الشاشة</translation>
 <translation id="6187302354554850004">تاريخ آخر مزامنة: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">‏تم إنشاء الخلفية بتاريخ ‎<ph name="DATE" />.</translation>
 <translation id="6189413832092199491">غير مقروءة</translation>
@@ -1594,6 +1597,7 @@
 <translation id="8005666035647241369">‏في "مدير كلمات المرور في Google" على هذا الجهاز</translation>
 <translation id="8011489434346330032">‏أداة فحص الويب (Web Inspector) </translation>
 <translation id="802154636333426148">تعذّر التنزيل</translation>
+<translation id="8023170444051056234">ستفقد على الفور إمكانية الوصول إلى مجموعة علامات التبويب "<ph name="GROUP_NAME" />"، وسيتم حذفها من جميع أجهزتك</translation>
 <translation id="8023878949384262191">توسيع القسم.</translation>
 <translation id="8027581147000338959">الفتح في نافذة جديدة</translation>
 <translation id="8032569120109842252">المواقع التي تتابعها</translation>
@@ -1636,8 +1640,6 @@
 <translation id="8195191503358432289">إضافة كلمة مرور</translation>
 <translation id="8202744799033457229">عرض السجلّ</translation>
 <translation id="8205564605687841303">إلغاء</translation>
-<translation id="820568752112382238">المواقع الإلكترونية الأكثر زيارة
-</translation>
 <translation id="8206354486702514201">تم فرض هذا الإعداد بواسطة المشرف.</translation>
 <translation id="8209050860603202033">فتح الصورة</translation>
 <translation id="8211030355252954494">لقد تلقّيت كلمات مرور للموقع الإلكتروني <ph name="WEBSITE" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index b98686c..60f6ba56 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">পাছৱৰ্ড যোগ দিয়ক</translation>
 <translation id="8202744799033457229">ইতিহাস দেখুৱাওক</translation>
 <translation id="8205564605687841303">বাতিল কৰক</translation>
-<translation id="820568752112382238">সকলোতকৈ বেছিকৈ চোৱা ছাইটসমূহ</translation>
 <translation id="8206354486702514201">আপোনাৰ প্ৰশাসকে এই ছেটিংটো বলৱৎ কৰিছে।</translation>
 <translation id="8209050860603202033">ছবি খোলক</translation>
 <translation id="8211030355252954494">আপুনি <ph name="WEBSITE" />ৰ বাবে পাছৱৰ্ডসমূহ লাভ কৰিছে</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 2d19b35..570244f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Parol əlavə edin</translation>
 <translation id="8202744799033457229">Tarixçəni göstərin</translation>
 <translation id="8205564605687841303">Ləğv edin</translation>
-<translation id="820568752112382238">Ən çox daxil olduğunuz saytlar</translation>
 <translation id="8206354486702514201">Bu ayar administratorunuz tərəfindən icra olunur.</translation>
 <translation id="8209050860603202033">Şəkli açın</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> üçün parollar qəbul etmisiniz</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 2498400..a9ef084 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">Дадайце пароль</translation>
 <translation id="8202744799033457229">Паказаць гісторыю</translation>
 <translation id="8205564605687841303">Скасаваць</translation>
-<translation id="820568752112382238">Сайты, якія часцей за ўсё наведваліся</translation>
 <translation id="8206354486702514201">Гэтай наладай кіруе адміністратар.</translation>
 <translation id="8209050860603202033">Адкрыць відарыс</translation>
 <translation id="8211030355252954494">Вы атрымалі паролі для <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 4acb3f3..353ca08 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">История и др.</translation>
 <translation id="313283613037595347">Създаване на нов раздел в режим „инкогнито“.</translation>
 <translation id="3138611310073113613">Отхвърляне на избора</translation>
+<translation id="3140825265190223781">Запазени пароли и ключове за достъп</translation>
 <translation id="3143515551205905069">Анулиране на синхронизирането</translation>
 <translation id="314837624430314508">Получавайте последните новини, актуализации за проследяване на цени и др.</translation>
 <translation id="3157387275655328056">Добавяне към списъка за четене</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">Готово</translation>
 <translation id="3955822496205734389">Имате ненадеждни пароли.</translation>
 <translation id="3958312024468322930">Преместете с плъзгане до лентата Dock в долната част на началния екран</translation>
+<translation id="3960218941754097036">Търсете цялото съдържание на екрана си посредством Google Обектив</translation>
 <translation id="3962326069546168954">Запазване</translation>
 <translation id="3967327056943561740">Отметки</translation>
 <translation id="3967822245660637423">Изтеглянето завърши</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google Снимки</translation>
 <translation id="4148023517926189160">Този уебсайт иска да изтегли файл и да го добави към календара ви.</translation>
 <translation id="4152011295694446843">Тук ще се показват отметките ви</translation>
+<translation id="4154753961803534698">Търсене с камерата</translation>
 <translation id="4158491215857439601">Мениджър на пароли</translation>
 <translation id="4163699139741158298">{count,plural, =1{Отметката е запазена в(ъв) „{title}“. Тя е запазена само на това устройство.}other{{count} отметки са запазени в(ъв) „{title}“. Те са запазени само на това устройство.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />, завършваща на <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">Предложения за статии</translation>
 <translation id="6169031022444660352">За да изтриете всички запазени идентификационни данни, първо трябва да зададете код за достъп на устройството си.</translation>
 <translation id="6173499589275053515">Паролата е запазена в профила ви в Google <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Търсене на съдържанието на екрана</translation>
 <translation id="6187302354554850004">Последно синхр.: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Създадено на <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Непрочетени</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">Към мениджъра на паролите в Google на това устройство</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">Изтеглянето не бе успешно</translation>
+<translation id="8023170444051056234">Незабавно ще загубите достъп до групата раздели „<ph name="GROUP_NAME" />“ и тя ще бъде изтрита от всичките ви устройства</translation>
 <translation id="8023878949384262191">Разгъва секцията.</translation>
 <translation id="8027581147000338959">Отваряне в нов прозорец</translation>
 <translation id="8032569120109842252">Следено</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">Добавяне на парола</translation>
 <translation id="8202744799033457229">Показване на историята</translation>
 <translation id="8205564605687841303">Отказ</translation>
-<translation id="820568752112382238">Най-посещавани сайтове</translation>
 <translation id="8206354486702514201">Тази настройка е наложена от администратора ви.</translation>
 <translation id="8209050860603202033">Отваряне на изображението</translation>
 <translation id="8211030355252954494">Получихте пароли за <ph name="WEBSITE" /></translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">Отворете раздел в режим „инкогнито“, за да сърфирате частно в мрежата.</translation>
 <translation id="8307481894409578819">Този файл не бе качен</translation>
 <translation id="8319076807703933069">Ново търсене</translation>
+<translation id="833647236762414178">Създавайте, запазвайте и управлявайте паролите и ключовете си за достъп, за да влизате лесно в сайтовете и приложенията. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Създайте резервно копие на нещата си и ги използвайте на всяко устройство.</translation>
 <translation id="8349305172487531364">Лента на отметките</translation>
 <translation id="8364563001733875155">За да промените ПИН кода си, първо настройте код за достъп на устройството си.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 861eba40..21df634 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">পাসওয়ার্ড যোগ করুন</translation>
 <translation id="8202744799033457229">ইতিহাস দেখুন</translation>
 <translation id="8205564605687841303">বাতিল করুন</translation>
-<translation id="820568752112382238">সবচেয়ে বেশিবার দেখা সাইট</translation>
 <translation id="8206354486702514201">এই সেটিংটি আপনার প্রশাসক দ্বারা কার্যকরী করা হয়েছে৷</translation>
 <translation id="8209050860603202033">ছবি খুলুন</translation>
 <translation id="8211030355252954494">আপনি <ph name="WEBSITE" />-এর জন্য পাসওয়ার্ড পেয়েছেন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index e99d81ce..868f265 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">Došlo je do greške prilikom autentifikacije</translation>
 <translation id="1780152987505130652">Zatvori grupu</translation>
 <translation id="178400879184240105">Vaše lozinke su jedinstvene</translation>
+<translation id="17906873777101817">Ponudi spremanje zaporki i pristupnih ključeva</translation>
 <translation id="1807893857950749072">Dozvoljavanje obavještenja o praćenju cijena…</translation>
 <translation id="1810976980198522421">Otkaži</translation>
 <translation id="1815941218935345331">Šifra</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">kamera</translation>
 <translation id="6746338529702829275">Pregledajte podatke o računu</translation>
 <translation id="6755200887046212842">Upravljanje računima</translation>
+<translation id="6755733078693946548">Pristupajte zaporkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="6761393919622941301">Zvuk</translation>
 <translation id="6779455296366983087">Podaci o pregledanju će se izbrisati</translation>
 <translation id="6790502149545262384">Uskoro ćete vidjeti priče s kanala <ph name="CHANNEL_NAME" /> kada otvorite novu karticu.</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">Upozorava vas ako koristite lozinku ugroženu narušavanjem podataka.</translation>
 <translation id="7977482887663636093">Nove kartice: <ph name="NUMBER_OF_TABS_ADDED" />; zatvoreno: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">Kartice će ostati otvorene na uređaju, ali će se grupa trajno izbrisati.</translation>
+<translation id="797874245254030665">Pristupajte svojim zaporkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="7982789257301363584">Mreža</translation>
 <translation id="7987685713885608670">Da imate dodatnu sigurnost, šifrirajte lozinke na uređaju prije nego što se pohrane u Googleov Upravitelj lozinki.</translation>
 <translation id="798991908416757345">Grupe kartica nisu dostupne</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">Dodajte lozinku</translation>
 <translation id="8202744799033457229">Prikazivanje historije</translation>
 <translation id="8205564605687841303">Otkaži</translation>
-<translation id="820568752112382238">Najposjećenije web lokacije</translation>
 <translation id="8206354486702514201">Ovu postavku je nametnuo vaš administrator.</translation>
 <translation id="8209050860603202033">Otvori sliku</translation>
 <translation id="8211030355252954494">Dobili ste lozinke za web lokaciju <ph name="WEBSITE" /></translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">Otvorite anonimnu karticu za privatno pregledanje weba.</translation>
 <translation id="8307481894409578819">Otpremanje fajla nije uspjelo</translation>
 <translation id="8319076807703933069">Novo pretraživanje</translation>
+<translation id="8328607660158575887">Otvorite postavke automatskog popunjavanja i zaporki</translation>
 <translation id="833647236762414178">Izradite i spremite zaporke i pristupne ključeve te upravljajte njima kako biste se lako prijavljivali na web-lokacije i u aplikacije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Napravite sigurnosnu kopiju svojih stvari i koristite ih na bilo kojem uređaju.</translation>
 <translation id="8349305172487531364">Traka oznaka</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">Odaberite Upravitelj lozinki, a zatim dodirnite Dodajte vidžet</translation>
 <translation id="891282356902782456">Lozinka je sačuvana samo na ovom uređaju. Da je koristite na drugim uređajima, sačuvajte je na svom Google računu, <ph name="EMAIL" />.</translation>
 <translation id="8915916167043355778">Zatvori sve</translation>
+<translation id="892185197271200809">Svi će odmah izgubiti pristup grupi kartica <ph name="GROUP_NAME" /> i izbrisat će se sa svih uređaja</translation>
 <translation id="8921902386312975525">Opcije za praćenje paketa</translation>
 <translation id="8923178205567790913">Lozinke</translation>
 <translation id="892776311701544612">Više informacija…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 7659b38..125af5a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -1640,7 +1640,6 @@
 <translation id="8195191503358432289">Afegeix una contrasenya</translation>
 <translation id="8202744799033457229">Mostra l'historial</translation>
 <translation id="8205564605687841303">Cancel·la</translation>
-<translation id="820568752112382238">Els llocs web més visitats</translation>
 <translation id="8206354486702514201">L'administrador aplica aquesta opció de configuració.</translation>
 <translation id="8209050860603202033">Obre la imatge</translation>
 <translation id="8211030355252954494">Has rebut contrasenyes per a <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index fd0b921..7eff88c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Přidat heslo</translation>
 <translation id="8202744799033457229">Zobrazit historii</translation>
 <translation id="8205564605687841303">Zrušit</translation>
-<translation id="820568752112382238">Nejnavštěvovanější weby</translation>
 <translation id="8206354486702514201">Toto nastavení je vyžadováno administrátorem.</translation>
 <translation id="8209050860603202033">Otevřít obrázek</translation>
 <translation id="8211030355252954494">Obdrželi jste hesla pro web <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 3a56ad6f..cce2d25 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Hanes a rhagor</translation>
 <translation id="313283613037595347">Creu tab Anhysbys newydd.</translation>
 <translation id="3138611310073113613">Cael gwared ar y dewis</translation>
+<translation id="3140825265190223781">Cyfrineiriau a chodau pas wedi'u cadw</translation>
 <translation id="3143515551205905069">Canslo cysoni</translation>
 <translation id="314837624430314508">Cael y diweddaraf am newyddion, diweddariadau olrhain prisiau a rhagor.</translation>
 <translation id="3157387275655328056">Ychwanegu at y Rhestr Ddarllen</translation>
@@ -1637,7 +1638,6 @@
 <translation id="8195191503358432289">Ychwanegu cyfrinair</translation>
 <translation id="8202744799033457229">Dangos hanes</translation>
 <translation id="8205564605687841303">Canslo</translation>
-<translation id="820568752112382238">Gwefannau yr ymwelwyd â nhw y mwyaf</translation>
 <translation id="8206354486702514201">Mae eich gweinyddwr wedi gorfodi'r gosodiad hwn.</translation>
 <translation id="8209050860603202033">Agor llun</translation>
 <translation id="8211030355252954494">Rydych wedi derbyn cyfrineiriau ar gyfer <ph name="WEBSITE" /></translation>
@@ -1666,6 +1666,7 @@
 <translation id="8299613349954694191">Gallwch agor tab Anhysbys i bori'r we yn breifat.</translation>
 <translation id="8307481894409578819">Ni ellir lawrlwytho'r ffeil hon</translation>
 <translation id="8319076807703933069">Chwiliad Newydd</translation>
+<translation id="833647236762414178">Creu, cadw a rheoli'ch cyfrineiriau a'ch codau pas i fewngofnodi'n hawdd i wefannau ac apiau. <ph name="BEGIN_LINK" />Dysgu rhagor<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Gwneud copïau wrth gefn o'ch pethau a'u defnyddio ar unrhyw ddyfais.</translation>
 <translation id="8349305172487531364">Bar nodau tudalen</translation>
 <translation id="8364563001733875155">I newid eich PIN, yn gyntaf gosodwch god pas ar eich dyfais.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index dbefacf..240392c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Tilføj adgangskode</translation>
 <translation id="8202744799033457229">Vis historik</translation>
 <translation id="8205564605687841303">Annuller</translation>
-<translation id="820568752112382238">Mest besøgte websites</translation>
 <translation id="8206354486702514201">Denne indstilling håndhæves af din administrator.</translation>
 <translation id="8209050860603202033">Åbn billede</translation>
 <translation id="8211030355252954494">Du har modtaget adgangskoder til <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index bd77e5e..74ff55b33 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">Passwort hinzufügen</translation>
 <translation id="8202744799033457229">Verlauf anzeigen</translation>
 <translation id="8205564605687841303">Abbrechen</translation>
-<translation id="820568752112382238">Am häufigsten besuchte Websites</translation>
 <translation id="8206354486702514201">Diese Einstellung wird von deinem Administrator erzwungen.</translation>
 <translation id="8209050860603202033">Bild öffnen</translation>
 <translation id="8211030355252954494">Du hast Passwörter für <ph name="WEBSITE" /> erhalten</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index ebedd78..304bfb8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -1639,7 +1639,6 @@
 <translation id="8195191503358432289">Προσθήκη κωδικού πρόσβασης</translation>
 <translation id="8202744799033457229">Εμφάνιση ιστορικού</translation>
 <translation id="8205564605687841303">Ακύρωση</translation>
-<translation id="820568752112382238">Ιστότοποι με τις περισσότερες επισκέψεις</translation>
 <translation id="8206354486702514201">Η ρύθμιση αυτή επιβάλλεται από τον διαχειριστή σας.</translation>
 <translation id="8209050860603202033">Άνοιγμα εικόνας</translation>
 <translation id="8211030355252954494">Λάβατε κωδικούς πρόσβασης για τον ιστότοπο <ph name="WEBSITE" /></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 868465f..33dff005 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">Add password</translation>
 <translation id="8202744799033457229">Show history</translation>
 <translation id="8205564605687841303">Cancel</translation>
-<translation id="820568752112382238">Most-visited sites</translation>
 <translation id="8206354486702514201">This setting is enforced by your administrator.</translation>
 <translation id="8209050860603202033">Open image</translation>
 <translation id="8211030355252954494">You have received passwords for <ph name="WEBSITE" /></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 695a50f..f981517 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Agregar contraseña</translation>
 <translation id="8202744799033457229">Mostrar Historial</translation>
 <translation id="8205564605687841303">Cancelar</translation>
-<translation id="820568752112382238">Sitios más visitados</translation>
 <translation id="8206354486702514201">El administrador controla esta configuración.</translation>
 <translation id="8209050860603202033">Abrir imagen</translation>
 <translation id="8211030355252954494">Recibiste contraseñas de <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index 85d1f9d..bd0ad287 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">Hecho</translation>
 <translation id="3955822496205734389">Tienes contraseñas poco seguras.</translation>
 <translation id="3958312024468322930">Arrástralo al Dock situado en la parte inferior de la pantalla de inicio</translation>
+<translation id="3960218941754097036">Busca cualquier cosa en tu pantalla con Google Lens</translation>
 <translation id="3962326069546168954">Guardar</translation>
 <translation id="3967327056943561740">Marcadores</translation>
 <translation id="3967822245660637423">Descarga completa</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Fotos</translation>
 <translation id="4148023517926189160">Este sitio web quiere descargar un archivo y añadirlo a tu calendario.</translation>
 <translation id="4152011295694446843">Aquí verás tus marcadores</translation>
+<translation id="4154753961803534698">Buscar con la cámara</translation>
 <translation id="4158491215857439601">Gestor de contraseñas</translation>
 <translation id="4163699139741158298">{count,plural, =1{Marcador guardado en {title}. Solo se guarda en este dispositivo.}other{{count} marcadores guardados en {title}. Solo se guardan en este dispositivo.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> que termina en <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">Sugerencias de artículos</translation>
 <translation id="6169031022444660352">Para eliminar todas las credenciales guardadas, primero debes configurar una contraseña en tu dispositivo.</translation>
 <translation id="6173499589275053515">Contraseña guardada en tu cuenta de Google (<ph name="EMAIL" />)</translation>
+<translation id="6181969657494915430">Buscar en la pantalla</translation>
 <translation id="6187302354554850004">Última sincronización: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Fecha de creación: <ph name="DATE" /></translation>
 <translation id="6189413832092199491">No leídas</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">En el Gestor de contraseñas de Google de este dispositivo</translation>
 <translation id="8011489434346330032">Inspector web</translation>
 <translation id="802154636333426148">No se ha podido descargar el archivo</translation>
+<translation id="8023170444051056234">Perderás inmediatamente el acceso al grupo de pestañas <ph name="GROUP_NAME" /> y se eliminará de todos tus dispositivos</translation>
 <translation id="8023878949384262191">Amplía la sección.</translation>
 <translation id="8027581147000338959">Abrir en una ventana nueva</translation>
 <translation id="8032569120109842252">Siguiendo</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">Añadir contraseña</translation>
 <translation id="8202744799033457229">Mostrar historial</translation>
 <translation id="8205564605687841303">Cancelar</translation>
-<translation id="820568752112382238">Sitios web más visitados</translation>
 <translation id="8206354486702514201">El administrador aplica esta opción.</translation>
 <translation id="8209050860603202033">Abrir imagen</translation>
 <translation id="8211030355252954494">Has recibido contraseñas de <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index dcac5b22..d7994e9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Parooli lisamine</translation>
 <translation id="8202744799033457229">Kuva ajalugu</translation>
 <translation id="8205564605687841303">Tühista</translation>
-<translation id="820568752112382238">Enim külastatavad saidid</translation>
 <translation id="8206354486702514201">Selle seade jõustas teie administraator.</translation>
 <translation id="8209050860603202033">Ava kujutis</translation>
 <translation id="8211030355252954494">Olete saanud saidi <ph name="WEBSITE" /> paroolid</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index e46b76f..fdf4acf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Historia eta beste</translation>
 <translation id="313283613037595347">Sortu ezkutuko moduko fitxa bat.</translation>
 <translation id="3138611310073113613">Baztertu hautapena</translation>
+<translation id="3140825265190223781">Gordetako pasahitzak eta sarbide-gakoak</translation>
 <translation id="3143515551205905069">Utzi sinkronizazioa bertan behera</translation>
 <translation id="314837624430314508">Egin azken albisteen, prezioen aldaketen eta beste gauza askoren jarraipena.</translation>
 <translation id="3157387275655328056">Gehitu zerrendan</translation>
@@ -1637,7 +1638,6 @@
 <translation id="8195191503358432289">Gehitu pasahitz bat</translation>
 <translation id="8202744799033457229">Erakutsi historia</translation>
 <translation id="8205564605687841303">Utzi</translation>
-<translation id="820568752112382238">Gehien bisitatutako webguneak</translation>
 <translation id="8206354486702514201">Administratzaileak betearazten du ezarpena.</translation>
 <translation id="8209050860603202033">Ireki irudia</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> webgunerako pasahitzak jaso dituzu</translation>
@@ -1666,6 +1666,7 @@
 <translation id="8299613349954694191">Sarea modu pribatuan arakatzeko, ireki ezkutuko moduko fitxa bat.</translation>
 <translation id="8307481894409578819">Ezin izan da kargatu fitxategia</translation>
 <translation id="8319076807703933069">Bilaketa berria</translation>
+<translation id="833647236762414178">Sortu, gorde eta kudeatu pasahitzak eta sarbide-gakoak webgune eta aplikazioetan saioa erraz hasteko. <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Egin zure gauzen babeskopiak, edozein gailutan erabil ditzazun.</translation>
 <translation id="8349305172487531364">Laster-marken barra</translation>
 <translation id="8364563001733875155">PINa aldatzeko, konfiguratu pasakode bat gailuan.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index e34aced..f95b264 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -651,6 +651,7 @@
 <translation id="3955740319737378355">تمام</translation>
 <translation id="3955822496205734389">چند گذرواژه ضعیف دارید.</translation>
 <translation id="3958312024468322930">آن را به جایگاه واقع در پایین «صفحه اصلی» بکشید</translation>
+<translation id="3960218941754097036">‏هر چیزی را در صفحه‌نمایش با «لنز Google» جستجو کنید</translation>
 <translation id="3962326069546168954">ذخیره</translation>
 <translation id="3967327056943561740">نشانک‌ها</translation>
 <translation id="3967822245660637423">بارگیری کامل شد</translation>
@@ -693,6 +694,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">این وب‌سایت می‌خواهد فایلی را بارگیری کند و به تقویمتان اضافه کند.</translation>
 <translation id="4152011295694446843">نشانک‌ها را اینجا خواهید دید</translation>
+<translation id="4154753961803534698">جستجو با دوربین</translation>
 <translation id="4158491215857439601">مدیر گذرواژه</translation>
 <translation id="4163699139741158298">{count,plural, =1{نشانک در «{title}» ذخیره شد. این نشانک فقط در این دستگاه ذخیره می‌شود.}one{‫{count} نشانک در «{title}» ذخیره شد. این نشانک فقط در این دستگاه ذخیره می‌شود.}other{‫{count} نشانک در «{title}» ذخیره شد. این نشانک‌ها فقط در این دستگاه ذخیره می‌شود.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> با ارقام آخر <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1159,6 +1161,7 @@
 <translation id="6168647875670665004">مقالات پیشنهادی</translation>
 <translation id="6169031022444660352">برای حذف کردن همه اطلاعات اعتباری ذخیره‌شده، ابتدا باید گذرنویسه‌ای در دستگاهتان تنظیم کنید.</translation>
 <translation id="6173499589275053515">‏گذرواژه در «حساب Google» شما ذخیره شد، <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">جستجو در صفحه‌نمایش</translation>
 <translation id="6187302354554850004">آخرین همگام‌سازی: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">تاریخ ایجاد: <ph name="DATE" /></translation>
 <translation id="6189413832092199491">خوانده‌نشده</translation>
@@ -1596,6 +1599,7 @@
 <translation id="8005666035647241369">‏به «مدیر گذرواژه Google» در این دستگاه</translation>
 <translation id="8011489434346330032">بازرس وب</translation>
 <translation id="802154636333426148">بارگیری نشد</translation>
+<translation id="8023170444051056234">دسترسی به گروه برگه «<ph name="GROUP_NAME" />» را فوراً ازدست می‌دهید، و این گروه از همه دستگاه‌هایتان حذف می‌شود</translation>
 <translation id="8023878949384262191">بخش را بزرگ می‌کند.</translation>
 <translation id="8027581147000338959">باز کردن در پنجرهٔ جدید</translation>
 <translation id="8032569120109842252">دنبال می‌کنید</translation>
@@ -1638,7 +1642,6 @@
 <translation id="8195191503358432289">افزودن گذرواژه</translation>
 <translation id="8202744799033457229">نمایش سابقه</translation>
 <translation id="8205564605687841303">لغو</translation>
-<translation id="820568752112382238">سایت‌هایی که بیشتر بازدید شده</translation>
 <translation id="8206354486702514201">این تنظیم توسط سرپرست شما اجباری شده است.</translation>
 <translation id="8209050860603202033">باز کردن تصویر</translation>
 <translation id="8211030355252954494">چند گذرواژه برای <ph name="WEBSITE" /> دریافت کردید</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index b72fe17a..a6fd7d8d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Lisää salasana</translation>
 <translation id="8202744799033457229">Näytä historia</translation>
 <translation id="8205564605687841303">Peru</translation>
-<translation id="820568752112382238">Useimmin vieraillut sivustot</translation>
 <translation id="8206354486702514201">Järjestelmänvalvojasi hallinnoi tätä asetusta.</translation>
 <translation id="8209050860603202033">Avaa kuva</translation>
 <translation id="8211030355252954494">Olet saanut salasanoja sivustolle <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index a4976f842..1ab964dc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Magdagdag ng password</translation>
 <translation id="8202744799033457229">Ipakita ang history</translation>
 <translation id="8205564605687841303">Kanselahin</translation>
-<translation id="820568752112382238">Mga pinakamadalas bisitahing site</translation>
 <translation id="8206354486702514201">Ipinapatupad ng iyong administrator ang setting na ito.</translation>
 <translation id="8209050860603202033">Buksan ang larawan</translation>
 <translation id="8211030355252954494">Nakatanggap ka ng mga password para sa <ph name="WEBSITE" /></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 479dc6c..75473ec 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -1645,7 +1645,6 @@
 <translation id="8195191503358432289">Ajouter un mot de passe</translation>
 <translation id="8202744799033457229">Afficher l'historique</translation>
 <translation id="8205564605687841303">Annuler</translation>
-<translation id="820568752112382238">Sites les plus visités</translation>
 <translation id="8206354486702514201">Votre administrateur impose la valeur associée à ce paramètre.</translation>
 <translation id="8209050860603202033">Ouvrir l'image</translation>
 <translation id="8211030355252954494">Vous avez reçu des mots de passe pour <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index f8e6c919..604487f8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Ajouter un mot de passe</translation>
 <translation id="8202744799033457229">Afficher l'historique</translation>
 <translation id="8205564605687841303">Annuler</translation>
-<translation id="820568752112382238">Sites les plus consultés</translation>
 <translation id="8206354486702514201">Ce paramètre est appliqué par votre administrateur.</translation>
 <translation id="8209050860603202033">Ouvrir l'image</translation>
 <translation id="8211030355252954494">Vous avez reçu des mots de passe pour <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 462d311f3f..a1000c7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Engadir un contrasinal</translation>
 <translation id="8202744799033457229">Mostrar historial</translation>
 <translation id="8205564605687841303">Cancelar</translation>
-<translation id="820568752112382238">Sitios máis visitados</translation>
 <translation id="8206354486702514201">O administrador aplica esta configuración.</translation>
 <translation id="8209050860603202033">Abrir imaxe</translation>
 <translation id="8211030355252954494">Recibiches contrasinais para <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 68f7822..5195b07 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">પાસવર્ડ ઉમેરો</translation>
 <translation id="8202744799033457229">ઇતિહાસ બતાવો</translation>
 <translation id="8205564605687841303">રદ કરો</translation>
-<translation id="820568752112382238">સૌથી વધુ મુલાકાત લેવાયેલી સાઇટ</translation>
 <translation id="8206354486702514201">આ સેટિંગ તમારા વહીવટકર્તા દ્વારા લાગુ કરેલી છે.</translation>
 <translation id="8209050860603202033">છબી ખોલો</translation>
 <translation id="8211030355252954494">તમે <ph name="WEBSITE" /> માટે પાસવર્ડ પ્રાપ્ત કર્યો છે</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 0019be0b..0f0bd2d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">हो गया</translation>
 <translation id="3955822496205734389">आपके पासवर्ड कमज़ोर हैं.</translation>
 <translation id="3958312024468322930">इसे खींचकर होम स्क्रीन पर सबसे नीचे मौजूद डॉक में छोड़ें</translation>
+<translation id="3960218941754097036">Google Lens की मदद से, स्क्रीन पर मौजूद कॉन्टेंट के बारे में खोजें</translation>
 <translation id="3962326069546168954">सेव करें</translation>
 <translation id="3967327056943561740">बुकमार्क</translation>
 <translation id="3967822245660637423">डाउनलोड पूरा हुआ</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">यह वेबसाइट किसी फ़ाइल को डाउनलोड करके, उसे आपके कैलेंडर में जोड़ना चाहती है.</translation>
 <translation id="4152011295694446843">आपको अपने बुकमार्क यहां मिलेंगे</translation>
+<translation id="4154753961803534698">कैमरे की मदद से खोजें</translation>
 <translation id="4158491215857439601">Password Manager</translation>
 <translation id="4163699139741158298">{count,plural, =1{बुकमार्क को "{title}" में सेव किया गया. इसे सिर्फ़ इस डिवाइस में सेव किया गया है.}one{{count} बुकमार्क को "{title}" में सेव किया गया. इसे सिर्फ़ इस डिवाइस में सेव किया गया है.}other{{count} बुकमार्क को "{title}" में सेव किया गया. इन्हें सिर्फ़ इस डिवाइस में सेव किया गया है.}}</translation>
 <translation id="4168651806173792090"><ph name="LAST_FOUR_DIGITS" /> से खत्म होने वाला <ph name="NETWORK_NAME" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">लेख सुझाव</translation>
 <translation id="6169031022444660352">सेव किए गए सभी क्रेडेंशियल मिटाने के लिए, पहले आपको अपने डिवाइस पर एक पासवर्ड सेट अप करना होगा.</translation>
 <translation id="6173499589275053515">आपके Google खाते, <ph name="EMAIL" /> में पासवर्ड सेव किया गया</translation>
+<translation id="6181969657494915430">स्क्रीन पर मौजूद कॉन्टेंट के बारे में खोजें</translation>
 <translation id="6187302354554850004">अंतिम बार समन्वयित: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" /> को बनाया गया</translation>
 <translation id="6189413832092199491">अपठित</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">इस डिवाइस पर Google पासवर्ड मैनेजर में</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">डाउनलोड विफल रहा</translation>
+<translation id="8023170444051056234">आपके लिए “<ph name="GROUP_NAME" />" टैब ग्रुप का ऐक्सेस तुरंत हटा दिया जाएगा. साथ ही, इसे आपके सभी डिवाइसों से मिटा दिया जाएगा</translation>
 <translation id="8023878949384262191">अनुभाग का विस्तार करता है.</translation>
 <translation id="8027581147000338959">नई विंडो में खोलें</translation>
 <translation id="8032569120109842252">फ़ॉलो कर रहे हैं</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">पासवर्ड जोड़ें</translation>
 <translation id="8202744799033457229">इतिहास दिखाएं</translation>
 <translation id="8205564605687841303">रद्द करें</translation>
-<translation id="820568752112382238">सबसे ज़्यादा देखी गई साइटें</translation>
 <translation id="8206354486702514201">इस सेटिंग को आपके व्‍यवस्थापक द्वारा लागू किया जाता है.</translation>
 <translation id="8209050860603202033">इमेज खोलें</translation>
 <translation id="8211030355252954494">आपको <ph name="WEBSITE" /> के लिए पासवर्ड मिल गए हैं</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index b43a75e..475ab08b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">Pogreška autentifikacije</translation>
 <translation id="1780152987505130652">Zatvori grupu</translation>
 <translation id="178400879184240105">Vaše su zaporke jedinstvene</translation>
+<translation id="17906873777101817">Ponudi spremanje zaporki i pristupnih ključeva</translation>
 <translation id="1807893857950749072">Dopusti obavijesti o praćenju cijena…</translation>
 <translation id="1810976980198522421">Odustani</translation>
 <translation id="1815941218935345331">Šifra</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">kamera</translation>
 <translation id="6746338529702829275">Pregledajte podatke o računu</translation>
 <translation id="6755200887046212842">Upravljanje računima</translation>
+<translation id="6755733078693946548">Pristupajte zaporkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="6761393919622941301">Audiozapisi</translation>
 <translation id="6779455296366983087">Vaši će se podaci o pregledavanju izbrisati</translation>
 <translation id="6790502149545262384">Prilikom otvaranja nove kartice uskoro će se prikazivati članci s web-lokacije <ph name="CHANNEL_NAME" />.</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">Upozorava ako upotrebljavate zaporku koja je ugrožena zbog neovlaštenog pristupa podacima.</translation>
 <translation id="7977482887663636093">Nove kartice: <ph name="NUMBER_OF_TABS_ADDED" />, zatvoreno: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">Kartice će ostati otvorene na ovom uređaju, ali će se grupa trajno izbrisati.</translation>
+<translation id="797874245254030665">Pristupajte svojim zaporkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="7982789257301363584">Mreža</translation>
 <translation id="7987685713885608670">Radi dodatne sigurnosti šifrirajte zaporke na uređaju prije spremanja na Google upravitelj zaporki.</translation>
 <translation id="798991908416757345">Grupe kartica nisu dostupne</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">Dodajte zaporku</translation>
 <translation id="8202744799033457229">Prikaz povijesti</translation>
 <translation id="8205564605687841303">Odustani</translation>
-<translation id="820568752112382238">Najposjećenije web-lokacije</translation>
 <translation id="8206354486702514201">Ovu postavku nametnuo je vaš administrator.</translation>
 <translation id="8209050860603202033">Otvori sliku</translation>
 <translation id="8211030355252954494">Dobili ste zaporke za web-lokaciju <ph name="WEBSITE" /></translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">Otvorite anonimnu karticu da biste pregledavali web privatno.</translation>
 <translation id="8307481894409578819">Prijenos datoteke nije uspio</translation>
 <translation id="8319076807703933069">Novo pretraživanje</translation>
+<translation id="8328607660158575887">Otvorite postavke automatskog popunjavanja i zaporki</translation>
 <translation id="833647236762414178">Izradite i spremite zaporke i pristupne ključeve te upravljajte njima kako biste se lako prijavljivali na web-lokacije i u aplikacije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Sigurnosno kopirajte svoje sadržaje i upotrebljavajte ih na bilo kojem uređaju.</translation>
 <translation id="8349305172487531364">Traka oznaka</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">Odaberite Upravitelj zaporki, a zatim dodirnite Dodaj widget</translation>
 <translation id="891282356902782456">Zaporka se sprema samo na ovaj uređaj. Da biste je upotrebljavali na svojim drugim uređajima, spremite je na svoj Google račun, <ph name="EMAIL" />.</translation>
 <translation id="8915916167043355778">Zatvori sve</translation>
+<translation id="892185197271200809">Svi će odmah izgubiti pristup grupi kartica <ph name="GROUP_NAME" /> i izbrisat će se sa svih uređaja</translation>
 <translation id="8921902386312975525">Opcije za praćenje paketa</translation>
 <translation id="8923178205567790913">Zaporke</translation>
 <translation id="892776311701544612">Saznajte više…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index f8dbd1f..e2d965a1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Előzmények és egyebek</translation>
 <translation id="313283613037595347">Új inkognitó lap létrehozása</translation>
 <translation id="3138611310073113613">Kiválasztás elvetése</translation>
+<translation id="3140825265190223781">Mentett jelszavak és azonosítókulcsok</translation>
 <translation id="3143515551205905069">Szinkronizálás megszakítása</translation>
 <translation id="314837624430314508">Kövesse a legfrissebb híreket, az árfigyeléssel kapcsolatos friss információkat és egyebeket.</translation>
 <translation id="3157387275655328056">Hozzáadás olvasási listához</translation>
@@ -1641,7 +1642,6 @@
 <translation id="8195191503358432289">Jelszó hozzáadása</translation>
 <translation id="8202744799033457229">Előzmények megjelenítése</translation>
 <translation id="8205564605687841303">Mégse</translation>
-<translation id="820568752112382238">Leggyakrabban felkeresett webhelyek</translation>
 <translation id="8206354486702514201">Ezt a beállítást rendszergazdája lépteti életbe.</translation>
 <translation id="8209050860603202033">Kép megnyitása</translation>
 <translation id="8211030355252954494">Ön jelszavakat kapott a következőhöz: <ph name="WEBSITE" /></translation>
@@ -1670,6 +1670,7 @@
 <translation id="8299613349954694191">Nyisson meg egy inkognitó lapot a privát böngészéshez.</translation>
 <translation id="8307481894409578819">Ezt a fájlt nem sikerült feltölteni</translation>
 <translation id="8319076807703933069">Új keresés</translation>
+<translation id="833647236762414178">Létrehozhatja, mentheti és kezelheti jelszavait és azonosítókulcsait, hogy egyszerűen bejelentkezhessen a webhelyekre és az alkalmazásokba. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
 <translation id="8343993175958086504">Biztonsági másolatot készíthet adatairól, és bármely eszközön használatja őket.</translation>
 <translation id="8349305172487531364">Könyvjelzősáv</translation>
 <translation id="8364563001733875155">A PIN-kód módosításához először állítson be biztonsági kódot az eszközén.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index 129294c..b2e789a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Գաղտնաբառի ավելացում</translation>
 <translation id="8202744799033457229">Ցույց տալ պատմությունը</translation>
 <translation id="8205564605687841303">Չեղարկել</translation>
-<translation id="820568752112382238">Հաճախ այցելած կայքեր</translation>
 <translation id="8206354486702514201">Այս կարգավորումը պարտադրված է ձեր ադմինիստրատորի կողմից:</translation>
 <translation id="8209050860603202033">Բացել պատկերը</translation>
 <translation id="8211030355252954494">Դուք <ph name="WEBSITE" /> կայքի համար գաղտնաբառեր եք ստացել</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 70ce5a24..50bfc86 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">Selesai</translation>
 <translation id="3955822496205734389">Anda memiliki sandi lemah.</translation>
 <translation id="3958312024468322930">Tarik ikon aplikasi ke dock di bagian bawah Layar Utama</translation>
+<translation id="3960218941754097036">Telusuri apa saja di layar Anda dengan Google Lens</translation>
 <translation id="3962326069546168954">Simpan</translation>
 <translation id="3967327056943561740">Bookmark</translation>
 <translation id="3967822245660637423">Download selesai</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Foto</translation>
 <translation id="4148023517926189160">Situs ini ingin mendownload file dan menambahkannya ke kalender Anda.</translation>
 <translation id="4152011295694446843">Bookmark Anda akan ditampilkan di sini</translation>
+<translation id="4154753961803534698">Telusuri dengan kamera</translation>
 <translation id="4158491215857439601">Pengelola Sandi</translation>
 <translation id="4163699139741158298">{count,plural, =1{Bookmark disimpan ke "{title}". Bookmark hanya disimpan ke perangkat ini.}other{{count} bookmark disimpan ke "{title}". Bookmark hanya disimpan ke perangkat ini.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> diakhiri dengan <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">Saran artikel</translation>
 <translation id="6169031022444660352">Untuk menghapus semua kredensial tersimpan, Anda harus menyiapkan kode sandi di perangkat terlebih dahulu.</translation>
 <translation id="6173499589275053515">Sandi disimpan di Akun Google Anda, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Layar penelusuran</translation>
 <translation id="6187302354554850004">Sinkron terakhir: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Dibuat pada <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Belum dibaca</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">Ke Pengelola Sandi Google di perangkat ini</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">Download gagal</translation>
+<translation id="8023170444051056234">Anda akan langsung kehilangan akses ke grup tab “<ph name="GROUP_NAME" />”, dan grup tersebut akan dihapus dari semua perangkat Anda</translation>
 <translation id="8023878949384262191">Luaskan bagian.</translation>
 <translation id="8027581147000338959">Buka di Jendela Baru</translation>
 <translation id="8032569120109842252">Mengikuti</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">Tambahkan sandi</translation>
 <translation id="8202744799033457229">Menampilkan histori</translation>
 <translation id="8205564605687841303">Batal</translation>
-<translation id="820568752112382238">Situs yang paling sering dikunjungi</translation>
 <translation id="8206354486702514201">Setelan ini diberlakukan oleh administrator Anda.</translation>
 <translation id="8209050860603202033">Buka gambar</translation>
 <translation id="8211030355252954494">Anda telah menerima sandi untuk <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 8b3aee3..5f79e86 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Ferill og fleira</translation>
 <translation id="313283613037595347">Búa til nýjan huliðsflipa.</translation>
 <translation id="3138611310073113613">Hreinsa val</translation>
+<translation id="3140825265190223781">Vistuð aðgangsorð og aðgangslyklar</translation>
 <translation id="3143515551205905069">Hætta við samstillingu</translation>
 <translation id="314837624430314508">Fylgstu með nýjustu fréttum, breytingum á verði og fleiru.</translation>
 <translation id="3157387275655328056">Bæta við leslista</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">Lokið</translation>
 <translation id="3955822496205734389">Þú ert með léleg aðgangsorð.</translation>
 <translation id="3958312024468322930">Dragðu það í dokkuna neðst á heimaskjánum</translation>
+<translation id="3960218941754097036">Notaðu Google-linsu til að leita að hverju sem er á skjánum</translation>
 <translation id="3962326069546168954">Vista</translation>
 <translation id="3967327056943561740">Bókamerki</translation>
 <translation id="3967822245660637423">Niðurhali lokið</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google-myndir</translation>
 <translation id="4148023517926189160">Þetta vefsvæði vill sækja skrá og bæta henni við dagatalið hjá þér.</translation>
 <translation id="4152011295694446843">Þú finnur bókamerkin þín hér</translation>
+<translation id="4154753961803534698">Leita með myndavél</translation>
 <translation id="4158491215857439601">Aðgangsorðastjórnun</translation>
 <translation id="4163699139741158298">{count,plural, =1{Bókamerki vistað í „{title}“. Það er aðeins vistað í þessu tæki.}one{{count} bókamerki vistað í „{title}“. Þau eru aðeins vistuð í þessu tæki.}other{{count} bókamerki vistuð í „{title}“. Þau eru aðeins vistuð í þessu tæki.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> sem endar á <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">Tillögur um greinar</translation>
 <translation id="6169031022444660352">Til að eyða öllum vistuðum skilríkjum verður þú fyrst að setja upp aðgangskóða í tækinu þínu.</translation>
 <translation id="6173499589275053515">Aðgangsorð vistað á Google-reikningnum þínum, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Leitarskjár</translation>
 <translation id="6187302354554850004">Síðast samstillt: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Búið til <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Ólesið</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">Í Aðgangsorðastjórnun Google í þessu tæki</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">Niðurhal mistókst</translation>
+<translation id="8023170444051056234">Þú munt umsvifalaust missa aðgang að flipahópnum „<ph name="GROUP_NAME" />“ og honum verður eytt úr öllum tækjunum þínum</translation>
 <translation id="8023878949384262191">Stækkar hlutann.</translation>
 <translation id="8027581147000338959">Opna í nýjum glugga</translation>
 <translation id="8032569120109842252">Fylgist með</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">Bæta við aðgangsorði</translation>
 <translation id="8202744799033457229">Sýna feril</translation>
 <translation id="8205564605687841303">Hætta við</translation>
-<translation id="820568752112382238">Mest heimsóttu vefsvæðin</translation>
 <translation id="8206354486702514201">Stjórnandi valdi þessa stillingu.</translation>
 <translation id="8209050860603202033">Opna mynd</translation>
 <translation id="8211030355252954494">Þér hafa borist aðgangsorð fyrir <ph name="WEBSITE" /></translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">Opnaðu huliðsflipa til að vafra í leyni.</translation>
 <translation id="8307481894409578819">Ekki tókst að hlaða þessari skrá upp</translation>
 <translation id="8319076807703933069">Ný leit</translation>
+<translation id="833647236762414178">Búðu til, vistaðu og stjórnaðu aðgangsorðum og aðgangslyklum til að skrá þig inn á vefsvæði og forrit á einfaldan hátt. <ph name="BEGIN_LINK" />Nánar<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Afritaðu efnið þitt og notaðu það í hvaða tæki sem er.</translation>
 <translation id="8349305172487531364">Bókamerkjastika</translation>
 <translation id="8364563001733875155">Til að skipta um PIN-númer skaltu fyrst setja upp aðgangskóða í tækinu þínu.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index edd88ab..6eceb2a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">Aggiungi password</translation>
 <translation id="8202744799033457229">Mostra la cronologia</translation>
 <translation id="8205564605687841303">Annulla</translation>
-<translation id="820568752112382238">Siti più visitati</translation>
 <translation id="8206354486702514201">Questa impostazione è stata applicata dall'amministratore.</translation>
 <translation id="8209050860603202033">Apri immagine</translation>
 <translation id="8211030355252954494">Hai ricevuto password per <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 90b91311..8fdc0ee 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">שגיאת אימות</translation>
 <translation id="1780152987505130652">סגירת הקבוצה</translation>
 <translation id="178400879184240105">הסיסמאות שלך ייחודיות</translation>
+<translation id="17906873777101817">הצעה לשמירת סיסמאות ומפתחות גישה</translation>
 <translation id="1807893857950749072">הרשאה לקבלת התראות על מעקב מחירים…</translation>
 <translation id="1810976980198522421">ביטול</translation>
 <translation id="1815941218935345331">קוד גישה</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">סיום</translation>
 <translation id="3955822496205734389">יש לך סיסמאות חלשות.</translation>
 <translation id="3958312024468322930">‏גוררים את הסמל אל ה-Dock שבחלק התחתון של מסך הבית</translation>
+<translation id="3960218941754097036">‏אפשר לחפש מה שמוצג במסך באמצעות Google Lens</translation>
 <translation id="3962326069546168954">שמירה</translation>
 <translation id="3967327056943561740">סימניות</translation>
 <translation id="3967822245660637423">ההורדה הושלמה</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">האתר הזה מבקש להוריד קובץ ולהוסיף אותו ליומן שלך.</translation>
 <translation id="4152011295694446843">הסימניות זמינות כאן</translation>
+<translation id="4154753961803534698">חיפוש באמצעות המצלמה</translation>
 <translation id="4158491215857439601">מנהל הסיסמאות</translation>
 <translation id="4163699139741158298">{count,plural, =1{הסימנייה נשמרה בתיקייה ‘{title}'. היא שמורה רק במכשיר הזה.}one{‫{count} סימניות נשמרו בתיקייה ‘{title}'. הן שמורות רק במכשיר הזה.}two{‫{count} סימניות נשמרו בתיקייה ‘{title}'. הן שמורות רק במכשיר הזה.}other{‫{count} סימניות נשמרו בתיקייה ‘{title}'. הן שמורות רק במכשיר הזה.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> המסתיים בספרות <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">מאמרים מוצעים</translation>
 <translation id="6169031022444660352">כדי למחוק את כל פרטי הכניסה שנשמרו, קודם כל צריך להגדיר קוד גישה במכשיר.</translation>
 <translation id="6173499589275053515">‏הסיסמה נשמרה בחשבון Google שלך, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">חיפוש במסך</translation>
 <translation id="6187302354554850004">סונכרן לאחרונה: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">נוצר בתאריך <ph name="DATE" /></translation>
 <translation id="6189413832092199491">פריטים שלא נקראו</translation>
@@ -1319,6 +1323,7 @@
 <translation id="6732087373923685049">מצלמה</translation>
 <translation id="6746338529702829275">בדיקה של נתוני החשבון</translation>
 <translation id="6755200887046212842">נהל חשבונות</translation>
+<translation id="6755733078693946548">גישה לסיסמאות ולמפתחות הגישה מכל אפליקציה</translation>
 <translation id="6761393919622941301">אודיו</translation>
 <translation id="6779455296366983087">נתוני הגלישה יימחקו</translation>
 <translation id="6790502149545262384">בקרוב יוצגו סטוריז מהאתר <ph name="CHANNEL_NAME" /> בפתיחת כרטיסייה חדשה.</translation>
@@ -1586,6 +1591,7 @@
 <translation id="7977451675950311423">מקבלים אזהרה אם משתמשים בסיסמה שנחשפה בפרצה באבטחת מידע.</translation>
 <translation id="7977482887663636093">מספר הכרטיסיות החדשות: <ph name="NUMBER_OF_TABS_ADDED" />. מספר הכרטיסיות שנסגרו: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">הכרטיסיות יישארו פתוחות במכשיר הזה, אבל הקבוצה תימחק לתמיד.</translation>
+<translation id="797874245254030665">גישה לסיסמאות ולמפתחות הגישה שלך מכל אפליקציה</translation>
 <translation id="7982789257301363584">רשת</translation>
 <translation id="7987685713885608670">‏כדי לשפר את הבטיחות, כדאי להצפין את הסיסמאות במכשיר שלך לפני שהן נשמרות במנהל הסיסמאות של Google.</translation>
 <translation id="798991908416757345">קבוצות הכרטיסיות לא זמינות</translation>
@@ -1595,6 +1601,7 @@
 <translation id="8005666035647241369">‏נשמרה במנהל הסיסמאות של Google במכשיר הזה</translation>
 <translation id="8011489434346330032">סוקר האינטרנט</translation>
 <translation id="802154636333426148">ההורדה נכשלה</translation>
+<translation id="8023170444051056234">הגישה שלך לקבוצת הכרטיסיות "<ph name="GROUP_NAME" />" תאבד באופן מיידי, והיא תימחק מכל המכשירים שלך</translation>
 <translation id="8023878949384262191">מרחיב את הקטע.</translation>
 <translation id="8027581147000338959">פתיחה בחלון חדש</translation>
 <translation id="8032569120109842252">במעקב</translation>
@@ -1637,7 +1644,6 @@
 <translation id="8195191503358432289">הוספת סיסמה</translation>
 <translation id="8202744799033457229">הצגת ההיסטוריה</translation>
 <translation id="8205564605687841303">ביטול</translation>
-<translation id="820568752112382238">האתרים שאליהם נכנסת בתדירות הגבוהה ביותר</translation>
 <translation id="8206354486702514201">הגדרה זו נאכפת על ידי מנהל המערכת שלך.</translation>
 <translation id="8209050860603202033">פתיחת התמונה</translation>
 <translation id="8211030355252954494">קיבלת סיסמאות עבור <ph name="WEBSITE" /></translation>
@@ -1666,6 +1672,7 @@
 <translation id="8299613349954694191">אפשר לפתוח כרטיסיית מצב אנונימי כדי לגלוש בפרטיות באינטרנט.</translation>
 <translation id="8307481894409578819">לא ניתן להעלות את הקובץ הזה</translation>
 <translation id="8319076807703933069">חיפוש חדש</translation>
+<translation id="8328607660158575887">פתיחת ההגדרות של המילוי האוטומטי והסיסמאות</translation>
 <translation id="8343993175958086504">כדאי לגבות את הנתונים כדי להשתמש בהם בכל מכשיר.</translation>
 <translation id="8349305172487531364">סרגל סימניות</translation>
 <translation id="8364563001733875155">כדי לשנות את קוד האימות, קודם עליך להגדיר קוד גישה במכשיר.</translation>
@@ -1817,6 +1824,7 @@
 <translation id="8909459547399237818">בוחרים במנהל הסיסמאות ולוחצים על 'הוספת ווידג'ט'</translation>
 <translation id="891282356902782456">‏הסיסמה הזו שמורה רק במכשיר הזה. כדי להשתמש בה במכשירים אחרים, עליך לשמור אותה בחשבון Google שלך, <ph name="EMAIL" />.</translation>
 <translation id="8915916167043355778">סגירת הכול</translation>
+<translation id="892185197271200809">כולם יאבדו באופן מיידי את הגישה לקבוצת הכרטיסיות "<ph name="GROUP_NAME" />", והיא תימחק מכל המכשירים</translation>
 <translation id="8921902386312975525">אפשרויות למעקב אחרי חבילות</translation>
 <translation id="8923178205567790913">סיסמאות</translation>
 <translation id="892776311701544612">למידע נוסף…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 68c4903..ae9d01e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">履歴、その他</translation>
 <translation id="313283613037595347">新しいシークレット タブを作成します。</translation>
 <translation id="3138611310073113613">選択を破棄</translation>
+<translation id="3140825265190223781">保存済みのパスワードとパスキー</translation>
 <translation id="3143515551205905069">同期をキャンセル</translation>
 <translation id="314837624430314508">最新のニュースや価格トラッキングの更新などをチェックできます。</translation>
 <translation id="3157387275655328056">リーディング リストに追加</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">完了</translation>
 <translation id="3955822496205734389">脆弱なパスワードがあります。</translation>
 <translation id="3958312024468322930">ホーム画面の下部にあるドックまでドラッグします</translation>
+<translation id="3960218941754097036">Google レンズで画面上のコンテンツを検索</translation>
 <translation id="3962326069546168954">保存</translation>
 <translation id="3967327056943561740">ブックマーク</translation>
 <translation id="3967822245660637423">ダウンロード完了</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google フォト</translation>
 <translation id="4148023517926189160">このウェブサイトがファイルをダウンロードしてカレンダーに追加する許可を求めています。</translation>
 <translation id="4152011295694446843">ブックマークはここに表示されます</translation>
+<translation id="4154753961803534698">カメラで検索</translation>
 <translation id="4158491215857439601">パスワード マネージャー</translation>
 <translation id="4163699139741158298">{count,plural, =1{ブックマークを「{title}」に保存しました。このデバイスにのみ保存されます。}other{{count} 件のブックマークを「{title}」に保存しました。このデバイスにのみ保存されます。}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />(末尾 4 桁: <ph name="LAST_FOUR_DIGITS" />)</translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">記事の候補表示</translation>
 <translation id="6169031022444660352">保存されているすべての認証情報を削除するには、まずデバイスでパスコードを設定する必要があります。</translation>
 <translation id="6173499589275053515">Google アカウント(<ph name="EMAIL" />)に保存されたパスワード</translation>
+<translation id="6181969657494915430">画面を検索</translation>
 <translation id="6187302354554850004">最終同期: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">作成: <ph name="DATE" /></translation>
 <translation id="6189413832092199491">未読</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">保存先: このデバイスの Google パスワード マネージャー</translation>
 <translation id="8011489434346330032">ウェブ インスペクタ</translation>
 <translation id="802154636333426148">ダウンロード エラー</translation>
+<translation id="8023170444051056234">「<ph name="GROUP_NAME" />」タブグループに直ちにアクセスできなくなり、すべてのデバイスから削除されます</translation>
 <translation id="8023878949384262191">セクションを展開します。</translation>
 <translation id="8027581147000338959">新しいウインドウで開く</translation>
 <translation id="8032569120109842252">フォロー中</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">パスワードを追加</translation>
 <translation id="8202744799033457229">履歴を表示</translation>
 <translation id="8205564605687841303">キャンセル</translation>
-<translation id="820568752112382238">よくアクセスするサイト</translation>
 <translation id="8206354486702514201">この設定は管理者によって制御されています。</translation>
 <translation id="8209050860603202033">画像を開く</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> のパスワードを受信しました</translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">ウェブをプライベート モードで閲覧するにはシークレット タブを開きます。</translation>
 <translation id="8307481894409578819">このファイルはアップロードできません</translation>
 <translation id="8319076807703933069">新しく検索</translation>
+<translation id="833647236762414178">パスワードとパスキーを作成、保存、管理して、サイトやアプリに簡単にログインできるようにします。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">データをバックアップして、他のデバイスで使用できるようにします。</translation>
 <translation id="8349305172487531364">ブックマーク バー</translation>
 <translation id="8364563001733875155">PIN を変更するには、まずデバイスでパスコードを設定してください。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 77999a2..38332ca 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">ავტორიზაციის შეცდომა</translation>
 <translation id="1780152987505130652">ჯგუფის დახურვა</translation>
 <translation id="178400879184240105">თქვენი პაროლები უნიკალურია</translation>
+<translation id="17906873777101817">პაროლებისა და წვდომის გასაღებების შენახვის შემოთავაზება</translation>
 <translation id="1807893857950749072">ფასისთვის თვალის მიდევნების შეტყობინებების დაშვება…</translation>
 <translation id="1810976980198522421">გაუქმება</translation>
 <translation id="1815941218935345331">საიდუმლო კოდი</translation>
@@ -493,6 +494,7 @@
 <translation id="3130863904455712965">ისტორია და სხვა</translation>
 <translation id="313283613037595347">ახალი ინკოგნიტო ჩანართის შექმნა.</translation>
 <translation id="3138611310073113613">არჩევანის გაუქმება</translation>
+<translation id="3140825265190223781">შენახული პაროლები და წვდომის გასაღებები</translation>
 <translation id="3143515551205905069">სინქრონიზაციის გაუქმება</translation>
 <translation id="314837624430314508">შეიტყვეთ ახალი ამებები, ინფორმაცია ფასისთვის თვალის მიდევნების შესახებ და სხვა.</translation>
 <translation id="3157387275655328056">საკითხავ სიაში დამატება</translation>
@@ -650,6 +652,7 @@
 <translation id="3955740319737378355">მზადაა</translation>
 <translation id="3955822496205734389">სუსტი პაროლები გაქვთ.</translation>
 <translation id="3958312024468322930">ჩავლებით გადაიტანეთ ის სამაგრზე მთავარი ეკრანის ქვედა ნაწილში</translation>
+<translation id="3960218941754097036">მოიძიეთ ნებისმიერი კონტენტი თქვენს ეკრანზე Google Lens-ით</translation>
 <translation id="3962326069546168954">შენახვა</translation>
 <translation id="3967327056943561740">სანიშნეები</translation>
 <translation id="3967822245660637423">ჩამოტვირთვა დასრულდა</translation>
@@ -692,6 +695,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">ამ ვებსაიტს სურს, ჩამოტვირთოს ფაილი და დაამატოს ის თქვენს კალენდარს.</translation>
 <translation id="4152011295694446843">აქ იპოვით თქვენს სანიშნეებს</translation>
+<translation id="4154753961803534698">კამერით ძიება</translation>
 <translation id="4158491215857439601">პაროლების მმართველი</translation>
 <translation id="4163699139741158298">{count,plural, =1{სანიშნე შენახულია „{title}“-ში. ის შენახულია მხოლოდ ამ მოწყობილობაზე.}other{{count} სანიშნე შენახულია „{title}“-ში. ისინი შენახულია მხოლოდ ამ მოწყობილობაზე.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />, რომელიც მთავრდება <ph name="LAST_FOUR_DIGITS" />-ით</translation>
@@ -1158,6 +1162,7 @@
 <translation id="6168647875670665004">სტატიების შემოთავაზება</translation>
 <translation id="6169031022444660352">შენახული ავტორიზაციის მონაცემების წასაშლელად თქვენს მოწყობილობაში უნდა დააყენოთ საიდუმლო კოდი.</translation>
 <translation id="6173499589275053515">პაროლი შეინახა თქვენს Google ანგარიშში (<ph name="EMAIL" />)</translation>
+<translation id="6181969657494915430">ეკრანზე ძიება</translation>
 <translation id="6187302354554850004">ბოლო სინქრონიზაცია: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">შექმნის თარიღი: <ph name="DATE" /></translation>
 <translation id="6189413832092199491">წაუკითხავი</translation>
@@ -1319,6 +1324,7 @@
 <translation id="6732087373923685049">კამერა</translation>
 <translation id="6746338529702829275">შეამოწმეთ თქვენი ანგარიშის მონაცემები</translation>
 <translation id="6755200887046212842">ანგარიშების მართვა</translation>
+<translation id="6755733078693946548">პაროლებსა და წვდომის გასაღებებზე წვდომა ნებისმიერი აპიდან</translation>
 <translation id="6761393919622941301">აუდიო</translation>
 <translation id="6779455296366983087">თქვენ მიერ ვების დათვალიერების მონაცემები წაიშლება</translation>
 <translation id="6790502149545262384">მალე, ახალი ჩანართის გახსნისას, იხილავთ ამბებს <ph name="CHANNEL_NAME" />-დან.</translation>
@@ -1586,6 +1592,7 @@
 <translation id="7977451675950311423">გაგაფრთხილებთ, თუ იყენებთ პაროლს, რომელიც პერსონალურ მონაცემთა გაჟონვისას გამჟღავნდა.</translation>
 <translation id="7977482887663636093"><ph name="NUMBER_OF_TABS_ADDED" /> ახალი ჩანართი, <ph name="NUMBER_OF_TABS_REMOVED" /> დაიხურა</translation>
 <translation id="797824194429476746">ამ მოწყობილობაში არსებული ჩანართები დარჩება გახსნილი, მაგრამ სამუდამოდ წაიშლება ჯგუფი.</translation>
+<translation id="797874245254030665">მიიღეთ წვდომა პაროლებსა და წვდომის გასაღებებზე ნებისმიერი აპიდან</translation>
 <translation id="7982789257301363584">ქსელი</translation>
 <translation id="7987685713885608670">დამატებითი უსაფრთხოებისთვის, Google-ის პაროლების მმართველში შენახვამდე, დაშიფრეთ პაროლები თქვენს მოწყობილობაზე.</translation>
 <translation id="798991908416757345">ჩანართების ჯგუფები მიუწვდომელია</translation>
@@ -1595,6 +1602,7 @@
 <translation id="8005666035647241369">Google პაროლების მმართველში ამ მოწყობილობაზე</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">ჩამოტვირთვა ვერ მოხერხდა</translation>
+<translation id="8023170444051056234">თქვენ მყისიერად დაკარგავთ წვდომას ჩანართების ჯგუფზე „<ph name="GROUP_NAME" />“ და ის წაიშლება თქვენი ყველა მოწყობილობიდან</translation>
 <translation id="8023878949384262191">გაშლის სექციას.</translation>
 <translation id="8027581147000338959">ახალ ფანჯარაში გახსნა</translation>
 <translation id="8032569120109842252">თვალს ადევნებთ</translation>
@@ -1637,7 +1645,6 @@
 <translation id="8195191503358432289">პაროლის დამატება</translation>
 <translation id="8202744799033457229">ისტორიის ჩვენება</translation>
 <translation id="8205564605687841303">გაუქმება</translation>
-<translation id="820568752112382238">ყველაზე ხშირად მონახულებადი საიტები</translation>
 <translation id="8206354486702514201">ეს პარამეტრი იძულებითაა დაყენებული თქვენი ადმინისტრატორის მიერ.</translation>
 <translation id="8209050860603202033">გამოსახულების გახსნა</translation>
 <translation id="8211030355252954494">თქვენ მიიღეთ პაროლები <ph name="WEBSITE" />-ისთვის</translation>
@@ -1666,6 +1673,8 @@
 <translation id="8299613349954694191">ვების კონფიდენციალურად დასათვალიერებლად გახსენით ინკოგნიტო ჩანართი.</translation>
 <translation id="8307481894409578819">ამ ფაილის ატვირთვა ვერ მოხერხდა</translation>
 <translation id="8319076807703933069">ახალი ძიება</translation>
+<translation id="8328607660158575887">ავტომატური შევსებისა და პაროლების პარამეტრების გახსნა</translation>
+<translation id="833647236762414178">შექმენით, შეინახეთ და მართეთ თქვენი პაროლები, რომ მარტივად შეხვიდეთ საიტებსა და აპებში. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">შექმენით თქვენი მონაცემების სარეზერვო ასლები და გამოიყენეთ ისინი ნებისმიერ მოწყობილობაზე.</translation>
 <translation id="8349305172487531364">სანიშნეების ზოლი</translation>
 <translation id="8364563001733875155">PIN-კოდის შესაცვლელად ჯერ საიდუმლო კოდი უნდა დააყენოთ თქვენს მოწყობილობაზე.</translation>
@@ -1817,6 +1826,7 @@
 <translation id="8909459547399237818">აირჩიეთ პაროლების მმართველი, შემდეგ კი შეხებით აირჩიეთ „ვიჯეტის დამატება“</translation>
 <translation id="891282356902782456">ეს პაროლი შენახულია მხოლოდ ამ მოწყობილობაზე. თქვენს სხვა მოწყობილობებზე მის გამოსაყენებლად შეინახეთ ის თქვენს Google ანგარიშში (<ph name="EMAIL" />).</translation>
 <translation id="8915916167043355778">ყველას დახურვა</translation>
+<translation id="892185197271200809">ყველა მომენტალურად დაკარგავს წვდომას ჩანართების ჯგუფზე „<ph name="GROUP_NAME" />“ და ის წაიშლება ყველა მოწყობილობიდან</translation>
 <translation id="8921902386312975525">პაკეტებისთვის თვალის მიდევნების ვარიანტები</translation>
 <translation id="8923178205567790913">პაროლები</translation>
 <translation id="892776311701544612">შეიტყვეთ მეტი…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 585509d8..35dc2fc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">Құпия сөз қосу</translation>
 <translation id="8202744799033457229">Тарихты көрсету</translation>
 <translation id="8205564605687841303">Бас тарту</translation>
-<translation id="820568752112382238">Көп кіретін сайттар</translation>
 <translation id="8206354486702514201">Бұл параметрді әкімші күштеп орнатқан.</translation>
 <translation id="8209050860603202033">Кескінді ашу</translation>
 <translation id="8211030355252954494">Сізге <ph name="WEBSITE" /> веб-сайтына арналған құпия сөздер келді.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index c7d0ecd..044847a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">បញ្ចូលពាក្យសម្ងាត់</translation>
 <translation id="8202744799033457229">បង្ហាញ​ប្រវត្តិ</translation>
 <translation id="8205564605687841303">បោះបង់</translation>
-<translation id="820568752112382238">គេហទំព័រ​ដែលចូលមើល​ញឹកញាប់បំផុត</translation>
 <translation id="8206354486702514201">ការកំណត់នេះត្រូវបានអនុវត្តដោយអ្នកគ្រប់គ្រងរបស់អ្នក។</translation>
 <translation id="8209050860603202033">បើករូបភាព</translation>
 <translation id="8211030355252954494">អ្នកបានទទួលពាក្យ​សម្ងាត់សម្រាប់ <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 952d436..6a5b9cea 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">ಪಾಸ್‌ವರ್ಡ್ ಸೇರಿಸಿ</translation>
 <translation id="8202744799033457229">ಇತಿಹಾಸವನ್ನು ತೋರಿಸಿ</translation>
 <translation id="8205564605687841303">ರದ್ದುಮಾಡಿ</translation>
-<translation id="820568752112382238">ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿರುವ ಸೈಟ್‌ಗಳು</translation>
 <translation id="8206354486702514201">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="8209050860603202033">ಚಿತ್ರವನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> ನ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನೀವು ಸ್ವೀಕರಿಸಿದ್ದೀರಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 278e44a..5dc9d9f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">방문 기록 및 기타 정보</translation>
 <translation id="313283613037595347">새 시크릿 탭 만들기</translation>
 <translation id="3138611310073113613">선택사항 삭제</translation>
+<translation id="3140825265190223781">저장된 비밀번호 및 패스키</translation>
 <translation id="3143515551205905069">동기화 취소</translation>
 <translation id="314837624430314508">최신 뉴스, 가격 추적 업데이트 소식 등을 확인하세요.</translation>
 <translation id="3157387275655328056">읽기 목록에 추가</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">완료</translation>
 <translation id="3955822496205734389">비밀번호가 취약합니다.</translation>
 <translation id="3958312024468322930">아이콘을 홈 화면 하단의 도크로 드래그</translation>
+<translation id="3960218941754097036">Google 렌즈로 화면의 내용을 검색하세요</translation>
 <translation id="3962326069546168954">저장</translation>
 <translation id="3967327056943561740">북마크</translation>
 <translation id="3967822245660637423">다운로드 완료</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google 포토</translation>
 <translation id="4148023517926189160">웹사이트에서 파일을 다운로드하여 내 캘린더에 추가하려고 합니다.</translation>
 <translation id="4152011295694446843">여기에서 북마크를 확인할 수 있습니다</translation>
+<translation id="4154753961803534698">카메라로 검색</translation>
 <translation id="4158491215857439601">비밀번호 관리자</translation>
 <translation id="4163699139741158298">{count,plural, =1{북마크가 "{title}"에 저장되었습니다. 이 기기에만 저장됩니다.}other{북마크 {count}개가 "{title}"에 저장되었습니다. 이 기기에만 저장됩니다.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />(마지막 4자리: <ph name="LAST_FOUR_DIGITS" />)</translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">기사 추천</translation>
 <translation id="6169031022444660352">저장된 모든 사용자 인증 정보를 삭제하려면 먼저 기기에 비밀번호를 설정해야 합니다.</translation>
 <translation id="6173499589275053515">비밀번호가 Google 계정(<ph name="EMAIL" />)에 저장되었습니다.</translation>
+<translation id="6181969657494915430">검색 화면</translation>
 <translation id="6187302354554850004">최근 동기화: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" />에 생성됨</translation>
 <translation id="6189413832092199491">읽지않음</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">이 기기의 Google 비밀번호 관리자에 저장</translation>
 <translation id="8011489434346330032">웹 인스펙터</translation>
 <translation id="802154636333426148">다운로드 실패</translation>
+<translation id="8023170444051056234">'<ph name="GROUP_NAME" />' 탭 그룹에 대한 액세스 권한을 즉시 잃게 되며 탭 그룹이 모든 기기에서 삭제됩니다.</translation>
 <translation id="8023878949384262191">섹션을 확장합니다.</translation>
 <translation id="8027581147000338959">새 창에서 열기</translation>
 <translation id="8032569120109842252">팔로우 중</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">비밀번호 추가</translation>
 <translation id="8202744799033457229">기록 보기</translation>
 <translation id="8205564605687841303">취소</translation>
-<translation id="820568752112382238">자주 방문한 사이트</translation>
 <translation id="8206354486702514201">이 설정은 관리자가 강제로 설정해 놓았습니다.</translation>
 <translation id="8209050860603202033">이미지 열기</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" />의 비밀번호를 받았습니다</translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">시크릿 탭을 열어 웹을 비공개로 탐색하기</translation>
 <translation id="8307481894409578819">이 파일을 업로드할 수 없음</translation>
 <translation id="8319076807703933069">새 검색</translation>
+<translation id="833647236762414178">사이트와 앱에 쉽게 로그인할 수 있도록 비밀번호와 패스키를 만들고, 저장하고, 관리하세요. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">콘텐츠를 백업하고 어느 기기에서나 사용하세요</translation>
 <translation id="8349305172487531364">북마크바</translation>
 <translation id="8364563001733875155">PIN을 변경하려면 먼저 기기에서 비밀번호를 설정하세요.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index 5bd1285..88cf06ad 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Таржымал жана башкалар</translation>
 <translation id="313283613037595347">Жаңы жашыруун өтмөк түзүү.</translation>
 <translation id="3138611310073113613">Тандоону жоюу</translation>
+<translation id="3140825265190223781">Сакталган сырсөздөр жана киргизүүчү ачкычтар</translation>
 <translation id="3143515551205905069">Шайкештештирүүнү жокко чыгаруу</translation>
 <translation id="314837624430314508">Соңку жаңылыктарды, бааларга көз салуу боюнча жаңыртууларды жана башкаларды алып туруңуз.</translation>
 <translation id="3157387275655328056">Окуу тизмесине кошуу</translation>
@@ -1637,7 +1638,6 @@
 <translation id="8195191503358432289">Сырсөз кошуу</translation>
 <translation id="8202744799033457229">Таржымалды көрсөтүү</translation>
 <translation id="8205564605687841303">Жокко чыгаруу</translation>
-<translation id="820568752112382238">Эң көп кирген сайттар</translation>
 <translation id="8206354486702514201">Бул параметрди администраторуңуз күчүнө киргизген.</translation>
 <translation id="8209050860603202033">Сүрөттү ачуу</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> үчүн сырсөздөрдү алдыңыз</translation>
@@ -1666,6 +1666,7 @@
 <translation id="8299613349954694191">Интернетте купуя серептөө үчүн жашыруун өтмөктү ачыңыз.</translation>
 <translation id="8307481894409578819">Бул файлды жүктөп берүүгө болбойт</translation>
 <translation id="8319076807703933069">Жаңы издөө</translation>
+<translation id="833647236762414178">Сайттарга жана колдонмолорго оңой кирүү үчүн сырсөздөрдү жана киргизүүчү ачкычтарды түзүп, сактап жана тескеңиз. <ph name="BEGIN_LINK" />Кеңири маалымат<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Маалыматтын камдык көчүрмөсүн сактап, башка түзмөктө колдоно аласыз.</translation>
 <translation id="8349305172487531364">Кыстармалар тилкеси</translation>
 <translation id="8364563001733875155">PIN-кодуңузду өзгөртүү үчүн алгач түзмөгүңүздө өткөрүүчү кодду тууралап алыңыз.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 9c51c34..0bc99436 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -651,6 +651,7 @@
 <translation id="3955740319737378355">ແລ້ວໆ</translation>
 <translation id="3955822496205734389">ທ່ານມີລະຫັດຜ່ານງ່າຍ.</translation>
 <translation id="3958312024468322930">ລາກມັນໄປໃສ່ຈຸດຈອດຢູ່ລຸ່ມສຸດຂອງໂຮມສະກຣີນຂອງທ່ານ</translation>
+<translation id="3960218941754097036">ຊອກຫາຫຍັງກໍໄດ້ຢູ່ໜ້າຈໍຂອງທ່ານດ້ວຍ Google Lens</translation>
 <translation id="3962326069546168954">ບັນທຶກ</translation>
 <translation id="3967327056943561740">ບຸກມາກ</translation>
 <translation id="3967822245660637423">ດາວ​ໂຫຼດ​ສຳ​ເລັດ</translation>
@@ -693,6 +694,7 @@
 <translation id="4147897805161313378">Google ຮູບພາບ</translation>
 <translation id="4148023517926189160">ເວັບໄຊນີ້ຕ້ອງການດາວໂຫຼດໄຟລ໌ ແລະ ເພີ່ມມັນໃສ່ປະຕິທິນຂອງທ່ານ.</translation>
 <translation id="4152011295694446843">ທ່ານຈະເຫັນບຸກມາກຂອງທ່ານຢູ່ບ່ອນນີ້</translation>
+<translation id="4154753961803534698">ຊອກຫາດ້ວຍກ້ອງຖ່າຍຮູບ</translation>
 <translation id="4158491215857439601">ຕົວຈັດການລະຫັດຜ່ານ</translation>
 <translation id="4163699139741158298">{count,plural, =1{ບັນທຶກບຸກມາກໃສ່ "{title}" ແລ້ວ. ໂດຍຈະບັນທຶກໄວ້ໃນອຸປະກອນນີ້ເທົ່ານັ້ນ.}other{ບັນທຶກບຸກມາກ {count} ລາຍການໃສ່ "{title}" ແລ້ວ. ໂດຍຈະບັນທຶກໄວ້ໃນອຸປະກອນນີ້ເທົ່ານັ້ນ.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> ລົງທ້າຍດ້ວຍ <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1159,6 +1161,7 @@
 <translation id="6168647875670665004">ການແນະນຳບົດຄວາມ</translation>
 <translation id="6169031022444660352">ເພື່ອລຶບຂໍ້ມູນການເຂົ້າສູ່ລະບົບທີ່ບັນທຶກໄວ້ທັງໝົດ, ທ່ານຈະຕ້ອງຕັ້ງຄ່າລະຫັດຢູ່ອຸປະກອນຂອງທ່ານກ່ອນ.</translation>
 <translation id="6173499589275053515">ລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານ, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">ໜ້າຈໍຊອກຫາ</translation>
 <translation id="6187302354554850004">ຊິ້ງຂໍ້ມູນຫຼ້າສຸດ: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">ສ້າງເມື່ອ <ph name="DATE" /></translation>
 <translation id="6189413832092199491">ຍັງບໍ່ໄດ້ອ່ານ</translation>
@@ -1596,6 +1599,7 @@
 <translation id="8005666035647241369">ຫາຕົວຈັດການລະຫັດຜ່ານ Google ຢູ່ອຸປະກອນນີ້</translation>
 <translation id="8011489434346330032">ຕົວກວດສອບເວັບ</translation>
 <translation id="802154636333426148">ການດາວໂຫຼດບໍ່ສຳເລັດ</translation>
+<translation id="8023170444051056234">ທ່ານຈະສູນເສຍສິດເຂົ້າເຖິງກຸ່ມແຖບ “<ph name="GROUP_NAME" />" ທັນທີ ແລະ ລະບົບຈະລຶບກຸ່ມດັ່ງກ່າວອອກຈາກອຸປະກອນທັງໝົດຂອງທ່ານ</translation>
 <translation id="8023878949384262191">ຂະ​ຫຍາຍ​ສ່ວນ.</translation>
 <translation id="8027581147000338959">ເປີດໃນໜ້າຈໍໃໝ່</translation>
 <translation id="8032569120109842252">ກຳລັງຕິດຕາມ</translation>
@@ -1638,7 +1642,6 @@
 <translation id="8195191503358432289">ເພີ່ມ​ລະ​ຫັດ​ຜ່ານ</translation>
 <translation id="8202744799033457229">ສະແດງປະຫວັດ</translation>
 <translation id="8205564605687841303">ຍົກເລີກ</translation>
-<translation id="820568752112382238">ເວັບໄຊທີ່ເຂົ້າເບິ່ງຫຼາຍທີ່ສຸດ</translation>
 <translation id="8206354486702514201">ການຕັ້ງຄ່ານີ້ຖືກບັງຄັບໂດຍຜູ້ຄວບຄຸມຂອງທ່ານ.</translation>
 <translation id="8209050860603202033">ເປີດຮູບ</translation>
 <translation id="8211030355252954494">ທ່ານໄດ້ຮັບລະຫັດຜ່ານສຳລັບ <ph name="WEBSITE" /> ແລ້ວ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 0643586f..095eadd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">Autentifikavimo klaida</translation>
 <translation id="1780152987505130652">Uždaryti grupę</translation>
 <translation id="178400879184240105">Slaptažodžiai unikalūs</translation>
+<translation id="17906873777101817">Siūlyti išsaugoti slaptažodžius ir prieigos raktus</translation>
 <translation id="1807893857950749072">Leisti kainų stebėjimo pranešimus…</translation>
 <translation id="1810976980198522421">Atšaukti</translation>
 <translation id="1815941218935345331">Slaptažodis</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">fotoaparatas</translation>
 <translation id="6746338529702829275">Peržiūrėkite paskyros duomenis</translation>
 <translation id="6755200887046212842">Tvarkyti paskyras</translation>
+<translation id="6755733078693946548">Pasiekti slaptažodžius ir prieigos raktus iš bet kurios programos</translation>
 <translation id="6761393919622941301">Garsas</translation>
 <translation id="6779455296366983087">Naršymo duomenys bus ištrinti</translation>
 <translation id="6790502149545262384">Netrukus atidarę naują skirtuką matysite istorijas iš „<ph name="CHANNEL_NAME" />“.</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">Įspėjama, jei naudojate slaptažodį, kuris pažeistas dėl duomenų saugos pažeidimo.</translation>
 <translation id="7977482887663636093">Nauji skirtukai: <ph name="NUMBER_OF_TABS_ADDED" />, uždaryta: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">Skirtukai liks atidaryti šiame įrenginyje, bet grupė bus visam laikui ištrinta.</translation>
+<translation id="797874245254030665">Pasiekkite slaptažodžius ir prieigos raktus iš bet kurios programos</translation>
 <translation id="7982789257301363584">Tinklas</translation>
 <translation id="7987685713885608670">Kad būtų saugiau, šifruokite slaptažodžius įrenginyje prieš išsaugodami juos „Google“ slaptažodžių tvarkytuvėje.</translation>
 <translation id="798991908416757345">Skirtukų grupės nepasiekiamos</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">Slaptažodžio pridėjimas</translation>
 <translation id="8202744799033457229">Rodyti istoriją</translation>
 <translation id="8205564605687841303">Atšaukti</translation>
-<translation id="820568752112382238">Dažniausiai lankomos svetainės</translation>
 <translation id="8206354486702514201">Šį nustatymą vykdo jūsų administratorius.</translation>
 <translation id="8209050860603202033">Atidaryti vaizdą</translation>
 <translation id="8211030355252954494">Gavote <ph name="WEBSITE" /> slaptažodžius</translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">Norėdami naršyti žiniatinklį privačiai, atidarykite inkognito skirtuką.</translation>
 <translation id="8307481894409578819">Nepavyksta įkelti šio failo</translation>
 <translation id="8319076807703933069">Nauja paieška</translation>
+<translation id="8328607660158575887">Atidaryti automatinio pildymo ir slaptažodžių nustatymus</translation>
 <translation id="833647236762414178">Kurkite, saugokite ir tvarkykite slaptažodžius bei prieigos raktus, kad galėtumėte lengvai prisijungti prie svetainių ir programų. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Sukurkite atsarginę turinio kopiją ir naudokite ją bet kuriame įrenginyje.</translation>
 <translation id="8349305172487531364">Žymių juosta</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">Pasirinkite Slaptažodžių tvarkyklė, tada palieskite „Pridėti valdiklį“</translation>
 <translation id="891282356902782456">Šis slaptažodis saugomas tik šiame įrenginyje. Jei norite jį naudoti kituose įrenginiuose, išsaugokite „Google“ paskyroje (<ph name="EMAIL" />).</translation>
 <translation id="8915916167043355778">Uždaryti viską</translation>
+<translation id="892185197271200809">Visi iš karto neteks prieigos prie skirtukų grupės „<ph name="GROUP_NAME" />“, o ji bus ištrinta iš visų įrenginių</translation>
 <translation id="8921902386312975525">Siuntinių stebėjimo parinktys</translation>
 <translation id="8923178205567790913">Slaptažodžiai</translation>
 <translation id="892776311701544612">Sužinokite daugiau…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 28d49f9..711b70e1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">Paroles pievienošana</translation>
 <translation id="8202744799033457229">Vēstures rādīšana</translation>
 <translation id="8205564605687841303">Atcelt</translation>
-<translation id="820568752112382238">Biežāk apmeklētās vietnes</translation>
 <translation id="8206354486702514201">Šo iestatījumu ievieš jūsu administrators.</translation>
 <translation id="8209050860603202033">Atvērt attēlu</translation>
 <translation id="8211030355252954494">Jūs saņēmāt paroles vietnei <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index a879fd2..41b56bf9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">Додајте лозинка</translation>
 <translation id="8202744799033457229">Прикажи ја историјата</translation>
 <translation id="8205564605687841303">Откажи</translation>
-<translation id="820568752112382238">Најпосетувани веб-сајтови</translation>
 <translation id="8206354486702514201">Поставката ја наметнува администраторот.</translation>
 <translation id="8209050860603202033">отвори слика</translation>
 <translation id="8211030355252954494">Добивте лозинки за <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index b3cc266..5c25ab3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">പാസ്‌വേഡ് ചേർക്കുക</translation>
 <translation id="8202744799033457229">ചരിത്രം കാണിക്കുക</translation>
 <translation id="8205564605687841303">റദ്ദാക്കുക</translation>
-<translation id="820568752112382238">ഏറ്റവും കൂടുതൽ സന്ദർശിച്ച സൈറ്റുകൾ</translation>
 <translation id="8206354486702514201">ഈ ക്രമീകരണം നിങ്ങളുടെ അഡ്‌മിനി‌സ്‌ട്രേറ്റർ നടപ്പിലാക്കിയതാണ്.</translation>
 <translation id="8209050860603202033">ചിത്രം തുറക്കുക</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> എന്നതിന്റെ പാസ്‍വേഡുകൾ നിങ്ങൾക്ക് ലഭിച്ചു</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 2af68f6..28df82b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -651,6 +651,7 @@
 <translation id="3955740319737378355">Дууссан</translation>
 <translation id="3955822496205734389">Танд сул нууц үгнүүд байна.</translation>
 <translation id="3958312024468322930">Үүнийг үндсэн нүүрнийхээ доод талын суурилуулагч руу чирнэ үү</translation>
+<translation id="3960218941754097036">Google Lens-р дэлгэц дээрээ байгаа дурын зүйлийг хайгаарай</translation>
 <translation id="3962326069546168954">Хадгалах</translation>
 <translation id="3967327056943561740">Хавчуурга</translation>
 <translation id="3967822245660637423">Татаж авч дууслаа</translation>
@@ -693,6 +694,7 @@
 <translation id="4147897805161313378">Google Зураг</translation>
 <translation id="4148023517926189160">Энэ вебсайт файл татаж, таны календарьт нэмэхийг хүсэж байна.</translation>
 <translation id="4152011295694446843">Та хавчуургуудаа эндээс олох болно</translation>
+<translation id="4154753961803534698">Камераар хайх</translation>
 <translation id="4158491215857439601">Нууц үгний менежер</translation>
 <translation id="4163699139741158298">{count,plural, =1{Хавчуургыг "{title}"-д хадгалсан. Үүнийг зөвхөн энэ төхөөрөмжид хадгалсан.}other{{count} хавчуургыг "{title}"-д хадгалсан. Тэдгээрийг зөвхөн энэ төхөөрөмжид хадгалсан.}}</translation>
 <translation id="4168651806173792090"><ph name="LAST_FOUR_DIGITS" />-р төгссөн <ph name="NETWORK_NAME" /></translation>
@@ -1159,6 +1161,7 @@
 <translation id="6168647875670665004">Нийтлэлийн зөвлөмж</translation>
 <translation id="6169031022444660352">Бүх хадгалсан мандат үнэмлэхийг устгахын тулд та эхлээд төхөөрөмж дээрээ нууц код тохируулах ёстой.</translation>
 <translation id="6173499589275053515">Таны <ph name="EMAIL" /> Google Бүртгэлд нууц үг хадгалсан</translation>
+<translation id="6181969657494915430">Дэлгэцээс хайх</translation>
 <translation id="6187302354554850004">Хамгийн сүүлд синк хийсэн: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" />-нд үүсгэсэн</translation>
 <translation id="6189413832092199491">Уншаагүй</translation>
@@ -1596,6 +1599,7 @@
 <translation id="8005666035647241369">Энэ төхөөрөмж дээрх Google-н Нууц үгний менежерт</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">Татаж чадсангүй</translation>
+<translation id="8023170444051056234">Та “<ph name="GROUP_NAME" />" табын бүлэгт хандах эрхээ тэр даруй алдах ба уг бүлгийг таны бүх төхөөрөмжөөс устгана</translation>
 <translation id="8023878949384262191">Хэсгийг өргөтгөдөг.</translation>
 <translation id="8027581147000338959">Шинэ цонхонд нээх</translation>
 <translation id="8032569120109842252">Дагаж буй</translation>
@@ -1638,7 +1642,6 @@
 <translation id="8195191503358432289">Нууц үг нэмэх</translation>
 <translation id="8202744799033457229">Түүхийг харуулах</translation>
 <translation id="8205564605687841303">Цуцлах</translation>
-<translation id="820568752112382238">Хамгийн их зочилсон сайт</translation>
 <translation id="8206354486702514201">Энэ тохиргоог таны админаас идэвхжүүлсэн байна.</translation>
 <translation id="8209050860603202033">Зургийг нээх</translation>
 <translation id="8211030355252954494">Та <ph name="WEBSITE" />-н нууц үгнүүдийг хүлээн авсан</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 3ec4a04..d73a5fdb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">पासवर्ड जोडा</translation>
 <translation id="8202744799033457229">इतिहास दाखवा</translation>
 <translation id="8205564605687841303">रद्द करा</translation>
-<translation id="820568752112382238">सर्वाधिक भेट दिलेल्या साइट</translation>
 <translation id="8206354486702514201">या सेटिंगची अंमलबजावणी तुमच्या ॲडमिनिस्ट्रेटरकडून होते.</translation>
 <translation id="8209050860603202033">इमेज उघडा</translation>
 <translation id="8211030355252954494">तुम्हाला <ph name="WEBSITE" /> साठी पासवर्ड मिळाले आहेत</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index d58961f..8a7fb02 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">Tambah kata laluan</translation>
 <translation id="8202744799033457229">Tunjukkan sejarah</translation>
 <translation id="8205564605687841303">Batal</translation>
-<translation id="820568752112382238">Tapak yang paling kerap dilawati</translation>
 <translation id="8206354486702514201">Tetapan ini dikuatkuasakan oleh pentadbir anda.</translation>
 <translation id="8209050860603202033">Buka imej</translation>
 <translation id="8211030355252954494">Anda telah menerima kata laluan untuk <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index 3f57bf8..9d5de7d0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">ပြီးပြီ</translation>
 <translation id="3955822496205734389">သင့်တွင် အားနည်းသည့် စကားဝှက်များရှိသည်။</translation>
 <translation id="3958312024468322930">‘ပင်မစာမျက်နှာ’ အောက်ခြေရှိ ပုံသေအထိုင်နေရာသို့ ၎င်းကို ဖိဆွဲပါ</translation>
+<translation id="3960218941754097036">စခရင်ပေါ်ရှိ မည်သည့်အရာကိုမဆို Google Lens ဖြင့် ရှာခြင်း</translation>
 <translation id="3962326069546168954">သိမ်းရန်</translation>
 <translation id="3967327056943561740">လိပ်စာများ</translation>
 <translation id="3967822245660637423">ဒေါင်းလုဒ်လုပ်ခြင်း ပြည့်စုံပါပြီ</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">ဤဝဘ်ဆိုက်က ဖိုင်တစ်ဖိုင်ကို ဒေါင်းလုဒ်လုပ်ပြီး သင့်ပြက္ခဒိန်သို့ ထည့်သွင်းလိုပါသည်။</translation>
 <translation id="4152011295694446843">သင်၏လိပ်စာများကို ဤနေရာတွင် ပြပါမည်</translation>
+<translation id="4154753961803534698">ကင်မရာဖြင့် ရှာရန်</translation>
 <translation id="4158491215857439601">Password Manager</translation>
 <translation id="4163699139741158298">{count,plural, =1{လိပ်စာကို “{title}” တွင် သိမ်းလိုက်သည်။ ၎င်းကို ဤစက်တွင်သာ သိမ်းသည်။}other{လိပ်စာ {count} ခုကို “{title}” တွင် သိမ်းလိုက်သည်။ ၎င်းတို့ကို ဤစက်တွင်သာ သိမ်းသည်။}}</translation>
 <translation id="4168651806173792090"><ph name="LAST_FOUR_DIGITS" /> ဖြင့်ဆုံးသော <ph name="NETWORK_NAME" /></translation>
@@ -1157,6 +1159,7 @@
 <translation id="6168647875670665004">သတင်းဆောင်းပါး အကြံပြုချက်များ</translation>
 <translation id="6169031022444660352">သိမ်းထားသော အထောက်အထားအားလုံး ဖျက်ရန် သင့်စက်တွင် လျှို့ဝှက်ကုဒ်ကို အရင်စီစဉ်သတ်မှတ်ရမည်။</translation>
 <translation id="6173499589275053515">စကားဝှက်ကို သင်၏ Google Account <ph name="EMAIL" /> တွင် သိမ်းလိုက်သည်</translation>
+<translation id="6181969657494915430">ရှာဖွေမှုမျက်နှာပြင်</translation>
 <translation id="6187302354554850004">နောက်ဆုံး ထပ်တူပြုခြင်း: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" /> တွင် ပြုလုပ်ထားသည်</translation>
 <translation id="6189413832092199491">မဖတ်ရသေးသောစာ</translation>
@@ -1594,6 +1597,7 @@
 <translation id="8005666035647241369">ဤစက်ရှိ ‘Google စကားဝှက်မန်နေဂျာ’ သို့</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">ဒေါင်းလုဒ်လုပ်မှု မအောင်မြင်ပါ</translation>
+<translation id="8023170444051056234">သင်သည် “<ph name="GROUP_NAME" />” တဘ်အုပ်စုသုံးခွင့်ကို ချက်ချင်းဆုံးရှုံးမည်ဖြစ်ပြီး ၎င်းကို သင့်စက်အားလုံးမှ ဖျက်မည်</translation>
 <translation id="8023878949384262191">ကဏ္ဍကို ချဲ့ပေးသည်</translation>
 <translation id="8027581147000338959">ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်</translation>
 <translation id="8032569120109842252">လိုက်ကြည့်နေသည်</translation>
@@ -1636,7 +1640,6 @@
 <translation id="8195191503358432289">စကားဝှက် ထည့်ပါ</translation>
 <translation id="8202744799033457229">မှတ်တမ်း ပြပါ</translation>
 <translation id="8205564605687841303">မလုပ်တော့</translation>
-<translation id="820568752112382238">အများဆုံး ဝင်ကြည့်ထားသော ဝဘ်ဆိုက်များ</translation>
 <translation id="8206354486702514201">ဤဆက်တင်အား သင့်ကြီးကြပ်သူမှ တွန်းအားပေးထားခြင်း ဖြစ်သည်။</translation>
 <translation id="8209050860603202033">ပုံဖွင့်</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> အတွက် စကားဝှက်များ ရရှိထားသည်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 96b24c0be..a61794a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">पासवर्ड थप्नुहोस्</translation>
 <translation id="8202744799033457229">हिस्ट्री देखाउनुहोस्</translation>
 <translation id="8205564605687841303">रद्द गर्नुहोस्</translation>
-<translation id="820568752112382238">सबैभन्दा बढी हेरिएका साइटहरू</translation>
 <translation id="8206354486702514201">यो सेटिङ तपाईंको प्रशासकद्वारा जोड दिएको छ।</translation>
 <translation id="8209050860603202033">फोटो खोल्नुहोस्</translation>
 <translation id="8211030355252954494">तपाईंले <ph name="WEBSITE" /> का पासवर्डहरू प्राप्त गर्नुभएको छ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 189bfc735..d34dbc4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">Wachtwoord toevoegen</translation>
 <translation id="8202744799033457229">Geschiedenis weergeven</translation>
 <translation id="8205564605687841303">Annuleren</translation>
-<translation id="820568752112382238">Meest bezochte sites</translation>
 <translation id="8206354486702514201">Deze instelling wordt door je beheerder afgedwongen.</translation>
 <translation id="8209050860603202033">Afbeelding openen</translation>
 <translation id="8211030355252954494">Je hebt wachtwoorden gekregen voor <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 5dd91b73..0702669f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">Legg til passord</translation>
 <translation id="8202744799033457229">Vis logg</translation>
 <translation id="8205564605687841303">Avbryt</translation>
-<translation id="820568752112382238">Mest besøkte nettsteder</translation>
 <translation id="8206354486702514201">Denne innstillingen håndheves av administratoren din.</translation>
 <translation id="8209050860603202033">Åpne bildet</translation>
 <translation id="8211030355252954494">Du har mottatt passord for <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 06ce678..39f702c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">ପାସୱାର୍ଡ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8202744799033457229">ଇତିହାସ ଦେଖାନ୍ତୁ</translation>
 <translation id="8205564605687841303">ବାତିଲ୍ କରନ୍ତୁ</translation>
-<translation id="820568752112382238">ଅଧିକ ଦେଖାଯାଇଥିବା ସାଇଟ୍‍ଗୁଡ଼ିକ</translation>
 <translation id="8206354486702514201">ଏହି ସେଟିଂସ୍ ଆପଣଙ୍କର ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ଲାଗୁ କରାଯାଇଛି।</translation>
 <translation id="8209050860603202033">ଛବି ଖୋଲନ୍ତୁ</translation>
 <translation id="8211030355252954494">ଆପଣ <ph name="WEBSITE" /> ପାଇଁ ପାସୱାର୍ଡଗୁଡ଼ିକ ପାଇଛନ୍ତି</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index b9757614..2887c09 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">ਹੋ ਗਿਆ</translation>
 <translation id="3955822496205734389">ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਕਮਜ਼ੋਰ ਹਨ।</translation>
 <translation id="3958312024468322930">ਇਸਨੂੰ ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਡੌਕ ਤੱਕ ਘਸੀਟੋ</translation>
+<translation id="3960218941754097036">Google Lens ਨਾਲ ਆਪਣੀ ਸਕ੍ਰੀਨ 'ਤੇ ਮੌਜੂਦ ਸਮੱਗਰੀ ਖੋਜੋ</translation>
 <translation id="3962326069546168954">ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="3967327056943561740">ਬੁੱਕਮਾਰਕ</translation>
 <translation id="3967822245660637423">ਡਾਊਨਲੋਡ ਪੂਰਾ ਹੋਇਆ</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Photos</translation>
 <translation id="4148023517926189160">ਇਹ ਵੈੱਬਸਾਈਟ ਕੋਈ ਫ਼ਾਈਲ ਡਾਊਨਲੋਡ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ।</translation>
 <translation id="4152011295694446843">ਤੁਹਾਨੂੰ ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਇੱਥੇ ਮਿਲਣਗੇ</translation>
+<translation id="4154753961803534698">ਕੈਮਰੇ ਨਾਲ ਖੋਜੋ</translation>
 <translation id="4158491215857439601">Password Manager</translation>
 <translation id="4163699139741158298">{count,plural, =1{ਬੁੱਕਮਾਰਕ ਨੂੰ "{title}" ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ। ਇਹ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ।}one{{count} ਬੁੱਕਮਾਰਕ ਨੂੰ "{title}" ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ। ਉਨ੍ਹਾਂ ਨੂੰ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ।}other{{count} ਬੁੱਕਮਾਰਕਾਂ ਨੂੰ "{title}" ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ। ਉਨ੍ਹਾਂ ਨੂੰ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ।}}</translation>
 <translation id="4168651806173792090"><ph name="LAST_FOUR_DIGITS" /> ਨਾਲ ਖਤਮ ਹੋਣ ਵਾਲਾ <ph name="NETWORK_NAME" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">ਲੇਖਾਂ ਦੇ ਸੁਝਾਅ</translation>
 <translation id="6169031022444660352">ਰੱਖਿਅਤ ਕੀਤੇ ਗਏ ਸਾਰੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲਾਂ ਨੂੰ ਮਿਟਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਇੱਕ ਪਾਸਕੋਡ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨਾ ਪਵੇਗਾ।</translation>
 <translation id="6173499589275053515">ਪਾਸਵਰਡ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">ਖੋਜ ਸਕ੍ਰੀਨ</translation>
 <translation id="6187302354554850004">ਪਿਛਲੀ ਵਾਰ ਸਿੰਕ ਕੀਤੇ: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319"><ph name="DATE" /> ਨੂੰ ਬਣਾਇਆ ਗਿਆ</translation>
 <translation id="6189413832092199491">ਨਾ-ਪੜ੍ਹੇ ਹੋਏ ਇੰਦਰਾਜ</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">ਇਸ ਡੀਵਾਈਸ 'ਤੇ Google ਪਾਸਵਰਡ ਪ੍ਰਬੰਧਕ ਵਿੱਚ</translation>
 <translation id="8011489434346330032">ਵੈੱਬ ਨਿਰੀਖਕ</translation>
 <translation id="802154636333426148">ਡਾਊਨਲੋਡ ਅਸਫਲ ਰਿਹਾ</translation>
+<translation id="8023170444051056234">ਤੁਸੀਂ "<ph name="GROUP_NAME" />" ਟੈਬ ਗਰੁੱਪ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਗੁਆ ਦੇਵੋਗੇ ਅਤੇ ਇਸ ਨੂੰ ਤੁਹਾਡੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation>
 <translation id="8023878949384262191">ਸੈਕਸ਼ਨ ਦਾ ਵਿਸਤਾਰ ਕਰਦਾ ਹੈ।</translation>
 <translation id="8027581147000338959">ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="8032569120109842252">ਅਨੁਸਰਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">ਪਾਸਵਰਡ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="8202744799033457229">ਇਤਿਹਾਸ ਦਿਖਾਓ</translation>
 <translation id="8205564605687841303">ਰੱਦ ਕਰੋ</translation>
-<translation id="820568752112382238">ਸਭ ਤੋਂ ਵੱਧ ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ</translation>
 <translation id="8206354486702514201">ਇਹ ਸੈਟਿੰਗ ਤੁਹਾਡੇ ਪ੍ਰਬੰਧਕ ਵੱਲੋਂ ਲਾਗੂ ਕੀਤੀ ਗਈ ਹੈ।</translation>
 <translation id="8209050860603202033">ਚਿੱਤਰ ਖੋਲ੍ਹੋ</translation>
 <translation id="8211030355252954494">ਤੁਹਾਨੂੰ <ph name="WEBSITE" /> ਦੇ ਪਾਸਵਰਡ ਪ੍ਰਾਪਤ ਹੋਏ ਹਨ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 2f926bf..eb5a4e1d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">Dodawanie hasła</translation>
 <translation id="8202744799033457229">Pokaż historię</translation>
 <translation id="8205564605687841303">Anuluj</translation>
-<translation id="820568752112382238">Najczęściej odwiedzane strony</translation>
 <translation id="8206354486702514201">O tym ustawieniu decyduje administrator.</translation>
 <translation id="8209050860603202033">Otwórz grafikę</translation>
 <translation id="8211030355252954494">Ktoś przesłał Ci hasła do strony <ph name="WEBSITE" /></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 5860c2d..9effed6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -790,7 +790,7 @@
 <translation id="4592672037257622855">{count,plural, =1{Página adicionada à Lista de leitura}one{{count} página adicionada à Lista de leitura}other{{count} páginas adicionadas à Lista de leitura}}</translation>
 <translation id="459644946100970322">Ativar os alertas de preço?</translation>
 <translation id="4597892826846980979">Receber notificações de guias</translation>
-<translation id="4601095002996233687">Verificações detalhadas de downloads suspeitos.</translation>
+<translation id="4601095002996233687">Faz verificações detalhadas de downloads suspeitos.</translation>
 <translation id="4606247758155004938">O navegador é gerenciado pela sua organização.</translation>
 <translation id="4607887340472970274">Monitoramento de preços</translation>
 <translation id="4611811151908969241">Ocultar opção "Parar de seguir <ph name="DOMAIN_NAME" />"</translation>
@@ -1320,7 +1320,7 @@
 <translation id="6723740634201835758">Na Conta do Google</translation>
 <translation id="672735642903863329">Acesse seus favoritos, senhas e mais em todos os seus dispositivos.</translation>
 <translation id="6732087373923685049">câmera</translation>
-<translation id="6746338529702829275">Analisar os dados da sua conta</translation>
+<translation id="6746338529702829275">Analise os dados da sua conta</translation>
 <translation id="6755200887046212842">Gerenciar contas</translation>
 <translation id="6761393919622941301">Áudio</translation>
 <translation id="6779455296366983087">Os dados de navegação serão excluídos</translation>
@@ -1452,7 +1452,7 @@
 <translation id="7419565702166471774">Sempre usar conexões seguras</translation>
 <translation id="7425053386765766120">Adicionar forma de pagamento…</translation>
 <translation id="7425346204213733349">Alterações feitas nos seus favoritos, histórico, senhas e outras configurações não serão mais sincronizadas com sua Conta do Google. No entanto, os dados já existentes permanecerão armazenados na Conta do Google.</translation>
-<translation id="7431991332293347422">Controlar como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
+<translation id="7431991332293347422">Controle como o histórico de navegação é usado para personalizar a Pesquisa e mais</translation>
 <translation id="7435356471928173109">Desativado pelo administrador</translation>
 <translation id="7438481509621345350">Agora, você verá stories de <ph name="CHANNEL_NAME" /> quando abrir uma nova guia.</translation>
 <translation id="7451023311965289370">{count,plural, =1{Favorito salvo em "{title}"}one{Favorito salvo em "{title}"}other{Favoritos salvos em "{title}"}}</translation>
@@ -1534,7 +1534,7 @@
 <translation id="7765158879357617694">Mover</translation>
 <translation id="7772032839648071052">Confirmar senha</translation>
 <translation id="7772948288262733182">Que bom que você voltou</translation>
-<translation id="777637629667389858">Quando sua conta está conectada, essa opção protege você nos Serviços do Google.</translation>
+<translation id="777637629667389858">Protege você em todos os Serviços do Google quando sua conta está conectada.</translation>
 <translation id="7781829728241885113">Ontem</translation>
 <translation id="7788868432173225918">Dispensar exibição expandida</translation>
 <translation id="7791543448312431591">Adicionar</translation>
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">Adicionar senha</translation>
 <translation id="8202744799033457229">Mostrar histórico</translation>
 <translation id="8205564605687841303">Cancelar</translation>
-<translation id="820568752112382238">Sites mais visitados</translation>
 <translation id="8206354486702514201">Esta configuração é aplicada por seu administrador.</translation>
 <translation id="8209050860603202033">Abrir imagem</translation>
 <translation id="8211030355252954494">Você recebeu senhas de <ph name="WEBSITE" /></translation>
@@ -1871,7 +1870,7 @@
 <translation id="9100610230175265781">Senha necessária</translation>
 <translation id="91023216973987714">Formas de pagamento</translation>
 <translation id="9106655997975673326">De "<ph name="SOURCE_DEVICE" />"</translation>
-<translation id="9107664647686727385">Verificar senhas comprometidas</translation>
+<translation id="9107664647686727385">Veja se há senhas comprometidas</translation>
 <translation id="9124387962554796433">O Google pode usar seu histórico para personalizar a Pesquisa e outros Serviços do Google.</translation>
 <translation id="9130317582644834675">Ocultar "Aplicar zoom no texto"</translation>
 <translation id="913036870884277353">Abra links com facilidade em outros apps.</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 dda370b8..15477e6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -1645,7 +1645,6 @@
 <translation id="8195191503358432289">Adicione uma palavra-passe</translation>
 <translation id="8202744799033457229">Mostrar histórico</translation>
 <translation id="8205564605687841303">Cancelar</translation>
-<translation id="820568752112382238">Sites mais visitados</translation>
 <translation id="8206354486702514201">Esta definição é aplicada pelo gestor.</translation>
 <translation id="8209050860603202033">Abrir imagem</translation>
 <translation id="8211030355252954494">Recebeu palavras-passe para o Website <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index f596fa5..e592c4e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Istoric și altele</translation>
 <translation id="313283613037595347">Creează o nouă filă incognito.</translation>
 <translation id="3138611310073113613">Renunță la selecție</translation>
+<translation id="3140825265190223781">Parole și chei de acces salvate</translation>
 <translation id="3143515551205905069">Anulează sincronizarea</translation>
 <translation id="314837624430314508">Rămâi la curent cu ultimele noutăți, actualizările privind urmărirea prețurilor și multe altele.</translation>
 <translation id="3157387275655328056">Adaugă în lista de lectură</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">Terminat</translation>
 <translation id="3955822496205734389">Ai parole slabe.</translation>
 <translation id="3958312024468322930">Trage-o în bara de andocare din partea de jos a ecranului de pornire</translation>
+<translation id="3960218941754097036">Caută orice pe ecran folosind Google Lens</translation>
 <translation id="3962326069546168954">Salvează</translation>
 <translation id="3967327056943561740">Marcaje</translation>
 <translation id="3967822245660637423">Descărcare finalizată</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google Foto</translation>
 <translation id="4148023517926189160">Site-ul dorește să descarce un fișier și să-l adauge în calendar.</translation>
 <translation id="4152011295694446843">Aici vei vedea marcajele</translation>
+<translation id="4154753961803534698">Caută folosind camera foto</translation>
 <translation id="4158491215857439601">Manager de parole</translation>
 <translation id="4163699139741158298">{count,plural, =1{Marcajul s-a salvat în {title}. Se salvează numai pe acest dispozitiv.}few{{count} marcaje s-au salvat în {title}. Ele se salvează numai pe acest dispozitiv.}other{{count} de marcaje s-au salvat în {title}. Ele se salvează numai pe acest dispozitiv.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> care se termină în <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">Sugestii de articole</translation>
 <translation id="6169031022444660352">Pentru a șterge toate datele de conectare salvate, mai întâi trebuie să setezi un cod de acces pe dispozitiv.</translation>
 <translation id="6173499589275053515">Parola s-a salvat în Contul Google, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Ecran pentru căutare</translation>
 <translation id="6187302354554850004">Ultima sincronizare: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Data creării: <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Necitite</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">În Manager de parole Google pe acest dispozitiv</translation>
 <translation id="8011489434346330032">Web Inspector</translation>
 <translation id="802154636333426148">Descărcarea nu a reușit</translation>
+<translation id="8023170444051056234">Vei pierde imediat accesul la grupul de file <ph name="GROUP_NAME" />, iar acesta va fi șters de pe toate dispozitivele tale</translation>
 <translation id="8023878949384262191">Extinde secțiunea.</translation>
 <translation id="8027581147000338959">Deschideți într-o fereastră nouă</translation>
 <translation id="8032569120109842252">Urmărești</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">Adaugă parola</translation>
 <translation id="8202744799033457229">Afișează istoricul</translation>
 <translation id="8205564605687841303">Anulează</translation>
-<translation id="820568752112382238">Cele mai accesate site-uri</translation>
 <translation id="8206354486702514201">Această setare este impusă de administratorul dvs.</translation>
 <translation id="8209050860603202033">Deschideți imaginea</translation>
 <translation id="8211030355252954494">Ai primit parole pentru <ph name="WEBSITE" /></translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">Deschide o filă incognito pentru a naviga privat pe web.</translation>
 <translation id="8307481894409578819">Acest fișier nu s-a putut încărca</translation>
 <translation id="8319076807703933069">Căutare nouă</translation>
+<translation id="833647236762414178">Creează, salvează și gestionează parolele și cheile de acces pentru a te conecta cu ușurință la site-uri și aplicații. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Fă backup datelor și folosește-le pe orice dispozitiv.</translation>
 <translation id="8349305172487531364">Bara de marcaje</translation>
 <translation id="8364563001733875155">Pentru a schimba PIN-ul, mai întâi setează un cod de acces pe dispozitiv.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 152cf83..f5cb4958 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">История и другие данные</translation>
 <translation id="313283613037595347">Создать вкладку инкогнито.</translation>
 <translation id="3138611310073113613">Отменить выбор</translation>
+<translation id="3140825265190223781">Сохраненные пароли и ключи доступа</translation>
 <translation id="3143515551205905069">Отмена</translation>
 <translation id="314837624430314508">Будьте в курсе новостей, отслеживайте цены и не только.</translation>
 <translation id="3157387275655328056">Добавить в список для чтения</translation>
@@ -1641,7 +1642,6 @@
 <translation id="8195191503358432289">Добавить пароль</translation>
 <translation id="8202744799033457229">Показать историю</translation>
 <translation id="8205564605687841303">Отмена</translation>
-<translation id="820568752112382238">Часто посещаемые сайты</translation>
 <translation id="8206354486702514201">Этот параметр включен администратором.</translation>
 <translation id="8209050860603202033">Открыть изображение</translation>
 <translation id="8211030355252954494">Вы получили пароли для сайта <ph name="WEBSITE" />.</translation>
@@ -1670,6 +1670,7 @@
 <translation id="8299613349954694191">Чтобы просматривать веб-страницы анонимно, используйте режим инкогнито.</translation>
 <translation id="8307481894409578819">Ошибка при загрузке файла</translation>
 <translation id="8319076807703933069">Новый поиск</translation>
+<translation id="833647236762414178">Создавайте, сохраняйте и изменяйте пароли и ключи доступа, чтобы легко входить в аккаунты на сайтах и в приложениях. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Создайте резервную копию данных и используйте их на любом устройстве.</translation>
 <translation id="8349305172487531364">Панель закладок</translation>
 <translation id="8364563001733875155">Чтобы изменить PIN-код, установите код доступа.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 2b6fc88..d8d82d44 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">මුරපදය එක් කරන්න</translation>
 <translation id="8202744799033457229">ඉතිහාසය පෙන්වන්න</translation>
 <translation id="8205564605687841303">අවලංගු කරන්න</translation>
-<translation id="820568752112382238">වැඩියෙන් පැමිණි වෙබ් අඩවි</translation>
 <translation id="8206354486702514201">මෙම සැකසුම පරිපාලකයා විසින් බලකර ඇත.</translation>
 <translation id="8209050860603202033">රූපය විවෘත කරන්න</translation>
 <translation id="8211030355252954494">ඔබට <ph name="WEBSITE" /> සඳහා මුරපද ලැබී ඇත</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index 173d1fb..d15c1ca 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -1642,7 +1642,6 @@
 <translation id="8195191503358432289">Pridanie hesla</translation>
 <translation id="8202744799033457229">Zobrazenie histórie</translation>
 <translation id="8205564605687841303">Zrušiť</translation>
-<translation id="820568752112382238">Najnavštevovanejšie weby</translation>
 <translation id="8206354486702514201">Toto nastavenie je vynútené správcom.</translation>
 <translation id="8209050860603202033">Otvoriť obrázok</translation>
 <translation id="8211030355252954494">Dostali ste heslá webu <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 28b91c9..2bfd184 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">Končano</translation>
 <translation id="3955822496205734389">Imate šibka gesla.</translation>
 <translation id="3958312024468322930">Povlecite v vrstico Dock na dnu začetnega zaslona</translation>
+<translation id="3960218941754097036">Z Googlom Lens poiščite kar koli na zaslonu</translation>
 <translation id="3962326069546168954">Shrani</translation>
 <translation id="3967327056943561740">Zaznamki</translation>
 <translation id="3967822245660637423">Prenos končan</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google Foto</translation>
 <translation id="4148023517926189160">To spletno mesto želi prenesti datoteko in jo dodati v vaš koledar.</translation>
 <translation id="4152011295694446843">Tukaj bodo prikazani zavihki</translation>
+<translation id="4154753961803534698">Iskanje s fotoaparatom</translation>
 <translation id="4158491215857439601">Upravitelj gesel</translation>
 <translation id="4163699139741158298">{count,plural, =1{Zaznamek je shranjen v »{title}«. Shranjen je samo v tej napravi.}one{{count} zaznamek je shranjen v »{title}«. Shranjen je oziroma so samo v tej napravi.}two{{count} zaznamka sta shranjena v »{title}«. Shranjena sta oziroma so samo v tej napravi.}few{{count} zaznamki so shranjeni v »{title}«. Shranjeni so samo v tej napravi.}other{{count} zaznamkov je shranjenih v »{title}«. Shranjeni so samo v tej napravi.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> se konča z <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">Predlogi za članke</translation>
 <translation id="6169031022444660352">Če želite izbrisati vse shranjene poverilnice, morate najprej nastaviti geslo v napravi.</translation>
 <translation id="6173499589275053515">Geslo je shranjeno v računu Google, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Zaslon za iskanje</translation>
 <translation id="6187302354554850004">Nazadnje sinhronizirano: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Ustvarjeno dne <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Neprebrano</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">V Googlov upravitelj gesel v tej napravi</translation>
 <translation id="8011489434346330032">Spletni pregledovalnik</translation>
 <translation id="802154636333426148">Prenos ni uspel</translation>
+<translation id="8023170444051056234">Takoj boste izgubili dostop do skupine zavihkov »<ph name="GROUP_NAME" />« in izbrisana bo iz vseh vaših naprav</translation>
 <translation id="8023878949384262191">Razširi razdelek.</translation>
 <translation id="8027581147000338959">Odpri v novem oknu</translation>
 <translation id="8032569120109842252">Spremljate</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">Dodajanje gesla</translation>
 <translation id="8202744799033457229">Pokaži zgodovino</translation>
 <translation id="8205564605687841303">Prekliči</translation>
-<translation id="820568752112382238">Najbolj obiskana spletna mesta</translation>
 <translation id="8206354486702514201">To nastavitev je uveljavil skrbnik.</translation>
 <translation id="8209050860603202033">Odpri sliko</translation>
 <translation id="8211030355252954494">Prejeli ste gesla za spletno mesto <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index cf11119..3d3c968 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">Shto fjalëkalim</translation>
 <translation id="8202744799033457229">Shfaq historikun</translation>
 <translation id="8205564605687841303">Anulo</translation>
-<translation id="820568752112382238">Sajtet më të vizituara</translation>
 <translation id="8206354486702514201">Ky cilësim zbatohet nga administratori yt.</translation>
 <translation id="8209050860603202033">Hape imazhin</translation>
 <translation id="8211030355252954494">Ke marrë fjalëkalime për <ph name="WEBSITE" /></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 467fc9a..fcae18cf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">Greška potvrde identiteta</translation>
 <translation id="1780152987505130652">Zatvori grupu</translation>
 <translation id="178400879184240105">Vaše lozinke su jedinstvene</translation>
+<translation id="17906873777101817">Ponudi čuvanje lozinki i pristupnih ključeva</translation>
 <translation id="1807893857950749072">Dozvolite obaveštenja o praćenju cena…</translation>
 <translation id="1810976980198522421">Otkaži</translation>
 <translation id="1815941218935345331">Šifra</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">kamera</translation>
 <translation id="6746338529702829275">Pregledajte podatke o nalogu</translation>
 <translation id="6755200887046212842">Upravljajte nalozima</translation>
+<translation id="6755733078693946548">Pristupajte lozinkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="6761393919622941301">Zvuk</translation>
 <translation id="6779455296366983087">Podaci pregledanja će biti izbrisani</translation>
 <translation id="6790502149545262384">Uskoro ćete videti priče sa <ph name="CHANNEL_NAME" /> kada otvorite novu karticu.</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">Upozorava vas ako koristite lozinku koja je ugrožena pri povredi podataka.</translation>
 <translation id="7977482887663636093">Novih kartica: <ph name="NUMBER_OF_TABS_ADDED" />, zatvorenih: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">Kartice će ostati otvorene na ovom uređaju, ali će grupa biti trajno izbrisana.</translation>
+<translation id="797874245254030665">Pristupajte lozinkama i pristupnim ključevima iz bilo koje aplikacije</translation>
 <translation id="7982789257301363584">Mreža</translation>
 <translation id="7987685713885608670">Radi dodatne zaštite šifrujte lozinke na uređaju pre nego što se sačuvaju u Google menadžeru lozinki.</translation>
 <translation id="798991908416757345">Grupe kartica nisu dostupne</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">Dodajte lozinku</translation>
 <translation id="8202744799033457229">Prikazivanje istorije</translation>
 <translation id="8205564605687841303">Otkaži</translation>
-<translation id="820568752112382238">Najposećeniji sajtovi</translation>
 <translation id="8206354486702514201">Ovo podešavanje primenjuje administrator.</translation>
 <translation id="8209050860603202033">Otvori sliku</translation>
 <translation id="8211030355252954494">Primili ste lozinke za <ph name="WEBSITE" /></translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">Otvorite karticu bez arhiviranja da biste privatno pregledali veb.</translation>
 <translation id="8307481894409578819">Otpremanje ovog fajla nije uspelo</translation>
 <translation id="8319076807703933069">Nova pretraga</translation>
+<translation id="8328607660158575887">Otvorite podešavanja za automatsko popunjavanje i lozinke</translation>
 <translation id="833647236762414178">Pravite i čuvajte lozinke i pristupne ključeve i upravljajte njima da biste se lako prijavljivali na sajtove i u aplikacije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Pravite rezervne kopije sadržaja i koristite ga na bilo kom uređaju.</translation>
 <translation id="8349305172487531364">Traka sa obeleživačima</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">Izaberite Menadžer lozinki, pa dodirnite Dodaj vidžet</translation>
 <translation id="891282356902782456">Ova lozinka je sačuvana samo na ovom uređaju. Da biste je koristili na drugim uređajima, sačuvajte je na Google nalogu, <ph name="EMAIL" />.</translation>
 <translation id="8915916167043355778">Zatvorite sve</translation>
+<translation id="892185197271200809">Svi će odmah izgubiti pristup grupi kartica <ph name="GROUP_NAME" /> i ona će biti izbrisana sa svih uređaja</translation>
 <translation id="8921902386312975525">Opcije za praćenje paketa</translation>
 <translation id="8923178205567790913">Lozinke</translation>
 <translation id="892776311701544612">Saznajte više…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 14799ed..598aae8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">Грешка потврде идентитета</translation>
 <translation id="1780152987505130652">Затвори групу</translation>
 <translation id="178400879184240105">Ваше лозинке су јединствене</translation>
+<translation id="17906873777101817">Понуди чување лозинки и приступних кључева</translation>
 <translation id="1807893857950749072">Дозволите обавештења о праћењу цена…</translation>
 <translation id="1810976980198522421">Откажи</translation>
 <translation id="1815941218935345331">Шифра</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">камера</translation>
 <translation id="6746338529702829275">Прегледајте податке о налогу</translation>
 <translation id="6755200887046212842">Управљајте налозима</translation>
+<translation id="6755733078693946548">Приступајте лозинкама и приступним кључевима из било које апликације</translation>
 <translation id="6761393919622941301">Звук</translation>
 <translation id="6779455296366983087">Подаци прегледања ће бити избрисани</translation>
 <translation id="6790502149545262384">Ускоро ћете видети приче са <ph name="CHANNEL_NAME" /> када отворите нову картицу.</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">Упозорава вас ако користите лозинку која је угрожена при повреди података.</translation>
 <translation id="7977482887663636093">Нових картица: <ph name="NUMBER_OF_TABS_ADDED" />, затворених: <ph name="NUMBER_OF_TABS_REMOVED" /></translation>
 <translation id="797824194429476746">Картице ће остати отворене на овом уређају, али ће група бити трајно избрисана.</translation>
+<translation id="797874245254030665">Приступајте лозинкама и приступним кључевима из било које апликације</translation>
 <translation id="7982789257301363584">Мрежа</translation>
 <translation id="7987685713885608670">Ради додатне заштите шифрујте лозинке на уређају пре него што се сачувају у Google менаџеру лозинки.</translation>
 <translation id="798991908416757345">Групе картица нису доступне</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">Додајте лозинку</translation>
 <translation id="8202744799033457229">Приказивање историје</translation>
 <translation id="8205564605687841303">Откажи</translation>
-<translation id="820568752112382238">Најпосећенији сајтови</translation>
 <translation id="8206354486702514201">Ово подешавање примењује администратор.</translation>
 <translation id="8209050860603202033">Отвори слику</translation>
 <translation id="8211030355252954494">Примили сте лозинке за <ph name="WEBSITE" /></translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">Отворите картицу без архивирања да бисте приватно прегледали веб.</translation>
 <translation id="8307481894409578819">Отпремање овог фајла није успело</translation>
 <translation id="8319076807703933069">Нова претрага</translation>
+<translation id="8328607660158575887">Отворите подешавања за аутоматско попуњавање и лозинке</translation>
 <translation id="833647236762414178">Правите и чувајте лозинке и приступне кључеве и управљајте њима да бисте се лако пријављивали на сајтове и у апликације. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Правите резервне копије садржаја и користите га на било ком уређају.</translation>
 <translation id="8349305172487531364">Трака са обележивачима</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">Изаберите Менаџер лозинки, па додирните Додај виџет</translation>
 <translation id="891282356902782456">Ова лозинка је сачувана само на овом уређају. Да бисте је користили на другим уређајима, сачувајте је на Google налогу, <ph name="EMAIL" />.</translation>
 <translation id="8915916167043355778">Затворите све</translation>
+<translation id="892185197271200809">Сви ће одмах изгубити приступ групи картица <ph name="GROUP_NAME" /> и она ће бити избрисана са свих уређаја</translation>
 <translation id="8921902386312975525">Опције за праћење пакета</translation>
 <translation id="8923178205567790913">Лозинке</translation>
 <translation id="892776311701544612">Сазнајте више…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index a50fe16..fd5f7fd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -1638,7 +1638,6 @@
 <translation id="8195191503358432289">Lägg till lösenord</translation>
 <translation id="8202744799033457229">Visa historik</translation>
 <translation id="8205564605687841303">Avbryt</translation>
-<translation id="820568752112382238">Mest besökta webbplatser</translation>
 <translation id="8206354486702514201">Administratören har gjort den här inställningen obligatorisk.</translation>
 <translation id="8209050860603202033">Öppna bild</translation>
 <translation id="8211030355252954494">Du har fått lösenord för <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 2cd76fd1..faf910d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">Historia na zaidi</translation>
 <translation id="313283613037595347">Fungua kichupo fiche kipya.</translation>
 <translation id="3138611310073113613">Futa uteuzi ulioufanya</translation>
+<translation id="3140825265190223781">Manenosiri na funguo za siri zilizohifadhiwa</translation>
 <translation id="3143515551205905069">Ghairi usawazishaji</translation>
 <translation id="314837624430314508">Endelea kupokea habari za hivi punde, masasisho ya ufuatiliaji wa bei na mengineyo.</translation>
 <translation id="3157387275655328056">Ongeza kwenye Orodha ya Kusoma</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">Nimemaliza</translation>
 <translation id="3955822496205734389">Una manenosiri dhaifu.</translation>
 <translation id="3958312024468322930">Iburute hadi sehemu iliyopachikwa upande wa chini wa Skrini yako ya Kwanza</translation>
+<translation id="3960218941754097036">Tafuta chochote kwenye skrini yako ukitumia Lenzi ya Google</translation>
 <translation id="3962326069546168954">Hifadhi</translation>
 <translation id="3967327056943561740">Alamisho</translation>
 <translation id="3967822245660637423">Imemaliza kupakua</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Picha kwenye Google</translation>
 <translation id="4148023517926189160">Tovuti hii inataka ipakue faili na iiweke kwenye kalenda yako.</translation>
 <translation id="4152011295694446843">Utapata alamisho zako hapa</translation>
+<translation id="4154753961803534698">Tafuta ukitumia kamera</translation>
 <translation id="4158491215857439601">Kidhibiti cha Manenosiri</translation>
 <translation id="4163699139741158298">{count,plural, =1{Alamisho imehifadhiwa kwenye "{title}". Imehifadhiwa katika kifaa hiki pekee.}other{Alamisho {count} zimehifadhiwa kwenye "{title}" katika kifaa hiki pekee.}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" /> inayoisha kwa <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">Mapendekezo ya makala</translation>
 <translation id="6169031022444660352">Ili ufute vitambulisho vyote ulivyohifadhi, ni lazima kwanza uweke mipangilio ya namba ya siri kwenye kifaa chako.</translation>
 <translation id="6173499589275053515">Manenosiri yaliyohifadhiwa kwenye Akaunti yako ya Google, <ph name="EMAIL" /></translation>
+<translation id="6181969657494915430">Skrini ya kutafutia</translation>
 <translation id="6187302354554850004">Ilisawazishwa mara ya mwisho: <ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">Yalitayarishwa tarehe <ph name="DATE" /></translation>
 <translation id="6189413832092199491">Ambazo Hazijasomwa</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">Kwenye Kidhibiti cha Manenosiri cha Google katika kifaa hiki</translation>
 <translation id="8011489434346330032">Kikaguzi cha Wavuti</translation>
 <translation id="802154636333426148">Haikuweza kupakua</translation>
+<translation id="8023170444051056234">Hutaweza tena kufikia kikundi cha vichupo cha “<ph name="GROUP_NAME" />" papo hapo na kitafutwa kwenye vifaa vyako vyote</translation>
 <translation id="8023878949384262191">Hupanua sehemu.</translation>
 <translation id="8027581147000338959">Fungua Katika Dirisha Jipya</translation>
 <translation id="8032569120109842252">Unafuatilia</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">Weka nenosiri</translation>
 <translation id="8202744799033457229">Kuonyesha historia</translation>
 <translation id="8205564605687841303">Ghairi</translation>
-<translation id="820568752112382238">Tovuti zilizotembelewa zaidi</translation>
 <translation id="8206354486702514201">Mpangilio huu umetekelezwa na msimamizi wako.</translation>
 <translation id="8209050860603202033">Fungua picha</translation>
 <translation id="8211030355252954494">Umepokea manenosiri ya <ph name="WEBSITE" /></translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">Fungua kichupo fiche ili uvinjari wavuti kwa njia ya faragha.</translation>
 <translation id="8307481894409578819">Imeshindwa kupakia faili hii</translation>
 <translation id="8319076807703933069">Utafutaji Mpya</translation>
+<translation id="833647236762414178">Buni, hifadhi na udhibiti manenosiri na funguo za siri ili uingie kwa urahisi katika akaunti za tovuti na programu. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Hifadhi nakala ya maudhui yako ili uyatumie kwenye kifaa chochote.</translation>
 <translation id="8349305172487531364">Sehemu ya Alamisho</translation>
 <translation id="8364563001733875155">Ili ubadilishe PIN yako, weka kwanza namba ya siri kwenye kifaa chako.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index f2ac12f..9ddc886 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">கடவுச்சொல்லைச் சேருங்கள்</translation>
 <translation id="8202744799033457229">செயல்பாடுகளைக் காட்டு</translation>
 <translation id="8205564605687841303">ரத்துசெய்</translation>
-<translation id="820568752112382238">அதிகம் பார்த்த தளங்கள்</translation>
 <translation id="8206354486702514201">இந்த அமைப்பு உங்கள் நிர்வாகியால் செயலாக்கப்பட்டுள்ளது.</translation>
 <translation id="8209050860603202033">படத்தைத் திற</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> தளத்திற்கான கடவுச்சொற்களைப் பெற்றுள்ளீர்கள்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 462ac37c..6fa9940 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">హిస్టరీ, ఇంకా మరెన్నో</translation>
 <translation id="313283613037595347">కొత్త అజ్ఞాత ట్యాబ్‌ను క్రియేట్ చేయండి.</translation>
 <translation id="3138611310073113613">ఎంపికను విస్మరించండి</translation>
+<translation id="3140825265190223781">సేవ్ చేసిన పాస్‌వర్డ్‌లు, పాస్-కీలు</translation>
 <translation id="3143515551205905069">సింక్‌ను రద్దు చేయండి</translation>
 <translation id="314837624430314508">తాజా వార్తలు, ధరల ట్రాకింగ్ అప్‌డేట్‌లు, మరిన్నింటిని తెలుసుకోండి.</translation>
 <translation id="3157387275655328056">పఠన లిస్ట్‌కు జోడించండి</translation>
@@ -1641,7 +1642,6 @@
 <translation id="8195191503358432289">పాస్‌వర్డ్‌ను జోడించండి</translation>
 <translation id="8202744799033457229">హిస్టరీని చూడండి</translation>
 <translation id="8205564605687841303">రద్దు చేయండి</translation>
-<translation id="820568752112382238">అత్యంత ఎక్కువగా సందర్శించిన సైట్‌లు</translation>
 <translation id="8206354486702514201">ఈ సెట్టింగ్ మీ నిర్వాహకుడి ద్వారా అమలు చేయబడింది.</translation>
 <translation id="8209050860603202033">చిత్రాన్ని తెరువు</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" />‌కు సంబంధించి మీరు పాస్‌వర్డ్‌లను అందుకున్నారు</translation>
@@ -1670,6 +1670,7 @@
 <translation id="8299613349954694191">వెబ్‌ను ప్రైవేట్‌గా బ్రౌజ్ చేయడానికి అజ్ఞాత ట్యాబ్‌ను తెరవండి.</translation>
 <translation id="8307481894409578819">ఈ ఫైల్ అప్‌లోడ్ చేయడం సాధ్యపడలేదు</translation>
 <translation id="8319076807703933069">కొత్త శోధన</translation>
+<translation id="833647236762414178">సైట్‌లు, యాప్‌లలో సులభంగా సైన్ ఇన్ చేసేందుకు మీ పాస్‌వర్డ్‌లు, పాస్-కీలను క్రియేట్ చేయండి, సేవ్ చేయండి, మేనేజ్ చేయండి. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">మీ అంశాలను బ్యాకప్ చేసి, వాటిని ఏ పరికరంలో అయినా ఉపయోగించండి.</translation>
 <translation id="8349305172487531364">బుక్‌మార్క్‌ల బార్‌</translation>
 <translation id="8364563001733875155">మీ PINను మార్చడానికి, ముందుగా మీ పరికరంలో పాస్‌కోడ్‌ను సెటప్ చేయండి.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index a4c820d..86582d0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">ข้อผิดพลาดในการตรวจสอบสิทธิ์</translation>
 <translation id="1780152987505130652">ปิดกลุ่ม</translation>
 <translation id="178400879184240105">รหัสผ่านของคุณไม่ซ้ำกันเลย</translation>
+<translation id="17906873777101817">เสนอให้บันทึกรหัสผ่านและพาสคีย์</translation>
 <translation id="1807893857950749072">อนุญาตการแจ้งเตือนการติดตามราคา…</translation>
 <translation id="1810976980198522421">ยกเลิก</translation>
 <translation id="1815941218935345331">รหัสผ่าน</translation>
@@ -1323,6 +1324,7 @@
 <translation id="6732087373923685049">กล้อง</translation>
 <translation id="6746338529702829275">ตรวจสอบข้อมูลบัญชีของคุณ</translation>
 <translation id="6755200887046212842">จัดการบัญชี</translation>
+<translation id="6755733078693946548">เข้าถึงรหัสผ่านและพาสคีย์จากแอปใดก็ได้</translation>
 <translation id="6761393919622941301">เสียง</translation>
 <translation id="6779455296366983087">ข้อมูลการท่องเว็บจะถูกลบ</translation>
 <translation id="6790502149545262384">เร็วๆ นี้คุณจะเห็นเรื่องราวจาก <ph name="CHANNEL_NAME" /> เมื่อเปิดแท็บใหม่</translation>
@@ -1590,6 +1592,7 @@
 <translation id="7977451675950311423">เตือนคุณหากใช้รหัสผ่านที่ถูกละเมิดในการละเมิดข้อมูล</translation>
 <translation id="7977482887663636093">แท็บใหม่ <ph name="NUMBER_OF_TABS_ADDED" /> แท็บ ปิดไปแล้ว <ph name="NUMBER_OF_TABS_REMOVED" /> แท็บ</translation>
 <translation id="797824194429476746">แท็บจะยังคงเปิดอยู่ในอุปกรณ์นี้ แต่ระบบจะลบกลุ่มอย่างถาวร</translation>
+<translation id="797874245254030665">เข้าถึงรหัสผ่านและพาสคีย์จากแอปใดก็ได้</translation>
 <translation id="7982789257301363584">เครือข่าย</translation>
 <translation id="7987685713885608670">เข้ารหัสให้แก่รหัสผ่านในอุปกรณ์ก่อนบันทึกลงในเครื่องมือจัดการรหัสผ่านบน Google เพื่อเพิ่มความปลอดภัย</translation>
 <translation id="798991908416757345">กลุ่มแท็บไม่พร้อมใช้งาน</translation>
@@ -1642,7 +1645,6 @@
 <translation id="8195191503358432289">เพิ่มรหัสผ่าน</translation>
 <translation id="8202744799033457229">แสดงประวัติการเข้าชม</translation>
 <translation id="8205564605687841303">ยกเลิก</translation>
-<translation id="820568752112382238">เว็บไซต์ที่เข้าชมบ่อยที่สุด</translation>
 <translation id="8206354486702514201">ผู้ดูแลระบบของคุณกำหนดให้ใช้การตั้งค่านี้</translation>
 <translation id="8209050860603202033">เปิดรูปภาพ</translation>
 <translation id="8211030355252954494">คุณได้รับรหัสผ่านสำหรับ <ph name="WEBSITE" /></translation>
@@ -1671,6 +1673,7 @@
 <translation id="8299613349954694191">เปิดแท็บที่ไม่ระบุตัวตนเพื่อท่องเว็บในแบบส่วนตัว</translation>
 <translation id="8307481894409578819">อัปโหลดไฟล์นี้ไม่ได้</translation>
 <translation id="8319076807703933069">ค้นหาใหม่</translation>
+<translation id="8328607660158575887">เปิดการตั้งค่าการป้อนข้อความอัตโนมัติและรหัสผ่าน</translation>
 <translation id="833647236762414178">สร้าง บันทึก และจัดการรหัสผ่านและพาสคีย์เพื่อให้ลงชื่อเข้าใช้เว็บไซต์และแอปได้โดยง่าย <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">สำรองข้อมูลและใช้ในอุปกรณ์เครื่องใดก็ได้</translation>
 <translation id="8349305172487531364">แถบบุ๊กมาร์ก</translation>
@@ -1823,6 +1826,7 @@
 <translation id="8909459547399237818">เลือกเครื่องมือจัดการรหัสผ่าน แล้วแตะ "เพิ่มวิดเจ็ต"</translation>
 <translation id="891282356902782456">รหัสผ่านข้างต้นจะบันทึกไว้ในอุปกรณ์นี้เท่านั้น หากต้องการใช้งานในอุปกรณ์อื่น ให้บันทึกไว้ในบัญชี Google <ph name="EMAIL" /></translation>
 <translation id="8915916167043355778">ปิดทั้งหมด</translation>
+<translation id="892185197271200809">ทุกคนจะเสียสิทธิ์เข้าถึงกลุ่มแท็บ "<ph name="GROUP_NAME" />" ทันที และระบบจะลบกลุ่มนี้ออกจากอุปกรณ์ทุกเครื่อง</translation>
 <translation id="8921902386312975525">ตัวเลือกในการติดตามพัสดุ</translation>
 <translation id="8923178205567790913">รหัสผ่าน</translation>
 <translation id="892776311701544612">ดูข้อมูลเพิ่มเติม…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 7223c37..4acd2dd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Şifre ekleyin</translation>
 <translation id="8202744799033457229">Geçmişi göster</translation>
 <translation id="8205564605687841303">İptal</translation>
-<translation id="820568752112382238">En çok ziyaret edilen siteler</translation>
 <translation id="8206354486702514201">Bu seçenek, yöneticiniz tarafınızdan denetleniyor.</translation>
 <translation id="8209050860603202033">Resmi aç</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> için birden fazla şifre aldınız</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 848c536..7730bb5c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Додати пароль</translation>
 <translation id="8202744799033457229">Показати історію</translation>
 <translation id="8205564605687841303">Скасувати</translation>
-<translation id="820568752112382238">Сайти, які часто відвідуються</translation>
 <translation id="8206354486702514201">Це налаштування застосовується вашим адміністратором.</translation>
 <translation id="8209050860603202033">Відкрити зображення</translation>
 <translation id="8211030355252954494">Ви отримали паролі для сайту <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 738204a..f870585 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -1641,7 +1641,6 @@
 <translation id="8195191503358432289">پاس ورڈ شامل کریں</translation>
 <translation id="8202744799033457229">سرگزشت دکھائیں</translation>
 <translation id="8205564605687841303">منسوخ کریں</translation>
-<translation id="820568752112382238">سب سے زیادہ ملاحظہ کردہ سائٹس</translation>
 <translation id="8206354486702514201">اس ترتیب کو آپ کے منتظم نے نافذ کیا ہے۔</translation>
 <translation id="8209050860603202033">تصویر کھولیں</translation>
 <translation id="8211030355252954494">آپ کو <ph name="WEBSITE" /> کے لیے پاس ورڈز موصول ہوئے ہیں</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index 0242f35..faa83599 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -494,6 +494,7 @@
 <translation id="3130863904455712965">Tarix va boshqa</translation>
 <translation id="313283613037595347">Yangi inkognito varaq ochish.</translation>
 <translation id="3138611310073113613">Tanlovni rad etish</translation>
+<translation id="3140825265190223781">Saqlangan parollar va kirish kalitlari</translation>
 <translation id="3143515551205905069">Sinxronizatsiyani bekor qilish</translation>
 <translation id="314837624430314508">Oxirgi yangiliklar, narx oʻzgarishi kuzatuvi kabi narsalardan xabardor boʻling.</translation>
 <translation id="3157387275655328056">Mutolaa ro‘yxatiga qo‘shish</translation>
@@ -1644,7 +1645,6 @@
 <translation id="8195191503358432289">Parol qoʻshish</translation>
 <translation id="8202744799033457229">Tarixni ochish</translation>
 <translation id="8205564605687841303">Bekor qilish</translation>
-<translation id="820568752112382238">Eng koʻp ochilgan saytlar</translation>
 <translation id="8206354486702514201">Bu parametr administrator tomonidan yoqilgan.</translation>
 <translation id="8209050860603202033">Rasmni ochish</translation>
 <translation id="8211030355252954494"><ph name="WEBSITE" /> uchun parollar oldingiz</translation>
@@ -1674,6 +1674,7 @@
 <translation id="8307481894409578819">Bu faylni yuklash imkonsiz</translation>
 <translation id="8319076807703933069">Yangi qidiruv</translation>
 <translation id="8328607660158575887">Avtomatik kiritish va parollar sozlamalarini ochish</translation>
+<translation id="833647236762414178">Sayt va ilovalarga oson kirish uchun parollar va kirish kalitlarini yarating, saqlang va boshqaring. <ph name="BEGIN_LINK" />Batafsil<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">Maʼlumotlaringizni zaxiralang va istalgan qurilmada oching.</translation>
 <translation id="8349305172487531364">Xatcho‘plar paneli</translation>
 <translation id="8364563001733875155">PIN kodni oʻzgartirish uchun qurilmada kirish kodini sozlang</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 7b7ed1b..1a81356 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Thêm mật khẩu</translation>
 <translation id="8202744799033457229">Hiển thị nhật ký</translation>
 <translation id="8205564605687841303">Huỷ</translation>
-<translation id="820568752112382238">Các trang web truy cập nhiều nhất</translation>
 <translation id="8206354486702514201">Cài đặt này được quản trị viên của bạn thực thi.</translation>
 <translation id="8209050860603202033">Mở ảnh</translation>
 <translation id="8211030355252954494">Bạn đã nhận được mật khẩu cho <ph name="WEBSITE" /></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 7d6b2aa..d5102a7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -191,6 +191,7 @@
 <translation id="1779354709911146450">身份验证错误</translation>
 <translation id="1780152987505130652">关闭组</translation>
 <translation id="178400879184240105">您的每个密码都互不重复</translation>
+<translation id="17906873777101817">主动询问是否保存密码和通行密钥</translation>
 <translation id="1807893857950749072">允许接收价格跟踪通知…</translation>
 <translation id="1810976980198522421">取消</translation>
 <translation id="1815941218935345331">密码</translation>
@@ -493,6 +494,7 @@
 <translation id="3130863904455712965">历史记录和其他内容</translation>
 <translation id="313283613037595347">创建新的无痕式标签页。</translation>
 <translation id="3138611310073113613">舍弃所做选择</translation>
+<translation id="3140825265190223781">已保存的密码和通行密钥</translation>
 <translation id="3143515551205905069">取消同步</translation>
 <translation id="314837624430314508">及时了解最新资讯、价格跟踪动态等。</translation>
 <translation id="3157387275655328056">添加到阅读清单</translation>
@@ -650,6 +652,7 @@
 <translation id="3955740319737378355">完成</translation>
 <translation id="3955822496205734389">您有些密码的安全系数较低。</translation>
 <translation id="3958312024468322930">将图标拖动到主屏幕底部的程序坞中</translation>
+<translation id="3960218941754097036">使用 Google 智能镜头搜索屏幕上的任何内容</translation>
 <translation id="3962326069546168954">保存</translation>
 <translation id="3967327056943561740">书签</translation>
 <translation id="3967822245660637423">下载完毕</translation>
@@ -692,6 +695,7 @@
 <translation id="4147897805161313378">Google 相册</translation>
 <translation id="4148023517926189160">此网站想下载文件并将其添加到您的日历中。</translation>
 <translation id="4152011295694446843">您的书签会显示在此处</translation>
+<translation id="4154753961803534698">拍照搜索</translation>
 <translation id="4158491215857439601">密码管理工具</translation>
 <translation id="4163699139741158298">{count,plural, =1{书签已保存到“{title}”,而且只保存在此设备上。}other{{count} 个书签已保存到“{title}”,而且只保存在此设备上。}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />,后四位数字为 <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1162,7 @@
 <translation id="6168647875670665004">文章推荐</translation>
 <translation id="6169031022444660352">如要删除所有已保存的凭据,您必须先在设备上设置密码。</translation>
 <translation id="6173499589275053515">密码已保存到您的 Google 账号 <ph name="EMAIL" /> 中</translation>
+<translation id="6181969657494915430">搜索屏幕</translation>
 <translation id="6187302354554850004">上次同步时间:<ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">创建日期:<ph name="DATE" /></translation>
 <translation id="6189413832092199491">未读</translation>
@@ -1319,6 +1324,7 @@
 <translation id="6732087373923685049">摄像头</translation>
 <translation id="6746338529702829275">检查您的账号数据</translation>
 <translation id="6755200887046212842">管理账号</translation>
+<translation id="6755733078693946548">从任意应用中获取密码和通行密钥</translation>
 <translation id="6761393919622941301">音频</translation>
 <translation id="6779455296366983087">您的浏览数据将被删除</translation>
 <translation id="6790502149545262384">不久之后,当打开新标签页时,您会看到来自<ph name="CHANNEL_NAME" />的故事。</translation>
@@ -1586,6 +1592,7 @@
 <translation id="7977451675950311423">若您使用的密码遭遇了数据泄露,向您发出警告。</translation>
 <translation id="7977482887663636093"><ph name="NUMBER_OF_TABS_ADDED" /> 个新标签页,<ph name="NUMBER_OF_TABS_REMOVED" /> 个已关闭</translation>
 <translation id="797824194429476746">相应标签页将在此设备上保持打开状态,但分组将被永久删除。</translation>
+<translation id="797874245254030665">从任意应用中获取您的密码和通行密钥</translation>
 <translation id="7982789257301363584">网络</translation>
 <translation id="7987685713885608670">为了提高安全性,请先在设备上对密码进行加密,然后再将其保存到 Google 密码管理工具中。</translation>
 <translation id="798991908416757345">标签页分组不可用</translation>
@@ -1595,6 +1602,7 @@
 <translation id="8005666035647241369">保存到此设备上的 Google 密码管理工具中</translation>
 <translation id="8011489434346330032">网页检查器</translation>
 <translation id="802154636333426148">下载失败</translation>
+<translation id="8023170444051056234">您将立即失去对标签页分组“<ph name="GROUP_NAME" />”的访问权限,并且该分组将从您的所有设备中删除</translation>
 <translation id="8023878949384262191">展开此部分。</translation>
 <translation id="8027581147000338959">在新窗口中打开</translation>
 <translation id="8032569120109842252">已关注</translation>
@@ -1637,7 +1645,6 @@
 <translation id="8195191503358432289">添加密码</translation>
 <translation id="8202744799033457229">显示历史记录</translation>
 <translation id="8205564605687841303">取消</translation>
-<translation id="820568752112382238">最常访问的网站</translation>
 <translation id="8206354486702514201">此设置是由您的管理员执行的。</translation>
 <translation id="8209050860603202033">打开图片</translation>
 <translation id="8211030355252954494">您收到了多个用于登录 <ph name="WEBSITE" /> 的密码</translation>
@@ -1666,6 +1673,8 @@
 <translation id="8299613349954694191">打开一个无痕式标签页即可私密地浏览网页。</translation>
 <translation id="8307481894409578819">无法上传此文件</translation>
 <translation id="8319076807703933069">新搜索</translation>
+<translation id="8328607660158575887">打开“自动填充与密码”设置</translation>
+<translation id="833647236762414178">您可以创建、保存和管理密码和通行密钥,以便轻松登录网站和应用。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">备份您的资料,在任何设备上使用</translation>
 <translation id="8349305172487531364">书签栏</translation>
 <translation id="8364563001733875155">如要更改 PIN 码,请先在设备上设置密码。</translation>
@@ -1817,6 +1826,7 @@
 <translation id="8909459547399237818">选择“密码管理工具”,然后点按“添加小组件”</translation>
 <translation id="891282356902782456">这个密码仅会保存到此设备上。如果想在您的其他设备上使用它,请将它保存到您的 Google 账号 <ph name="EMAIL" /> 中。</translation>
 <translation id="8915916167043355778">全部关闭</translation>
+<translation id="892185197271200809">所有人将立即失去对标签页分组“<ph name="GROUP_NAME" />”的访问权限,并且该分组将从所有设备中删除</translation>
 <translation id="8921902386312975525">包裹跟踪选项</translation>
 <translation id="8923178205567790913">密码</translation>
 <translation id="892776311701544612">了解详情…</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 614be1a6..3d3e2a07 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -493,6 +493,7 @@
 <translation id="3130863904455712965">記錄和其他</translation>
 <translation id="313283613037595347">新增無痕式分頁。</translation>
 <translation id="3138611310073113613">要捨棄所選項目嗎?</translation>
+<translation id="3140825265190223781">已儲存的密碼和密鑰</translation>
 <translation id="3143515551205905069">取消同步處理</translation>
 <translation id="314837624430314508">隨時掌握最新消息、價格追蹤動態等資訊。</translation>
 <translation id="3157387275655328056">新增至閱讀清單</translation>
@@ -650,6 +651,7 @@
 <translation id="3955740319737378355">完成</translation>
 <translation id="3955822496205734389">你有安全度低的密碼。</translation>
 <translation id="3958312024468322930">將圖示拖曳至主畫面底部的 Dock</translation>
+<translation id="3960218941754097036">使用「Google 智能鏡頭」搜尋畫面上的任何內容</translation>
 <translation id="3962326069546168954">儲存</translation>
 <translation id="3967327056943561740">書籤</translation>
 <translation id="3967822245660637423">下載完成</translation>
@@ -692,6 +694,7 @@
 <translation id="4147897805161313378">Google 相片</translation>
 <translation id="4148023517926189160">此網站想下載檔案並將其新增至您的日曆中。</translation>
 <translation id="4152011295694446843">您可在此查看書籤</translation>
+<translation id="4154753961803534698">透過相機搜尋</translation>
 <translation id="4158491215857439601">密碼管理工具</translation>
 <translation id="4163699139741158298">{count,plural, =1{書籤已儲存至「{title}」,且只會儲存至此裝置。}other{{count} 個書籤已儲存至「{title}」,且只會儲存至此裝置。}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />,尾碼係 <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1161,7 @@
 <translation id="6168647875670665004">文章建議</translation>
 <translation id="6169031022444660352">如要刪除所有已儲存的憑證,你必須先為裝置設定密碼。</translation>
 <translation id="6173499589275053515">密碼已儲存至您的 Google 帳戶 (<ph name="EMAIL" />)</translation>
+<translation id="6181969657494915430">搜尋畫面</translation>
 <translation id="6187302354554850004">上次同步時間:<ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">建立時間:<ph name="DATE" /></translation>
 <translation id="6189413832092199491">未讀</translation>
@@ -1595,6 +1599,7 @@
 <translation id="8005666035647241369">儲存至此裝置的「Google 密碼管理工具」</translation>
 <translation id="8011489434346330032">網絡檢查工具</translation>
 <translation id="802154636333426148">下載失敗</translation>
+<translation id="8023170444051056234">你將立即無法再存取「<ph name="GROUP_NAME" />」分頁群組,此分頁群組亦會從你的所有裝置刪除</translation>
 <translation id="8023878949384262191">展開嗰個部份。</translation>
 <translation id="8027581147000338959">在新視窗中開啟</translation>
 <translation id="8032569120109842252">追蹤中</translation>
@@ -1637,7 +1642,6 @@
 <translation id="8195191503358432289">新增密碼</translation>
 <translation id="8202744799033457229">顯示記錄</translation>
 <translation id="8205564605687841303">取消</translation>
-<translation id="820568752112382238">最常瀏覽的網站</translation>
 <translation id="8206354486702514201">這項設定由管理員執行。</translation>
 <translation id="8209050860603202033">開啟圖片</translation>
 <translation id="8211030355252954494">你已收到 <ph name="WEBSITE" /> 的新密碼</translation>
@@ -1666,6 +1670,7 @@
 <translation id="8299613349954694191">開啟無痕式分頁就能以私密模式瀏覽網頁。</translation>
 <translation id="8307481894409578819">無法上載這個檔案</translation>
 <translation id="8319076807703933069">新搜尋</translation>
+<translation id="833647236762414178">建立、儲存及管理密碼和密鑰,輕鬆登入網站和應用程式。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="8343993175958086504">備份資料即可在任何裝置上使用。</translation>
 <translation id="8349305172487531364">書籤列</translation>
 <translation id="8364563001733875155">如要更改 PIN,請先在裝置上設定密碼。</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 4335a88..f52dc6a4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -650,6 +650,7 @@
 <translation id="3955740319737378355">完成</translation>
 <translation id="3955822496205734389">你有多組低強度密碼。</translation>
 <translation id="3958312024468322930">將圖示拖曳到主畫面底部的 Dock</translation>
+<translation id="3960218941754097036">使用 Google 智慧鏡頭搜尋畫面上的內容</translation>
 <translation id="3962326069546168954">儲存</translation>
 <translation id="3967327056943561740">書籤</translation>
 <translation id="3967822245660637423">下載完成</translation>
@@ -692,6 +693,7 @@
 <translation id="4147897805161313378">Google 相簿</translation>
 <translation id="4148023517926189160">這個網站想要下載檔案並將其新增至你的日曆中。</translation>
 <translation id="4152011295694446843">這裡會顯示你的書籤</translation>
+<translation id="4154753961803534698">透過相機搜尋</translation>
 <translation id="4158491215857439601">密碼管理工具</translation>
 <translation id="4163699139741158298">{count,plural, =1{這個書籤已儲存到「{title}」,且只會儲存在這部裝置。}other{{count} 個書籤已儲存到「{title}」,且只會儲存在這部裝置。}}</translation>
 <translation id="4168651806173792090"><ph name="NETWORK_NAME" />,末四碼為 <ph name="LAST_FOUR_DIGITS" /></translation>
@@ -1158,6 +1160,7 @@
 <translation id="6168647875670665004">文章建議</translation>
 <translation id="6169031022444660352">必須先在裝置上設定螢幕鎖定密碼,才能刪除所有已儲存的憑證。</translation>
 <translation id="6173499589275053515">密碼已儲存到 Google 帳戶 (<ph name="EMAIL" />)</translation>
+<translation id="6181969657494915430">搜尋畫面</translation>
 <translation id="6187302354554850004">上次同步處理時間:<ph name="LAST_USED_TIME" /></translation>
 <translation id="6188737759358894319">建立時間:<ph name="DATE" /></translation>
 <translation id="6189413832092199491">未讀取</translation>
@@ -1595,6 +1598,7 @@
 <translation id="8005666035647241369">儲存至這部裝置的 Google 密碼管理員</translation>
 <translation id="8011489434346330032">網頁檢閱器</translation>
 <translation id="802154636333426148">下載失敗</translation>
+<translation id="8023170444051056234">你將立即失去「<ph name="GROUP_NAME" />」分頁群組的存取權,且該群組會從你的所有裝置中刪除</translation>
 <translation id="8023878949384262191">展開這個專區。</translation>
 <translation id="8027581147000338959">在新視窗中開啟</translation>
 <translation id="8032569120109842252">追蹤中</translation>
@@ -1637,7 +1641,6 @@
 <translation id="8195191503358432289">新增密碼</translation>
 <translation id="8202744799033457229">顯示歷史記錄</translation>
 <translation id="8205564605687841303">取消</translation>
-<translation id="820568752112382238">最常造訪的網站</translation>
 <translation id="8206354486702514201">這項設定由管理員執行。</translation>
 <translation id="8209050860603202033">開啟圖片</translation>
 <translation id="8211030355252954494">你收到「<ph name="WEBSITE" />」的密碼</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index d31ef81..694d969 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -1637,7 +1637,6 @@
 <translation id="8195191503358432289">Engeza iphasiwedi</translation>
 <translation id="8202744799033457229">Bonisa umlando</translation>
 <translation id="8205564605687841303">Khansela</translation>
-<translation id="820568752112382238">Amasayithi avakashelwe kaningi</translation>
 <translation id="8206354486702514201">Lokhu kulungiselelwa kusetshenziswa umlawuli wakho.</translation>
 <translation id="8209050860603202033">Vula isithombe</translation>
 <translation id="8211030355252954494">Uthole amaphasiwedi we <ph name="WEBSITE" /></translation>
diff --git a/ios/chrome/app/tests_fake_hook.mm b/ios/chrome/app/tests_fake_hook.mm
index 11bc671..ddbf9047 100644
--- a/ios/chrome/app/tests_fake_hook.mm
+++ b/ios/chrome/app/tests_fake_hook.mm
@@ -51,6 +51,9 @@
 policy::ConfigurationPolicyProvider* GetOverriddenPlatformPolicyProvider() {
   return nullptr;
 }
+bool SimulatePostDeviceRestore() {
+  return false;
+}
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager() {
   return nullptr;
 }
diff --git a/ios/chrome/app/tests_hook.h b/ios/chrome/app/tests_hook.h
index 4907beb..a6b5dcd 100644
--- a/ios/chrome/app/tests_hook.h
+++ b/ios/chrome/app/tests_hook.h
@@ -112,6 +112,11 @@
 // provider when testing. May return nullptr.
 policy::ConfigurationPolicyProvider* GetOverriddenPlatformPolicyProvider();
 
+// Whether a phone backup/restore state should be simulated for testing purpose.
+// Uses`experimental_flags::SimulatePostDeviceRestore()` to check whether this
+// feature should be enabled due to experimental feature.
+bool SimulatePostDeviceRestore();
+
 // Allows overriding the SystemIdentityManager factory. The real factory will
 // be used if this hook returns null.
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager();
diff --git a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator_unittests.mm b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator_unittests.mm
index 5253c202..bfda114 100644
--- a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator_unittests.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator_unittests.mm
@@ -23,6 +23,7 @@
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
+#import "ios/chrome/browser/shared/model/profile/test/test_profile_manager_ios.h"
 #import "ios/chrome/browser/shared/public/commands/application_commands.h"
 #import "ios/chrome/browser/shared/public/commands/browser_commands.h"
 #import "ios/chrome/browser/shared/public/commands/browser_coordinator_commands.h"
@@ -66,16 +67,10 @@
 
 @end
 
-// The test param determines whether `kSeparateProfilesForManagedAccounts` is
-// enabled.
-class AccountMenuCoordinatorTest : public PlatformTest,
-                                   public testing::WithParamInterface<bool> {
+// Base class for `AccountMenuCoordinatorNonManagedTest` and
+// `AccountMenuCoordinatorManagedTest`.
+class AccountMenuCoordinatorTest : public PlatformTest {
  public:
-  AccountMenuCoordinatorTest() {
-    feature_list_.InitWithFeatureState(kSeparateProfilesForManagedAccounts,
-                                       GetParam());
-  }
-
   void SetUp() override {
     PlatformTest::SetUp();
     scene_state_ = [[SceneState alloc] initWithAppState:nil];
@@ -85,7 +80,7 @@
         AuthenticationServiceFactory::GetInstance(),
         AuthenticationServiceFactory::GetFactoryWithDelegate(
             std::make_unique<FakeAuthenticationServiceDelegate>()));
-    profile_ = std::move(builder).Build();
+    profile_ = profile_manager_.AddProfileWithBuilder(std::move(builder));
     browser_ = std::make_unique<TestBrowser>(profile_.get(), scene_state_);
 
     stub_browser_interface_provider_ =
@@ -228,13 +223,22 @@
 
   web::WebTaskEnvironment task_environment_;
   IOSChromeScopedTestingLocalState scoped_testing_local_state_;
-  std::unique_ptr<TestProfileIOS> profile_;
+  TestProfileManagerIOS profile_manager_;
+  raw_ptr<ProfileIOS> profile_;
   std::unique_ptr<TestBrowser> browser_;
   bool completionCalled_ = false;
 };
 
-class AccountMenuCoordinatorNonManagedTest : public AccountMenuCoordinatorTest {
+// The test param determines whether `kSeparateProfilesForManagedAccounts` is
+// enabled.
+class AccountMenuCoordinatorNonManagedTest
+    : public AccountMenuCoordinatorTest,
+      public testing::WithParamInterface<bool> {
  public:
+  AccountMenuCoordinatorNonManagedTest() {
+    feature_list_.InitWithFeatureState(kSeparateProfilesForManagedAccounts,
+                                       GetParam());
+  }
   const FakeSystemIdentity* primary_identity() override {
     return kPrimaryIdentity;
   }
@@ -242,6 +246,12 @@
 
 class AccountMenuCoordinatorManagedTest : public AccountMenuCoordinatorTest {
  public:
+  AccountMenuCoordinatorManagedTest() {
+    // TODO(crbug.com/374281861): This class needs to run with multi profile
+    // enabled. To do that, account switching needs to be supported in unttests.
+    feature_list_.InitWithFeatureState(kSeparateProfilesForManagedAccounts,
+                                       false);
+  }
   const FakeSystemIdentity* primary_identity() override {
     return kManagedIdentity;
   }
@@ -345,7 +355,7 @@
 
 // Tests that `triggerAccountSwitchSnackbarWithIdentity` shows a snackbar with
 // `managed` set to true.
-TEST_P(AccountMenuCoordinatorManagedTest, testSnackbarManaged) {
+TEST_F(AccountMenuCoordinatorManagedTest, testSnackbarManaged) {
   OCMExpect([mock_snackbar_commands_handler_
       showSnackbarMessageOverBrowserToolbar:[OCMArg checkWithBlock:^BOOL(
                                                         IdentitySnackbarMessage*
@@ -401,11 +411,3 @@
                            return info.param ? "WithSeparateProfiles"
                                              : "WithoutSeparateProfiles";
                          });
-
-INSTANTIATE_TEST_SUITE_P(,
-                         AccountMenuCoordinatorManagedTest,
-                         testing::Bool(),
-                         [](const testing::TestParamInfo<bool>& info) {
-                           return info.param ? "WithSeparateProfiles"
-                                             : "WithoutSeparateProfiles";
-                         });
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_coordinator.mm
index 4e1207e..aa1c966 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_coordinator.mm
@@ -149,26 +149,10 @@
 
 #pragma mark - AddAccountSigninManagerDelegate
 
-- (void)addAccountSigninManagerFailedWithError:(NSError*)error {
-  DCHECK(error);
-  __weak AddAccountSigninCoordinator* weakSelf = self;
-  ProceduralBlock dismissAction = ^{
-    [weakSelf.alertCoordinator stop];
-    weakSelf.alertCoordinator = nil;
-    [weakSelf addAccountSigninManagerFinishedWithSigninResult:
-                  SigninCoordinatorResultCanceledByUser
-                                                     identity:nil];
-  };
-
-  self.alertCoordinator = ErrorCoordinator(
-      error, dismissAction, self.baseViewController, self.browser);
-  [self.alertCoordinator start];
-}
-
-- (void)addAccountSigninManagerFinishedWithSigninResult:
-            (SigninCoordinatorResult)signinResult
-                                               identity:(id<SystemIdentity>)
-                                                            identity {
+- (void)addAccountSigninManagerFinishedWithResult:
+            (SigninAddAccountToDeviceResult)result
+                                         identity:(id<SystemIdentity>)identity
+                                            error:(NSError*)error {
   if (!self.addAccountSigninManager) {
     // The AddAccountSigninManager callback might be called after the
     // interrupt method. If this is the case, the AddAccountSigninCoordinator
@@ -178,41 +162,65 @@
   // Add account is done, we don't need `self.AddAccountSigninManager`
   // anymore.
   self.addAccountSigninManager = nil;
-  if (signinResult == SigninCoordinatorResultInterrupted) {
-    // Stop the reauth flow.
-    [self addAccountDoneWithSigninResult:signinResult identity:nil];
-    return;
-  }
 
-  // If the signin was successful, but the identity isn't showing up on the
-  // device, then it must be an identity that's restricted by policy.
-  if (signinResult == SigninCoordinatorResultSuccess) {
-    bool identityOnDeviceFound = false;
-    if (AreSeparateProfilesForManagedAccountsEnabled()) {
-      const GaiaId gaia(identity.gaiaID);
-      std::vector<AccountInfo> accountsOnDevice =
-          _identityManager->GetAccountsOnDevice();
-      for (const AccountInfo& accountInfo : accountsOnDevice) {
-        if (accountInfo.gaia == gaia) {
-          identityOnDeviceFound = true;
-          break;
-        }
-      }
-    } else {
-      identityOnDeviceFound = _accountManagerService->IsValidIdentity(identity);
-    }
-    if (!identityOnDeviceFound) {
-      __weak __typeof(self) weakSelf = self;
-      // A dispatch is needed to ensure that the alert is displayed after
-      // dismissing the signin view.
-      dispatch_async(dispatch_get_main_queue(), ^{
-        [weakSelf presentSignInWithRestrictedAccountAlert];
-      });
+  switch (result) {
+    case SigninAddAccountToDeviceResult::kInterrupted:
+      // Stop the reauth flow.
+      [self addAccountDoneWithSigninResult:SigninCoordinatorResultInterrupted
+                                  identity:nil];
+      return;
+    case SigninAddAccountToDeviceResult::kCancelledByUser:
+      [self addAccountDoneWithSigninResult:SigninCoordinatorResultCanceledByUser
+                                  identity:nil];
+      return;
+    case SigninAddAccountToDeviceResult::kError: {
+      DCHECK(error);
+      __weak AddAccountSigninCoordinator* weakSelf = self;
+      ProceduralBlock dismissAction = ^{
+        [weakSelf.alertCoordinator stop];
+        weakSelf.alertCoordinator = nil;
+        [weakSelf
+            addAccountDoneWithSigninResult:SigninCoordinatorResultCanceledByUser
+                                  identity:nil];
+      };
+
+      self.alertCoordinator = ErrorCoordinator(
+          error, dismissAction, self.baseViewController, self.browser);
+      [self.alertCoordinator start];
       return;
     }
+    case SigninAddAccountToDeviceResult::kSuccess: {
+      // If the signin was successful, but the identity isn't showing up on the
+      // device, then it must be an identity that's restricted by policy.
+      bool identityOnDeviceFound = false;
+      if (AreSeparateProfilesForManagedAccountsEnabled()) {
+        const GaiaId gaia(identity.gaiaID);
+        std::vector<AccountInfo> accountsOnDevice =
+            _identityManager->GetAccountsOnDevice();
+        for (const AccountInfo& accountInfo : accountsOnDevice) {
+          if (accountInfo.gaia == gaia) {
+            identityOnDeviceFound = true;
+            break;
+          }
+        }
+      } else {
+        identityOnDeviceFound =
+            _accountManagerService->IsValidIdentity(identity);
+      }
+      if (!identityOnDeviceFound) {
+        __weak __typeof(self) weakSelf = self;
+        // A dispatch is needed to ensure that the alert is displayed after
+        // dismissing the signin view.
+        dispatch_async(dispatch_get_main_queue(), ^{
+          [weakSelf presentSignInWithRestrictedAccountAlert];
+        });
+        return;
+      }
+      [self
+          continueAddAccountFlowWithSigninResult:SigninCoordinatorResultSuccess
+                                        identity:identity];
+    }
   }
-
-  [self continueAddAccountFlowWithSigninResult:signinResult identity:identity];
 }
 
 #pragma mark - Private
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.h b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.h
index d270f318..9775df4c 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.h
@@ -39,17 +39,16 @@
 // Delegate that displays screens for the add account flows.
 @protocol AddAccountSigninManagerDelegate
 
-// Shows alert modal dialog and interrupts sign-in operation.
-// `error` is the error to be displayed.
-- (void)addAccountSigninManagerFailedWithError:(NSError*)error;
-
 // Completes the sign-in operation.
-// `signinResult` is the state of sign-in at add account flow completion.
-// `identity` is the identity of the added account.
-- (void)addAccountSigninManagerFinishedWithSigninResult:
-            (SigninCoordinatorResult)signinResult
-                                               identity:
-                                                   (id<SystemIdentity>)identity;
+//   * `result` the result of the add account flow.
+//   * `identity` is the identity of the added account (non-null when `result`
+//      is `SigninAddAccountToDeviceResult::kSuccess`).
+//   * `error` is the error to be displayed (non-null only when `result` is
+//     `SigninAddAccountToDeviceResult::kError`).
+- (void)addAccountSigninManagerFinishedWithResult:
+            (SigninAddAccountToDeviceResult)result
+                                         identity:(id<SystemIdentity>)identity
+                                            error:(NSError*)error;
 
 @end
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
index c0897ae3..12dd537 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
@@ -40,24 +40,6 @@
       break;
   }
 }
-
-// Converts a SigninAddAccountToDeviceResult to a SigninCoordinatorResult.
-SigninCoordinatorResult ToSigninCoordinatorResult(
-    SigninAddAccountToDeviceResult addAccountResult) {
-  switch (addAccountResult) {
-    case SigninAddAccountToDeviceResult::kInterrupted:
-      return SigninCoordinatorResultInterrupted;
-    case SigninAddAccountToDeviceResult::kCancelledByUser:
-      return SigninCoordinatorResultCanceledByUser;
-    case SigninAddAccountToDeviceResult::kSuccess:
-      return SigninCoordinatorResultSuccess;
-    case SigninAddAccountToDeviceResult::kError:
-      // Errors for adding accounts to devices are mapped to operation being
-      // cancelled by the user (see `[AddAccountSigninManagerDelegate
-      // addAccountSigninManagerFailedWithError:]`).
-      return SigninCoordinatorResultCanceledByUser;
-  }
-}
 }  // namespace
 
 @interface AddAccountSigninManager ()
@@ -214,28 +196,29 @@
   DCHECK(self.identityInteractionManager);
   _addAccountFlowDone = YES;
   self.identityInteractionManager = nil;
-  SigninAddAccountToDeviceResult addAccountResult =
-      SigninAddAccountToDeviceResult::kSuccess;
+
+  SigninAddAccountToDeviceResult result;
+  id<SystemIdentity> resultIdentity = nil;
+  NSError* resultError = nil;
   if (self.signinInterrupted) {
-    addAccountResult = SigninAddAccountToDeviceResult::kInterrupted;
-    identity = nil;
+    result = SigninAddAccountToDeviceResult::kInterrupted;
   } else if (error) {
     // Filter out errors handled internally by `identity`.
     if (ShouldHandleSigninError(error)) {
-      addAccountResult = SigninAddAccountToDeviceResult::kError;
-      LogAddAccountToDeviceHistograms(addAccountResult, addAccountDuration);
-      [self.delegate addAccountSigninManagerFailedWithError:error];
-      return;
+      result = SigninAddAccountToDeviceResult::kError;
+      resultError = error;
+    } else {
+      result = SigninAddAccountToDeviceResult::kCancelledByUser;
     }
-    addAccountResult = SigninAddAccountToDeviceResult::kCancelledByUser;
-    identity = nil;
+  } else {
+    result = SigninAddAccountToDeviceResult::kSuccess;
+    resultIdentity = identity;
   }
 
-  LogAddAccountToDeviceHistograms(addAccountResult, addAccountDuration);
-  [self.delegate
-      addAccountSigninManagerFinishedWithSigninResult:ToSigninCoordinatorResult(
-                                                          addAccountResult)
-                                             identity:identity];
+  LogAddAccountToDeviceHistograms(result, addAccountDuration);
+  [self.delegate addAccountSigninManagerFinishedWithResult:result
+                                                  identity:resultIdentity
+                                                     error:resultError];
 }
 
 @end
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager_unittest.mm b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager_unittest.mm
index 30ca294..9f4fe0a 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager_unittest.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager_unittest.mm
@@ -148,9 +148,10 @@
         return [identity.userEmail isEqual:expected_prefilled_email()];
       }];
   OCMExpect([mock_delegate()
-      addAccountSigninManagerFinishedWithSigninResult:
-          SigninCoordinatorResultSuccess
-                                             identity:checkIdentityEmail]);
+      addAccountSigninManagerFinishedWithResult:SigninAddAccountToDeviceResult::
+                                                    kSuccess
+                                       identity:checkIdentityEmail
+                                          error:nil]);
   [fake_interaction_manager() simulateDidTapAddAccount];
   ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
       TestTimeouts::action_timeout(), ^bool() {
@@ -181,9 +182,10 @@
                             withUnknownCapabilities:NO];
 
   OCMExpect([mock_delegate()
-      addAccountSigninManagerFinishedWithSigninResult:
-          SigninCoordinatorResultSuccess
-                                             identity:differentIdentity]);
+      addAccountSigninManagerFinishedWithResult:SigninAddAccountToDeviceResult::
+                                                    kSuccess
+                                       identity:differentIdentity
+                                          error:nil]);
   [fake_interaction_manager() simulateDidTapAddAccount];
   ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
       TestTimeouts::action_timeout(), ^bool() {
@@ -211,9 +213,10 @@
       }));
 
   OCMExpect([mock_delegate()
-      addAccountSigninManagerFinishedWithSigninResult:
-          SigninCoordinatorResultCanceledByUser
-                                             identity:nil]);
+      addAccountSigninManagerFinishedWithResult:SigninAddAccountToDeviceResult::
+                                                    kCancelledByUser
+                                       identity:nil
+                                          error:nil]);
   [fake_interaction_manager() simulateDidTapCancel];
   ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
       TestTimeouts::action_timeout(), ^bool() {
@@ -242,8 +245,11 @@
         return fake_interaction_manager().isActivityViewPresented;
       }));
 
-  OCMExpect(
-      [mock_delegate() addAccountSigninManagerFailedWithError:[OCMArg any]]);
+  OCMExpect([mock_delegate()
+      addAccountSigninManagerFinishedWithResult:SigninAddAccountToDeviceResult::
+                                                    kError
+                                       identity:nil
+                                          error:[OCMArg any]]);
   [fake_interaction_manager() simulateDidThrowUnhandledError];
   ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
       TestTimeouts::action_timeout(), ^bool() {
@@ -267,10 +273,10 @@
         return fake_interaction_manager().isActivityViewPresented;
       }));
 
-  OCMExpect([mock_delegate()
-      addAccountSigninManagerFinishedWithSigninResult:
-          SigninCoordinatorResultInterrupted
-                                             identity:nil]);
+  OCMExpect([mock_delegate() addAccountSigninManagerFinishedWithResult:
+                                 SigninAddAccountToDeviceResult::kInterrupted
+                                                              identity:nil
+                                                                 error:nil]);
   __block BOOL completionCalled = NO;
   [add_account_signin_manager()
       interruptWithAction:SigninCoordinatorInterrupt::DismissWithAnimation
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin_matchers.h b/ios/chrome/browser/authentication/ui_bundled/signin_matchers.h
index 1aa20bd..a9513c9 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin_matchers.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin_matchers.h
@@ -30,14 +30,6 @@
 // Matcher for the sign-in screens (like history sync opt-in, upgrade promo…).
 id<GREYMatcher> SigninScreenPromoMatcher();
 
-// DO NOT USE! Use PromoScreenPrimaryButtonMatcher() from chrome_matchers.h
-// instead.
-id<GREYMatcher> SigninScreenPromoPrimaryButtonMatcher();
-
-// DO NOT USE! Use PromoScreenSecondaryButtonMatcher() from chrome_matchers.h
-// instead.
-id<GREYMatcher> SigninScreenPromoSecondaryButtonMatcher();
-
 // Matcher for the Settings row which, upon tap, leads the user to sign-in. The
 // row is only shown to signed-out users.
 id<GREYMatcher> SettingsSignInRowMatcher();
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin_matchers.mm b/ios/chrome/browser/authentication/ui_bundled/signin_matchers.mm
index df46109..b137c21 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin_matchers.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin_matchers.mm
@@ -43,18 +43,6 @@
       first_run::kFirstRunSignInScreenAccessibilityIdentifier);
 }
 
-id<GREYMatcher> SigninScreenPromoPrimaryButtonMatcher() {
-  return grey_allOf(
-      grey_accessibilityID(kPromoStylePrimaryActionAccessibilityIdentifier),
-      grey_sufficientlyVisible(), nil);
-}
-
-id<GREYMatcher> SigninScreenPromoSecondaryButtonMatcher() {
-  return grey_allOf(
-      grey_accessibilityID(kPromoStyleSecondaryActionAccessibilityIdentifier),
-      grey_sufficientlyVisible(), nil);
-}
-
 id<GREYMatcher> SettingsSignInRowMatcher() {
   return grey_allOf(grey_accessibilityID(kSettingsSignInCellId),
                     grey_sufficientlyVisible(), nil);
diff --git a/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn b/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
index 433e836..e3734eeb 100644
--- a/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
+++ b/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
@@ -70,7 +70,6 @@
     "//ios/chrome/common/ui/util",
     "//ios/web/common",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/js_messaging",
     "//ui/base",
   ]
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey_app_interface.mm b/ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey_app_interface.mm
index 4191b935..6a46a74 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey_app_interface.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey_app_interface.mm
@@ -51,7 +51,7 @@
       bookmarks::GetBookmarksMatchingProperties(bookmark_model, query,
                                                 kMaxCountOfBookmarks);
 
-  base::ranges::remove_if(nodes, [=](const bookmarks::BookmarkNode* node) {
+  std::erase_if(nodes, [=](const bookmarks::BookmarkNode* node) {
     return type !=
            bookmark_utils_ios::GetBookmarkStorageType(node, bookmark_model);
   });
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 35e166e..5d55596 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -527,92 +527,6 @@
     {"Display promo during FRE", kIOSDockingPromoDisplayedDuringFRE,
      std::size(kIOSDockingPromoDisplayedDuringFRE), nullptr}};
 
-const FeatureEntry::FeatureParam kModernTabStripNTBDynamic[] = {
-    {kModernTabStripParameterName, kModernTabStripNTBDynamicParam}};
-const FeatureEntry::FeatureParam kModernTabStripNTBStatic[] = {
-    {kModernTabStripParameterName, kModernTabStripNTBStaticParam}};
-const FeatureEntry::FeatureParam kModernTabStripCloserNTBOption[] = {
-    {kModernTabStripCloserNTB, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripDarkerBackgroundOption[] = {
-    {kModernTabStripDarkerBackground, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam
-    kModernTabStripCloserNTBDarkerBackgroundOption[] = {
-        {kModernTabStripDarkerBackground, "true"},
-        {kModernTabStripCloserNTB, "true"},
-        {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripNTBNoBackgroundOption[] = {
-    {kModernTabStripNTBNoBackground, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripBlackBackgroundOption[] = {
-    {kModernTabStripBlackBackground, "true"},
-    {kModernTabStripNTBNoBackground, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-
-const FeatureEntry::FeatureParam kModernTabStripCloseButtonVisibleOption[] = {
-    {kModernTabStripCloseButtonsVisible, "true"},
-    {kModernTabStripCloserNTB, "true"},
-    {kModernTabStripHighContrastNTB, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam
-    kModernTabStripInactiveTabsHighContrastOption[] = {
-        {kModernTabStripInactiveTabsHighContrast, "true"},
-        {kModernTabStripCloserNTB, "true"},
-        {kModernTabStripDarkerBackgroundV3, "true"},
-        {kModernTabStripHighContrastNTB, "true"},
-        {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripHighContrastNTBOption[] = {
-    {kModernTabStripHighContrastNTB, "true"},
-    {kModernTabStripNTBNoBackground, "true"},
-    {kModernTabStripCloserNTB, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripV3AllOptions[] = {
-    {kModernTabStripCloseButtonsVisible, "true"},
-    {kModernTabStripNTBNoBackground, "true"},
-    {kModernTabStripInactiveTabsHighContrast, "true"},
-    {kModernTabStripCloserNTB, "true"},
-    {kModernTabStripHighContrastNTB, "true"},
-    {kModernTabStripDarkerBackgroundV3, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-const FeatureEntry::FeatureParam kModernTabStripDetachedTabsOptions[] = {
-    {kModernTabStripCloseButtonsVisible, "true"},
-    {kModernTabStripHighContrastNTB, "true"},
-    {kModernTabStripInactiveTabsHighContrast, "true"},
-    {kModernTabStripDarkerBackgroundV3, "true"},
-    {kModernTabStripDetachedTabs, "true"},
-    {kModernTabStripCloserNTB, "true"},
-    {kModernTabStripNTBNoBackground, "true"},
-    {kModernTabStripBiggerNTB, "true"}};
-
-const FeatureEntry::FeatureVariation kModernTabStripVariations[] = {
-    {"New tab button dynamic", kModernTabStripNTBDynamic,
-     std::size(kModernTabStripNTBDynamic), nullptr},
-    {"New tab button static", kModernTabStripNTBStatic,
-     std::size(kModernTabStripNTBStatic), nullptr},
-    {"Closer NTB", kModernTabStripCloserNTBOption,
-     std::size(kModernTabStripCloserNTBOption), nullptr},
-    {"Darker background", kModernTabStripDarkerBackgroundOption,
-     std::size(kModernTabStripDarkerBackgroundOption), nullptr},
-    {"Closer NTB + darker background",
-     kModernTabStripCloserNTBDarkerBackgroundOption,
-     std::size(kModernTabStripCloserNTBDarkerBackgroundOption), nullptr},
-    {"NTB no background", kModernTabStripNTBNoBackgroundOption,
-     std::size(kModernTabStripNTBNoBackgroundOption), nullptr},
-    {"Black background", kModernTabStripBlackBackgroundOption,
-     std::size(kModernTabStripBlackBackgroundOption), nullptr},
-    {"V3 Close buttons", kModernTabStripCloseButtonVisibleOption,
-     std::size(kModernTabStripCloseButtonVisibleOption), nullptr},
-    {"V3 High Contrast tabs", kModernTabStripInactiveTabsHighContrastOption,
-     std::size(kModernTabStripInactiveTabsHighContrastOption), nullptr},
-    {"V3 Visible NTB", kModernTabStripHighContrastNTBOption,
-     std::size(kModernTabStripHighContrastNTBOption), nullptr},
-    {"V3 all options", kModernTabStripV3AllOptions,
-     std::size(kModernTabStripV3AllOptions), nullptr},
-    {"V3 detached tabs", kModernTabStripDetachedTabsOptions,
-     std::size(kModernTabStripDetachedTabsOptions), nullptr},
-};
-
 const FeatureEntry::FeatureVariation
     kImageServiceOptimizationGuideSalientImagesVariations[] = {
         {"High Performance Canonicalization", nullptr, 0, "3362133"},
@@ -1414,9 +1328,7 @@
 #endif
     {"modern-tab-strip", flag_descriptions::kModernTabStripName,
      flag_descriptions::kModernTabStripDescription, flags_ui::kOsIos,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(kModernTabStrip,
-                                    kModernTabStripVariations,
-                                    "ModernTabStrip")},
+     FEATURE_VALUE_TYPE(kModernTabStrip)},
     {"ios-enable-delete-all-saved-credentials",
      flag_descriptions::kIOSEnableDeleteAllSavedCredentialsName,
      flag_descriptions::kIOSEnableDeleteAllSavedCredentialsDescription,
diff --git a/ios/chrome/browser/intents/intents_constants.h b/ios/chrome/browser/intents/intents_constants.h
index 58e897e..9a2e8113 100644
--- a/ios/chrome/browser/intents/intents_constants.h
+++ b/ios/chrome/browser/intents/intents_constants.h
@@ -21,6 +21,8 @@
 extern NSString* const kShortcutLensFromAppIconLongPress;
 // NSUserActivity for Open Lens from spotlight intent.
 extern NSString* const kShortcutLensFromSpotlight;
+// NSUserActivity for changing a widget to an app icon.
+extern NSString* const kShortcutChangeWidgetToAppIcon;
 
 // Constants for Siri shortcuts.
 //
diff --git a/ios/chrome/browser/intents/intents_constants.mm b/ios/chrome/browser/intents/intents_constants.mm
index 38da89e2..ff19c20 100644
--- a/ios/chrome/browser/intents/intents_constants.mm
+++ b/ios/chrome/browser/intents/intents_constants.mm
@@ -11,6 +11,9 @@
 NSString* const kShortcutLensFromAppIconLongPress =
     @"OpenLensFromAppIconLongPress";
 NSString* const kShortcutLensFromSpotlight = @"OpenLensFromSpotlight";
+NSString* const kShortcutChangeWidgetToAppIcon =
+    @"com.apple.springboardhome.application-shortcut-item.change-widget-to-app-"
+     "icon";
 
 NSString* const kSiriShortcutAddBookmarkToChrome = @"AddBookmarkToChromeIntent";
 NSString* const kSiriShortcutAddReadingListItemToChrome =
diff --git a/ios/chrome/browser/intents/user_activity_browser_agent.mm b/ios/chrome/browser/intents/user_activity_browser_agent.mm
index 70ef2740..bc64bd5a 100644
--- a/ios/chrome/browser/intents/user_activity_browser_agent.mm
+++ b/ios/chrome/browser/intents/user_activity_browser_agent.mm
@@ -640,6 +640,12 @@
     startup_params.postOpeningAction = START_LENS_FROM_SPOTLIGHT;
     connection_information_.startupParameters = startup_params;
     return YES;
+  } else if ([shortcut_item.type
+                 isEqualToString:kShortcutChangeWidgetToAppIcon]) {
+    // This intent is already handled by the OS, the default action for this
+    // intent is to open the app, no additional handling is needed. Check
+    // crbug.com/384806920 for additional info.
+    return NO;
   }
 
   // Use 32 as the maximum length of the reported value for this key (31
diff --git a/ios/chrome/browser/main/model/DEPS b/ios/chrome/browser/main/model/DEPS
index 28aa9ee7..de1001ec 100644
--- a/ios/chrome/browser/main/model/DEPS
+++ b/ios/chrome/browser/main/model/DEPS
@@ -29,7 +29,6 @@
     "+ios/chrome/browser/sync/model/sync_error_browser_agent.h",
     "+ios/chrome/browser/tabs/model/closing_web_state_observer_browser_agent.h",
     "+ios/chrome/browser/tabs/model/synced_window_delegate_browser_agent.h",
-    "+ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h",
     "+ios/chrome/browser/url_loading/model/url_loading_browser_agent.h",
     "+ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h",
     "+ios/chrome/browser/web/model/page_placeholder_browser_agent.h",
diff --git a/ios/chrome/browser/main/model/browser_agent_util.mm b/ios/chrome/browser/main/model/browser_agent_util.mm
index 4ee2271..d61b7b35 100644
--- a/ios/chrome/browser/main/model/browser_agent_util.mm
+++ b/ios/chrome/browser/main/model/browser_agent_util.mm
@@ -32,7 +32,6 @@
 #import "ios/chrome/browser/tab_insertion/model/tab_insertion_browser_agent.h"
 #import "ios/chrome/browser/tabs/model/closing_web_state_observer_browser_agent.h"
 #import "ios/chrome/browser/tabs/model/synced_window_delegate_browser_agent.h"
-#import "ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h"
 #import "ios/chrome/browser/view_source/model/view_source_browser_agent.h"
@@ -69,7 +68,6 @@
   // LensBrowserAgent must be created before WebNavigationBrowserAgent.
   LensBrowserAgent::CreateForBrowser(browser);
   WebNavigationBrowserAgent::CreateForBrowser(browser);
-  TabParentingBrowserAgent::CreateForBrowser(browser);
 
   if (!browser_is_off_record) {
     ClosingWebStateObserverBrowserAgent::CreateForBrowser(browser);
diff --git a/ios/chrome/browser/metrics/model/BUILD.gn b/ios/chrome/browser/metrics/model/BUILD.gn
index 52065b1c..981d0c6 100644
--- a/ios/chrome/browser/metrics/model/BUILD.gn
+++ b/ios/chrome/browser/metrics/model/BUILD.gn
@@ -162,7 +162,6 @@
     "//ios/web/common",
     "//ios/web/public",
     "//ios/web/public:web_state_observer",
-    "//ios/web/public/deprecated",
     "//ios/web/public/navigation",
     "//url",
   ]
diff --git a/ios/chrome/browser/passwords/model/BUILD.gn b/ios/chrome/browser/passwords/model/BUILD.gn
index 73c8f82c..a610c75 100644
--- a/ios/chrome/browser/passwords/model/BUILD.gn
+++ b/ios/chrome/browser/passwords/model/BUILD.gn
@@ -297,7 +297,6 @@
     "//ios/testing:ocmock_support",
     "//ios/web",
     "//ios/web/js_messaging:web_view_js_utils",
-    "//ios/web/public/deprecated:deprecated",
     "//ios/web/public/js_messaging",
     "//ios/web/public/test",
     "//ios/web/public/test/fakes",
diff --git a/ios/chrome/browser/post_restore_signin/ui_bundled/BUILD.gn b/ios/chrome/browser/post_restore_signin/ui_bundled/BUILD.gn
index 030771c..ac07be4 100644
--- a/ios/chrome/browser/post_restore_signin/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/post_restore_signin/ui_bundled/BUILD.gn
@@ -62,3 +62,22 @@
     "//ui/base",
   ]
 }
+
+source_set("eg2_tests") {
+  configs += [ "//build/config/ios:xctest_config" ]
+  testonly = true
+  sources = [ "post_restore_signin_egtest.mm" ]
+  deps = [
+    "//components/signin/public/base",
+    "//ios/chrome/app/strings",
+    "//ios/chrome/browser/authentication/ui_bundled:eg_test_support+eg2",
+    "//ios/chrome/browser/metrics/model:eg_test_support+eg2",
+    "//ios/chrome/browser/shared/public/features:system_flags",
+    "//ios/chrome/browser/signin/model:fake_system_identity",
+    "//ios/chrome/browser/signin/model:test_constants",
+    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
+    "//ios/chrome/test/earl_grey:switches",
+    "//ios/testing/earl_grey:eg_test_support+eg2",
+    "//ui/base",
+  ]
+}
diff --git a/ios/chrome/browser/post_restore_signin/ui_bundled/post_restore_signin_egtest.mm b/ios/chrome/browser/post_restore_signin/ui_bundled/post_restore_signin_egtest.mm
new file mode 100644
index 0000000..2b65ab1
--- /dev/null
+++ b/ios/chrome/browser/post_restore_signin/ui_bundled/post_restore_signin_egtest.mm
@@ -0,0 +1,116 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "components/signin/public/base/signin_metrics.h"
+#import "ios/chrome/browser/authentication/ui_bundled/expected_signin_histograms.h"
+#import "ios/chrome/browser/authentication/ui_bundled/signin_earl_grey.h"
+#import "ios/chrome/browser/metrics/model/metrics_app_interface.h"
+#import "ios/chrome/browser/shared/public/features/system_flags.h"
+#import "ios/chrome/browser/signin/model/fake_system_identity.h"
+#import "ios/chrome/browser/signin/model/test_constants.h"
+#import "ios/chrome/grit/ios_branded_strings.h"
+#import "ios/chrome/grit/ios_strings.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
+#import "ios/chrome/test/earl_grey/chrome_test_case.h"
+#import "ios/chrome/test/earl_grey/test_switches.h"
+#import "ios/testing/earl_grey/app_launch_manager.h"
+#import "ios/testing/earl_grey/earl_grey_test.h"
+#import "ui/base/l10n/l10n_util.h"
+
+namespace {
+
+// The primary identity.
+FakeSystemIdentity* const kPrimaryIdentity = [FakeSystemIdentity fakeIdentity1];
+
+}  // namespace
+
+@interface PostRestoreSigninTestCase : ChromeTestCase
+@end
+
+@implementation PostRestoreSigninTestCase
+
+- (void)setUp {
+  [super setUp];
+
+  [SigninEarlGrey signinWithFakeIdentity:kPrimaryIdentity];
+
+  // Create the config to relaunch Chrome.
+  AppLaunchConfiguration config;
+  config.relaunch_policy = ForceRelaunchByCleanShutdown;
+
+  // Add the switch to make sure that fakeIdentity1 is known at startup to avoid
+  // automatic sign out.
+  config.additional_args.push_back(
+      std::string("-") + test_switches::kAddFakeIdentitiesAtStartup + "=" +
+      [FakeSystemIdentity encodeIdentitiesToBase64:@[ kPrimaryIdentity ]]);
+  config.additional_args.push_back(std::string("-") +
+                                   test_switches::kSimulatePostDeviceRestore);
+  // The post-restore signin alert is a promo, and promo are implemented as IPH.
+  // All IPH are disabled by default in EGtests. This flag enable this
+  // particular IPH.
+  config.additional_args.push_back(std::string("-") +
+                                   test_switches::kEnableIPH +
+                                   "=IPH_iOSPromoPostRestore");
+
+  // Relaunch the app to take the configuration into account.
+  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
+  chrome_test_util::GREYAssertErrorNil(
+      [MetricsAppInterface setupHistogramTester]);
+
+  [SigninEarlGrey verifySignedOut];
+  [[EarlGrey selectElementWithMatcher:
+                 grey_text(l10n_util::GetNSString(
+                     IDS_IOS_POST_RESTORE_SIGN_IN_ALERT_PROMO_TITLE))]
+      assertWithMatcher:grey_sufficientlyVisible()];
+}
+
+// Test that continue opens the add account view.
+- (void)testContinue {
+  // Tap on 'Continue' to present the add account view.
+  [[EarlGrey
+      selectElementWithMatcher:
+          grey_text(l10n_util::GetNSString(
+              IDS_IOS_POST_RESTORE_SIGN_IN_FULLSCREEN_PRIMARY_ACTION_SHORT))]
+      performAction:grey_tap()];
+
+  // Ensure the fake add-account menu is
+  // displayed. The existence of the "add
+  // account" accessibility button on screen verifies that the screen
+  // was shown.
+  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                          kFakeAuthAddAccountButtonIdentifier)]
+      assertWithMatcher:grey_notNil()];
+
+  ExpectedSigninHistograms* expecteds = [[ExpectedSigninHistograms alloc]
+      initWithAccessPoint:signin_metrics::AccessPoint::
+                              ACCESS_POINT_POST_DEVICE_RESTORE_SIGNIN_PROMO];
+  // TODO(crbug.com/41493423): We should log that the signin was offered,
+  // and started.
+  [SigninEarlGrey assertExpectedSigninHistograms:expecteds];
+}
+
+// Test that cancel does not opens the add account view.
+- (void)testCancel {
+  // Tap on 'Cancel' to present the add account view.
+  [[EarlGrey selectElementWithMatcher:
+                 grey_text(l10n_util::GetNSString(
+                     IDS_IOS_POST_RESTORE_SIGN_IN_ALERT_PROMO_CANCEL_ACTION))]
+      performAction:grey_tap()];
+
+  // Ensure the fake add-account menu is
+  // not displayed. The absence of the "add
+  // account" accessibility button on screen verifies that the screen
+  // was not shown.
+  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                          kFakeAuthCancelButtonIdentifier)]
+      assertWithMatcher:grey_nil()];
+
+  ExpectedSigninHistograms* expecteds = [[ExpectedSigninHistograms alloc]
+      initWithAccessPoint:signin_metrics::AccessPoint::
+                              ACCESS_POINT_POST_DEVICE_RESTORE_SIGNIN_PROMO];
+  // TODO(crbug.com/41493423): We should log that the signin was offered.
+  [SigninEarlGrey assertExpectedSigninHistograms:expecteds];
+}
+
+@end
diff --git a/ios/chrome/browser/providers/application_mode_fetcher/chromium_application_mode_fetcher.mm b/ios/chrome/browser/providers/application_mode_fetcher/chromium_application_mode_fetcher.mm
index a7f2f4cdd..256e2270 100644
--- a/ios/chrome/browser/providers/application_mode_fetcher/chromium_application_mode_fetcher.mm
+++ b/ios/chrome/browser/providers/application_mode_fetcher/chromium_application_mode_fetcher.mm
@@ -11,14 +11,6 @@
 namespace ios::provider {
 
 void FetchApplicationMode(const GURL& url,
-                          NSString* appID,
-                          AppModeFetchingCallback callback) {
-  // Application update is not supported in Chromium.
-  base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback), false));
-}
-
-void FetchApplicationMode(const GURL& url,
                           NSString* app_id,
                           AppModeFetchingResponse fetching_response) {
   // Application update is not supported in Chromium.
diff --git a/ios/chrome/browser/regional_capabilities/model/BUILD.gn b/ios/chrome/browser/regional_capabilities/model/BUILD.gn
index e2deb0c..fb514ce 100644
--- a/ios/chrome/browser/regional_capabilities/model/BUILD.gn
+++ b/ios/chrome/browser/regional_capabilities/model/BUILD.gn
@@ -12,6 +12,7 @@
     "regional_capabilities_service_factory.mm",
   ]
   deps = [
+    "//components/country_codes",
     "//components/prefs",
     "//components/regional_capabilities",
     "//ios/chrome/browser/shared/model/profile",
diff --git a/ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.mm b/ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.mm
index f86a59d..970b83eb 100644
--- a/ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.mm
+++ b/ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.mm
@@ -7,6 +7,7 @@
 #import <memory>
 
 #import "base/check_deref.h"
+#import "components/country_codes/country_codes.h"
 #import "components/regional_capabilities/regional_capabilities_service.h"
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/web/public/browser_state.h"
@@ -19,6 +20,15 @@
     : public regional_capabilities::RegionalCapabilitiesService::Client {
  public:
   RegionalCapabilitiesServiceClient() = default;
+
+  int GetFallbackCountryId() override {
+    return country_codes::GetCurrentCountryID();
+  }
+
+  void FetchCountryId(CountryIdCallback country_id_fetched_callback) override {
+    std::move(country_id_fetched_callback)
+        .Run(country_codes::GetCurrentCountryID());
+  }
 };
 
 }  // namespace
diff --git a/ios/chrome/browser/shared/public/features/features.h b/ios/chrome/browser/shared/public/features/features.h
index d11c2fd..a18c9f5 100644
--- a/ios/chrome/browser/shared/public/features/features.h
+++ b/ios/chrome/browser/shared/public/features/features.h
@@ -192,26 +192,6 @@
 // Feature flag to enable the modern tabstrip.
 BASE_DECLARE_FEATURE(kModernTabStrip);
 
-// Feature parameters for `kModernTabStrip`feature. If no parameter is set,
-// `kModernTabStripNTBDynamicParam` will be used.
-extern const char kModernTabStripParameterName[];
-extern const char kModernTabStripNTBDynamicParam[];
-extern const char kModernTabStripNTBStaticParam[];
-
-// Feature parameters for V2 of Modern Tab Strip.
-extern const char kModernTabStripCloserNTB[];
-extern const char kModernTabStripDarkerBackground[];
-extern const char kModernTabStripNTBNoBackground[];
-extern const char kModernTabStripBlackBackground[];
-extern const char kModernTabStripBiggerNTB[];
-
-// Feature parameters for V3 of Modern Tab Strip.
-extern const char kModernTabStripDarkerBackgroundV3[];
-extern const char kModernTabStripCloseButtonsVisible[];
-extern const char kModernTabStripInactiveTabsHighContrast[];
-extern const char kModernTabStripHighContrastNTB[];
-extern const char kModernTabStripDetachedTabs[];
-
 // Feature flag to log metrics for the edit menu.
 BASE_DECLARE_FEATURE(kIOSBrowserEditMenuMetrics);
 
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm
index 868a1a3..b86bd34 100644
--- a/ios/chrome/browser/shared/public/features/features.mm
+++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -176,31 +176,7 @@
 
 BASE_FEATURE(kModernTabStrip,
              "ModernTabStrip",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
-const char kModernTabStripParameterName[] = "modern-tab-strip-new-tab-button";
-const char kModernTabStripNTBDynamicParam[] = "dynamic";
-const char kModernTabStripNTBStaticParam[] = "static";
-
-extern const char kModernTabStripCloserNTB[] = "modern-tab-strip-closer-ntb";
-extern const char kModernTabStripDarkerBackground[] =
-    "modern-tab-strip-darker-background";
-extern const char kModernTabStripNTBNoBackground[] =
-    "modern-tab-strip-ntb-no-background";
-extern const char kModernTabStripBlackBackground[] =
-    "modern-tab-strip-black-background";
-extern const char kModernTabStripBiggerNTB[] = "modern-tab-strip-bigger-ntb";
-
-extern const char kModernTabStripDarkerBackgroundV3[] =
-    "modern-tab-strip-darker-background-v3";
-extern const char kModernTabStripCloseButtonsVisible[] =
-    "modern-tab-strip-close-buttons-visible";
-extern const char kModernTabStripInactiveTabsHighContrast[] =
-    "modern-tab-strip-inactive-tabs-high-contrast";
-extern const char kModernTabStripHighContrastNTB[] =
-    "modern-tab-strip-high-contrast-ntb";
-extern const char kModernTabStripDetachedTabs[] =
-    "modern-tab-strip-detached-tabs";
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 BASE_FEATURE(kIOSBrowserEditMenuMetrics,
              "IOSBrowserEditMenuMetrics",
diff --git a/ios/chrome/browser/shared/public/features/system_flags.h b/ios/chrome/browser/shared/public/features/system_flags.h
index b73ec054..c062095f 100644
--- a/ios/chrome/browser/shared/public/features/system_flags.h
+++ b/ios/chrome/browser/shared/public/features/system_flags.h
@@ -136,7 +136,9 @@
 // former takes precedence.
 std::string GetSegmentForForcedShopperExperience();
 
-// Whether a phone backup/restore state should be simulated.
+// Whether a phone backup/restore state should be simulated due to experimental
+// settings. Uses `tests_hook::SimulatePostDeviceRestore()` to check whether
+// this feature should be enabled for EG tests.
 bool SimulatePostDeviceRestore();
 
 // In production, the history sync opt-in isn't shown if it was declined too
diff --git a/ios/chrome/browser/signin/model/BUILD.gn b/ios/chrome/browser/signin/model/BUILD.gn
index 0b517e71..578e944 100644
--- a/ios/chrome/browser/signin/model/BUILD.gn
+++ b/ios/chrome/browser/signin/model/BUILD.gn
@@ -141,6 +141,7 @@
     "//components/sync/base",
     "//components/sync/service",
     "//google_apis",
+    "//ios/chrome/app:tests_hook",
     "//ios/chrome/browser/authentication/ui_bundled/signin:signin_headers",
     "//ios/chrome/browser/bookmarks/model:model_utils",
     "//ios/chrome/browser/crash_report/model",
@@ -192,10 +193,12 @@
     "//base",
     "//components/prefs",
     "//components/signin/public/identity_manager",
+    "//ios/chrome/app:tests_hook",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/public/features:system_flags",
     "//ios/public/provider/chrome/browser/signin:signin_error_api",
+    "//ios/public/provider/chrome/browser/signin:signin_identity_api",
   ]
 }
 
diff --git a/ios/chrome/browser/signin/model/authentication_service.mm b/ios/chrome/browser/signin/model/authentication_service.mm
index 0dbab83..15209aa 100644
--- a/ios/chrome/browser/signin/model/authentication_service.mm
+++ b/ios/chrome/browser/signin/model/authentication_service.mm
@@ -710,12 +710,12 @@
     return;
   }
 
-  // YES if the primary identity should be ignore to simulate a backup/restore
+  // YES if the primary identity should be ignored to simulate a backup/restore
   // of the device.
   bool simulate_identity_lost_for_restore =
-      device_restore && experimental_flags::SimulatePostDeviceRestore();
-  // If the restore shorty is needs to be simulated, the primary identity should
-  // not found.
+      device_restore && SimulatePostDeviceRestore();
+  // If the restore shorty needs to be simulated, the primary identity should
+  // not be found.
   id<SystemIdentity> authenticated_identity =
       simulate_identity_lost_for_restore
           ? nil
diff --git a/ios/chrome/browser/signin/model/signin_util.h b/ios/chrome/browser/signin/model/signin_util.h
index ef8ab3fd4..934db42 100644
--- a/ios/chrome/browser/signin/model/signin_util.h
+++ b/ios/chrome/browser/signin/model/signin_util.h
@@ -41,8 +41,8 @@
 // The value is cached. The result is cached for later calls.
 signin::Tribool IsFirstSessionAfterDeviceRestore();
 
-// Stores a user's account info and if history sync was enabled or not, when we
-// detect that it was forgotten during a device restore.
+// Stores a user's account info and whether history sync was enabled or not,
+// when we detect that it was forgotten during a device restore.
 void StorePreRestoreIdentity(PrefService* profile_pref,
                              AccountInfo account,
                              bool history_sync_enabled);
@@ -65,4 +65,8 @@
 // can be cached for later usage.
 void RunSystemCapabilitiesPrefetch(NSArray<id<SystemIdentity>>* identities);
 
+// Whether a phone backup/restore state should be simulated.
+// This can be triggered either by EG test flag or by Experimental settings.
+bool SimulatePostDeviceRestore();
+
 #endif  // IOS_CHROME_BROWSER_SIGNIN_MODEL_SIGNIN_UTIL_H_
diff --git a/ios/chrome/browser/signin/model/signin_util.mm b/ios/chrome/browser/signin/model/signin_util.mm
index e16753ab..d152905 100644
--- a/ios/chrome/browser/signin/model/signin_util.mm
+++ b/ios/chrome/browser/signin/model/signin_util.mm
@@ -15,6 +15,7 @@
 #import "google_apis/gaia/core_account_id.h"
 #import "google_apis/gaia/gaia_auth_util.h"
 #import "google_apis/gaia/gaia_id.h"
+#import "ios/chrome/app/tests_hook.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/public/features/system_flags.h"
@@ -22,6 +23,7 @@
 #import "ios/chrome/browser/signin/model/system_identity.h"
 #import "ios/chrome/browser/signin/model/system_identity_manager.h"
 #import "ios/public/provider/chrome/browser/signin/signin_error_api.h"
+#import "ios/public/provider/chrome/browser/signin/signin_identity_api.h"
 
 namespace {
 
@@ -97,7 +99,7 @@
 }
 
 signin::Tribool IsFirstSessionAfterDeviceRestore() {
-  if (experimental_flags::SimulatePostDeviceRestore()) {
+  if (SimulatePostDeviceRestore()) {
     return signin::Tribool::kTrue;
   }
   static signin::Tribool is_first_session_after_device_restore =
@@ -161,3 +163,10 @@
         }));
   }
 }
+
+bool SimulatePostDeviceRestore() {
+  // We simulate post device restore if required either by experimental settings
+  // or test flag.
+  return tests_hook::SimulatePostDeviceRestore() ||
+         experimental_flags::SimulatePostDeviceRestore();
+}
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/base_grid_view_controller.h b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/base_grid_view_controller.h
index 1c1424f4..e8b4c2b 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/base_grid_view_controller.h
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/base_grid_view_controller.h
@@ -96,6 +96,11 @@
 - (void)gridViewControllerDidRequestContextMenu:
     (BaseGridViewController*)gridViewController;
 
+// Tells the delegate that a button ("x" button or "Activity" button) in the
+// activity summary was tapped.
+- (void)didTapButtonInActivitySummary:
+    (BaseGridViewController*)gridViewController;
+
 @end
 
 // A view controller that contains a grid of items.
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/regular/regular_grid_mediator.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/regular/regular_grid_mediator.mm
index d2707c8..5cca81e 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/regular/regular_grid_mediator.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/regular/regular_grid_mediator.mm
@@ -244,6 +244,7 @@
     _messagingService->RemovePersistentMessageObserver(
         _messagingBackendServiceBridge.get());
     _messagingBackendServiceBridge.reset();
+    _messagingService = nil;
   }
   _tabsCloser.reset();
   _scopedSyncServiceObservation.reset();
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/tab_group_grid_view_controller.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/tab_group_grid_view_controller.mm
index f9b4d24..f53e2dbc 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/tab_group_grid_view_controller.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/grid/tab_group_grid_view_controller.mm
@@ -224,10 +224,12 @@
 #pragma mark - TabGroupActivitySummaryCellDelegate
 
 - (void)closeButtonForActivitySummaryTapped {
+  [self.delegate didTapButtonInActivitySummary:self];
   [self removeActivitySummaryCell];
 }
 
 - (void)activityButtonForActivitySummaryTapped {
+  [self.delegate didTapButtonInActivitySummary:self];
   [self removeActivitySummaryCell];
   [self.viewDelegate showRecentActivity];
 }
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
index 63e795d..3e62193 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
@@ -394,6 +394,11 @@
   // No-op.
 }
 
+- (void)didTapButtonInActivitySummary:
+    (BaseGridViewController*)gridViewController {
+  NOTREACHED();
+}
+
 #pragma mark - InactiveTabsUserEducationCoordinatorDelegate
 
 - (void)inactiveTabsUserEducationCoordinatorDidTapSettingsButton:
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_grid_view_controller.mm
index 6d70ce79..2ef33c65 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_grid_view_controller.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_grid_view_controller.mm
@@ -1844,6 +1844,11 @@
   [self.mutator dragAndDropSessionEnded];
 }
 
+- (void)didTapButtonInActivitySummary:
+    (BaseGridViewController*)gridViewController {
+  NOTREACHED();
+}
+
 #pragma mark - TabGridToolbarsMainTabGridDelegate
 
 - (void)pageControlChangedValue:(id)sender {
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_coordinator.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_coordinator.mm
index e48e176..71e2081 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_coordinator.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_coordinator.mm
@@ -9,6 +9,7 @@
 #import "base/metrics/user_metrics.h"
 #import "base/strings/sys_string_conversions.h"
 #import "components/collaboration/public/collaboration_service.h"
+#import "components/collaboration/public/messaging/messaging_backend_service.h"
 #import "components/saved_tab_groups/public/saved_tab_group.h"
 #import "ios/chrome/browser/collaboration/model/collaboration_service_factory.h"
 #import "ios/chrome/browser/collaboration/model/ios_collaboration_controller_delegate.h"
@@ -359,6 +360,18 @@
   // No-op
 }
 
+- (void)didTapButtonInActivitySummary:
+    (BaseGridViewController*)gridViewController {
+  collaboration::messaging::MessagingBackendService* messagingService =
+      collaboration::messaging::MessagingBackendServiceFactory::GetForProfile(
+          self.browser->GetProfile());
+  if (!_tabGroup || !messagingService) {
+    return;
+  }
+
+  messagingService->ClearDirtyTabMessagesForGroup(_tabGroup->tab_group_id());
+}
+
 #pragma mark - TabGroupPresentationCommands
 
 - (void)showShareKitFlow {
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_mediator.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_mediator.mm
index c37768e..af5d1d71 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_mediator.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_mediator.mm
@@ -199,6 +199,7 @@
     _messagingService->RemovePersistentMessageObserver(
         _messagingBackendServiceBridge.get());
     _messagingBackendServiceBridge.reset();
+    _messagingService = nil;
   }
   _scopedSyncServiceObservation.reset();
   _syncServiceObserver.reset();
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/coordinator/tab_strip_mediator.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/coordinator/tab_strip_mediator.mm
index 7a0c9321..eae0f6d 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/coordinator/tab_strip_mediator.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/coordinator/tab_strip_mediator.mm
@@ -319,6 +319,7 @@
     _messagingService->RemovePersistentMessageObserver(
         _messagingBackendServiceBridge.get());
     _messagingBackendServiceBridge.reset();
+    _messagingService = nil;
   }
   _tabStripHandler = nil;
   _browserList = nullptr;
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_features_utils.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_features_utils.mm
index 912bdd16..419155d 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_features_utils.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_features_utils.mm
@@ -11,10 +11,7 @@
 @implementation TabStripFeaturesUtils
 
 + (BOOL)isModernTabStripNewTabButtonDynamic {
-  CHECK(IsModernTabStripOrRaccoonEnabled());
-  std::string feature_param = base::GetFieldTrialParamValueByFeature(
-      kModernTabStrip, kModernTabStripParameterName);
-  return feature_param != kModernTabStripNTBStaticParam;
+  return YES;
 }
 
 + (BOOL)isModernTabStripWithTabGroups {
@@ -22,53 +19,43 @@
 }
 
 + (BOOL)hasCloserNTB {
-  return GetFieldTrialParamByFeatureAsBool(kModernTabStrip,
-                                           kModernTabStripCloserNTB, false);
+  return YES;
 }
 
 + (BOOL)hasDarkerBackground {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripDarkerBackground, false);
+  return NO;
 }
 
 + (BOOL)hasDarkerBackgroundV3 {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripDarkerBackgroundV3, false);
+  return YES;
 }
 
 + (BOOL)hasNoNTBBackground {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripNTBNoBackground, false);
+  return NO;
 }
 
 + (BOOL)hasBlackBackground {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripBlackBackground, false);
+  return NO;
 }
 
 + (BOOL)hasBiggerNTB {
-  return GetFieldTrialParamByFeatureAsBool(kModernTabStrip,
-                                           kModernTabStripBiggerNTB, false);
+  return YES;
 }
 
 + (BOOL)hasCloseButtonsVisible {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripCloseButtonsVisible, false);
+  return NO;
 }
 
 + (BOOL)hasHighContrastInactiveTabs {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripInactiveTabsHighContrast, false);
+  return YES;
 }
 
 + (BOOL)hasHighContrastNTB {
-  return GetFieldTrialParamByFeatureAsBool(
-      kModernTabStrip, kModernTabStripHighContrastNTB, false);
+  return NO;
 }
 
 + (BOOL)hasDetachedTabs {
-  return GetFieldTrialParamByFeatureAsBool(kModernTabStrip,
-                                           kModernTabStripDetachedTabs, false);
+  return NO;
 }
 
 @end
diff --git a/ios/chrome/browser/tabs/model/BUILD.gn b/ios/chrome/browser/tabs/model/BUILD.gn
index 17e3816..ca227e61 100644
--- a/ios/chrome/browser/tabs/model/BUILD.gn
+++ b/ios/chrome/browser/tabs/model/BUILD.gn
@@ -9,10 +9,6 @@
     "synced_window_delegate_browser_agent.h",
     "tab_helper_delegate_installer.h",
     "tab_helper_util.h",
-    "tab_parenting_browser_agent.h",
-    "tab_parenting_browser_agent.mm",
-    "tab_parenting_global_observer.cc",
-    "tab_parenting_global_observer.h",
     "tab_title_util.h",
     "tabs_closer.h",
   ]
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h b/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h
deleted file mode 100644
index 0465b930..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
-#define IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
-
-#import "ios/chrome/browser/shared/model/browser/browser_observer.h"
-#import "ios/chrome/browser/shared/model/browser/browser_user_data.h"
-#import "ios/chrome/browser/shared/model/web_state_list/web_state_list_observer.h"
-
-class TabParentingBrowserAgent
-    : public BrowserObserver,
-      public BrowserUserData<TabParentingBrowserAgent>,
-      public WebStateListObserver {
- public:
-  ~TabParentingBrowserAgent() override;
-  TabParentingBrowserAgent(const TabParentingBrowserAgent&) = delete;
-  TabParentingBrowserAgent& operator=(const TabParentingBrowserAgent&) = delete;
-
-  // BrowserObserver implementation.
-  void BrowserDestroyed(Browser* browser) override;
-
-  // WebStateListObserver implementation.
-  void WebStateListDidChange(WebStateList* web_state_list,
-                             const WebStateListChange& change,
-                             const WebStateListStatus& status) override;
-
- private:
-  friend class BrowserUserData<TabParentingBrowserAgent>;
-  BROWSER_USER_DATA_KEY_DECL();
-
-  explicit TabParentingBrowserAgent(Browser* browser);
-};
-
-#endif  // IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm b/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm
deleted file mode 100644
index 4fa64699..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h"
-
-#import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
-#import "ios/chrome/browser/tabs/model/tab_parenting_global_observer.h"
-
-BROWSER_USER_DATA_KEY_IMPL(TabParentingBrowserAgent)
-
-TabParentingBrowserAgent::TabParentingBrowserAgent(Browser* browser) {
-  browser->AddObserver(this);
-  browser->GetWebStateList()->AddObserver(this);
-}
-
-TabParentingBrowserAgent::~TabParentingBrowserAgent() = default;
-
-#pragma mark - BrowserObserver
-
-void TabParentingBrowserAgent::BrowserDestroyed(Browser* browser) {
-  // Stop observing web state list.
-  browser->GetWebStateList()->RemoveObserver(this);
-  browser->RemoveObserver(this);
-}
-
-#pragma mark - WebStateListObserver
-
-void TabParentingBrowserAgent::WebStateListDidChange(
-    WebStateList* web_state_list,
-    const WebStateListChange& change,
-    const WebStateListStatus& status) {
-  switch (change.type()) {
-    case WebStateListChange::Type::kStatusOnly:
-      // Do nothing when a WebState is selected and its status is updated.
-      break;
-    case WebStateListChange::Type::kDetach:
-      // Do nothing when a WebState is detached.
-      break;
-    case WebStateListChange::Type::kMove:
-      // Do nothing when a WebState is moved.
-      break;
-    case WebStateListChange::Type::kReplace: {
-      const WebStateListChangeReplace& replace_change =
-          change.As<WebStateListChangeReplace>();
-      TabParentingGlobalObserver::GetInstance()->OnTabParented(
-          replace_change.inserted_web_state());
-      break;
-    }
-    case WebStateListChange::Type::kInsert: {
-      const WebStateListChangeInsert& insert_change =
-          change.As<WebStateListChangeInsert>();
-      TabParentingGlobalObserver::GetInstance()->OnTabParented(
-          insert_change.inserted_web_state());
-      break;
-    }
-    case WebStateListChange::Type::kGroupCreate:
-      // Do nothing when a group is created.
-      break;
-    case WebStateListChange::Type::kGroupVisualDataUpdate:
-      // Do nothing when a tab group's visual data are updated.
-      break;
-    case WebStateListChange::Type::kGroupMove:
-      // Do nothing when a tab group is moved.
-      break;
-    case WebStateListChange::Type::kGroupDelete:
-      // Do nothing when a group is deleted.
-      break;
-  }
-}
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc b/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc
deleted file mode 100644
index d4059df3..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ios/chrome/browser/tabs/model/tab_parenting_global_observer.h"
-
-#include "base/no_destructor.h"
-
-TabParentingGlobalObserver* TabParentingGlobalObserver::GetInstance() {
-  static base::NoDestructor<TabParentingGlobalObserver> instance;
-  return instance.get();
-}
-
-base::CallbackListSubscription TabParentingGlobalObserver::RegisterCallback(
-    const OnTabParentedCallback& cb) {
-  return on_tab_parented_callback_list_.Add(cb);
-}
-
-void TabParentingGlobalObserver::OnTabParented(web::WebState* web_state) {
-  on_tab_parented_callback_list_.Notify(web_state);
-}
-
-TabParentingGlobalObserver::TabParentingGlobalObserver() {}
-
-TabParentingGlobalObserver::~TabParentingGlobalObserver() {}
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h b/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h
deleted file mode 100644
index be5df2f4..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_
-#define IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_
-
-#include "base/callback_list.h"
-#include "base/no_destructor.h"
-
-namespace web {
-class WebState;
-}
-
-// Allows clients to observe every tab (i.e., WebState) that is parented.
-// NOTE: Should be used only to correspond to //chrome flows that listen for
-// the TAB_PARENTED notification from all sources.
-class TabParentingGlobalObserver {
- public:
-  using OnTabParentedCallback = base::RepeatingCallback<void(web::WebState*)>;
-
-  // Returns the instance of TabParentingGlobalObserver.
-  static TabParentingGlobalObserver* GetInstance();
-
-  TabParentingGlobalObserver(const TabParentingGlobalObserver&) = delete;
-  TabParentingGlobalObserver& operator=(const TabParentingGlobalObserver&) =
-      delete;
-
-  // Registers `cb` to be invoked when a tab is parented.
-  base::CallbackListSubscription RegisterCallback(
-      const OnTabParentedCallback& cb);
-
-  // Called to notify all registered callbacks that `web_state` was parented.
-  void OnTabParented(web::WebState* web_state);
-
- private:
-  friend class base::NoDestructor<TabParentingGlobalObserver>;
-
-  TabParentingGlobalObserver();
-  ~TabParentingGlobalObserver();
-
-  base::RepeatingCallbackList<void(web::WebState*)>
-      on_tab_parented_callback_list_;
-};
-
-#endif  // IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_
diff --git a/ios/chrome/browser/toolbar/ui_bundled/BUILD.gn b/ios/chrome/browser/toolbar/ui_bundled/BUILD.gn
index 2493086f..b4d22cfa 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/toolbar/ui_bundled/BUILD.gn
@@ -191,6 +191,7 @@
     "//components/bookmarks/browser",
     "//components/bookmarks/common",
     "//components/bookmarks/test",
+    "//components/collaboration:test_support",
     "//components/open_from_clipboard",
     "//components/open_from_clipboard:test_support",
     "//components/prefs",
@@ -199,6 +200,7 @@
     "//components/sync_preferences:test_support",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/bookmarks/model",
+    "//ios/chrome/browser/collaboration/model/messaging",
     "//ios/chrome/browser/menu/ui_bundled",
     "//ios/chrome/browser/omnibox/model",
     "//ios/chrome/browser/policy/model:policy_util",
diff --git a/ios/chrome/browser/toolbar/ui_bundled/DEPS b/ios/chrome/browser/toolbar/ui_bundled/DEPS
index d2bc081..ad7b3b8 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/DEPS
+++ b/ios/chrome/browser/toolbar/ui_bundled/DEPS
@@ -32,3 +32,10 @@
   "+ios/chrome/browser/url_loading/model",
   "+ios/chrome/browser/web/model/web_navigation_browser_agent.h",
 ];
+
+specific_include_rules = {
+  ".*_unittest.mm" : [
+    "+components/collaboration/test_support",
+    "+components/data_sharing/public",
+  ]
+}
diff --git a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_coordinator.mm b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_coordinator.mm
index e141130..4c818a85 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_coordinator.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_coordinator.mm
@@ -6,6 +6,7 @@
 
 #import "base/apple/foundation_util.h"
 #import "components/ukm/ios/ukm_url_recorder.h"
+#import "ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
 #import "ios/chrome/browser/fullscreen/ui_bundled/fullscreen_controller.h"
 #import "ios/chrome/browser/fullscreen/ui_bundled/fullscreen_ui_updater.h"
@@ -75,7 +76,10 @@
   self.viewController.layoutGuideCenter = LayoutGuideCenterForBrowser(browser);
   self.viewController.adaptiveDelegate = self;
 
-  self.mediator = [[AdaptiveToolbarMediator alloc] init];
+  self.mediator = [[AdaptiveToolbarMediator alloc]
+      initWithMessagingService:collaboration::messaging::
+                                   MessagingBackendServiceFactory::
+                                       GetForProfile(browser->GetProfile())];
   self.mediator.incognito = browser->GetProfile()->IsOffTheRecord();
   self.mediator.consumer = self.viewController;
   self.mediator.navigationBrowserAgent =
diff --git a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.h b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.h
index 2a856ab..ae63e3b 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.h
+++ b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.h
@@ -9,6 +9,9 @@
 
 #import "ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_menus_provider.h"
 
+namespace collaboration::messaging {
+class MessagingBackendService;
+}  // namespace collaboration::messaging
 namespace web {
 class WebState;
 }
@@ -49,6 +52,13 @@
 /// Helper for Web navigation.
 @property(nonatomic, assign) WebNavigationBrowserAgent* navigationBrowserAgent;
 
+/// Inits with the `messagingService` to observe tab group changes.
+- (instancetype)initWithMessagingService:
+    (collaboration::messaging::MessagingBackendService*)messagingService
+    NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
 /// Updates the consumer to conforms to `webState`.
 - (void)updateConsumerForWebState:(web::WebState*)webState;
 /// Stops observing all objects.
diff --git a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.mm b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.mm
index 8d79c30..2b95ee6 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator.mm
@@ -9,9 +9,12 @@
 #import "base/metrics/user_metrics.h"
 #import "base/metrics/user_metrics_action.h"
 #import "base/strings/sys_string_conversions.h"
+#import "components/collaboration/public/messaging/message.h"
+#import "components/collaboration/public/messaging/messaging_backend_service.h"
 #import "components/open_from_clipboard/clipboard_recent_content.h"
 #import "components/optimization_guide/optimization_guide_buildflags.h"
 #import "components/search_engines/template_url_service.h"
+#import "ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_bridge.h"
 #import "ios/chrome/browser/lens/ui_bundled/lens_availability.h"
 #import "ios/chrome/browser/menu/ui_bundled/browser_action_factory.h"
 #import "ios/chrome/browser/ntp/model/new_tab_page_util.h"
@@ -48,7 +51,24 @@
 #import "ui/base/l10n/l10n_util.h"
 #import "ui/gfx/image/image.h"
 
+namespace {
+
+// Returns a local tab group ID in `message`. Returns nullopt if the ID doesn't
+// exist.
+std::optional<tab_groups::LocalTabGroupID> LocalTabGroupID(
+    collaboration::messaging::PersistentMessage message) {
+  if (!message.attribution.tab_group_metadata.has_value()) {
+    return std::nullopt;
+  }
+  collaboration::messaging::TabGroupMessageMetadata group_data =
+      message.attribution.tab_group_metadata.value();
+  return group_data.local_tab_group_id;
+}
+
+}  // namespace
+
 @interface AdaptiveToolbarMediator () <CRWWebStateObserver,
+                                       MessagingBackendServiceObserving,
                                        OverlayPresenterObserving,
                                        WebStateListObserving>
 
@@ -65,14 +85,32 @@
   std::unique_ptr<web::WebStateObserverBridge> _webStateObserver;
   std::unique_ptr<WebStateListObserverBridge> _webStateListObserver;
   std::unique_ptr<OverlayPresenterObserverBridge> _overlayObserver;
+
+  // A service to get activity messages for a shared tab group.
+  raw_ptr<collaboration::messaging::MessagingBackendService> _messagingService;
+  // The bridge between the C++ MessagingBackendService observer and this
+  // Objective-C class.
+  std::unique_ptr<MessagingBackendServiceBridge> _messagingBackendServiceBridge;
+  // A set of a shared group ID that has changed and a user has not seen it yet.
+  std::set<tab_groups::LocalTabGroupID> _dirtyGroups;
 }
 
-- (instancetype)init {
+- (instancetype)initWithMessagingService:
+    (collaboration::messaging::MessagingBackendService*)messagingService {
   self = [super init];
   if (self) {
     _webStateObserver = std::make_unique<web::WebStateObserverBridge>(self);
     _webStateListObserver = std::make_unique<WebStateListObserverBridge>(self);
     _overlayObserver = std::make_unique<OverlayPresenterObserverBridge>(self);
+
+    _messagingService = messagingService;
+    if (_messagingService) {
+      _messagingBackendServiceBridge =
+          std::make_unique<MessagingBackendServiceBridge>(self);
+      _messagingService->AddPersistentMessageObserver(
+          _messagingBackendServiceBridge.get());
+      [self fetchMessages];
+    }
   }
   return self;
 }
@@ -103,6 +141,13 @@
     _webStateObserver.reset();
     _webState = nullptr;
   }
+
+  if (_messagingService) {
+    _messagingService->RemovePersistentMessageObserver(
+        _messagingBackendServiceBridge.get());
+    _messagingBackendServiceBridge.reset();
+    _messagingService = nil;
+  }
 }
 
 #pragma mark - CRWWebStateObserver
@@ -212,6 +257,48 @@
   [self.consumer setTabCount:[self tabCountToDisplay] addedInBackground:NO];
 }
 
+#pragma mark - MessagingBackendServiceObserving
+
+- (void)onMessagingBackendServiceInitialized {
+  [self fetchMessages];
+}
+
+- (void)displayPersistentMessage:
+    (collaboration::messaging::PersistentMessage)message {
+  CHECK(_messagingService);
+  CHECK(_messagingService->IsInitialized());
+
+  if (message.type !=
+      collaboration::messaging::PersistentNotificationType::DIRTY_TAB_GROUP) {
+    return;
+  }
+
+  if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
+          LocalTabGroupID(message)) {
+    _dirtyGroups.insert(*localTabGroupID);
+  }
+
+  [self updateTabGridButtonBlueDot];
+}
+
+- (void)hidePersistentMessage:
+    (collaboration::messaging::PersistentMessage)message {
+  CHECK(_messagingService);
+  CHECK(_messagingService->IsInitialized());
+
+  if (message.type !=
+      collaboration::messaging::PersistentNotificationType::DIRTY_TAB_GROUP) {
+    return;
+  }
+
+  if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
+          LocalTabGroupID(message)) {
+    _dirtyGroups.erase(*localTabGroupID);
+  }
+
+  [self updateTabGridButtonBlueDot];
+}
+
 #pragma mark - AdaptiveToolbarMenusProvider
 
 - (UIMenu*)menuForButtonOfType:(AdaptiveToolbarButtonType)buttonType {
@@ -267,6 +354,7 @@
   }
   if (self.webStateList) {
     [self.consumer setTabCount:_webStateList->count() addedInBackground:NO];
+    [self updateTabGridButtonBlueDot];
   }
 }
 
@@ -283,6 +371,7 @@
 
     if (self.consumer) {
       [self.consumer setTabCount:_webStateList->count() addedInBackground:NO];
+      [self updateTabGridButtonBlueDot];
     }
   } else {
     // Clear the web navigation browser agent if the webStateList is nil.
@@ -569,4 +658,41 @@
              : ToolbarTabGroupState::kNormal;
 }
 
+// Updates the blue dot in the Tab Grid button depending on the messages and the
+// current active web state.
+- (void)updateTabGridButtonBlueDot {
+  if ([self tabGroupStateToDisplay] == ToolbarTabGroupState::kNormal) {
+    // Show the blue dot if there is at least one group that has been updated.
+    [self.consumer setTabGridButtonBlueDot:_dirtyGroups.size() > 0];
+    return;
+  }
+
+  // Show the blue dot if the current active group has been updated.
+  CHECK([self tabGroupStateToDisplay] == ToolbarTabGroupState::kTabGroup);
+  const TabGroup* activeGroup = [self activeWebStateTabGroup];
+  [self.consumer setTabGridButtonBlueDot:_dirtyGroups.contains(
+                                             activeGroup->tab_group_id())];
+}
+
+// Gets messages to indicate that a shared tab group has been changed.
+- (void)fetchMessages {
+  if (!_messagingService || !_messagingService->IsInitialized()) {
+    return;
+  }
+
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      _messagingService->GetMessages(
+          collaboration::messaging::PersistentNotificationType::
+              DIRTY_TAB_GROUP);
+
+  for (auto& message : messages) {
+    if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
+            LocalTabGroupID(message)) {
+      _dirtyGroups.insert(*localTabGroupID);
+    }
+  }
+
+  [self updateTabGridButtonBlueDot];
+}
+
 @end
diff --git a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator_unittest.mm b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator_unittest.mm
index 7e7acea..6dbda9e 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator_unittest.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/adaptive_toolbar_mediator_unittest.mm
@@ -11,15 +11,21 @@
 #import "base/memory/raw_ptr.h"
 #import "base/strings/sys_string_conversions.h"
 #import "base/strings/utf_string_conversions.h"
+#import "base/test/scoped_feature_list.h"
+#import "components/collaboration/test_support/mock_messaging_backend_service.h"
+#import "components/data_sharing/public/features.h"
 #import "components/open_from_clipboard/clipboard_recent_content.h"
 #import "components/open_from_clipboard/fake_clipboard_recent_content.h"
+#import "ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_bridge.h"
 #import "ios/chrome/browser/menu/ui_bundled/browser_action_factory.h"
 #import "ios/chrome/browser/policy/model/policy_util.h"
 #import "ios/chrome/browser/search_engines/model/template_url_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/browser/shared/model/url/chrome_url_constants.h"
+#import "ios/chrome/browser/shared/model/web_state_list/tab_group.h"
 #import "ios/chrome/browser/shared/model/web_state_list/test/fake_web_state_list_delegate.h"
+#import "ios/chrome/browser/shared/model/web_state_list/test/web_state_list_builder_from_description.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list_observer_bridge.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_opener.h"
@@ -29,6 +35,7 @@
 #import "ios/chrome/browser/shared/public/commands/load_query_commands.h"
 #import "ios/chrome/browser/shared/public/commands/qr_scanner_commands.h"
 #import "ios/chrome/browser/shared/public/commands/settings_commands.h"
+#import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/toolbar/ui_bundled/test/toolbar_test_navigation_manager.h"
 #import "ios/chrome/browser/toolbar/ui_bundled/toolbar_consumer.h"
 #import "ios/chrome/browser/web/model/web_navigation_browser_agent.h"
@@ -46,8 +53,13 @@
 #import "third_party/ocmock/gtest_support.h"
 #import "ui/base/l10n/l10n_util.h"
 
+using testing::_;
+using testing::Return;
+
 @interface TestAdaptiveToolbarMediator
-    : AdaptiveToolbarMediator <CRWWebStateObserver, WebStateListObserving>
+    : AdaptiveToolbarMediator <CRWWebStateObserver,
+                               MessagingBackendServiceObserving,
+                               WebStateListObserving>
 @end
 
 @implementation TestAdaptiveToolbarMediator
@@ -60,9 +72,32 @@
 static const int kNumberOfWebStates = 3;
 static const char kTestUrl[] = "http://www.chromium.org";
 
+// Returns a vector of messages containing an update for `tab_group`.
+std::vector<collaboration::messaging::PersistentMessage> UpdateForGroup(
+    const TabGroup* tab_group) {
+  collaboration::messaging::TabGroupMessageMetadata metadata;
+  metadata.local_tab_group_id = std::make_optional(tab_group->tab_group_id());
+  collaboration::messaging::PersistentMessage message;
+  message.type =
+      collaboration::messaging::PersistentNotificationType::DIRTY_TAB_GROUP;
+  message.attribution.tab_group_metadata = std::make_optional(metadata);
+  return std::vector{message};
+}
+
 class AdaptiveToolbarMediatorTest : public PlatformTest {
  public:
   AdaptiveToolbarMediatorTest() {
+    scoped_feature_list_.InitWithFeatures(
+        /*enabled_features=*/
+        {
+            kTabGroupSync,
+            kTabGroupsIPad,
+            kModernTabStrip,
+            kTabGroupIndicator,
+            data_sharing::features::kDataSharingFeature,
+        },
+        /*disable_features=*/{});
+
     ios::provider::test::SetVoiceSearchEnabled(false);
 
     TestProfileIOS::Builder builder;
@@ -83,7 +118,8 @@
     test_web_state_->SetNavigationManager(std::move(navigation_manager));
     test_web_state_->SetLoading(true);
     web_state_ = test_web_state_.get();
-    mediator_ = [[TestAdaptiveToolbarMediator alloc] init];
+    mediator_ = [[TestAdaptiveToolbarMediator alloc]
+        initWithMessagingService:&messaging_backend_];
     mediator_.navigationBrowserAgent =
         WebNavigationBrowserAgent::FromBrowser(test_browser_.get());
     mediator_.actionFactory =
@@ -165,6 +201,7 @@
 
   void SetUpActiveWebState() { web_state_list_->ActivateWebStateAt(0); }
 
+  base::test::ScopedFeatureList scoped_feature_list_;
   TestAdaptiveToolbarMediator* mediator_;
   std::unique_ptr<TestBrowser> test_browser_;
   raw_ptr<web::FakeWebState> web_state_;
@@ -179,6 +216,7 @@
   id mock_qr_scanner_commands_handler_;
   id mock_load_query_commands_handler_;
   std::unique_ptr<TestProfileIOS> profile_;
+  collaboration::messaging::MockMessagingBackendService messaging_backend_;
 
  private:
   std::unique_ptr<web::FakeWebState> test_web_state_;
@@ -523,4 +561,139 @@
   EXPECT_NSEQ(@"chromium.org/6", forward_menu.children[2].title);
 }
 
+// Tests adding a message for a group update while not in a group.
+TEST_F(AdaptiveToolbarMediatorTest, MessageOnNonGroupAtStartup) {
+  CloseAllWebStates(*web_state_list_, WebStateList::CLOSE_NO_FLAGS);
+  WebStateListBuilderFromDescription builder(web_state_list_.get());
+  ASSERT_TRUE(
+      builder.BuildWebStateListFromDescription("| [0 a b] c* [1 d] e f"));
+  mediator_.webStateList = web_state_list_.get();
+
+  const TabGroup* tab_group = web_state_list_->GetGroupOfWebStateAt(0);
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      UpdateForGroup(tab_group);
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(true));
+  ON_CALL(messaging_backend_, GetMessages(_)).WillByDefault(Return(messages));
+  [mediator_ onMessagingBackendServiceInitialized];
+
+  OCMExpect([consumer_ setTabGridButtonBlueDot:YES]);
+
+  mediator_.consumer = consumer_;
+
+  EXPECT_OCMOCK_VERIFY(consumer_);
+}
+
+// Tests adding a message for a group update while not in a group, the backend
+// not being initialized.
+TEST_F(AdaptiveToolbarMediatorTest, MessageOnNonGroupNotInitialized) {
+  CloseAllWebStates(*web_state_list_, WebStateList::CLOSE_NO_FLAGS);
+  WebStateListBuilderFromDescription builder(web_state_list_.get());
+  ASSERT_TRUE(
+      builder.BuildWebStateListFromDescription("| [0 a b] c* [1 d] e f"));
+  mediator_.webStateList = web_state_list_.get();
+
+  const TabGroup* tab_group = web_state_list_->GetGroupOfWebStateAt(0);
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      UpdateForGroup(tab_group);
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(false));
+  ON_CALL(messaging_backend_, GetMessages(_)).WillByDefault(Return(messages));
+
+  mediator_.consumer = consumer_;
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(true));
+
+  OCMExpect([consumer_ setTabGridButtonBlueDot:YES]);
+
+  // Fake the initialization of the service.
+  [mediator_ onMessagingBackendServiceInitialized];
+
+  EXPECT_OCMOCK_VERIFY(consumer_);
+}
+
+// Tests adding a message for a group update while not in a group, receiving the
+// update after startup.
+TEST_F(AdaptiveToolbarMediatorTest, MessageOnNonGroupNotification) {
+  CloseAllWebStates(*web_state_list_, WebStateList::CLOSE_NO_FLAGS);
+  WebStateListBuilderFromDescription builder(web_state_list_.get());
+  ASSERT_TRUE(
+      builder.BuildWebStateListFromDescription("| [0 a b] c* [1 d] e f"));
+  mediator_.webStateList = web_state_list_.get();
+
+  const TabGroup* tab_group = web_state_list_->GetGroupOfWebStateAt(0);
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      UpdateForGroup(tab_group);
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(true));
+  [mediator_ onMessagingBackendServiceInitialized];
+
+  mediator_.consumer = consumer_;
+
+  ON_CALL(messaging_backend_, GetMessages(_)).WillByDefault(Return(messages));
+
+  OCMExpect([consumer_ setTabGridButtonBlueDot:YES]);
+
+  // Fake the update of the backend.
+  [mediator_ displayPersistentMessage:messages[0]];
+
+  EXPECT_OCMOCK_VERIFY(consumer_);
+}
+
+// Tests adding a message for a group update while in a group, receiving the
+// update for this group after startup.
+TEST_F(AdaptiveToolbarMediatorTest, MessageForGroupInGroupNotification) {
+  CloseAllWebStates(*web_state_list_, WebStateList::CLOSE_NO_FLAGS);
+  WebStateListBuilderFromDescription builder(web_state_list_.get());
+  ASSERT_TRUE(
+      builder.BuildWebStateListFromDescription("| [0 a b*] c [1 d] e f"));
+  mediator_.webStateList = web_state_list_.get();
+
+  const TabGroup* tab_group = web_state_list_->GetGroupOfWebStateAt(0);
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      UpdateForGroup(tab_group);
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(true));
+  [mediator_ onMessagingBackendServiceInitialized];
+
+  mediator_.consumer = consumer_;
+
+  ON_CALL(messaging_backend_, GetMessages(_)).WillByDefault(Return(messages));
+
+  OCMExpect([consumer_ setTabGridButtonBlueDot:YES]);
+
+  // Fake the update of the backend.
+  [mediator_ displayPersistentMessage:messages[0]];
+
+  EXPECT_OCMOCK_VERIFY(consumer_);
+}
+
+// Tests adding a message for a group update while in a group, receiving the
+// update for another group after startup.
+TEST_F(AdaptiveToolbarMediatorTest, MessageForOtherGroupInGroupNotification) {
+  CloseAllWebStates(*web_state_list_, WebStateList::CLOSE_NO_FLAGS);
+  WebStateListBuilderFromDescription builder(web_state_list_.get());
+  ASSERT_TRUE(
+      builder.BuildWebStateListFromDescription("| [0 a b] c [1 d*] e f"));
+  mediator_.webStateList = web_state_list_.get();
+
+  const TabGroup* tab_group = web_state_list_->GetGroupOfWebStateAt(0);
+  std::vector<collaboration::messaging::PersistentMessage> messages =
+      UpdateForGroup(tab_group);
+
+  ON_CALL(messaging_backend_, IsInitialized).WillByDefault(Return(true));
+  [mediator_ onMessagingBackendServiceInitialized];
+
+  mediator_.consumer = consumer_;
+
+  ON_CALL(messaging_backend_, GetMessages(_)).WillByDefault(Return(messages));
+
+  OCMExpect([consumer_ setTabGridButtonBlueDot:NO]);
+
+  // Fake the update of the backend.
+  [mediator_ displayPersistentMessage:messages[0]];
+
+  EXPECT_OCMOCK_VERIFY(consumer_);
+}
+
 }  // namespace
diff --git a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_coordinator.mm b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_coordinator.mm
index 10dfd3d5..66060be 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_coordinator.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_coordinator.mm
@@ -4,7 +4,6 @@
 
 #import "ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_coordinator.h"
 
-#import "ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.h"
 #import "ios/chrome/browser/contextual_panel/model/contextual_panel_tab_helper.h"
 #import "ios/chrome/browser/fullscreen/ui_bundled/fullscreen_controller.h"
 #import "ios/chrome/browser/shared/coordinator/layout_guide/layout_guide_util.h"
@@ -36,10 +35,7 @@
   Browser* browser = self.browser;
 
   _secondaryToolbarMediator = [[SecondaryToolbarMediator alloc]
-      initWithWebStateList:browser->GetWebStateList()
-          messagingService:collaboration::messaging::
-                               MessagingBackendServiceFactory::GetForProfile(
-                                   browser->GetProfile())];
+      initWithWebStateList:browser->GetWebStateList()];
 
   self.viewController = [[SecondaryToolbarViewController alloc] init];
   self.viewController.buttonFactory =
diff --git a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.h b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.h
index 5638b25d..52786f5 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.h
+++ b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.h
@@ -9,9 +9,6 @@
 
 #import "ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_keyboard_state_provider.h"
 
-namespace collaboration::messaging {
-class MessagingBackendService;
-}  // namespace collaboration::messaging
 @protocol SecondaryToolbarConsumer;
 class WebStateList;
 
@@ -20,10 +17,7 @@
     : NSObject <SecondaryToolbarKeyboardStateProvider>
 
 /// Creates an instance of the mediator.
-- (instancetype)initWithWebStateList:(WebStateList*)webStateList
-                    messagingService:
-                        (collaboration::messaging::MessagingBackendService*)
-                            messagingService;
+- (instancetype)initWithWebStateList:(WebStateList*)webStateList;
 
 // The consumer for this mediator.
 @property(nonatomic, weak) id<SecondaryToolbarConsumer> consumer;
diff --git a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.mm b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.mm
index cae9737b..1c1f2d3 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.mm
@@ -5,9 +5,6 @@
 #import "ios/chrome/browser/toolbar/ui_bundled/secondary_toolbar_mediator.h"
 
 #import "base/memory/weak_ptr.h"
-#import "components/collaboration/public/messaging/message.h"
-#import "components/collaboration/public/messaging/messaging_backend_service.h"
-#import "ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_bridge.h"
 #import "ios/chrome/browser/contextual_panel/model/active_contextual_panel_tab_helper_observation_forwarder.h"
 #import "ios/chrome/browser/contextual_panel/model/contextual_panel_tab_helper.h"
 #import "ios/chrome/browser/contextual_panel/model/contextual_panel_tab_helper_observer_bridge.h"
@@ -21,24 +18,7 @@
 #import "ios/web/public/ui/crw_web_view_proxy.h"
 #import "ios/web/public/web_state.h"
 
-namespace {
-
-// Returns a local tab group ID in `message`. Returns nullopt if the ID doesn't
-// exist.
-std::optional<tab_groups::LocalTabGroupID> LocalTabGroupID(
-    collaboration::messaging::PersistentMessage message) {
-  if (!message.attribution.tab_group_metadata.has_value()) {
-    return std::nullopt;
-  }
-  collaboration::messaging::TabGroupMessageMetadata group_data =
-      message.attribution.tab_group_metadata.value();
-  return group_data.local_tab_group_id;
-}
-
-}  // namespace
-
 @interface SecondaryToolbarMediator () <ContextualPanelTabHelperObserving,
-                                        MessagingBackendServiceObserving,
                                         WebStateListObserving>
 
 @end
@@ -60,20 +40,9 @@
   // Forwarder to always be observing the active ContextualPanelTabHelper.
   std::unique_ptr<ActiveContextualPanelTabHelperObservationForwarder>
       _activeContextualPanelObservationForwarder;
-
-  // A service to get activity messages for a shared tab group.
-  raw_ptr<collaboration::messaging::MessagingBackendService> _messagingService;
-  // The bridge between the C++ MessagingBackendService observer and this
-  // Objective-C class.
-  std::unique_ptr<MessagingBackendServiceBridge> _messagingBackendServiceBridge;
-  // A set of a shared group ID that has changed and a user has not seen it yet.
-  std::set<tab_groups::LocalTabGroupID> _dirtyGroups;
 }
 
-- (instancetype)initWithWebStateList:(WebStateList*)webStateList
-                    messagingService:
-                        (collaboration::messaging::MessagingBackendService*)
-                            messagingService {
+- (instancetype)initWithWebStateList:(WebStateList*)webStateList {
   if ((self = [super init])) {
     DCHECK(webStateList);
     _webStateList = webStateList->AsWeakPtr();
@@ -96,15 +65,6 @@
           std::make_unique<ActiveContextualPanelTabHelperObservationForwarder>(
               webStateList, _contextualPanelObserverBridge.get());
     }
-
-    _messagingService = messagingService;
-    if (_messagingService) {
-      _messagingBackendServiceBridge =
-          std::make_unique<MessagingBackendServiceBridge>(self);
-      _messagingService->AddPersistentMessageObserver(
-          _messagingBackendServiceBridge.get());
-      [self fetchMessages];
-    }
   }
   return self;
 }
@@ -115,11 +75,6 @@
     _webStateListObservation.reset();
     _webStateList.reset();
   }
-  if (_messagingService) {
-    _messagingService->RemovePersistentMessageObserver(
-        _messagingBackendServiceBridge.get());
-    _messagingBackendServiceBridge.reset();
-  }
   _contextualPanelObserverBridge.reset();
   _webStateListObserver.reset();
 }
@@ -178,48 +133,6 @@
   [self.consumer makeOpaque];
 }
 
-#pragma mark - MessagingBackendServiceObserving
-
-- (void)onMessagingBackendServiceInitialized {
-  [self fetchMessages];
-}
-
-- (void)displayPersistentMessage:
-    (collaboration::messaging::PersistentMessage)message {
-  CHECK(_messagingService);
-  CHECK(_messagingService->IsInitialized());
-
-  if (message.type !=
-      collaboration::messaging::PersistentNotificationType::DIRTY_TAB_GROUP) {
-    return;
-  }
-
-  if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
-          LocalTabGroupID(message)) {
-    _dirtyGroups.insert(*localTabGroupID);
-  }
-
-  [self updateTabGridButtonBlueDot];
-}
-
-- (void)hidePersistentMessage:
-    (collaboration::messaging::PersistentMessage)message {
-  CHECK(_messagingService);
-  CHECK(_messagingService->IsInitialized());
-
-  if (message.type !=
-      collaboration::messaging::PersistentNotificationType::DIRTY_TAB_GROUP) {
-    return;
-  }
-
-  if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
-          LocalTabGroupID(message)) {
-    _dirtyGroups.erase(*localTabGroupID);
-  }
-
-  [self updateTabGridButtonBlueDot];
-}
-
 #pragma mark - Private
 
 // Returns the tab group of the active web state, if any.
@@ -241,41 +154,4 @@
              : ToolbarTabGroupState::kNormal;
 }
 
-// Updates the blue dot in the Tab Grid button depending on the messages and the
-// current active web state.
-- (void)updateTabGridButtonBlueDot {
-  if ([self tabGroupStateToDisplay] == ToolbarTabGroupState::kNormal) {
-    // Show the blue dot if there is at least one group that has been updated.
-    [self.consumer setTabGridButtonBlueDot:_dirtyGroups.size() > 0];
-    return;
-  }
-
-  // Show the blue dot if the current active group has been updated.
-  CHECK([self tabGroupStateToDisplay] == ToolbarTabGroupState::kTabGroup);
-  const TabGroup* activeGroup = [self activeWebStateTabGroup];
-  [self.consumer setTabGridButtonBlueDot:_dirtyGroups.contains(
-                                             activeGroup->tab_group_id())];
-}
-
-// Gets messages to indicate that a shared tab group has been changed.
-- (void)fetchMessages {
-  if (!_messagingService || !_messagingService->IsInitialized()) {
-    return;
-  }
-
-  std::vector<collaboration::messaging::PersistentMessage> messages =
-      _messagingService->GetMessages(
-          collaboration::messaging::PersistentNotificationType::
-              DIRTY_TAB_GROUP);
-
-  for (auto& message : messages) {
-    if (std::optional<tab_groups::LocalTabGroupID> localTabGroupID =
-            LocalTabGroupID(message)) {
-      _dirtyGroups.insert(*localTabGroupID);
-    }
-  }
-
-  [self updateTabGridButtonBlueDot];
-}
-
 @end
diff --git a/ios/chrome/credential_provider_extension/passkey_util.mm b/ios/chrome/credential_provider_extension/passkey_util.mm
index e3cc8a1..3b3a251e3 100644
--- a/ios/chrome/credential_provider_extension/passkey_util.mm
+++ b/ios/chrome/credential_provider_extension/passkey_util.mm
@@ -37,7 +37,7 @@
 NSData* MakeAuthenticatorDataForAssertion(NSString* rp_id) {
   std::vector<uint8_t> authenticator_data =
       webauthn::passkey_model_utils::MakeAuthenticatorDataForAssertion(
-          SysNSStringToUTF8(rp_id));
+          SysNSStringToUTF8(rp_id), /*extension_input_data=*/{});
   return [NSData dataWithBytes:authenticator_data.data()
                         length:authenticator_data.size()];
 }
@@ -199,7 +199,7 @@
               webauthn::PasskeyModel::UserEntity(user_id, user_name_str,
                                                  user_name_str),
               trusted_vault_key, /*trusted_vault_key_version=*/0,
-              /*generate_hmac_secret=*/false);
+              /*extension_input_data=*/{});
   sync_pb::WebauthnCredentialSpecifics passkey = generated_passkey.first;
   std::vector<uint8_t> public_key_spki_der = generated_passkey.second;
 
@@ -209,7 +209,7 @@
                                          length:cred_id.size()];
   std::vector<uint8_t> attestation_object_for_creation =
       webauthn::passkey_model_utils::MakeAttestationObjectForCreation(
-          rp_id_str, cred_id, public_key_spki_der);
+          rp_id_str, cred_id, public_key_spki_der, /*extension_input_data=*/{});
   NSData* attestation_object =
       [NSData dataWithBytes:attestation_object_for_creation.data()
                      length:attestation_object_for_creation.size()];
diff --git a/ios/chrome/credential_provider_extension/passkey_util_unittest.mm b/ios/chrome/credential_provider_extension/passkey_util_unittest.mm
index 4ad0752e..0b05536 100644
--- a/ios/chrome/credential_provider_extension/passkey_util_unittest.mm
+++ b/ios/chrome/credential_provider_extension/passkey_util_unittest.mm
@@ -65,7 +65,7 @@
                                                  user_name_str),
               trusted_vault_key,
               /*trusted_vault_key_version=*/0,
-              /*generate_hmac_secret=*/false);
+              /*extension_input_data=*/{});
 
   return [[ArchivableCredential alloc] initWithFavicon:nil
                                                   gaia:nil
diff --git a/ios/chrome/test/earl_grey/eg_tests_hook.mm b/ios/chrome/test/earl_grey/eg_tests_hook.mm
index c9599b1..62e3af01 100644
--- a/ios/chrome/test/earl_grey/eg_tests_hook.mm
+++ b/ios/chrome/test/earl_grey/eg_tests_hook.mm
@@ -43,6 +43,7 @@
 #import "ios/chrome/browser/signin/model/fake_system_identity.h"
 #import "ios/chrome/browser/signin/model/fake_system_identity_manager.h"
 #import "ios/chrome/browser/signin/model/identity_manager_factory.h"
+#import "ios/chrome/browser/signin/model/signin_util.h"
 #import "ios/chrome/browser/sync/model/data_type_store_service_factory.h"
 #import "ios/chrome/browser/sync/model/device_info_sync_service_factory.h"
 #import "ios/chrome/test/app/chrome_test_util.h"
@@ -137,6 +138,11 @@
   return GetTestPlatformPolicyProvider();
 }
 
+bool SimulatePostDeviceRestore() {
+  return base::CommandLine::ForCurrentProcess()->HasSwitch(
+      test_switches::kSimulatePostDeviceRestore);
+}
+
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager() {
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
 
diff --git a/ios/chrome/test/earl_grey/test_switches.h b/ios/chrome/test/earl_grey/test_switches.h
index 4a6979f..dc859c133 100644
--- a/ios/chrome/test/earl_grey/test_switches.h
+++ b/ios/chrome/test/earl_grey/test_switches.h
@@ -25,6 +25,9 @@
 // Ignored if kForceRealSystemIdentityManager is used.
 extern const char kSignInAtStartup[];
 
+// Switch used to simulate a post device restore in EG tests.
+extern const char kSimulatePostDeviceRestore[];
+
 // Switch used to enable FakeTabGroupSyncService for testing. The feature
 // kTabGroupSync should be enabled as well.
 extern const char kEnableFakeTabGroupSyncService[];
diff --git a/ios/chrome/test/earl_grey/test_switches.mm b/ios/chrome/test/earl_grey/test_switches.mm
index 84bd6101..ee4e2c3 100644
--- a/ios/chrome/test/earl_grey/test_switches.mm
+++ b/ios/chrome/test/earl_grey/test_switches.mm
@@ -16,6 +16,9 @@
 // Sign in automatically at startup.
 const char kSignInAtStartup[] = "sign-in-at-startup";
 
+// Simulate post device restore.
+const char kSimulatePostDeviceRestore[] = "simulate-post-device-restore";
+
 // Enables FakeTabGroupSyncService.
 const char kEnableFakeTabGroupSyncService[] =
     "enable-fake-tab-group-sync-service";
diff --git a/ios/chrome/test/earl_grey2/BUILD.gn b/ios/chrome/test/earl_grey2/BUILD.gn
index c65f265..64868791 100644
--- a/ios/chrome/test/earl_grey2/BUILD.gn
+++ b/ios/chrome/test/earl_grey2/BUILD.gn
@@ -176,6 +176,7 @@
     "//ios/chrome/browser/authentication/ui_bundled/signin/forced_signin:eg2_tests",
     "//ios/chrome/browser/authentication/ui_bundled/signin/two_screens_signin:eg2_tests",
     "//ios/chrome/browser/authentication/ui_bundled/signout_action_sheet:eg2_tests",
+    "//ios/chrome/browser/post_restore_signin/ui_bundled:eg2_tests",
     "//ios/chrome/browser/signin/model:eg2_tests",
   ]
   data_deps = [ ":ios_chrome_eg2tests" ]
diff --git a/ios/chrome/test/providers/application_mode_fetcher/test_application_mode_fetcher.mm b/ios/chrome/test/providers/application_mode_fetcher/test_application_mode_fetcher.mm
index bc6bec5..be48488 100644
--- a/ios/chrome/test/providers/application_mode_fetcher/test_application_mode_fetcher.mm
+++ b/ios/chrome/test/providers/application_mode_fetcher/test_application_mode_fetcher.mm
@@ -11,15 +11,6 @@
 namespace ios::provider {
 
 void FetchApplicationMode(const GURL& url,
-                          NSString* appID,
-                          AppModeFetchingCallback callback) {
-  // TODO(crbug.com/374934680): Add a factory to test different callback
-  // configurations.
-  base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback), false));
-}
-
-void FetchApplicationMode(const GURL& url,
                           NSString* app_id,
                           AppModeFetchingResponse fetching_response) {
   // TODO(crbug.com/374934680): Add a factory to test different callback
diff --git a/ios/chrome/test/wpt/cwt_tests_hook.mm b/ios/chrome/test/wpt/cwt_tests_hook.mm
index 93b3a21..7d0f2e1 100644
--- a/ios/chrome/test/wpt/cwt_tests_hook.mm
+++ b/ios/chrome/test/wpt/cwt_tests_hook.mm
@@ -54,6 +54,9 @@
 policy::ConfigurationPolicyProvider* GetOverriddenPlatformPolicyProvider() {
   return nullptr;
 }
+bool SimulatePostDeviceRestore() {
+  return false;
+}
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager() {
   return nullptr;
 }
diff --git a/ios/chrome/test/xcuitest/xcuitests_hook.mm b/ios/chrome/test/xcuitest/xcuitests_hook.mm
index 08f1d719..936da87b 100644
--- a/ios/chrome/test/xcuitest/xcuitests_hook.mm
+++ b/ios/chrome/test/xcuitest/xcuitests_hook.mm
@@ -63,6 +63,10 @@
   return nullptr;
 }
 
+bool SimulatePostDeviceRestore() {
+  return false;
+}
+
 std::unique_ptr<SystemIdentityManager> CreateSystemIdentityManager() {
   return nullptr;
 }
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
index e5bb32c3..b43b436 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-769fec528d913468e4516ba12631a985cc2c4ed4
\ No newline at end of file
+d93432e08c281dc60230bd18eef52bdc3d1a6918
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
index 25c412a..60b14b5 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-49e26f564dd5bb7467b80e62c0de1d1a899aae7d
\ No newline at end of file
+f60422acaf79a3ba29590df4610cf0a7a46e3699
\ No newline at end of file
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 ab256d4b..baa138ed 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 @@
-11fdc05c745217e912aae3294105aa92c7525fd1
\ No newline at end of file
+31ca1c72f3ff7e3d2ba34257e235a73a355dfb35
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
index fdd86270..7b4d2a4 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-8c53029065ac7ab02c653d88ef6333857f574700
\ No newline at end of file
+a3255d71483167c458621447b5e97bb214a36f7d
\ 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 074bf27..8440e7db 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 @@
-b1ba1f24250c708f4003587371ac526d8279e737
\ No newline at end of file
+1c5aff12308ce9de6002750e02c5d57c9a511650
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
index 940a406..756f7c2 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-18b53c6baf8efb1d799a82d601a3b99826dd9bf6
\ No newline at end of file
+b9f2b2efd62d445ecb695613ccc7496a4875919e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
index d1c6dfb..1446b998 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-5ba2011bf4c189c3beae0a8554e9441410049c5a
\ No newline at end of file
+24611d32f9e50d0d7dbe6d1415dcec2241f70e21
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
index ace5413..63983af 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-6e9db74024dc725ab924d4787726b21f16903960
\ No newline at end of file
+36691944cde51ffc7bd33701f0538d2666b5af6c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
index 7bacba3e..465d8050 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-ae6c9b5ba4c62e75018c9efd0276ff43040440ed
\ No newline at end of file
+c10365056117edf04e637fce72cefed23492b048
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 9c606b2b..7aa3ffe 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-e03c67666c056e216fc4865874db4ebc65002972
\ No newline at end of file
+476f0e134f773e053cdeda7a6fe4c25bbe7daa66
\ 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 58e2b9f..68d400ed9 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 @@
-60d5fe3af5c3f856da94ce6bca6ef0e29e3e455d
\ No newline at end of file
+4ef360aef12c397a7d61b5a58f5c32db29ebcc1f
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
index 04613309c..6518f3d2 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-a411a957815fb6982c5e0503d2ac41217f2fe642
\ No newline at end of file
+767217c8fde6ac6d9c368efcd6076dd73463b0e5
\ 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 0ff88ec..ba9b117 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 @@
-b62c5cea3f68741712409b36eb67a7bd3daa9722
\ No newline at end of file
+aaad48ce9f0b824ccd50e8da7761b684e6de0e97
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 616a9f0e..9d37610 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-1300a3db7a325b8635e7258ef71045c8ad5dbc57
\ No newline at end of file
+bfeb49be27f44dc91f9ba5ee15c1bfc0dd2dbee5
\ 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 293de37..395aa53 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 @@
-638796e7689d3d1bff2354500669acc6db883531
\ No newline at end of file
+b0086e1a9a7051e3e628ad24683d5959ce7f2ee1
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
index 473ecfc..0982745 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-6e8641b7e2a3ebae91548213a085315e87354e9b
\ No newline at end of file
+074c75beecf485f823b548f35d523b28489d7b22
\ 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 55911f4..48a807e 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 @@
-1b85838b04c55a81bc8030b9d4ed2785e8efdcae
\ No newline at end of file
+d71969b59eb2fa1dc84a93dc6cc97e082ff32f4c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 02aedf6..945077b 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-33be4b107ceced54570955de1432c7d20644ef7a
\ No newline at end of file
+b9a12d39d8fef00b15ffbd404c5d2b582c7156dd
\ 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 3d0fc21..72038efc 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 @@
-346224f7e9c32c72b8ce31d8f709f9def4e5578d
\ No newline at end of file
+106c7f40a39c6bfe19e603b09aa1b1a413e6702d
\ 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 1efc8f5..e61cb5e 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 @@
-29c967a5e80caf5e6e807ec007bcec33d2c78a7b
\ No newline at end of file
+cababc7a8baace5ddd17a3c8284631e18cd89f32
\ 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 c973ef1..8201453 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 @@
-d22d65f08ec89e32505870e498055fb2ff9c491d
\ No newline at end of file
+754bc24fc6b0d6c7cf9a46c96924382537584b90
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
index 1347dcc9..5397d36 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-113bc54df4fd3dffeccc21c867c18d1455aa3003
\ No newline at end of file
+ed5fc647732d3e9bca9d0e9f126f0657a20ed1c7
\ 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 2139c6d..44e252e 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 @@
-4787ba9e65a5c58b811327e5afa7e57e66eecc35
\ No newline at end of file
+9aa899331682f31006a9426afe1da037a9eabe3c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 1f459f57..fe999dcc2 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-f336663f4d227acdd26fc5f8256bf7f5f7bb442a
\ No newline at end of file
+2e346a16d8cff7c2aacb420adeb41bf5e7b4ee1b
\ 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 7d214429..a07ff3ff7 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 @@
-19fee450ee9d000b5e8c0d3ef53dad9c7a3dc8fd
\ No newline at end of file
+cd437341c4df395be774bf086395b2ad5c3f716a
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
index 3b9bf53..cd9a355 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-41ce90a499ca9108fc667b74a76da3a7cc238ea5
\ No newline at end of file
+5e0461548d59dc509db9f28e452ef1b11d646f5a
\ 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 39555dc..6de7152 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 @@
-746dbefec1b387e62b91f45d72066ddeda5e6b9d
\ No newline at end of file
+caf15a1d81060b80c565a750d6b94b02f31dadb7
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 6dc443c..8b00d92 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-d636c80a7d9523fb2fd4e70ea2e8761705e0277b
\ No newline at end of file
+f009bd44563bc81c450511d6ad3d2d76caea1fb2
\ No newline at end of file
diff --git a/ios/public/provider/chrome/browser/application_mode_fetcher/application_mode_fetcher_api.h b/ios/public/provider/chrome/browser/application_mode_fetcher/application_mode_fetcher_api.h
index d1d5b56..f36bddf 100644
--- a/ios/public/provider/chrome/browser/application_mode_fetcher/application_mode_fetcher_api.h
+++ b/ios/public/provider/chrome/browser/application_mode_fetcher/application_mode_fetcher_api.h
@@ -14,17 +14,14 @@
 
 // Callback to run once the fetching is done. `is_incognito` is false doesn't
 // mean that the URL will open in regular mode, it means that chrome should
-// resume its original flow.
-using AppModeFetchingCallback = base::OnceCallback<void(bool is_incognito)>;
+// resume its original flow. When an error occurs, depending on the current
+// flag, the original flow will resume or the incognito interstitial will be
+// presented.
 using AppModeFetchingResponse =
     base::OnceCallback<void(bool is_incognito, NSError* error)>;
 
 // Fetches the application mode for a given `url` and `app_id`. The callback
-// will be invoked asynchronously on the calling sequence
-void FetchApplicationMode(const GURL& url,
-                          NSString* app_id,
-                          AppModeFetchingCallback callback);
-
+// response will be invoked asynchronously on the calling sequence
 void FetchApplicationMode(const GURL& url,
                           NSString* app_id,
                           AppModeFetchingResponse fetching_response);
diff --git a/ios/web/BUILD.gn b/ios/web/BUILD.gn
index 26594290..486ddfb 100644
--- a/ios/web/BUILD.gn
+++ b/ios/web/BUILD.gn
@@ -122,7 +122,6 @@
     "//base/test:test_support",
     "//ios/testing/earl_grey:eg_app_support+eg2",
     "//ios/third_party/earl_grey2:app_framework+link",
-    "//ios/web/public/deprecated",
     "//ios/web/public/test",
     "//ios/web/security",
     "//ios/web/web_state:web_state_impl_header",
@@ -377,7 +376,6 @@
     "//ios/web/navigation:core",
     "//ios/web/navigation:wk_navigation_util",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/js_messaging",
     "//ios/web/public/security",
     "//ios/web/public/session",
@@ -473,7 +471,6 @@
     "//ios/web/navigation:block_universal_links_buildflags",
     "//ios/web/navigation:core",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/download",
     "//ios/web/public/js_messaging",
     "//ios/web/public/session",
diff --git a/ios/web/js_messaging/BUILD.gn b/ios/web/js_messaging/BUILD.gn
index 83d630e1..516ede75 100644
--- a/ios/web/js_messaging/BUILD.gn
+++ b/ios/web/js_messaging/BUILD.gn
@@ -19,7 +19,6 @@
     "//ios/web/common:features",
     "//ios/web/navigation:wk_navigation_util",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/js_messaging",
     "//ios/web/public/js_messaging:web_view_js_utils",
     "//ios/web/util",
diff --git a/ios/web/navigation/navigation_item_impl_list.h b/ios/web/navigation/navigation_item_impl_list.h
deleted file mode 100644
index fd13d33..0000000
--- a/ios/web/navigation/navigation_item_impl_list.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_WEB_NAVIGATION_NAVIGATION_ITEM_IMPL_LIST_H_
-#define IOS_WEB_NAVIGATION_NAVIGATION_ITEM_IMPL_LIST_H_
-
-#include <memory>
-
-#import "ios/web/public/deprecated/navigation_item_list.h"
-
-namespace web {
-
-class NavigationItemImpl;
-
-// Convenience typedef for a list of raw NavigationItem pointers.
-typedef std::vector<NavigationItemImpl*> NavigationItemImplList;
-
-// Convenience typedef for a list of scoped NavigationItem pointers.
-typedef std::vector<std::unique_ptr<NavigationItemImpl>>
-    ScopedNavigationItemImplList;
-
-// Creates a ScopedNavigationItemImplList from `scoped_item_list`.  Ownership
-// of the NavigationItems in `scoped_item_list` is transferred to the returned
-// value.
-ScopedNavigationItemImplList CreateScopedNavigationItemImplList(
-    ScopedNavigationItemList scoped_item_list);
-
-// Creates a NavigationItemList from `scoped_item_list`.
-NavigationItemList CreateNavigationItemList(
-    const ScopedNavigationItemImplList& scoped_item_list);
-
-}  // namespace web
-
-#endif  // IOS_WEB_NAVIGATION_NAVIGATION_ITEM_IMPL_LIST_H_
diff --git a/ios/web/navigation/navigation_item_impl_list.mm b/ios/web/navigation/navigation_item_impl_list.mm
deleted file mode 100644
index da387738..0000000
--- a/ios/web/navigation/navigation_item_impl_list.mm
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/web/navigation/navigation_item_impl_list.h"
-
-#import "ios/web/navigation/navigation_item_impl.h"
-
-namespace web {
-
-ScopedNavigationItemImplList CreateScopedNavigationItemImplList(
-    ScopedNavigationItemList scoped_item_list) {
-  ScopedNavigationItemImplList list(scoped_item_list.size());
-  for (size_t index = 0; index < scoped_item_list.size(); ++index) {
-    std::unique_ptr<NavigationItemImpl> scoped_item_impl(
-        static_cast<NavigationItemImpl*>(scoped_item_list[index].release()));
-    list[index] = std::move(scoped_item_impl);
-  }
-  return list;
-}
-
-NavigationItemList CreateNavigationItemList(
-    const ScopedNavigationItemImplList& scoped_item_list) {
-  NavigationItemList list(scoped_item_list.size());
-  for (size_t index = 0; index < scoped_item_list.size(); ++index) {
-    list[index] = scoped_item_list[index].get();
-  }
-  return list;
-}
-
-}  // namespace web
diff --git a/ios/web/public/BUILD.gn b/ios/web/public/BUILD.gn
index 9f20588..8dad870 100644
--- a/ios/web/public/BUILD.gn
+++ b/ios/web/public/BUILD.gn
@@ -25,7 +25,6 @@
     "//ios/third_party/webkit",
     "//ios/web/common",
     "//ios/web/common:user_agent",
-    "//ios/web/public/deprecated",
   ]
 
   sources = [
diff --git a/ios/web/public/deprecated/BUILD.gn b/ios/web/public/deprecated/BUILD.gn
deleted file mode 100644
index e6763dc6..0000000
--- a/ios/web/public/deprecated/BUILD.gn
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2019 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//ios/build/config.gni")
-
-source_set("deprecated") {
-  deps = [
-    "//base",
-    "//ios/web/public:web_state_observer",
-    "//url",
-  ]
-  sources = [ "global_web_state_observer.h" ]
-}
diff --git a/ios/web/public/deprecated/README.md b/ios/web/public/deprecated/README.md
deleted file mode 100644
index 124c9e0..0000000
--- a/ios/web/public/deprecated/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-This directory contains deprecated classes, structs and typedefs, and test doubles for
-those deprecated classes. New code should not import headers from this directory and no
-new functionality should be added to deprecated classes and functions. 
-
-This directory can be used as a temporary place for retiring public classes, structs and 
-typedefs.
\ No newline at end of file
diff --git a/ios/web/public/test/BUILD.gn b/ios/web/public/test/BUILD.gn
index b209a75..4be51eb 100644
--- a/ios/web/public/test/BUILD.gn
+++ b/ios/web/public/test/BUILD.gn
@@ -20,7 +20,6 @@
     "//ios/web/js_messaging:java_script_feature",
     "//ios/web/navigation",
     "//ios/web/navigation:wk_navigation_util",
-    "//ios/web/public/deprecated",
     "//ios/web/public/session",
     "//ios/web/public/session/proto",
     "//ios/web/public/session/proto:proto_util",
@@ -117,10 +116,10 @@
     "//ios/web/navigation",
     "//ios/web/navigation:core",
     "//ios/web/navigation:wk_navigation_util",
-    "//ios/web/public/deprecated",
     "//ios/web/public/test:util",
     "//ios/web/public/test/fakes",
     "//ios/web/test:js_test_util_internal",
+    "//ios/web/web_state",
     "//ios/web/web_state:web_state_impl_header",
     "//ios/web/web_state/ui:web_controller_header",
     "//ios/web/web_state/ui:wk_web_view_configuration_provider_header",
@@ -157,10 +156,10 @@
     "//ios/web/public/js_messaging:web_view_js_utils",
     "//ios/web/test:js_test_util_internal",
     "//ios/web/util",
+    "//ios/web/util",
     "//ios/web/web_state:web_state_impl_header",
     "//ios/web/web_state/ui",
     "//ios/web/web_state/ui:wk_web_view_configuration_provider_header",
-    "//ios/web/util",
     "//net",
     "//testing/gtest",
   ]
diff --git a/ios/web/public/test/fakes/BUILD.gn b/ios/web/public/test/fakes/BUILD.gn
index f7bcce3a..7b37282a 100644
--- a/ios/web/public/test/fakes/BUILD.gn
+++ b/ios/web/public/test/fakes/BUILD.gn
@@ -12,7 +12,6 @@
     "//ios/web/common:uikit",
     "//ios/web/js_messaging",
     "//ios/web/navigation:core",
-    "//ios/web/public/deprecated",
     "//ios/web/public/download",
     "//ios/web/public/find_in_page",
     "//ios/web/public/js_messaging",
diff --git a/ios/web/public/test/web_test.mm b/ios/web/public/test/web_test.mm
index 499e91c..07de183 100644
--- a/ios/web/public/test/web_test.mm
+++ b/ios/web/public/test/web_test.mm
@@ -6,10 +6,10 @@
 
 #import "base/check.h"
 #import "base/memory/ptr_util.h"
-#import "ios/web/public/deprecated/global_web_state_observer.h"
 #import "ios/web/public/test/fakes/fake_browser_state.h"
 #import "ios/web/public/test/fakes/fake_web_client.h"
 #import "ios/web/public/test/js_test_util.h"
+#import "ios/web/web_state/deprecated/global_web_state_observer.h"
 
 namespace web {
 
diff --git a/ios/web/web_state/BUILD.gn b/ios/web/web_state/BUILD.gn
index 087e469..ccb8706 100644
--- a/ios/web/web_state/BUILD.gn
+++ b/ios/web/web_state/BUILD.gn
@@ -20,7 +20,6 @@
     "//ios/web/navigation:core",
     "//ios/web/navigation:wk_navigation_util",
     "//ios/web/public",
-    "//ios/web/public/deprecated",
     "//ios/web/public/js_messaging",
     "//ios/web/public/security",
     "//ios/web/public/session",
@@ -42,9 +41,6 @@
   }
 
   sources = [
-    "global_web_state_event_tracker.h",
-    "global_web_state_event_tracker.mm",
-    "global_web_state_observer.mm",
     "web_state.mm",
     "web_state_delegate.mm",
     "web_state_delegate_bridge.mm",
@@ -59,6 +55,12 @@
     "web_state_observer_bridge.mm",
     "web_state_policy_decider.mm",
     "web_state_policy_decider_bridge.mm",
+
+    # TODO(crbug.com/41353925): delete those files when no longer needed.
+    "deprecated/global_web_state_event_tracker.h",
+    "deprecated/global_web_state_event_tracker.mm",
+    "deprecated/global_web_state_observer.h",
+    "deprecated/global_web_state_observer.mm",
   ]
 
   frameworks = [ "QuartzCore.framework" ]
diff --git a/ios/web/web_state/global_web_state_event_tracker.h b/ios/web/web_state/deprecated/global_web_state_event_tracker.h
similarity index 87%
rename from ios/web/web_state/global_web_state_event_tracker.h
rename to ios/web/web_state/deprecated/global_web_state_event_tracker.h
index 623a1eb..6a33d9e6 100644
--- a/ios/web/web_state/global_web_state_event_tracker.h
+++ b/ios/web/web_state/deprecated/global_web_state_event_tracker.h
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_WEB_WEB_STATE_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
-#define IOS_WEB_WEB_STATE_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
+#ifndef IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
+#define IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
 
 #include <stddef.h>
 
 #include "base/no_destructor.h"
 #include "base/observer_list.h"
 #include "base/scoped_multi_source_observation.h"
-#include "ios/web/public/deprecated/global_web_state_observer.h"
 #import "ios/web/public/web_state.h"
 #include "ios/web/public/web_state_observer.h"
+#include "ios/web/web_state/deprecated/global_web_state_observer.h"
 
 namespace web {
 
@@ -60,4 +60,4 @@
 
 }  // namespace web
 
-#endif  // IOS_WEB_WEB_STATE_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
+#endif  // IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_EVENT_TRACKER_H_
diff --git a/ios/web/web_state/global_web_state_event_tracker.mm b/ios/web/web_state/deprecated/global_web_state_event_tracker.mm
similarity index 84%
rename from ios/web/web_state/global_web_state_event_tracker.mm
rename to ios/web/web_state/deprecated/global_web_state_event_tracker.mm
index 463b624..93bc212 100644
--- a/ios/web/web_state/global_web_state_event_tracker.mm
+++ b/ios/web/web_state/deprecated/global_web_state_event_tracker.mm
@@ -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 "ios/web/web_state/global_web_state_event_tracker.h"
+#import "ios/web/web_state/deprecated/global_web_state_event_tracker.h"
 
 #import <stddef.h>
 
@@ -35,28 +35,33 @@
 void GlobalWebStateEventTracker::DidStartNavigation(
     WebState* web_state,
     NavigationContext* navigation_context) {
-  for (auto& observer : observer_list_)
+  for (auto& observer : observer_list_) {
     observer.WebStateDidStartNavigation(web_state, navigation_context);
+  }
 }
 
 void GlobalWebStateEventTracker::DidStartLoading(WebState* web_state) {
-  for (auto& observer : observer_list_)
+  for (auto& observer : observer_list_) {
     observer.WebStateDidStartLoading(web_state);
+  }
 }
 
 void GlobalWebStateEventTracker::DidStopLoading(WebState* web_state) {
-  for (auto& observer : observer_list_)
+  for (auto& observer : observer_list_) {
     observer.WebStateDidStopLoading(web_state);
+  }
 }
 
 void GlobalWebStateEventTracker::RenderProcessGone(WebState* web_state) {
-  for (auto& observer : observer_list_)
+  for (auto& observer : observer_list_) {
     observer.RenderProcessGone(web_state);
+  }
 }
 
 void GlobalWebStateEventTracker::WebStateDestroyed(WebState* web_state) {
-  for (auto& observer : observer_list_)
+  for (auto& observer : observer_list_) {
     observer.WebStateDestroyed(web_state);
+  }
   scoped_observations_.RemoveObservation(web_state);
 }
 
diff --git a/ios/web/public/deprecated/global_web_state_observer.h b/ios/web/web_state/deprecated/global_web_state_observer.h
similarity index 92%
rename from ios/web/public/deprecated/global_web_state_observer.h
rename to ios/web/web_state/deprecated/global_web_state_observer.h
index 084140c..66a6953 100644
--- a/ios/web/public/deprecated/global_web_state_observer.h
+++ b/ios/web/web_state/deprecated/global_web_state_observer.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_WEB_PUBLIC_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
-#define IOS_WEB_PUBLIC_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
+#ifndef IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
+#define IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
 
 #include <stddef.h>
 
@@ -64,4 +64,4 @@
 
 }  // namespace web
 
-#endif  // IOS_WEB_PUBLIC_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
+#endif  // IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_
diff --git a/ios/web/web_state/global_web_state_observer.mm b/ios/web/web_state/deprecated/global_web_state_observer.mm
similarity index 75%
rename from ios/web/web_state/global_web_state_observer.mm
rename to ios/web/web_state/deprecated/global_web_state_observer.mm
index 8314ac6..be0101a0 100644
--- a/ios/web/web_state/global_web_state_observer.mm
+++ b/ios/web/web_state/deprecated/global_web_state_observer.mm
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/web/public/deprecated/global_web_state_observer.h"
+#import "ios/web/web_state/deprecated/global_web_state_observer.h"
 
-#import "ios/web/web_state/global_web_state_event_tracker.h"
+#import "ios/web/web_state/deprecated/global_web_state_event_tracker.h"
 
 namespace web {
 
diff --git a/ios/web/web_state/ui/BUILD.gn b/ios/web/web_state/ui/BUILD.gn
index d1383d9..d1cd25e8 100644
--- a/ios/web/web_state/ui/BUILD.gn
+++ b/ios/web/web_state/ui/BUILD.gn
@@ -36,7 +36,6 @@
     "//ios/web/net:net",
     "//ios/web/public",
     "//ios/web/public/annotations",
-    "//ios/web/public/deprecated",
     "//ios/web/public/download",
     "//ios/web/public/find_in_page",
     "//ios/web/public/js_messaging",
@@ -84,10 +83,7 @@
     "crw_web_controller.h",
   ]
 
-  deps = [
-    ":crw_web_view_navigation_proxy",
-    "//ios/web/public/deprecated",
-  ]
+  deps = [ ":crw_web_view_navigation_proxy" ]
 
   public_deps = [ "//base" ]
 }
diff --git a/ios/web/web_state/web_state_impl.mm b/ios/web/web_state/web_state_impl.mm
index f43e342..230aa4e 100644
--- a/ios/web/web_state/web_state_impl.mm
+++ b/ios/web/web_state/web_state_impl.mm
@@ -22,7 +22,7 @@
 #import "ios/web/public/session/proto/storage.pb.h"
 #import "ios/web/public/session/serializable_user_data_manager.h"
 #import "ios/web/session/session_certificate_policy_cache_impl.h"
-#import "ios/web/web_state/global_web_state_event_tracker.h"
+#import "ios/web/web_state/deprecated/global_web_state_event_tracker.h"
 #import "ios/web/web_state/ui/crw_web_controller.h"
 #import "ios/web/web_state/web_state_impl_realized_web_state.h"
 #import "ios/web/web_state/web_state_impl_serialized_data.h"
diff --git a/ios/web/web_state/web_state_impl_unittest.mm b/ios/web/web_state/web_state_impl_unittest.mm
index 0a523b0c..52267933 100644
--- a/ios/web/web_state/web_state_impl_unittest.mm
+++ b/ios/web/web_state/web_state_impl_unittest.mm
@@ -24,7 +24,6 @@
 #import "ios/web/navigation/navigation_item_impl.h"
 #import "ios/web/navigation/serializable_user_data_manager_impl.h"
 #import "ios/web/navigation/wk_navigation_util.h"
-#import "ios/web/public/deprecated/global_web_state_observer.h"
 #import "ios/web/public/navigation/navigation_item.h"
 #import "ios/web/public/navigation/navigation_util.h"
 #import "ios/web/public/navigation/web_state_policy_decider.h"
@@ -45,7 +44,8 @@
 #import "ios/web/public/ui/java_script_dialog_presenter.h"
 #import "ios/web/public/web_state_delegate.h"
 #import "ios/web/public/web_state_observer.h"
-#import "ios/web/web_state/global_web_state_event_tracker.h"
+#import "ios/web/web_state/deprecated/global_web_state_event_tracker.h"
+#import "ios/web/web_state/deprecated/global_web_state_observer.h"
 #import "ios/web/web_state/ui/crw_web_controller.h"
 #import "ios/web/web_state/web_state_policy_decider_test_util.h"
 #import "net/http/http_response_headers.h"
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn
index aecbb2c..fd159617 100644
--- a/ios/web_view/BUILD.gn
+++ b/ios/web_view/BUILD.gn
@@ -414,7 +414,6 @@
   "//ios/web/navigation:wk_navigation_util",
   "//ios/web/public",
   "//ios/web/public/browsing_data",
-  "//ios/web/public/deprecated",
   "//ios/web/public/download",
   "//ios/web/public/find_in_page",
   "//ios/web/public/init",
diff --git a/ios_internal b/ios_internal
index 67d2600..4854855 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 67d2600839370d13a8f8f962d74803d2d129b267
+Subproject commit 4854855152ebd389e7302ae7b499b6e9ba613a4c
diff --git a/media/midi/message_util.cc b/media/midi/message_util.cc
index 088eefe..b11bf23b 100644
--- a/media/midi/message_util.cc
+++ b/media/midi/message_util.cc
@@ -78,7 +78,7 @@
       if (data[i] == kEndOfSysExByte) {
         in_sysex = false;
         UMA_HISTOGRAM_COUNTS_1M("Media.Midi.SysExMessageSizeUpTo1MB",
-                                static_cast<base::HistogramBase::Sample>(
+                                static_cast<base::HistogramBase::Sample32>(
                                     i - sysex_start_offset + 1));
       } else if (!IsDataByte(current)) {
         return false;  // Error: |current| should have been data byte.
diff --git a/media/midi/midi_manager.cc b/media/midi/midi_manager.cc
index 181ce4d..d24c241 100644
--- a/media/midi/midi_manager.cc
+++ b/media/midi/midi_manager.cc
@@ -15,7 +15,7 @@
 
 namespace {
 
-using Sample = base::HistogramBase::Sample;
+using Sample32 = base::HistogramBase::Sample32;
 using midi::mojom::PortState;
 using midi::mojom::Result;
 
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc
index 2f1608b..cf7cd60c 100644
--- a/net/http/http_cache_transaction.cc
+++ b/net/http/http_cache_transaction.cc
@@ -25,6 +25,8 @@
 #include <utility>
 
 #include "base/auto_reset.h"
+#include "base/check.h"
+#include "base/check_op.h"
 #include "base/compiler_specific.h"
 #include "base/containers/fixed_flat_set.h"
 #include "base/containers/span.h"
@@ -1269,7 +1271,7 @@
     return cache_->OpenEntry(cache_key_, &new_entry_, this);
   }
 
-  if (no_vary_search_cache_erase_handle_) {
+  if (IsUsingURLFromNoVarySearchCache()) {
     // We should never create a new entry with the original URL.
     if (entry_not_suitable) {
       return ERR_CACHE_ENTRY_NOT_SUITABLE;
@@ -1324,7 +1326,7 @@
             base::TimeTicks::Now() - first_cache_access_since_);
       }
 
-      CHECK(!no_vary_search_cache_erase_handle_);
+      CHECK(!IsUsingURLFromNoVarySearchCache());
 
       // Entry was created so mode changes to WRITE.
       mode_ = WRITE;
@@ -1341,8 +1343,10 @@
 
   // This handles the case where opening the disk cache entry failed, or it was
   // found to be unusable due to in-memory flags.
-  if (no_vary_search_cache_erase_handle_) {
+  if (IsUsingURLFromNoVarySearchCache()) {
     if (result == ERR_CACHE_ENTRY_NOT_SUITABLE) {
+      // If a future request had the LOAD_SKIP_CACHE_VALIDATION flag the entry
+      // would be usable, so don't delete it.
       return RestartWithoutNoVarySearchCache(
           RestartCacheEntryAction::kDontErase,
           NoVarySearchUseResult::kNotSuitable);
@@ -1955,6 +1959,14 @@
         websocket_handshake_stream_base_create_helper_);
   }
 
+  if (IsUsingURLFromNoVarySearchCache()) {
+    // If we are using the NoVarySearchCache, double-check that the network
+    // request we are about to send is conditionalized and not a range request.
+    CHECK_EQ(mode_, READ_WRITE);
+    CHECK(!couldnt_conditionalize_request_);
+    CHECK(!partial_);
+  }
+
   TransitionToState(STATE_SEND_REQUEST_COMPLETE);
   rv = network_trans_->Start(request_, io_callback_, net_log_);
   if (rv != ERR_IO_PENDING && waiting_for_cache_io_) {
@@ -2060,7 +2072,7 @@
   if (!ValidatePartialResponse() && !auth_response_.headers.get()) {
     // Something went wrong with this request and we have to restart it.
     // If we have an authentication response, we are exposed to weird things
-    // hapenning if the user cancels the authentication before we receive
+    // happening if the user cancels the authentication before we receive
     // the new response.
     net_log_.AddEvent(NetLogEventType::HTTP_CACHE_RE_SEND_PARTIAL_REQUEST);
     UpdateCacheEntryStatus(CacheEntryStatus::ENTRY_OTHER);
@@ -2649,6 +2661,7 @@
 
   request_ = initial_request_;
   custom_request_.reset();
+  no_vary_search_cache_erase_handle_.reset();
 
   effective_load_flags_ = request_->load_flags;
   method_ = request_->method;
@@ -2792,7 +2805,7 @@
   }
 
   if (RequiresValidation() != VALIDATION_NONE) {
-    if (no_vary_search_cache_erase_handle_) {
+    if (IsUsingURLFromNoVarySearchCache()) {
       // A future transaction that is not read-only may be able to use this
       // entry, so don't remove it from the cache.
       return RestartWithoutNoVarySearchCache(
@@ -2821,7 +2834,7 @@
   const bool incomplete_body =
       truncated_ || response_.headers->response_code() == HTTP_PARTIAL_CONTENT;
 
-  if (no_vary_search_cache_erase_handle_ && incomplete_body) {
+  if (IsUsingURLFromNoVarySearchCache() && incomplete_body) {
     // Avoid using the No-Vary-Search cache in partial content situations.
     return RestartWithoutNoVarySearchCache(
         RestartCacheEntryAction::kErase,
@@ -2901,7 +2914,7 @@
       if (partial_) {
         return DoRestartPartialRequest();
       }
-      if (no_vary_search_cache_erase_handle_) {
+      if (IsUsingURLFromNoVarySearchCache()) {
         // We shouldn't send an unconditional request for the original URL, so
         // restart the transaction. However, don't remove the cache entry, as it
         // might still be usable by a future request with the
@@ -4220,6 +4233,10 @@
   return !partial_ && MethodUsesNoVarySearch(method_);
 }
 
+bool HttpCache::Transaction::IsUsingURLFromNoVarySearchCache() const {
+  return no_vary_search_cache_erase_handle_.has_value();
+}
+
 HttpCache::Transaction::NoVarySearchUseResult
 HttpCache::Transaction::LookupRequestInNoVarySearchCache() {
   std::optional<NoVarySearchCache::LookupResult> maybe_result =
diff --git a/net/http/http_cache_transaction.h b/net/http/http_cache_transaction.h
index cce47d4..fc44cd47 100644
--- a/net/http/http_cache_transaction.h
+++ b/net/http/http_cache_transaction.h
@@ -499,7 +499,7 @@
   // resumed or not.
   void DoneWithEntry(bool entry_is_complete);
 
-  // Dooms the given entry so that it will not be re-used for other requests,
+  // Dooms the given entry so that it will not be reused for other requests,
   // then calls `DoneWithEntry()`.
   //
   // This happens when network conditions have changed since the entry was
@@ -533,7 +533,7 @@
   // between the byte range request and the cached entry.
   int DoRestartPartialRequest();
 
-  // Resets the relavant internal state to remove traces of internal processing
+  // Resets the relevant internal state to remove traces of internal processing
   // related to range requests. Deletes |partial_| if |delete_object| is true.
   void ResetPartialState(bool delete_object);
 
@@ -618,6 +618,10 @@
   // treatment.
   bool IsNoVarySearchApplicable() const;
 
+  // Returns true if the current transaction is using a URL that was rewritten
+  // by the NoVarySearchCache.
+  bool IsUsingURLFromNoVarySearchCache() const;
+
   // Checks for a matching entry in the NoVarySearchCache. If one is found, and
   // the URL is different, modifies `request_` to use the matching entry, and
   // returns kUsed. Otherwise returns kNoMatch or KURLUnchanged.
diff --git a/net/http/http_response_info.cc b/net/http/http_response_info.cc
index 73ac2fba..c579aba 100644
--- a/net/http/http_response_info.cc
+++ b/net/http/http_response_info.cc
@@ -380,6 +380,13 @@
 void HttpResponseInfo::Persist(base::Pickle* pickle,
                                bool skip_transient_headers,
                                bool response_truncated) const {
+  // Pre-reserve memory for the Pickle contents to reduce allocations and
+  // copies. This doesn't affect the size of the data that is written to disk.
+  // The Pickle object only lives long enough to be written to disk, so it
+  // doesn't matter if we briefly overallocate memory. 10,900 bytes is enough to
+  // cover 99% percentile of HttpResponseInfo pickle sizes based on Dev/Canary
+  // data from 2025-01-20 (the mean is 4,773).
+  pickle->Reserve(10900);
   int flags = RESPONSE_INFO_VERSION;
   int extra_flags = 0;
   if (ssl_info.is_valid()) {
diff --git a/net/http/http_stream_factory.cc b/net/http/http_stream_factory.cc
index bc0c0a4f..17b2e358 100644
--- a/net/http/http_stream_factory.cc
+++ b/net/http/http_stream_factory.cc
@@ -102,6 +102,7 @@
     const HttpRequestInfo& http_request_info)
     : method(http_request_info.method),
       network_anonymization_key(http_request_info.network_anonymization_key),
+      traffic_annotation(http_request_info.traffic_annotation),
       is_http1_allowed(!http_request_info.upload_data_stream ||
                        http_request_info.upload_data_stream->AllowHTTP1()),
       load_flags(http_request_info.load_flags),
diff --git a/net/http/http_stream_factory.h b/net/http/http_stream_factory.h
index da8fdb5..f18b6e6 100644
--- a/net/http/http_stream_factory.h
+++ b/net/http/http_stream_factory.h
@@ -85,6 +85,7 @@
 
     std::string method;
     NetworkAnonymizationKey network_anonymization_key;
+    MutableNetworkTrafficAnnotationTag traffic_annotation;
 
     // Whether HTTP/1.x can be used. Extracted from
     // UploadDataStream::AllowHTTP1().
diff --git a/net/http/http_stream_factory_job.cc b/net/http/http_stream_factory_job.cc
index 136f913..7160969 100644
--- a/net/http/http_stream_factory_job.cc
+++ b/net/http/http_stream_factory_job.cc
@@ -517,6 +517,9 @@
   // while doing anything other than waiting to establish a connection.
   spdy_session_request_.reset();
 
+  // Record histograms which are required for the end of session creation.
+  RecordCompletionHistograms(result);
+
   if ((job_type_ == PRECONNECT) || (job_type_ == PRECONNECT_DNS_ALPN_H3)) {
     base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
         FROM_HERE,
@@ -1279,21 +1282,57 @@
 
 void HttpStreamFactory::Job::RecordPreconnectHistograms(int result) {
   CHECK(job_type_ == PRECONNECT || job_type_ == PRECONNECT_DNS_ALPN_H3);
+  constexpr std::string_view kHistogramBase =
+      "Net.SessionCreate.GoogleSearch.Preconnect";
   if (!IsGoogleHost(destination_.host())) {
     return;
   }
+  bool is_session_reuse = false;
   if (using_quic_) {
-    constexpr std::string_view kHistogramName =
-        "Net.SessionCreate.GoogleSearch.Preconnect.Quic.CompletionResult";
+    auto completion_result_histogram =
+        base::StrCat({kHistogramBase, ".Quic.CompletionResult"});
     // TODO(crbug.com/376304027): Expand this to non-Quic as well. Currently,
     // H1 and H2 does not return precise failure reason.
-    base::UmaHistogramSparse(kHistogramName, -result);
+    base::UmaHistogramSparse(completion_result_histogram, -result);
     base::UmaHistogramSparse(
-        base::StrCat({kHistogramName, job_type_ == PRECONNECT
-                                          ? ".PreconnectJob"
-                                          : ".PreconnectDnsAlpnH3Job"}),
+        base::StrCat({completion_result_histogram,
+                      job_type_ == PRECONNECT ? ".PreconnectJob"
+                                              : ".PreconnectDnsAlpnH3Job"}),
         -result);
+    is_session_reuse = using_existing_quic_session_;
+  } else {
+    is_session_reuse = existing_spdy_session_ != nullptr;
   }
+
+  base::UmaHistogramBoolean(
+      base::StrCat({kHistogramBase, using_quic_ ? ".Quic" : ".Spdy",
+                    ".IsSessionReused"}),
+      is_session_reuse);
+}
+
+void HttpStreamFactory::Job::RecordCompletionHistograms(int result) {
+  constexpr std::string_view kHistogramBase = "Net.SessionCreate";
+  bool is_session_reuse = using_quic_ ? using_existing_quic_session_
+                                      : existing_spdy_session_ != nullptr;
+  // We only record session creation which succeeded and the ones that we
+  // created a new session.
+  if (result != OK || is_session_reuse) {
+    return;
+  }
+  if (request_info_.traffic_annotation.is_valid()) {
+    base::UmaHistogramSparse(
+        base::StrCat(
+            {kHistogramBase, using_quic_ ? ".Quic" : ".Spdy",
+             ".TrafficAnnotation",
+             IsGoogleHostWithAlpnH3(destination_.host()) ? ".GoogleHost" : ""}),
+        request_info_.traffic_annotation.unique_id_hash_code);
+  }
+  base::UmaHistogramBoolean(
+      base::StrCat(
+          {kHistogramBase, using_quic_ ? ".Quic" : ".Spdy",
+           ".HasTrafficAnnotation",
+           IsGoogleHostWithAlpnH3(destination_.host()) ? ".GoogleHost" : ""}),
+      request_info_.traffic_annotation.is_valid());
 }
 
 }  // namespace net
diff --git a/net/http/http_stream_factory_job.h b/net/http/http_stream_factory_job.h
index 00d3eb26..8485777 100644
--- a/net/http/http_stream_factory_job.h
+++ b/net/http/http_stream_factory_job.h
@@ -361,6 +361,9 @@
 
   void RecordPreconnectHistograms(int result);
 
+  // Records histograms required at the end of the execution.
+  void RecordCompletionHistograms(int result);
+
   const StreamRequestInfo request_info_;
   RequestPriority priority_;
   const ProxyInfo proxy_info_;
diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
index 3698a097..c835f03 100644
--- a/net/quic/quic_session_pool.cc
+++ b/net/quic/quic_session_pool.cc
@@ -124,6 +124,25 @@
 };
 // LINT.ThenChange(//tools/metrics/histograms/metadata/net/enums.xml:QuicSessionKeyPartialMatchResult)
 
+// Represents which field in `QuicSessionKey` was different among two keys with
+// the same `ServerId`.
+//
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused.
+//
+// LINT.IfChange(QuicSessionKeyMismatchedField)
+enum class QuicSessionKeyMismatchedField {
+  kPrivacyMode,
+  kSocketTag,
+  kProxyChain,
+  kSessionUsage,
+  kNetworkAnonymizationKey,
+  kSecureDnsPolicy,
+  kRequireDNSHttpsAlpn,
+  kMaxValue = kRequireDNSHttpsAlpn
+};
+// LINT.ThenChange(//tools/metrics/histograms/metadata/net/enums.xml:QuicSessionKeyMismatchedField)
+
 std::string QuicPlatformNotificationToString(
     QuicPlatformNotification notification) {
   switch (notification) {
@@ -263,11 +282,52 @@
 }
 
 void LogSessionKeyMismatch(QuicSessionKeyPartialMatchResult result,
-                           const url::SchemeHostPort& destination) {
-  std::string histogram_name = base::StrCat(
-      {"Net.QuicSession.SessionKeyMismatch",
-       IsGoogleHostWithAlpnH3(destination.host()) ? ".GoogleHost" : ""});
-  base::UmaHistogramEnumeration(histogram_name, result);
+                           const url::SchemeHostPort destination,
+                           const QuicSessionKey session_key,
+                           const std::optional<QuicSessionKey> active_key) {
+  const std::string_view kHistogramBase = "Net.QuicSession.SessionKeyMismatch";
+  const std::string histogram_suffix =
+      IsGoogleHostWithAlpnH3(destination.host()) ? ".GoogleHost" : "";
+
+  base::UmaHistogramEnumeration(
+      base::StrCat({kHistogramBase, histogram_suffix}), result);
+
+  if (result != QuicSessionKeyPartialMatchResult::kNoMatch) {
+    CHECK(active_key.has_value());
+    int total_mismatch = 0;
+    std::string mismatch_field_histogram =
+        base::StrCat({kHistogramBase, ".MismatchedField", histogram_suffix});
+
+    // Check and record the fields that are mismatching.
+    auto checkAndRecordMismatch =
+        [&mismatch_field_histogram, &total_mismatch, &session_key, &active_key](
+            auto method, QuicSessionKeyMismatchedField field) {
+          if ((session_key.*method)() != (active_key.value().*method)()) {
+            total_mismatch++;
+            base::UmaHistogramEnumeration(mismatch_field_histogram, field);
+            return;
+          }
+        };
+    checkAndRecordMismatch(&QuicSessionKey::privacy_mode,
+                           QuicSessionKeyMismatchedField::kPrivacyMode);
+    checkAndRecordMismatch(&QuicSessionKey::socket_tag,
+                           QuicSessionKeyMismatchedField::kSocketTag);
+    checkAndRecordMismatch(&QuicSessionKey::proxy_chain,
+                           QuicSessionKeyMismatchedField::kProxyChain);
+    checkAndRecordMismatch(&QuicSessionKey::session_usage,
+                           QuicSessionKeyMismatchedField::kSessionUsage);
+    checkAndRecordMismatch(
+        &QuicSessionKey::network_anonymization_key,
+        QuicSessionKeyMismatchedField::kNetworkAnonymizationKey);
+    checkAndRecordMismatch(&QuicSessionKey::secure_dns_policy,
+                           QuicSessionKeyMismatchedField::kSecureDnsPolicy);
+    checkAndRecordMismatch(&QuicSessionKey::require_dns_https_alpn,
+                           QuicSessionKeyMismatchedField::kRequireDNSHttpsAlpn);
+    base::UmaHistogramCounts1000(
+        base::StrCat(
+            {kHistogramBase, ".TotalMismatchedField", histogram_suffix}),
+        total_mismatch);
+  }
 }
 
 }  // namespace
@@ -625,24 +685,27 @@
   return nullptr;
 }
 
-bool QuicSessionPool::HasActiveSessionToServerId(
+std::optional<QuicSessionKey> QuicSessionPool::GetActiveSessionToServerId(
     const QuicSessionKey& session_key) const {
   auto it = base::ranges::find_if(
       active_sessions_, [&session_key](const auto& key_value) {
         return session_key != key_value.first &&
                session_key.server_id() == key_value.first.server_id();
       });
-  return it != std::end(active_sessions_);
+  return it != std::end(active_sessions_)
+             ? std::optional<QuicSessionKey>(it->first)
+             : std::nullopt;
 }
 
-bool QuicSessionPool::HasActiveJobToServerId(
+std::optional<QuicSessionKey> QuicSessionPool::GetActiveJobToServerId(
     const QuicSessionKey& session_key) const {
   auto it = base::ranges::find_if(
       active_jobs_, [&session_key](const auto& key_value) {
         return session_key != key_value.first &&
                session_key.server_id() == key_value.first.server_id();
       });
-  return it != std::end(active_jobs_);
+  return it != std::end(active_jobs_) ? std::optional<QuicSessionKey>(it->first)
+                                      : std::nullopt;
 }
 
 bool QuicSessionPool::HasMatchingIpSessionForServiceEndpoint(
@@ -703,18 +766,7 @@
     return ERR_IO_PENDING;
   }
 
-  // Check and record if we have some sort of partially matched results for the
-  // `session_key`.
-  QuicSessionKeyPartialMatchResult partial_match_result =
-      QuicSessionKeyPartialMatchResult::kNoMatch;
-  if (HasActiveSessionToServerId(session_key)) {
-    partial_match_result =
-        QuicSessionKeyPartialMatchResult::kMatchedToActiveSession;
-  } else if (HasActiveJobToServerId(session_key)) {
-    partial_match_result =
-        QuicSessionKeyPartialMatchResult::kMatchedToActiveJob;
-  }
-  LogSessionKeyMismatch(partial_match_result, destination);
+  CheckQuicSessionKeyMismatch(session_key, destination);
 
   // If a proxy is in use, then a traffic annotation is required.
   if (!session_key.proxy_chain().is_direct()) {
@@ -2220,6 +2272,32 @@
       QuicPlatformNotificationToString(notification), affected_network);
 }
 
+void QuicSessionPool::CheckQuicSessionKeyMismatch(
+    const QuicSessionKey& session_key,
+    url::SchemeHostPort destination) const {
+  // Check and record if we have some sort of partially matched results for the
+  // `session_key`.
+  QuicSessionKeyPartialMatchResult partial_match_result =
+      QuicSessionKeyPartialMatchResult::kNoMatch;
+  std::optional<QuicSessionKey> active_key = std::nullopt;
+  if (auto active_session_key = GetActiveSessionToServerId(session_key)) {
+    partial_match_result =
+        QuicSessionKeyPartialMatchResult::kMatchedToActiveSession;
+    active_key = active_session_key;
+  } else if (auto active_job_key = GetActiveJobToServerId(session_key)) {
+    partial_match_result =
+        QuicSessionKeyPartialMatchResult::kMatchedToActiveJob;
+    active_key = active_job_key;
+  }
+
+  // PostTask the histogram recording since we do not want to incur many
+  // overheads for the execution of the session creation with checking field
+  // mismatches.
+  base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
+      FROM_HERE, base::BindOnce(&LogSessionKeyMismatch, partial_match_result,
+                                destination, session_key, active_key));
+}
+
 std::unique_ptr<QuicCryptoClientConfigHandle>
 QuicSessionPool::GetCryptoConfigForTesting(
     const NetworkAnonymizationKey& network_anonymization_key) {
diff --git a/net/quic/quic_session_pool.h b/net/quic/quic_session_pool.h
index de5115b..eae6633f 100644
--- a/net/quic/quic_session_pool.h
+++ b/net/quic/quic_session_pool.h
@@ -582,12 +582,14 @@
   // Returns whether we have an existing session to the same server id as
   // `session_key`. This is used to determine whether we have an existing
   // session to the host but with different `QuicSessionKey`.
-  bool HasActiveSessionToServerId(const QuicSessionKey& session_key) const;
+  std::optional<QuicSessionKey> GetActiveSessionToServerId(
+      const QuicSessionKey& session_key) const;
 
   // Returns whether we have an active job to the same server id as
   // `session_key`. This is used to determine whether we have an in-flight
   // attempt to the host but with different `QuicSessionKey`
-  bool HasActiveJobToServerId(const QuicSessionKey& session_key) const;
+  std::optional<QuicSessionKey> GetActiveJobToServerId(
+      const QuicSessionKey& session_key) const;
 
   int CreateSessionSync(QuicSessionAliasKey key,
                         quic::ParsedQuicVersion quic_version,
@@ -762,6 +764,9 @@
     return params_.supported_versions;
   }
 
+  void CheckQuicSessionKeyMismatch(const QuicSessionKey& session_key,
+                                   url::SchemeHostPort destination) const;
+
   // Whether QUIC is known to have ever worked on current network. This is true
   // when QUIC is expected to work in general, rather than whether QUIC was
   // broken / recently broken when used with a particular server. That
diff --git a/net/spdy/multiplexed_session_creation_initiator.h b/net/spdy/multiplexed_session_creation_initiator.h
index bd3f463..a7cd060 100644
--- a/net/spdy/multiplexed_session_creation_initiator.h
+++ b/net/spdy/multiplexed_session_creation_initiator.h
@@ -9,7 +9,6 @@
 
 // The reason why multiplexed session was created. It is used to distinguish
 // between preconnect initiated session and other sessions.
-// TODO(crbug.com/376304027): Add more precise reasons why preconnect happened.
 //
 // These values are persisted to logs. Entries should not be renumbered
 // and numeric values should never be reused.
diff --git a/remoting/resources/remoting_strings_am.xtb b/remoting/resources/remoting_strings_am.xtb
index 649ed12..c44f391 100644
--- a/remoting/resources/remoting_strings_am.xtb
+++ b/remoting/resources/remoting_strings_am.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">በደንበኛው ላይ <ph name="URL" />ን መክፈት አልተሳካም።</translation>
 <translation id="2359808026110333948">ቀጥል</translation>
 <translation id="2366718077645204424">አስተናጋጁን መድረስ አልተቻለም። ይሄ በሚጠቀሙት አውታረ መረብ ላይ ባለ ውቅር ምክንያት ሳይሆን አይቀርም።</translation>
+<translation id="242591256144136845">የቅጂ መብት 2025 Google LLC። ሁሉም መብቶች የተጠበቁ ናቸው።</translation>
 <translation id="2504109125669302160">የ«ተደራሽነት» ፈቃዱን ለ<ph name="PRODUCT_NAME" /> ይስጡ</translation>
 <translation id="2509394361235492552">ከ<ph name="HOSTNAME" /> ጋር ተገናኝቷል</translation>
 <translation id="2540992418118313681">ሌላ ተጠቃሚ ይህን ኮምፒውተር እንዲመለከት እና እንዲቆጣጠር ማጋራት ይፈልጋሉ?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">ማያ ገፅ እንደ ማያንካ ይሆናል</translation>
 <translation id="7116737094673640201">እንኳን ወደ Chrome የርቀት ዴስክቶፕ በደህና መጡ</translation>
 <translation id="7144878232160441200">እንደገና ሞክር</translation>
+<translation id="7298392173540380852">የቅጂ መብት 2025 የChromium ጸሐፊዎች። ሁሉም መብቶች የተጠበቁ ናቸው።</translation>
 <translation id="7312846573060934304">አስተናጋጅ ከመስመር ውጭ ነው።</translation>
 <translation id="7319983568955948908">ማጋራት አቁም</translation>
 <translation id="7359298090707901886">የተመረጠው አሳሽ በአካባቢያዊ ማሽን ላይ ዩአርኤልዎችን ለመክፈት ጥቅም ላይ ሊውል አይችልም።</translation>
diff --git a/remoting/resources/remoting_strings_ar.xtb b/remoting/resources/remoting_strings_ar.xtb
index ee5996a..d08003c 100644
--- a/remoting/resources/remoting_strings_ar.xtb
+++ b/remoting/resources/remoting_strings_ar.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">تعذّر فتح <ph name="URL" /> على الجهاز العميل.</translation>
 <translation id="2359808026110333948">متابعة</translation>
 <translation id="2366718077645204424">يتعذر الوصول إلى المضيف. ربما يرجع ذلك إلى إعداد الشبكة التي تستخدمها.</translation>
+<translation id="242591256144136845">‏جميع حقوق الطبع والنشر محفوظة لصالح شركة Google LLC لعام 2025.</translation>
 <translation id="2504109125669302160">منح إذن "أدوات تمكين الوصول" إلى <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">متصل بـ <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">هل ترغب في مشاركة هذا الكمبيوتر مع مستخدم آخر للمشاهدة والتحكم؟</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">تعمل الشاشة كشاشة باللمس</translation>
 <translation id="7116737094673640201">‏مرحبًا بك في سطح المكتب البعيد من Chrome</translation>
 <translation id="7144878232160441200">إعادة المحاولة</translation>
+<translation id="7298392173540380852">‏جميع حقوق الطبع والنشر محفوظة لصالح The Chromium Authors لعام 2025.</translation>
 <translation id="7312846573060934304">المضيف بلا إنترنت.</translation>
 <translation id="7319983568955948908">إيقاف المشاركة</translation>
 <translation id="7359298090707901886">‏لا يمكن استخدام المتصفّح الذي تم اختياره لفتح عناوين URL على الجهاز المحلي.</translation>
diff --git a/remoting/resources/remoting_strings_bg.xtb b/remoting/resources/remoting_strings_bg.xtb
index 93b0d37..1423a30 100644
--- a/remoting/resources/remoting_strings_bg.xtb
+++ b/remoting/resources/remoting_strings_bg.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872"><ph name="URL" /> не се отвори на устройството клиент.</translation>
 <translation id="2359808026110333948">Напред</translation>
 <translation id="2366718077645204424">Не можем да се свържем с хоста. Това вероятно се дължи на конфигурацията на използваната от вас мрежа.</translation>
+<translation id="242591256144136845">Авторски права 2025 г. Google LLC. Всички права запазени.</translation>
 <translation id="2504109125669302160">Предоставяне на разрешение за достъпност на <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">Установена е връзка с хоста „<ph name="HOSTNAME" />“</translation>
 <translation id="2540992418118313681">Искате ли да споделите компютъра с друг потребител, така че да вижда какво се случва и да управлява?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Екранът работи като сензорен</translation>
 <translation id="7116737094673640201">Добре дошли в Отдалечен работен плот на Chrome</translation>
 <translation id="7144878232160441200">Повторен опит</translation>
+<translation id="7298392173540380852">Авторски права 2025 г. Авторите на Chromium. Всички права запазени.</translation>
 <translation id="7312846573060934304">Хостът е офлайн.</translation>
 <translation id="7319983568955948908">Спиране на споделянето</translation>
 <translation id="7359298090707901886">Избраният браузър не може да бъде използван за отваряне на URL адреси на локалното устройство.</translation>
diff --git a/remoting/resources/remoting_strings_es.xtb b/remoting/resources/remoting_strings_es.xtb
index 7e6ac6f..9301456c 100644
--- a/remoting/resources/remoting_strings_es.xtb
+++ b/remoting/resources/remoting_strings_es.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">No se ha podido abrir <ph name="URL" /> en el cliente.</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2366718077645204424">No se puede establecer conexión con el host. Es probable que el error se deba a la configuración de la red que se está utilizando.</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. Todos los derechos reservados.</translation>
 <translation id="2504109125669302160">Conceder permiso de accesibilidad a <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">Conectado a <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">¿Quieres compartir este ordenador para que otro usuario pueda acceder a él y controlarlo?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">La pantalla hace de pantalla táctil</translation>
 <translation id="7116737094673640201">Te damos la bienvenida a Escritorio Remoto de Chrome</translation>
 <translation id="7144878232160441200">Reintentar</translation>
+<translation id="7298392173540380852">Copyright 2025 The Chromium Authors. Todos los derechos reservados.</translation>
 <translation id="7312846573060934304">El host no tiene conexión.</translation>
 <translation id="7319983568955948908">Dejar de compartir</translation>
 <translation id="7359298090707901886">El navegador elegido no se puede usar para abrir URLs en el equipo local.</translation>
diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb
index 6cbce21..df82dcf 100644
--- a/remoting/resources/remoting_strings_fa.xtb
+++ b/remoting/resources/remoting_strings_fa.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872"><ph name="URL" /> در کارخواه باز نشد.</translation>
 <translation id="2359808026110333948">ادامه</translation>
 <translation id="2366718077645204424">دسترسی به میزبان امکان‌پذیر نیست. این احتمالاً به دلیل پیکربندی شبکه‌ای است که استفاده می‌کنید.</translation>
+<translation id="242591256144136845">‏حق نشر ۲۰۲۵ Google LLC. کلیه حقوق محفوظ است.</translation>
 <translation id="2504109125669302160">به <ph name="PRODUCT_NAME" /> مجوز «دسترس‌پذیری» اعطا کنید</translation>
 <translation id="2509394361235492552">متصل به <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">می‌خواهید این رایانه را برای کاربر دیگر جهت مشاهده و کنترل به اشتراک بگذارید؟</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">صفحه نمایش مانند صفحه لمسی عمل می‌کند</translation>
 <translation id="7116737094673640201">‏به «کنترل رایانه ازراه‌دور Chrome» خوش‌آمدید</translation>
 <translation id="7144878232160441200">سعی مجدد</translation>
+<translation id="7298392173540380852">‏حق نشر ۲۰۲۵ Chromium Authors. کلیه حقوق محفوظ است.</translation>
 <translation id="7312846573060934304">میزبان آفلاین است.</translation>
 <translation id="7319983568955948908">توقف هم‌رسانی</translation>
 <translation id="7359298090707901886">نمی‌توان از مرورگر انتخاب‌شده برای باز کردن نشانی‌های وب در ماشین محلی استفاده کرد.</translation>
diff --git a/remoting/resources/remoting_strings_hi.xtb b/remoting/resources/remoting_strings_hi.xtb
index 1ea545e6..0bab581 100644
--- a/remoting/resources/remoting_strings_hi.xtb
+++ b/remoting/resources/remoting_strings_hi.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">क्लाइंट के डिवाइस पर <ph name="URL" /> नहीं खोला जा सका.</translation>
 <translation id="2359808026110333948">जारी रखें</translation>
 <translation id="2366718077645204424">होस्‍ट तक पहुंचने में असमर्थ. यह संभवत:   उपयोग किए जाने वाले नेटवर्क के कॉन्फ़िगरेशन के कारण है.</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. सभी अधिकार सुरक्षित हैं.</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" /> को 'सुलभता' अनुमति दें</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> से कनेक्‍ट है</translation>
 <translation id="2540992418118313681">क्या आप इस कंप्यूटर को किसी दूसरे उपयोगकर्ता से शेयर करना चाहते हैं ताकि वह इसे देख और नियंत्रित कर सके?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">स्क्रीन किसी टच स्क्रीन की तरह काम करती है</translation>
 <translation id="7116737094673640201">Chrome दूरस्‍थ डेस्‍कटॉप में आपका स्वागत है</translation>
 <translation id="7144878232160441200">फिर से प्रयास करें</translation>
+<translation id="7298392173540380852">Copyright 2025 The Chromium Authors. सभी अधिकार सुरक्षित हैं.</translation>
 <translation id="7312846573060934304">होस्ट ऑफ़लाइन है.</translation>
 <translation id="7319983568955948908">शेयर करना बंद करें</translation>
 <translation id="7359298090707901886">कंप्यूटर पर यूआरएल खोलने के लिए, चुने गए ब्राउज़र का इस्तेमाल नहीं किया जा सकता.</translation>
diff --git a/remoting/resources/remoting_strings_id.xtb b/remoting/resources/remoting_strings_id.xtb
index d114febe..f4a4d802 100644
--- a/remoting/resources/remoting_strings_id.xtb
+++ b/remoting/resources/remoting_strings_id.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">Gagal membuka <ph name="URL" /> di klien.</translation>
 <translation id="2359808026110333948">Lanjutkan</translation>
 <translation id="2366718077645204424">Tidak dapat menjangkau host. Ini mungkin karena konfigurasi jaringan yang Anda gunakan.</translation>
+<translation id="242591256144136845">Hak Cipta 2025 Google LLC. Semua Hak Dilindungi Undang-Undang.</translation>
 <translation id="2504109125669302160">Beri izin 'Accessibility' ke <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">Terhubung ke <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">Ingin membagikan komputer ini agar dapat dilihat dan dikontrol oleh pengguna lain?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Layar berfungsi seperti layar sentuh</translation>
 <translation id="7116737094673640201">Selamat Datang di Chrome Desktop Jarak Jauh</translation>
 <translation id="7144878232160441200">Coba lagi</translation>
+<translation id="7298392173540380852">Hak Cipta 2025 The Chromium Authors. Semua Hak Dilindungi Undang-Undang.</translation>
 <translation id="7312846573060934304">Hosting offline.</translation>
 <translation id="7319983568955948908">Hentikan Berbagi</translation>
 <translation id="7359298090707901886">Browser yang dipilih tidak dapat digunakan untuk membuka URL di perangkat lokal.</translation>
diff --git a/remoting/resources/remoting_strings_is.xtb b/remoting/resources/remoting_strings_is.xtb
index edafacb..2c883847 100644
--- a/remoting/resources/remoting_strings_is.xtb
+++ b/remoting/resources/remoting_strings_is.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">Ekki tókst að opna <ph name="URL" /> í biðlaranum.</translation>
 <translation id="2359808026110333948">Halda áfram</translation>
 <translation id="2366718077645204424">Ekki næst í hýsilinn. Þetta er líklega vegna grunnstillingar á netkerfinu sem þú notar.</translation>
+<translation id="242591256144136845">Höfundarréttur 2025 Google LLC. Öll réttindi áskilin.</translation>
 <translation id="2504109125669302160">Veittu <ph name="PRODUCT_NAME" /> heimildina „Aðgengi“</translation>
 <translation id="2509394361235492552">Tengt við <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">Viltu deila þessari tölvu þannig að annar notandi hafi aðgang og stjórn á henni?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Skjárinn virkar sem snertiskjár</translation>
 <translation id="7116737094673640201">Velkomin(n) í fjarstjórnun tölvu í Chrome</translation>
 <translation id="7144878232160441200">Reyna aftur</translation>
+<translation id="7298392173540380852">Höfundarréttur 2025 höfundar Chromium. Öll réttindi áskilin.</translation>
 <translation id="7312846573060934304">Hýsillinn er ekki tengdur.</translation>
 <translation id="7319983568955948908">Hætta að deila</translation>
 <translation id="7359298090707901886">Ekki er hægt að nota valinn vafra til að opna vefslóðir í staðbundna tækinu.</translation>
diff --git a/remoting/resources/remoting_strings_iw.xtb b/remoting/resources/remoting_strings_iw.xtb
index 2b3e489..d2cf04a 100644
--- a/remoting/resources/remoting_strings_iw.xtb
+++ b/remoting/resources/remoting_strings_iw.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">לא ניתן היה לפתוח את <ph name="URL" /> במכשיר הלקוח.</translation>
 <translation id="2359808026110333948">המשך</translation>
 <translation id="2366718077645204424">לא ניתן להשיג את המארח. הסיבה לכך יכולה להיות תצורת הרשת שבה נעשה שימוש.</translation>
+<translation id="242591256144136845">‏זכויות יוצרים 2025‏ Google LLC. כל הזכויות שמורות.</translation>
 <translation id="2504109125669302160">מתן הרשאת 'נגישות' ל-<ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">בוצעה התחברות אל <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">האם ברצונך לשתף מחשב זה כך שמשתמש אחר יראה אותו וישלוט בו?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">המסך פועל כמסך מגע</translation>
 <translation id="7116737094673640201">‏ברוך בואך אל Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">יש לנסות שוב</translation>
+<translation id="7298392173540380852">‏זכויות יוצרים 2025‏ The Chromium Authors. כל הזכויות שמורות.</translation>
 <translation id="7312846573060934304">המארח במצב אופליין.</translation>
 <translation id="7319983568955948908">הפסקת השיתוף</translation>
 <translation id="7359298090707901886">‏לא ניתן להשתמש בדפדפן שנבחר לפתיחת כתובות URL במחשב המקומי.</translation>
diff --git a/remoting/resources/remoting_strings_ja.xtb b/remoting/resources/remoting_strings_ja.xtb
index 6e64eeb6..2f4e9b9 100644
--- a/remoting/resources/remoting_strings_ja.xtb
+++ b/remoting/resources/remoting_strings_ja.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">クライアントで <ph name="URL" /> を開けませんでした。</translation>
 <translation id="2359808026110333948">続行</translation>
 <translation id="2366718077645204424">ホストにアクセスできません。お使いのネットワークの設定が原因であることが考えられます。</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. All Rights Reserved.</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" />に「アクセシビリティ」権限を付与する</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> に接続されました</translation>
 <translation id="2540992418118313681">このパソコンの閲覧と制御の権限を別のユーザーと共有しますか?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">画面がタッチ スクリーンとして機能します</translation>
 <translation id="7116737094673640201">Chrome リモート デスクトップへようこそ</translation>
 <translation id="7144878232160441200">再読み込み</translation>
+<translation id="7298392173540380852">Copyright 2025 The Chromium Authors. All Rights Reserved.</translation>
 <translation id="7312846573060934304">ホストはオフラインです。</translation>
 <translation id="7319983568955948908">共有を停止</translation>
 <translation id="7359298090707901886">選択されたブラウザでは、ローカルマシンで URL を開けません。</translation>
diff --git a/remoting/resources/remoting_strings_ka.xtb b/remoting/resources/remoting_strings_ka.xtb
index 1659d02..60a113b55 100644
--- a/remoting/resources/remoting_strings_ka.xtb
+++ b/remoting/resources/remoting_strings_ka.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872"><ph name="URL" /> ვერ გაიხსნა ამ კლიენტზე.</translation>
 <translation id="2359808026110333948">გაგრძელება</translation>
 <translation id="2366718077645204424">ვერ დაუკავშირდა ჰოსტს. ამის მიზეზი შეიძლება იყოს იმ ქსელის კონფიგურაცია, რომელსაც იყენებთ.</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. ყველა უფლება დაცულია.</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" /> საჭიროებს „მარტივი წვდომის“ ნებართვას</translation>
 <translation id="2509394361235492552">დაკავშირებულია „<ph name="HOSTNAME" />“-თან</translation>
 <translation id="2540992418118313681">გსურთ ნახვისა და მართვისათვის, გაუზიაროს ეს კომპიუტერი სხვა მომხმარებელს?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">ეკრანი მუშაობს სენსორული ეკრანის სახით</translation>
 <translation id="7116737094673640201">მოგესალმებათ Chrome-ის დისტანციური სამუშაო დაფა</translation>
 <translation id="7144878232160441200">გაიმეორეთ</translation>
+<translation id="7298392173540380852">Copyright 2025 The Chromium Authors. ყველა უფლება დაცულია.</translation>
 <translation id="7312846573060934304">საკვანძო კომპიუტერი ოფლაინშია.</translation>
 <translation id="7319983568955948908">შეწყვიტეთ გაზიარება</translation>
 <translation id="7359298090707901886">არჩეული ბრაუზერის მეშვეობით ადგილობრივ მოწყობილობაზე URL-ები ვერ გაიხსნება.</translation>
diff --git a/remoting/resources/remoting_strings_ko.xtb b/remoting/resources/remoting_strings_ko.xtb
index e32daa5..a2473f8 100644
--- a/remoting/resources/remoting_strings_ko.xtb
+++ b/remoting/resources/remoting_strings_ko.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">클라이언트 기기에서 <ph name="URL" /> 페이지를 열지 못했습니다.</translation>
 <translation id="2359808026110333948">계속</translation>
 <translation id="2366718077645204424">호스트에 연결할 수 없습니다. 사용 중인 네트워크의 구성 때문일 수 있습니다.</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. All Rights Reserved.</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" />에 '접근성' 권한 부여</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" />에 연결되었습니다</translation>
 <translation id="2540992418118313681">이 컴퓨터를 다른 사용자가 보고 제어하도록 공유하시겠습니까?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">화면이 터치스크린처럼 작동합니다</translation>
 <translation id="7116737094673640201">Chrome 원격 데스크톱에 오신 것을 환영합니다.</translation>
 <translation id="7144878232160441200">다시 시도</translation>
+<translation id="7298392173540380852">Copyright 2025 The Chromium Authors. All Rights Reserved.</translation>
 <translation id="7312846573060934304">호스트가 오프라인 상태입니다.</translation>
 <translation id="7319983568955948908">공유 중지</translation>
 <translation id="7359298090707901886">선택한 브라우저는 로컬 컴퓨터에서 URL을 열 때 사용할 수 없습니다.</translation>
diff --git a/remoting/resources/remoting_strings_lo.xtb b/remoting/resources/remoting_strings_lo.xtb
index e08a84e..a6109a3f 100644
--- a/remoting/resources/remoting_strings_lo.xtb
+++ b/remoting/resources/remoting_strings_lo.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">ເປີດ <ph name="URL" /> ຢູ່ລູກຂ່າຍບໍ່ສຳເລັດ.</translation>
 <translation id="2359808026110333948">ສືບຕໍ່</translation>
 <translation id="2366718077645204424">ບໍ່ສາມາດເຂົ້າຫາແມ່ຂ່າຍໄດ້. ອັນນີ້ອາດຈະເນື່ອງຈາກການປັບຕັ້ງຄ່າເຄືອຂ່າຍທີ່ທ່ານກໍາລັງໃຊ້.</translation>
+<translation id="242591256144136845">ລິຂະສິດ 2025 Google LLC. ສະຫງວນສິດທັງໝົດ.</translation>
 <translation id="2504109125669302160">ໃຫ້ການອະນຸຍາດ 'ການຊ່ວຍເຂົ້າເຖິງ' ແກ່ <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">ເຊື່ອມຕໍ່ກັບ <ph name="HOSTNAME" /> ແລ້ວ</translation>
 <translation id="2540992418118313681">ທ່ານ​ຢາກ​ຈະ​ແບ່ງ​ປັນ​ຄອມ​ພິວ​ເຕີ​ນີ້ ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ຄົນ​ອື່ນ​ເຫັນ ແລະ​ຄວບ​ຄຸມ​ບໍ?</translation>
@@ -134,6 +135,7 @@
 <translation id="7067321367069083429">ໜ້າຈໍເຮັດໜ້າທີ່ເປັນຈໍສຳຜັດ</translation>
 <translation id="7116737094673640201">ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">ລອງໃໝ່ອີກ</translation>
+<translation id="7298392173540380852">ລິຂະສິດ 2025 Chromium Authors. ສະຫງວນສິດທັງໝົດ.</translation>
 <translation id="7312846573060934304">ແມ່ຂ່າຍອອຟລາຍນ໌.</translation>
 <translation id="7319983568955948908">ຢຸດການແຊຣ໌</translation>
 <translation id="7359298090707901886">ບໍ່ສາມາດໃຊ້ໂປຣແກຣມທ່ອງເວັບທີ່ເລືອກເພື່ອເປີດ URL ຢູ່ເຄື່ອງໃນທ້ອງຖິ່ນໄດ້.</translation>
diff --git a/remoting/resources/remoting_strings_mn.xtb b/remoting/resources/remoting_strings_mn.xtb
index 5f008da..53b2868 100644
--- a/remoting/resources/remoting_strings_mn.xtb
+++ b/remoting/resources/remoting_strings_mn.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872"><ph name="URL" />-г клиент дээр нээж чадсангүй.</translation>
 <translation id="2359808026110333948">Цааш</translation>
 <translation id="2366718077645204424">Толгой компьютер луу хүрэх боломжгүй байна. Энэ нь магадгүй таны ашиглаж байгаа сүлжээний тохиргоотой холбоотой байх.</translation>
+<translation id="242591256144136845">Зохиогчийн эрх 2025 он Google LLC. Бүх эрх хуулиар хамгаалагдсан.</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" />-д 'Хандалтын' зөвшөөрөл олгох</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" />-д холбогдсон</translation>
 <translation id="2540992418118313681">Та энэ компьютерийг өөр хэрэглэгч харах мөн хянах боломжтой болгохыг хүсч байна уу?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Дэлгэц мэдрэгчтэй дэлгэцийн үүргийг гүйцэтгэж байна</translation>
 <translation id="7116737094673640201">Chrome Remote Desktop-д тавтай морилно уу</translation>
 <translation id="7144878232160441200">Дахин оролдох</translation>
+<translation id="7298392173540380852">Зохиогчийн эрх 2025 он Chromium-н зохиогчид. Бүх эрх хуулиар хамгаалагдсан.</translation>
 <translation id="7312846573060934304">Host офлайн байна.</translation>
 <translation id="7319983568955948908">Хуваалцахыг зогсоо</translation>
 <translation id="7359298090707901886">Сонгосон хөтчийг дотоод машин дээр URL нээхэд ашиглах боломжгүй.</translation>
diff --git a/remoting/resources/remoting_strings_my.xtb b/remoting/resources/remoting_strings_my.xtb
index 87f735a..3dbb7029 100644
--- a/remoting/resources/remoting_strings_my.xtb
+++ b/remoting/resources/remoting_strings_my.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">ကလိုင်းယင့်တွင် <ph name="URL" /> ကို ဖွင့်၍မရပါ။</translation>
 <translation id="2359808026110333948">ဆက်လုပ်ရန်</translation>
 <translation id="2366718077645204424">ဟို့စ်ကို လက်လှမ်း မမှီပါ။ သင် သုံးနေသည့် ကွန်ရက်၏ စီစဉ်ဖွဲ့စည်းမှုကြောင့် ဖြစ်ဖို့ များသည်။</translation>
+<translation id="242591256144136845">မူပိုင် ၂၀၂၅ Google LLC။ မူပိုင်ခွင့်အားလုံးကို ယူထားသည်။</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" /> ကို 'အများသုံးနိုင်မှု' ခွင့်ပြုချက်ပေးပါ</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> သို့ ချိတ်ဆက်ထားသည်</translation>
 <translation id="2540992418118313681">သင် ဤကွန်ပျူတာအား အခြားသုံးစွဲသူတစ်ဦးမှ ကြည့်ရှု ထိန်းချုပ်နိုင်ရန် မျှဝေလိုပါသလား။</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">ဖန်သားပြင်ကို တို့ထိမျက်နှာပြင်ကဲ့သို့ အသုံးပြုနိုင်သည်</translation>
 <translation id="7116737094673640201">Chrome အဝေးထိန်း ဒက်စ်တော့မှ ကြိုဆိုပါသည်</translation>
 <translation id="7144878232160441200">ထပ်စမ်းရန်</translation>
+<translation id="7298392173540380852">မူပိုင် ၂၀၂၅ Chromium ပြုစုသူများ။ မူပိုင်ခွင့်အားလုံးကို ယူထားသည်။</translation>
 <translation id="7312846573060934304">အိမ်ရှင် offline ဖြစ်နေသည်။</translation>
 <translation id="7319983568955948908">မျှဝေမှု ရပ်ရန်</translation>
 <translation id="7359298090707901886">စက်ပေါ်တွင် URL များ ဖွင့်ရန် ရွေးထားသောဘရောင်ဇာကို သုံး၍မရပါ။</translation>
diff --git a/remoting/resources/remoting_strings_pa.xtb b/remoting/resources/remoting_strings_pa.xtb
index 74ecd16..3d01a7f 100644
--- a/remoting/resources/remoting_strings_pa.xtb
+++ b/remoting/resources/remoting_strings_pa.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">ਕਲਾਇੰਟ 'ਤੇ <ph name="URL" /> ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ।</translation>
 <translation id="2359808026110333948">ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="2366718077645204424">ਹੋਸਟ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਅਸਮਰੱਥ। ਇਹ ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤੇ ਜਾ ਰਹੇ ਨੈੱਟਵਰਕ ਦਸੰਰੂਪਣ ਦੇ ਕਾਰਨ ਹੈ।</translation>
+<translation id="242591256144136845">ਕਾਪੀਰਾਈਟ 2025 Google LLC. ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</translation>
 <translation id="2504109125669302160"><ph name="PRODUCT_NAME" /> ਨੂੰ 'ਪਹੁੰਚਯੋਗਤਾ' ਇਜਾਜ਼ਤ ਦਿਓ</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> ਨਾਲ ਕਨੈਕਟ ਹੈ</translation>
 <translation id="2540992418118313681">ਕੀ ਤੁਸੀਂ ਕਿਸੇ ਦੂਜੇ ਵਰਤੋਂਕਾਰ ਨੂੰ ਦਿਖਾਉਣ ਅਤੇ ਕੰਟਰੋਲ ਕਰਨ ਦੇਣ ਲਈ ਇਹ ਕੰਪਿਊਟਰ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">ਸਕ੍ਰੀਨ ਕਿਸੇ ਸਪਰਸ਼ ਸਕ੍ਰੀਨ ਦੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀ ਹੈ</translation>
 <translation id="7116737094673640201">'Chrome ਰਿਮੋਟ ਡੈਸਕਟਾਪ' ਵਿੱਚ ਜੀ ਆਇਆਂ ਨੂੰ</translation>
 <translation id="7144878232160441200">ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
+<translation id="7298392173540380852">ਕਾਪੀਰਾਈਟ 2025 The Chromium Authors. ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</translation>
 <translation id="7312846573060934304">ਹੋਸਟ ਆਫ਼ਲਾਈਨ ਹੈ।</translation>
 <translation id="7319983568955948908">ਸ਼ੇਅਰਿੰਗ ਰੋਕੋ</translation>
 <translation id="7359298090707901886">ਸਥਾਨਕ ਮਸ਼ੀਨ 'ਤੇ URL ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਚੁਣੇ ਗਏ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।</translation>
diff --git a/remoting/resources/remoting_strings_ro.xtb b/remoting/resources/remoting_strings_ro.xtb
index 6297217..6da5d3784 100644
--- a/remoting/resources/remoting_strings_ro.xtb
+++ b/remoting/resources/remoting_strings_ro.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">Nu s-a putut deschide <ph name="URL" /> pe client.</translation>
 <translation id="2359808026110333948">Continuă</translation>
 <translation id="2366718077645204424">Gazda nu poate fi accesată. Acest lucru este cauzat, probabil, de configurația rețelei pe care o utilizați.</translation>
+<translation id="242591256144136845">Drepturi de autor 2025 Google LLC. Toate drepturile rezervate.</translation>
 <translation id="2504109125669302160">Acordă permisiunea „Accesibilitate” pentru <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">Conectat la <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">Dorești să permiți accesul la acest computer altui utilizator, pentru ca acesta să îl poată vedea și controla?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Ecranul funcționează ca un ecran tactil</translation>
 <translation id="7116737094673640201">Bun venit la Desktop la distanță Chrome</translation>
 <translation id="7144878232160441200">Reîncearcă</translation>
+<translation id="7298392173540380852">Drepturi de autor 2025 The Chromium Authors. Toate drepturile rezervate.</translation>
 <translation id="7312846573060934304">Gazda este offline.</translation>
 <translation id="7319983568955948908">Opriți permiterea accesului</translation>
 <translation id="7359298090707901886">Browserul selectat nu poate fi folosit pentru a deschide adrese URL pe dispozitivul local.</translation>
diff --git a/remoting/resources/remoting_strings_sl.xtb b/remoting/resources/remoting_strings_sl.xtb
index af84a4a7..0880ba1c 100644
--- a/remoting/resources/remoting_strings_sl.xtb
+++ b/remoting/resources/remoting_strings_sl.xtb
@@ -27,6 +27,7 @@
 <translation id="2329392777730037872">Ni bilo mogoče odpreti <ph name="URL" /> v tem odjemalcu.</translation>
 <translation id="2359808026110333948">Naprej</translation>
 <translation id="2366718077645204424">Ni mogoče vzpostaviti povezave z gostiteljem; verjetno zaradi konfiguracije omrežja, ki ga uporabljate.</translation>
+<translation id="242591256144136845">Copyright 2025 Google LLC. Vse pravice pridržane.</translation>
 <translation id="2504109125669302160">Odobritev dovoljenja »Dostopnost« izdelku <ph name="PRODUCT_NAME" /></translation>
 <translation id="2540992418118313681">Ali želite ta računalnik deliti z drugimi, tako da bo imel drug uporabnik do njega dostop in ga bo lahko nadziral?</translation>
 <translation id="2579271889603567289">Gostitelj se je zrušil ali ga ni bilo mogoče zagnati.</translation>
@@ -121,6 +122,7 @@
 <translation id="7067321367069083429">Zaslon deluje kot zaslon na dotik</translation>
 <translation id="7116737094673640201">Pozdravljeni v Oddaljenem namizju za Chrome</translation>
 <translation id="7144878232160441200">Poskusi ponovno</translation>
+<translation id="7298392173540380852">Copyright 2025 Ustvarjalci Chromiuma. Vse pravice pridržane.</translation>
 <translation id="7312846573060934304">Gostitelj ni dosegljiv.</translation>
 <translation id="7319983568955948908">Prekliči skupno rabo</translation>
 <translation id="7359298090707901886">Izbranega brskalnika ni mogoče uporabiti za odpiranje URL-jev v lokalnem računalniku.</translation>
diff --git a/remoting/resources/remoting_strings_sw.xtb b/remoting/resources/remoting_strings_sw.xtb
index 8fdd1499..7114ca2 100644
--- a/remoting/resources/remoting_strings_sw.xtb
+++ b/remoting/resources/remoting_strings_sw.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">Imeshindwa kufungua <ph name="URL" /> kwenye kiteja.</translation>
 <translation id="2359808026110333948">Endelea</translation>
 <translation id="2366718077645204424">Haiwezi kufikia seva pangishi. Labda hii ni kwa sababu ya usanidi wa mtandao unaotumia.</translation>
+<translation id="242591256144136845">Hakimiliki 2025 Google LLC. Haki Zote Zimehifadhiwa.</translation>
 <translation id="2504109125669302160">Idhinisha 'Ufikivu' kwenye <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">Imeunganisha kwenye <ph name="HOSTNAME" /></translation>
 <translation id="2540992418118313681">Ungependa kushiriki kompyuta hii kwa mtumiaji mwingine ili kuangalia na kudhibiti?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">Skrini inafanya kazi kama skrini ya kugusa</translation>
 <translation id="7116737094673640201">Karibu kwenye Programu ya Chrome ya Ufikiaji wa Kompyuta kutoka Mbali</translation>
 <translation id="7144878232160441200">Jaribu tena</translation>
+<translation id="7298392173540380852">Hakimiliki 2025 Waandishi wa Chromium. Haki Zote Zimehifadhiwa.</translation>
 <translation id="7312846573060934304">Seva pangishi iko nje ya mtandao.</translation>
 <translation id="7319983568955948908">Acha Kushiriki</translation>
 <translation id="7359298090707901886">Kivinjari ulichokichagua hakiwezi kutumiwa kufungua URL kwenye mashine hii.</translation>
diff --git a/remoting/resources/remoting_strings_zh-CN.xtb b/remoting/resources/remoting_strings_zh-CN.xtb
index 6e87c99..3d534ba 100644
--- a/remoting/resources/remoting_strings_zh-CN.xtb
+++ b/remoting/resources/remoting_strings_zh-CN.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">未能在客户端上打开 <ph name="URL" />。</translation>
 <translation id="2359808026110333948">继续</translation>
 <translation id="2366718077645204424">无法连接到主机,这可能是由您所使用网络的配置导致的。</translation>
+<translation id="242591256144136845">版权所有 2025 Google LLC。保留所有权利。</translation>
 <translation id="2504109125669302160">向 <ph name="PRODUCT_NAME" />授予“无障碍”权限</translation>
 <translation id="2509394361235492552">已连接到“<ph name="HOSTNAME" />”</translation>
 <translation id="2540992418118313681">您要与其他用户共享此计算机的查看和控制权限吗?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">屏幕充当触摸屏</translation>
 <translation id="7116737094673640201">欢迎使用 Chrome 远程桌面</translation>
 <translation id="7144878232160441200">重试</translation>
+<translation id="7298392173540380852">版权所有 2025 The Chromium Authors。保留所有权利。</translation>
 <translation id="7312846573060934304">主机未连接到网络。</translation>
 <translation id="7319983568955948908">停止共享</translation>
 <translation id="7359298090707901886">无法使用所选浏览器在本地计算机上打开网址。</translation>
diff --git a/remoting/resources/remoting_strings_zh-HK.xtb b/remoting/resources/remoting_strings_zh-HK.xtb
index 4844386..e371033 100644
--- a/remoting/resources/remoting_strings_zh-HK.xtb
+++ b/remoting/resources/remoting_strings_zh-HK.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">無法在用戶端上開啟 <ph name="URL" />。</translation>
 <translation id="2359808026110333948">繼續</translation>
 <translation id="2366718077645204424">無法連線至主機,這可能與您使用的網絡設定有關。</translation>
+<translation id="242591256144136845">版權所有 2025 Google LLC。保留所有權利。</translation>
 <translation id="2504109125669302160">將「無障礙功能」權限授予「<ph name="PRODUCT_NAME" />」</translation>
 <translation id="2509394361235492552">已連線至「<ph name="HOSTNAME" />」</translation>
 <translation id="2540992418118313681">您想與另一名使用者共用這部電腦的檢視權及控制權嗎?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">將螢幕變成輕觸式螢幕</translation>
 <translation id="7116737094673640201">歡迎使用 Chrome 遠端桌面</translation>
 <translation id="7144878232160441200">重試</translation>
+<translation id="7298392173540380852">版權所有 2025 Chromium 作者。保留所有權利。</translation>
 <translation id="7312846573060934304">主機已離線。</translation>
 <translation id="7319983568955948908">停止共用</translation>
 <translation id="7359298090707901886">所選瀏覽器無法在本機電腦上開啟網址。</translation>
diff --git a/remoting/resources/remoting_strings_zh-TW.xtb b/remoting/resources/remoting_strings_zh-TW.xtb
index 2c46a44eb..a59fb41 100644
--- a/remoting/resources/remoting_strings_zh-TW.xtb
+++ b/remoting/resources/remoting_strings_zh-TW.xtb
@@ -28,6 +28,7 @@
 <translation id="2329392777730037872">無法在用戶端上開啟 <ph name="URL" />。</translation>
 <translation id="2359808026110333948">繼續</translation>
 <translation id="2366718077645204424">無法連線到主機,原因可能與你使用的網路設定有關。</translation>
+<translation id="242591256144136845">著作權所有 2025 Google LLC。保留所有權利。</translation>
 <translation id="2504109125669302160">將「無障礙功能」權限授予 <ph name="PRODUCT_NAME" /></translation>
 <translation id="2509394361235492552">已連線至「<ph name="HOSTNAME" />」</translation>
 <translation id="2540992418118313681">您要與其他使用者分享這台電腦的瀏覽及控制權限嗎?</translation>
@@ -133,6 +134,7 @@
 <translation id="7067321367069083429">把螢幕當作觸控螢幕使用</translation>
 <translation id="7116737094673640201">歡迎使用 Chrome 遠端桌面</translation>
 <translation id="7144878232160441200">重試</translation>
+<translation id="7298392173540380852">著作權所有 2025 The Chromium Authors。保留所有權利。</translation>
 <translation id="7312846573060934304">主機已離線。</translation>
 <translation id="7319983568955948908">停止共用</translation>
 <translation id="7359298090707901886">所選瀏覽器無法在本機電腦上開啟網址。</translation>
diff --git a/services/network/cors/cors_url_loader_private_network_access_unittest.cc b/services/network/cors/cors_url_loader_private_network_access_unittest.cc
index 86687918..2592769 100644
--- a/services/network/cors/cors_url_loader_private_network_access_unittest.cc
+++ b/services/network/cors/cors_url_loader_private_network_access_unittest.cc
@@ -37,7 +37,7 @@
 
 base::Bucket MakeBucket(mojom::CorsError error,
                         base::HistogramBase::Count count) {
-  return base::Bucket(static_cast<base::HistogramBase::Sample>(error), count);
+  return base::Bucket(static_cast<base::HistogramBase::Sample32>(error), count);
 }
 
 std::vector<std::pair<std::string, std::string>> MakeHeaderPairs(
diff --git a/services/network/web_bundle/web_bundle_url_loader_factory.cc b/services/network/web_bundle/web_bundle_url_loader_factory.cc
index 967d82cd..d78c41d 100644
--- a/services/network/web_bundle/web_bundle_url_loader_factory.cc
+++ b/services/network/web_bundle/web_bundle_url_loader_factory.cc
@@ -477,7 +477,7 @@
     DCHECK(!finished_loading_);
     base::UmaHistogramCustomCounts(
         "SubresourceWebBundles.ReceivedSize",
-        base::saturated_cast<base::Histogram::Sample>(buffer_.size()), 1,
+        base::saturated_cast<base::Histogram::Sample32>(buffer_.size()), 1,
         50000000, 50);
     DCHECK(data_completed_closure_);
     // Defer calling |data_completed_closure_| not to run
diff --git a/services/resource_coordinator/memory_instrumentation/aggregate_metrics_processor.cc b/services/resource_coordinator/memory_instrumentation/aggregate_metrics_processor.cc
index b094696..1259049c 100644
--- a/services/resource_coordinator/memory_instrumentation/aggregate_metrics_processor.cc
+++ b/services/resource_coordinator/memory_instrumentation/aggregate_metrics_processor.cc
@@ -4,7 +4,6 @@
 
 #include "services/resource_coordinator/memory_instrumentation/aggregate_metrics_processor.h"
 
-#include <set>
 #include <string>
 #include <vector>
 
@@ -25,7 +24,7 @@
 
 namespace {
 
-void LogNativeCodeResidentPages(const std::set<size_t>& accessed_pages_set) {
+void LogNativeCodeResidentPages(base::span<size_t> accessed_pages_set) {
   // |SUPPORTS_CODE_ORDERING| can only be enabled on Android.
   const auto kResidentPagesPath = base::FilePath(
       "/data/local/tmp/chrome/native-library-resident-pages.txt");
@@ -73,12 +72,13 @@
     }
   }
 
-  // |accessed_pages_set| will be ~40kB on 32 bit mode and ~80kB on 64 bit mode.
-  std::set<size_t> accessed_pages_set;
+  std::vector<size_t> accessed_pages_set;
+  // The typical size of this set is ~10k entries.
+  accessed_pages_set.reserve(10240);
   for (size_t i = 0; i < common_map.size(); i++) {
     for (int j = 0; j < 8; j++) {
       if (common_map[i] & (1 << j))
-        accessed_pages_set.insert(i * 8 + j);
+        accessed_pages_set.push_back(i * 8 + j);
     }
   }
 
diff --git a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
index 7ae7e8c..60f4bc9 100644
--- a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
+++ b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
@@ -60,11 +60,11 @@
 
 void BackgroundTracingAgentImpl::OnHistogramChanged(
     const std::string& rule_id,
-    base::Histogram::Sample histogram_lower_value,
-    base::Histogram::Sample histogram_upper_value,
+    base::Histogram::Sample32 histogram_lower_value,
+    base::Histogram::Sample32 histogram_upper_value,
     const char* histogram_name,
     uint64_t name_hash,
-    base::Histogram::Sample actual_value) {
+    base::Histogram::Sample32 actual_value) {
   if (actual_value < histogram_lower_value ||
       actual_value > histogram_upper_value) {
     return;
diff --git a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.h b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.h
index 7971169..5a604a59 100644
--- a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.h
+++ b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.h
@@ -46,11 +46,11 @@
 
  private:
   void OnHistogramChanged(const std::string& rule_id,
-                          base::Histogram::Sample reference_lower_value,
-                          base::Histogram::Sample reference_upper_value,
+                          base::Histogram::Sample32 reference_lower_value,
+                          base::Histogram::Sample32 reference_upper_value,
                           const char* histogram_name,
                           uint64_t name_hash,
-                          base::Histogram::Sample actual_value);
+                          base::Histogram::Sample32 actual_value);
 
   mojo::Remote<mojom::BackgroundTracingAgentClient> client_;
   base::Time histogram_last_changed_;
diff --git a/services/tracing/public/cpp/perfetto/custom_event_recorder.cc b/services/tracing/public/cpp/perfetto/custom_event_recorder.cc
index 777238e..5d0c51f 100644
--- a/services/tracing/public/cpp/perfetto/custom_event_recorder.cc
+++ b/services/tracing/public/cpp/perfetto/custom_event_recorder.cc
@@ -258,7 +258,7 @@
 void CustomEventRecorder::OnMetricsSampleCallback(
     const char* histogram_name,
     uint64_t name_hash,
-    base::HistogramBase::Sample sample) {
+    base::HistogramBase::Sample32 sample) {
   TRACE_EVENT_INSTANT(
       kHistogramSamplesCategory, "HistogramSample",
       [&](perfetto::EventContext ctx) {
diff --git a/services/tracing/public/cpp/perfetto/custom_event_recorder.h b/services/tracing/public/cpp/perfetto/custom_event_recorder.h
index 7deb6dcf..ee9331d9 100644
--- a/services/tracing/public/cpp/perfetto/custom_event_recorder.h
+++ b/services/tracing/public/cpp/perfetto/custom_event_recorder.h
@@ -51,7 +51,7 @@
   // the trace config, all the histograms will be monitored.
   static void OnMetricsSampleCallback(const char* histogram_name,
                                       uint64_t name_hash,
-                                      base::HistogramBase::Sample sample);
+                                      base::HistogramBase::Sample32 sample);
   bool IsPrivacyFilteringEnabled();
 
  private:
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index 0fc6ef6..66740e69 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -130,7 +130,7 @@
     defines += [
       "GR_GL_FUNCTION_TYPE=__stdcall",
       "SK_GAMMA_SRGB",
-      "SK_GAMMA_CONTRAST=0.5",
+      "SK_GAMMA_CONTRAST=1.0",
     ]
   }
 
diff --git a/testing/buildbot/filters/BUILD.gn b/testing/buildbot/filters/BUILD.gn
index 1e4a2d3..72b4528 100644
--- a/testing/buildbot/filters/BUILD.gn
+++ b/testing/buildbot/filters/BUILD.gn
@@ -31,6 +31,7 @@
     "//testing/buildbot/filters/android.device.cc_unittests.filter",
     "//testing/buildbot/filters/fuchsia.debug.cc_unittests.filter",
     "//testing/buildbot/filters/gpu.skiarenderer_dawn_cc_unittests.filter",
+    "//testing/buildbot/filters/trees_in_viz.cc_unittests.filter",
   ]
 }
 
diff --git a/testing/buildbot/filters/trees_in_viz.cc_unittests.filter b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter
new file mode 100644
index 0000000..b1bdad39
--- /dev/null
+++ b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter
@@ -0,0 +1,10 @@
+# TODO(crbug.com/389148369) Implement copy output requests
+-PixelResourceTest/LayerTreeHostMaskPixelTest*
+-PixelResourceTest/LayerTreeHostMasksForBackdropFiltersPixelTest*
+
+# These tests rely on LayerTreeHostImpl to produce CompositorFrames, which it
+# doesn't do in TreesInViz mode.
+-LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestCrispUpAfterPinchEnds.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestDamagePropagatesFromViewTransitionSurface.RunMultiThread_DelegatingRenderer
+-LayerTreeTestMaskLayerForSurfaceWithContentRectNotAtOriginWithLayerList.RunMultiThread_DelegatingRenderer
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 5835ec90..1454efe 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2418,6 +2418,26 @@
             ]
         }
     ],
+    "AutofillOptimizeFormExtraction": [
+        {
+            "platforms": [
+                "android",
+                "android_webview",
+                "chromeos",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "AutofillOptimizeFormExtraction"
+                    ]
+                }
+            ]
+        }
+    ],
     "AutofillPageLanguageDetection": [
         {
             "platforms": [
@@ -8834,6 +8854,21 @@
             ]
         }
     ],
+    "EnableASWebAuthenticationSession": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "EnableASWebAuthenticationSession"
+                    ]
+                }
+            ]
+        }
+    ],
     "EnableCertManagementUIV2": [
         {
             "platforms": [
@@ -11986,24 +12021,6 @@
             ]
         }
     ],
-    "IOSModernTabStrip": [
-        {
-            "platforms": [
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "params": {
-                        "modern-tab-strip-new-tab-button": "dynamic"
-                    },
-                    "enable_features": [
-                        "ModernTabStrip"
-                    ]
-                }
-            ]
-        }
-    ],
     "IOSNewFeedPositioningStudy": [
         {
             "platforms": [
@@ -14397,21 +14414,6 @@
             ]
         }
     ],
-    "MigrateSyncingUserToSignedInAndroid": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "MigrateSyncingUserToSignedIn"
-                    ]
-                }
-            ]
-        }
-    ],
     "MojoChannelAssociatedSendUsesRunOrPostTask": [
         {
             "platforms": [
@@ -16969,6 +16971,24 @@
             ]
         }
     ],
+    "PermissionsAIv1": [
+        {
+            "platforms": [
+                "chromeos",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "PermissionsAIv1"
+                    ]
+                }
+            ]
+        }
+    ],
     "PickerUI": [
         {
             "platforms": [
@@ -17845,6 +17865,25 @@
             ]
         }
     ],
+    "PrivacyGuideAiSettings": [
+        {
+            "platforms": [
+                "chromeos",
+                "chromeos_lacros",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "PrivacyGuideAiSettings"
+                    ]
+                }
+            ]
+        }
+    ],
     "PrivacyHubGeolocation": [
         {
             "platforms": [
diff --git a/third_party/angle b/third_party/angle
index 0dabfe5..ed511a9 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit 0dabfe5a6ac5377854a3f5ee673d56315c175e71
+Subproject commit ed511a9c22c77166a1a9fc251c149816f641fdea
diff --git a/third_party/blink/public/mojom/webid/digital_identity_request.mojom b/third_party/blink/public/mojom/webid/digital_identity_request.mojom
index 6d67f250..484e21b 100644
--- a/third_party/blink/public/mojom/webid/digital_identity_request.mojom
+++ b/third_party/blink/public/mojom/webid/digital_identity_request.mojom
@@ -10,8 +10,8 @@
 
 // The specification of the query to digital credentials.
 struct DigitalCredentialProvider {
-  string? protocol;
-  string? request;
+  string protocol;
+  string request;
 };
 
 // The specification of the request to digital credentials.
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc b/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
index 5d36e29..d109f90 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
@@ -288,21 +288,21 @@
         CustomCountHistogram, collection_rate_histogram,                       \
         ("V8.GC.Cycle" priority ".CollectionRate.Full", 1, 100, 20));          \
     collection_rate_histogram.Count(                                           \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             100 * event.collection_rate_in_percent));                          \
                                                                                \
     DEFINE_THREAD_SAFE_STATIC_LOCAL(                                           \
         CustomCountHistogram, collection_weight_histogram,                     \
         ("V8.GC.Cycle" priority ".CollectionWeight.Full", 1, 1000, 20));       \
     collection_weight_histogram.Count(                                         \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             1000 * event.collection_weight_in_percent));                       \
     DEFINE_THREAD_SAFE_STATIC_LOCAL(                                           \
         CustomCountHistogram, main_thread_collection_weight_histogram,         \
         ("V8.GC.Cycle" priority ".CollectionWeight.MainThread.Full", 1, 1000,  \
          20));                                                                 \
     main_thread_collection_weight_histogram.Count(                             \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                         \
             1000 * event.main_thread_collection_weight_in_percent));           \
   }
 
@@ -400,14 +400,14 @@
         CustomCountHistogram, collection_rate_cpp_histogram,                   \
         ("V8.GC.Cycle" priority ".CollectionRate.Full.Cpp", 1, 100, 20));      \
     collection_rate_cpp_histogram.Count(                                       \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             100 * event.collection_rate_cpp_in_percent));                      \
                                                                                \
     DEFINE_THREAD_SAFE_STATIC_LOCAL(                                           \
         CustomCountHistogram, collection_weight_cpp_histogram,                 \
         ("V8.GC.Cycle" priority ".CollectionWeight.Full.Cpp", 1, 1000, 20));   \
     collection_weight_cpp_histogram.Count(                                     \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             1000 * event.collection_weight_cpp_in_percent));                   \
                                                                                \
     DEFINE_THREAD_SAFE_STATIC_LOCAL(                                           \
@@ -415,7 +415,7 @@
         ("V8.GC.Cycle" priority ".CollectionWeight.MainThread.Full.Cpp", 1,    \
          1000, 20));                                                           \
     main_thread_collection_weight_cpp_histogram.Count(                         \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             1000 * event.main_thread_collection_weight_cpp_in_percent));       \
   }
 
@@ -528,7 +528,7 @@
         CustomCountHistogram, collection_rate_histogram,                       \
         ("V8.GC.Cycle" priority ".CollectionRate.Young", 1, 100, 20));         \
     collection_rate_histogram.Count(                                           \
-        base::saturated_cast<base::Histogram::Sample>(                         \
+        base::saturated_cast<base::Histogram::Sample32>(                       \
             100 * event.collection_rate_in_percent));                          \
   }
 
diff --git a/third_party/blink/renderer/build/scripts/core/css/parser/make_atrule_names.py b/third_party/blink/renderer/build/scripts/core/css/parser/make_atrule_names.py
index 0413ec2..b8419ed 100755
--- a/third_party/blink/renderer/build/scripts/core/css/parser/make_atrule_names.py
+++ b/third_party/blink/renderer/build/scripts/core/css/parser/make_atrule_names.py
@@ -26,7 +26,8 @@
         self._character_offsets = []
 
         # AtRuleDescriptorID::Invalid is 0.
-        first_descriptor_id = 1
+        # AtRuleDescriptorID::Variable is 1.
+        first_descriptor_id = 2
         # Aliases are resolved immediately at parse time, and thus don't appear
         # in the enum.
         self._descriptors_count = len(self._descriptors) + first_descriptor_id
diff --git a/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.cc.tmpl b/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.cc.tmpl
index 99c9efa8..266d5db 100644
--- a/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.cc.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.cc.tmpl
@@ -50,25 +50,32 @@
 static AtRuleDescriptorID AsAtRuleDescriptorID(
     const CharacterType* descriptor_name,
     unsigned length) {
-  if (length == 0)
+  if (length == 0) {
     return AtRuleDescriptorID::Invalid;
-  if (length > {{longest_name_length}})
+  }
+  if (length >= 3 && descriptor_name[0] == '-' && descriptor_name[1] == '-') {
+    return AtRuleDescriptorID::Variable;
+  }
+  if (length > {{longest_name_length}}) {
     return AtRuleDescriptorID::Invalid;
+  }
 
   char buffer[{{longest_name_length}} + 1];  // 1 for null character
 
   for (unsigned i = 0; i != length; ++i) {
     CharacterType c = descriptor_name[i];
-    if (c == 0 || c >= 0x7F)
+    if (c == 0 || c >= 0x7F) {
       return AtRuleDescriptorID::Invalid;  // illegal character
+    }
     buffer[i] = ToASCIILower(c);
   }
   buffer[length] = '\0';
 
   const char* name = buffer;
   const Property* hash_table_entry = FindDescriptor(name, length);
-  if (!hash_table_entry)
+  if (!hash_table_entry) {
     return AtRuleDescriptorID::Invalid;
+  }
   return static_cast<AtRuleDescriptorID>(hash_table_entry->id);
 }
 
@@ -83,6 +90,8 @@
 
 CSSPropertyID AtRuleDescriptorIDAsCSSPropertyID(AtRuleDescriptorID id) {
   switch (id) {
+  case AtRuleDescriptorID::Variable:
+    return CSSPropertyID::kVariable;
 {% for descriptor in descriptors %}
   case AtRuleDescriptorID::{{descriptor.name.to_upper_camel_case()}}:
     return CSSPropertyID::{{descriptor.name.to_enum_value()}};
@@ -94,6 +103,8 @@
 
 AtRuleDescriptorID CSSPropertyIDAsAtRuleDescriptor(CSSPropertyID id) {
   switch (id) {
+  case CSSPropertyID::kVariable:
+    return AtRuleDescriptorID::Variable;
 {% for descriptor in descriptors %}
   case CSSPropertyID::{{descriptor.name.to_enum_value()}}:
     return AtRuleDescriptorID::{{descriptor.name.to_upper_camel_case()}};
diff --git a/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.h.tmpl
index 0fb06f7d..ae05df6 100644
--- a/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/parser/templates/at_rule_descriptors.h.tmpl
@@ -14,6 +14,9 @@
 
 enum class AtRuleDescriptorID {
   Invalid = 0,
+  Variable = 1,
+{# The first generated value is '2', see `first_descriptor_id`
+   in make_atrule_names.py. #}
 {% for descriptor in descriptors %}
   {{descriptor.name.to_upper_camel_case()}} = {{descriptor.enum_value}},
 {% endfor %}
diff --git a/third_party/blink/renderer/controller/highest_pmf_reporter.cc b/third_party/blink/renderer/controller/highest_pmf_reporter.cc
index 4e87384..e57f19f6 100644
--- a/third_party/blink/renderer/controller/highest_pmf_reporter.cc
+++ b/third_party/blink/renderer/controller/highest_pmf_reporter.cc
@@ -124,7 +124,7 @@
 
 void HighestPmfReporter::ReportMetrics() {
   base::UmaHistogramMemoryMB(kHighestPmfMetricNames[report_count_],
-                             base::saturated_cast<base::Histogram::Sample>(
+                             base::saturated_cast<base::Histogram::Sample32>(
                                  current_highest_pmf_ / 1024 / 1024));
 }
 
diff --git a/third_party/blink/renderer/core/animation/css_font_weight_interpolation_type.cc b/third_party/blink/renderer/core/animation/css_font_weight_interpolation_type.cc
index 6bf1d01..8e5baae 100644
--- a/third_party/blink/renderer/core/animation/css_font_weight_interpolation_type.cc
+++ b/third_party/blink/renderer/core/animation/css_font_weight_interpolation_type.cc
@@ -74,7 +74,11 @@
               inherited_font_weight));
     }
   }
+  // TODO(40946458): Should do a proper interpolation here instead of converting
+  // relative units first.
   return CreateFontWeightValue(StyleBuilderConverterBase::ConvertFontWeight(
+      state ? state->CssToLengthConversionData()
+            : CSSToLengthConversionData(/*element=*/nullptr),
       value, inherited_font_weight));
 }
 
diff --git a/third_party/blink/renderer/core/animation/css_shape_interpolation_type.cc b/third_party/blink/renderer/core/animation/css_shape_interpolation_type.cc
index 10e7521..307dff81 100644
--- a/third_party/blink/renderer/core/animation/css_shape_interpolation_type.cc
+++ b/third_party/blink/renderer/core/animation/css_shape_interpolation_type.cc
@@ -11,23 +11,33 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/stack_allocated.h"
+#include "base/notreached.h"
 #include "third_party/blink/renderer/core/animation/css_position_axis_list_interpolation_type.h"
 #include "third_party/blink/renderer/core/animation/interpolable_length.h"
 #include "third_party/blink/renderer/core/animation/interpolable_value.h"
 #include "third_party/blink/renderer/core/css/css_identifier_value.h"
+#include "third_party/blink/renderer/core/css/css_path_value.h"
+#include "third_party/blink/renderer/core/css/css_primitive_value.h"
 #include "third_party/blink/renderer/core/css/css_shape_value.h"
 #include "third_party/blink/renderer/core/css/css_to_length_conversion_data.h"
 #include "third_party/blink/renderer/core/css/css_value_list.h"
 #include "third_party/blink/renderer/core/css/css_value_pair.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/css/shape_functions.h"
+#include "third_party/blink/renderer/core/style/basic_shapes.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/core/style/shape_clip_path_operation.h"
 #include "third_party/blink/renderer/core/style/shape_offset_path_operation.h"
 #include "third_party/blink/renderer/core/style/style_shape.h"
+#include "third_party/blink/renderer/core/svg/svg_path_blender.h"
+#include "third_party/blink/renderer/core/svg/svg_path_byte_stream_source.h"
 #include "third_party/blink/renderer/core/svg/svg_path_data.h"
+#include "third_party/blink/renderer/core/svg/svg_path_parser.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
+#include "ui/gfx/geometry/point_f.h"
 
 namespace blink {
 
@@ -41,7 +51,7 @@
 // like a stream of InterpolableValues,
 //    consisting of 2 Lengths for the origin + 0-6 values per segments, mostly
 //    InerpolableLength: 0 for Close, 1 length for hline/vLine, 4 or 6 Lengths
-//    for curves, 4 lengths + angle for arc, 2 lengths for the rest.
+//    for curves, 4 lengths + 3 numbers for arc, 2 lengths for the rest.
 // Converting to/from this interpolation value consists of either "writing" to
 // this stream from a CSSValue/StyleShape, or "reading" from it when converting
 // it to the end result (a StyleShape).
@@ -50,10 +60,9 @@
  public:
   struct SegmentParams {
     SVGPathSegType type;
-    bool arc_large;
-    bool arc_sweep;
     StyleShape::ControlPoint::Origin control_point_origin_1;
     StyleShape::ControlPoint::Origin control_point_origin_2;
+    bool operator==(const SegmentParams&) const = default;
   };
 
   ~ShapeNonInterpolableValue() override = default;
@@ -78,27 +87,6 @@
   WindRule wind_rule_;
 };
 
-bool ParamsMatch(
-    const Vector<ShapeNonInterpolableValue::SegmentParams>& list_a,
-    const Vector<ShapeNonInterpolableValue::SegmentParams>& list_b) {
-  if (list_a.size() != list_b.size()) {
-    return false;
-  }
-  for (size_t i = 0; i < list_a.size(); ++i) {
-    const auto& a = list_a[i];
-    const auto& b = list_b[i];
-
-    // We only match curves, as mismatching arcs can still interpolate.
-    if (a.type != b.type ||
-        a.control_point_origin_1 != b.control_point_origin_1 ||
-        a.control_point_origin_2 != b.control_point_origin_2) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
 class ShapeSegmentInterpolationBuilder {
   STACK_ALLOCATED();
 
@@ -170,12 +158,14 @@
   void Write(const StyleShape::ArcSegment<Type>& segment,
              ShapeNonInterpolableValue::SegmentParams& params) {
     Write(segment.target_point);
-    interpolable_values.push_back(
-        MakeGarbageCollected<InterpolableNumber>(segment.angle));
+    interpolable_values.push_back(MakeGarbageCollected<InterpolableNumber>(
+        segment.angle, CSSPrimitiveValue::UnitType::kDegrees));
     Write(segment.radius.Width());
     Write(segment.radius.Height());
-    params.arc_large = segment.large;
-    params.arc_sweep = segment.sweep;
+    interpolable_values.push_back(
+        MakeGarbageCollected<InterpolableNumber>(segment.large ? 1.f : 0.f));
+    interpolable_values.push_back(
+        MakeGarbageCollected<InterpolableNumber>(segment.sweep ? 1.f : 0.f));
   }
 
   template <SVGPathSegType Type>
@@ -213,6 +203,104 @@
   float zoom_;
 };
 
+InterpolationValue ConvertPath(const StylePath* style_path,
+                               const CSSProperty& property) {
+  if (!style_path) {
+    return nullptr;
+  }
+
+  CHECK(!style_path->ByteStream().IsEmpty());
+
+  HeapVector<Member<InterpolableValue>> interpolable_segments;
+  Vector<ShapeNonInterpolableValue::SegmentParams> non_interpolable_segments;
+  SVGPathByteStreamSource path_source(style_path->ByteStream());
+
+  auto WriteLength = [&](double value) {
+    interpolable_segments.push_back(InterpolableLength::CreatePixels(value));
+  };
+
+  auto WritePoint = [&](const gfx::PointF& point) {
+    WriteLength(point.x());
+    WriteLength(point.y());
+  };
+
+  // The first command is always a move-to (M)
+  PathSegmentData first_segment = path_source.ParseSegment();
+  WritePoint(first_segment.target_point);
+
+  while (path_source.HasMoreData()) {
+    PathSegmentData segment = path_source.ParseSegment();
+    ShapeNonInterpolableValue::SegmentParams params{segment.command};
+    StyleShape::ControlPoint::Origin control_point_origin =
+        IsAbsolutePathSegType(segment.command)
+            ? StyleShape::ControlPoint::Origin::kReferenceBox
+            : StyleShape::ControlPoint::Origin::kSegmentStart;
+    switch (segment.command) {
+      case SVGPathSegType::kPathSegMoveToAbs:
+      case SVGPathSegType::kPathSegMoveToRel:
+      case SVGPathSegType::kPathSegLineToAbs:
+      case SVGPathSegType::kPathSegLineToRel:
+      case SVGPathSegType::kPathSegCurveToQuadraticSmoothAbs:
+      case SVGPathSegType::kPathSegCurveToQuadraticSmoothRel:
+        WritePoint(segment.target_point);
+        break;
+      case SVGPathSegType::kPathSegLineToHorizontalAbs:
+      case SVGPathSegType::kPathSegLineToHorizontalRel:
+        WriteLength(segment.target_point.x());
+        break;
+      case SVGPathSegType::kPathSegLineToVerticalAbs:
+      case SVGPathSegType::kPathSegLineToVerticalRel:
+        WriteLength(segment.target_point.y());
+        break;
+      case SVGPathSegType::kPathSegCurveToCubicAbs:
+      case SVGPathSegType::kPathSegCurveToCubicRel:
+        WritePoint(segment.target_point);
+        WritePoint(segment.point1);
+        WritePoint(segment.point2);
+        params.control_point_origin_1 = params.control_point_origin_2 =
+            control_point_origin;
+        break;
+      case SVGPathSegType::kPathSegCurveToQuadraticAbs:
+      case SVGPathSegType::kPathSegCurveToQuadraticRel:
+        WritePoint(segment.target_point);
+        WritePoint(segment.point1);
+        params.control_point_origin_1 = control_point_origin;
+        break;
+      case SVGPathSegType::kPathSegCurveToCubicSmoothAbs:
+      case SVGPathSegType::kPathSegCurveToCubicSmoothRel:
+        WritePoint(segment.target_point);
+        WritePoint(segment.point2);
+        params.control_point_origin_1 = control_point_origin;
+        break;
+      case SVGPathSegType::kPathSegArcAbs:
+      case SVGPathSegType::kPathSegArcRel:
+        WritePoint(segment.target_point);
+        interpolable_segments.push_back(
+            MakeGarbageCollected<InterpolableNumber>(
+                segment.ArcAngle(), CSSPrimitiveValue::UnitType::kDegrees));
+        WriteLength(segment.ArcRadiusX());
+        WriteLength(segment.ArcRadiusY());
+        interpolable_segments.push_back(
+            MakeGarbageCollected<InterpolableNumber>(
+                segment.LargeArcFlag() ? 1.f : 0.f));
+        interpolable_segments.push_back(
+            MakeGarbageCollected<InterpolableNumber>(
+                segment.SweepFlag() ? 1.f : 0.f));
+        break;
+      case SVGPathSegType::kPathSegClosePath:
+        break;
+      case SVGPathSegType::kPathSegUnknown:
+        NOTREACHED();
+    }
+
+    non_interpolable_segments.push_back(params);
+  }
+
+  return InterpolationValue(
+      MakeGarbageCollected<InterpolableList>(std::move(interpolable_segments)),
+      ShapeNonInterpolableValue::Create(style_path->GetWindRule(),
+                                        std::move(non_interpolable_segments)));
+}
 InterpolationValue ConvertShape(const StyleShape* style_shape,
                                 const CSSProperty& property,
                                 float zoom) {
@@ -236,6 +324,15 @@
                                         std::move(non_interpolable_segments)));
 }
 
+InterpolationValue ConvertShapeOrPath(const BasicShape* shape,
+                                      const CSSProperty& property,
+                                      float zoom) {
+  if (auto* style_shape = DynamicTo<StyleShape>(shape)) {
+    return ConvertShape(style_shape, property, zoom);
+  }
+  return ConvertPath(To<StylePath>(shape), property);
+}
+
 class UnderlyingShapeConversionChecker final
     : public InterpolationType::ConversionChecker {
  public:
@@ -254,10 +351,8 @@
     return value_->GetWindRule() ==
                To<ShapeNonInterpolableValue>(*underlying.non_interpolable_value)
                    .GetWindRule() &&
-           ParamsMatch(
-               To<ShapeNonInterpolableValue>(*underlying.non_interpolable_value)
-                   .GetParams(),
-               value_->GetParams());
+           To<ShapeNonInterpolableValue>(*underlying.non_interpolable_value)
+                   .GetParams() == value_->GetParams();
   }
 
  private:
@@ -303,12 +398,14 @@
   StyleShape::Segment ReadArc(
       const ShapeNonInterpolableValue::SegmentParams& params) {
     LengthPoint target_point = ReadPoint();
-    double angle = To<InterpolableNumber>(*value_list_.Get(index_))
+    double angle = To<InterpolableNumber>(*value_list_.Get(index_++))
                        .Value(conversion_data_);
-    index_++;
     LengthSize radius(ReadLength(), ReadLength());
-    return T{
-        {{target_point}, angle, radius, params.arc_large, params.arc_sweep}};
+    double arc_large = To<InterpolableNumber>(*value_list_.Get(index_++))
+                           .Value(conversion_data_);
+    double arc_sweep = To<InterpolableNumber>(*value_list_.Get(index_++))
+                           .Value(conversion_data_);
+    return T{{{target_point}, angle, radius, arc_large > 0.f, arc_sweep > 0.f}};
   }
 
   Length ReadLength() {
@@ -405,12 +502,17 @@
 
 // Returns the property's shape() value.
 // If the property's value is not a shape(), returns nullptr.
-const StyleShape* GetShape(const CSSProperty& property,
-                           const ComputedStyle& style) {
+const BasicShape* GetShapeOrPath(const CSSProperty& property,
+                                 const ComputedStyle& style) {
   // TODO(crbug.com/389713717) support also offset-path
   CHECK_EQ(property.PropertyID(), CSSPropertyID::kClipPath);
-  if (auto* shape = DynamicTo<ShapeClipPathOperation>(style.ClipPath())) {
-    return DynamicTo<StyleShape>(shape->GetBasicShape());
+  auto* shape = DynamicTo<ShapeClipPathOperation>(style.ClipPath());
+  if (!shape) {
+    return nullptr;
+  }
+  if (IsA<StylePath>(shape->GetBasicShape()) ||
+      IsA<StyleShape>(shape->GetBasicShape())) {
+    return shape->GetBasicShape();
   }
   return nullptr;
 }
@@ -419,17 +521,17 @@
     : public CSSInterpolationType::CSSConversionChecker {
  public:
   InheritedShapeChecker(const CSSProperty& property,
-                        scoped_refptr<const StyleShape> style_shape)
-      : property_(property), style_shape_(std::move(style_shape)) {}
+                        scoped_refptr<const BasicShape> shape)
+      : property_(property), shape_(std::move(shape)) {}
 
  private:
   bool IsValid(const StyleResolverState& state,
                const InterpolationValue& underlying) const final {
-    return GetShape(property_, *state.ParentStyle()) == style_shape_.get();
+    return GetShapeOrPath(property_, *state.ParentStyle()) == shape_.get();
   }
 
   const CSSProperty& property_;
-  const scoped_refptr<const StyleShape> style_shape_;
+  const scoped_refptr<const BasicShape> shape_;
 };
 
 }  // namespace
@@ -465,19 +567,16 @@
     UnderlyingValueOwner& underlying_value_owner,
     double underlying_fraction,
     const InterpolationValue& value,
-    double) const {
+    double interpolation_fraction) const {
   const auto& value1 = To<ShapeNonInterpolableValue>(
       *underlying_value_owner.Value().non_interpolable_value);
   const auto& value2 =
       To<ShapeNonInterpolableValue>(*value.non_interpolable_value);
 
-  DCHECK(ParamsMatch(value1.GetParams(), value2.GetParams()));
-  // TODO(crbug.com/384781868) arcs with different size/sweep should default to
-  // large/cw.
-  underlying_value_owner.MutableValue().non_interpolable_value =
-      value.non_interpolable_value.get();
+  DCHECK(value1.GetParams() == value2.GetParams());
   underlying_value_owner.MutableValue().interpolable_value->ScaleAndAdd(
       underlying_fraction, *value.interpolable_value);
+  underlying_value_owner.MutableValue().non_interpolable_value = &value1;
 }
 
 InterpolationValue CSSShapeInterpolationType::MaybeConvertNeutral(
@@ -529,8 +628,11 @@
       case SVGPathSegType::kPathSegArcAbs:
       case SVGPathSegType::kPathSegArcRel: {
         WriteLength(2);
-        values.push_back(*MakeGarbageCollected<InterpolableNumber>(0));
+        values.push_back(*MakeGarbageCollected<InterpolableNumber>(
+            0, CSSPrimitiveValue::UnitType::kDegrees));
         WriteLength(2);
+        values.push_back(*MakeGarbageCollected<InterpolableNumber>(0));
+        values.push_back(*MakeGarbageCollected<InterpolableNumber>(0));
         break;
       }
       case SVGPathSegType::kPathSegUnknown:
@@ -557,23 +659,31 @@
     return nullptr;
   }
 
-  auto* shape = GetShape(CssProperty(), *state.ParentStyle());
+  auto* shape = GetShapeOrPath(CssProperty(), *state.ParentStyle());
+  if (!shape) {
+    return nullptr;
+  }
   conversion_checkers.push_back(
       MakeGarbageCollected<InheritedShapeChecker>(CssProperty(), shape));
-  return ConvertShape(shape, CssProperty(),
-                      state.ParentStyle()->EffectiveZoom());
+  return ConvertShapeOrPath(shape, CssProperty(),
+                            state.ParentStyle()->EffectiveZoom());
 }
 
 InterpolationValue CSSShapeInterpolationType::MaybeConvertValue(
     const CSSValue& value,
     const StyleResolverState*,
     ConversionCheckers&) const {
-  const cssvalue::CSSShapeValue* shape_value = nullptr;
+  const CSSValue* first_value = &value;
   if (const auto* list = DynamicTo<CSSValueList>(value)) {
-    shape_value = DynamicTo<cssvalue::CSSShapeValue>(list->First());
-  } else {
-    shape_value = DynamicTo<cssvalue::CSSShapeValue>(value);
+    first_value = &list->First();
   }
+
+  if (const auto* path = DynamicTo<cssvalue::CSSPathValue>(first_value)) {
+    return ConvertPath(path->GetStylePath(), CssProperty());
+  }
+
+  const auto* shape_value = DynamicTo<cssvalue::CSSShapeValue>(first_value);
+
   if (!shape_value) {
     return nullptr;
   }
@@ -666,8 +776,12 @@
         interpolable_segments.push_back(
             MakeGarbageCollected<InterpolableNumber>(arc.Angle()));
         WritePair(arc.Radius());
-        params.arc_large = arc.Size() == CSSValueID::kLarge;
-        params.arc_sweep = arc.Sweep() == CSSValueID::kCw;
+        interpolable_segments.push_back(
+            MakeGarbageCollected<InterpolableNumber>(
+                arc.Size() == CSSValueID::kLarge ? 1.f : 0.f));
+        interpolable_segments.push_back(
+            MakeGarbageCollected<InterpolableNumber>(
+                arc.Sweep() == CSSValueID::kCw ? 1.f : 0.f));
         break;
       }
       case SVGPathSegType::kPathSegUnknown:
@@ -686,8 +800,8 @@
 InterpolationValue
 CSSShapeInterpolationType::MaybeConvertStandardPropertyUnderlyingValue(
     const ComputedStyle& style) const {
-  return ConvertShape(GetShape(CssProperty(), style), CssProperty(),
-                      style.EffectiveZoom());
+  return ConvertShapeOrPath(GetShapeOrPath(CssProperty(), style), CssProperty(),
+                            style.EffectiveZoom());
 }
 
 PairwiseInterpolationValue CSSShapeInterpolationType::MaybeMergeSingles(
@@ -698,7 +812,7 @@
   auto& end_params = To<ShapeNonInterpolableValue>(*end.non_interpolable_value);
 
   if (start_params.GetWindRule() != end_params.GetWindRule() ||
-      !ParamsMatch(start_params.GetParams(), end_params.GetParams())) {
+      start_params.GetParams() != end_params.GetParams()) {
     return nullptr;
   }
 
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 f788d4e..960134b 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
@@ -270,6 +270,7 @@
 
 CSSValue* ConsumeDescriptor(StyleRule::RuleType rule_type,
                             AtRuleDescriptorID id,
+                            const AtomicString& variable_name,
                             CSSParserTokenStream& stream,
                             const CSSParserContext& context) {
   using Parser = AtRuleDescriptorParser;
@@ -520,9 +521,7 @@
     AtRuleDescriptorID id,
     CSSParserTokenStream& stream,
     const CSSParserContext& context) {
-  // TODO(crbug.com/325504770): Handle local variables.
-
-  if (id != AtRuleDescriptorID::Result) {
+  if (id != AtRuleDescriptorID::Result && id != AtRuleDescriptorID::Variable) {
     return nullptr;
   }
 
@@ -543,10 +542,12 @@
 bool AtRuleDescriptorParser::ParseDescriptorValue(
     StyleRule::RuleType rule_type,
     AtRuleDescriptorID id,
+    const AtomicString& variable_name,
     CSSParserTokenStream& stream,
     const CSSParserContext& context,
     HeapVector<CSSPropertyValue, 64>& parsed_descriptors) {
-  CSSValue* result = ConsumeDescriptor(rule_type, id, stream, context);
+  CSSValue* result =
+      ConsumeDescriptor(rule_type, id, variable_name, stream, context);
 
   if (!result) {
     return false;
@@ -555,8 +556,10 @@
   // TODO(crbug.com/752745): Refactor CSSParserImpl to avoid using
   // the CSSPropertyID.
   CSSPropertyID equivalent_property_id = AtRuleDescriptorIDAsCSSPropertyID(id);
-  parsed_descriptors.push_back(
-      CSSPropertyValue(CSSPropertyName(equivalent_property_id), *result));
+  CSSPropertyName name = equivalent_property_id == CSSPropertyID::kVariable
+                             ? CSSPropertyName(variable_name)
+                             : CSSPropertyName(equivalent_property_id);
+  parsed_descriptors.push_back(CSSPropertyValue(name, *result));
   context.Count(context.Mode(), equivalent_property_id);
   return true;
 }
diff --git a/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.h b/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.h
index 0e7645e..c82b6ae 100644
--- a/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.h
+++ b/third_party/blink/renderer/core/css/parser/at_rule_descriptor_parser.h
@@ -22,6 +22,7 @@
  public:
   static bool ParseDescriptorValue(StyleRule::RuleType,
                                    AtRuleDescriptorID,
+                                   const AtomicString& variable_name,
                                    CSSParserTokenStream&,
                                    const CSSParserContext&,
                                    HeapVector<CSSPropertyValue, 64>&);
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 70c6a24..39a0eef 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
@@ -2245,6 +2245,7 @@
     std::optional<CSSSyntaxDefinition> type =
         CSSSyntaxDefinition::Consume(stream);
     if (type.has_value() && guard.Release()) {
+      stream.ConsumeWhitespace();
       return type;
     }
   }
@@ -2264,7 +2265,7 @@
       stream.Peek()
           .Value()
           .ToAtomicString();  // Includes the opening parenthesis.
-  std::optional<Vector<StyleRuleFunction::Parameter>> parameters;
+  std::optional<HeapVector<StyleRuleFunction::Parameter>> parameters;
   {
     CSSParserTokenStream::BlockGuard guard(stream);
     stream.ConsumeWhitespace();
@@ -2373,11 +2374,11 @@
 }
 
 // Parse the parameters of a CSS function: Zero or more comma-separated
-// instances of [<name> <colon> <type>]. Returns the empty value
-// on parse error.
-std::optional<Vector<StyleRuleFunction::Parameter>>
+// instances of [ <name> <type>? [ : <default-value> ]? ].
+// Returns the empty value on parse error.
+std::optional<HeapVector<StyleRuleFunction::Parameter>>
 CSSParserImpl::ConsumeFunctionParameters(CSSParserTokenStream& stream) {
-  Vector<StyleRuleFunction::Parameter> parameters;
+  HeapVector<StyleRuleFunction::Parameter> parameters;
   bool first_parameter = true;
   for (;;) {
     stream.ConsumeWhitespace();
@@ -2398,8 +2399,24 @@
     CSSSyntaxDefinition type = ConsumeFunctionType(stream).value_or(
         CSSSyntaxDefinition::CreateUniversal());
 
-    parameters.push_back(
-        StyleRuleFunction::Parameter{parameter_name, std::move(type)});
+    CSSVariableData* default_value = nullptr;
+    if (stream.Peek().GetType() == kColonToken) {
+      stream.ConsumeIncludingWhitespace();
+
+      // Note that this is a comma-containing production [1], and therefore
+      // the value may not contain commas until we support the {} wrapper
+      // defined by the spec.
+      // [1] https://drafts.csswg.org/css-values-5/#component-function-commas
+      bool important_ignored;
+      default_value = CSSVariableParser::ConsumeUnparsedDeclaration(
+          stream, /*allow_important_annotation=*/false,
+          /*is_animation_tainted=*/false,
+          /*must_contain_variable_reference=*/false, /*restricted_value=*/false,
+          /*comma_ends_declaration=*/true, important_ignored, *context_);
+    }
+
+    parameters.push_back(StyleRuleFunction::Parameter{
+        parameter_name, std::move(type), default_value});
     if (stream.Peek().GetType() == kRightParenthesisToken) {
       // No more arguments.
       break;
@@ -2873,8 +2890,13 @@
   if (id) {
     if (parsing_descriptor) {
       const AtRuleDescriptorID atrule_id = static_cast<AtRuleDescriptorID>(id);
+      const AtomicString& variable_name =
+          (atrule_id == AtRuleDescriptorID::Variable
+               ? lhs.Value().ToAtomicString()
+               : g_null_atom);
       AtRuleDescriptorParser::ParseDescriptorValue(
-          rule_type, atrule_id, stream, *context_, parsed_properties_);
+          rule_type, atrule_id, variable_name, stream, *context_,
+          parsed_properties_);
     } else {
       const CSSPropertyID unresolved_property = static_cast<CSSPropertyID>(id);
       if (unresolved_property == CSSPropertyID::kVariable) {
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 20fc8c7..f861227 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
@@ -318,8 +318,8 @@
   StyleRulePositionTry* ConsumePositionTryRule(CSSParserTokenStream&);
 
   StyleRuleFunction* ConsumeFunctionRule(CSSParserTokenStream& stream);
-  std::optional<Vector<StyleRuleFunction::Parameter>> ConsumeFunctionParameters(
-      CSSParserTokenStream& stream);
+  std::optional<HeapVector<StyleRuleFunction::Parameter>>
+  ConsumeFunctionParameters(CSSParserTokenStream& stream);
   StyleRuleMixin* ConsumeMixinRule(CSSParserTokenStream& stream);
   StyleRuleApplyMixin* ConsumeApplyMixinRule(CSSParserTokenStream& stream);
 
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 7556122..f668d67 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
@@ -1156,6 +1156,7 @@
 
   String sheet_text = R"CSS(
     @function --foo() returns <color> {
+      --local: green;
       result: red;
     }
   )CSS";
@@ -1177,7 +1178,13 @@
   ASSERT_TRUE(nested_declarations);
 
   const CSSPropertyValueSet& properties = nested_declarations->Properties();
-  ASSERT_EQ(1u, properties.PropertyCount());
+  ASSERT_EQ(2u, properties.PropertyCount());
+
+  const auto* local = DynamicTo<CSSUnparsedDeclarationValue>(
+      properties.GetPropertyCSSValue(AtomicString("--local")));
+  ASSERT_TRUE(local);
+
+  EXPECT_EQ("green", local->VariableDataValue()->OriginalText());
 
   const auto* result = DynamicTo<CSSUnparsedDeclarationValue>(
       properties.GetPropertyCSSValue(CSSPropertyID::kResult));
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
index 5d7002a..30b33cb 100644
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
@@ -324,6 +324,9 @@
     return false;
   }
   AtRuleDescriptorID descriptor_id = stream.Peek().ParseAsAtRuleDescriptorID();
+  AtomicString variable_name = (descriptor_id == AtRuleDescriptorID::Variable
+                                    ? stream.Peek().Value().ToAtomicString()
+                                    : g_null_atom);
   if (descriptor_id == AtRuleDescriptorID::Invalid) {
     return false;
   }
@@ -338,7 +341,7 @@
   // The descriptor value.
   HeapVector<CSSPropertyValue, 64> parsed_descriptors;
   bool ok = AtRuleDescriptorParser::ParseDescriptorValue(
-      rule_type, descriptor_id, stream, *parser_.GetContext(),
+      rule_type, descriptor_id, variable_name, stream, *parser_.GetContext(),
       parsed_descriptors);
 
   return ok && guard.Release();
diff --git a/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc b/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
index 3c7b1d3..0efcd6dd6 100644
--- a/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
+++ b/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
@@ -6653,9 +6653,7 @@
   // A path data string that does not conform to the to the grammar
   // and parsing rules of SVG 1.1, or that does conform but defines
   // an empty path, is invalid and causes the entire path() to be invalid.
-  if (!byte_stream || !args.AtEnd() ||
-      (RuntimeEnabledFeatures::ClipPathRejectEmptyPathsEnabled() &&
-       byte_stream->IsEmpty())) {
+  if (!byte_stream || !args.AtEnd() || byte_stream->IsEmpty()) {
     return nullptr;
   }
 
diff --git a/third_party/blink/renderer/core/css/resolver/font_style_resolver.cc b/third_party/blink/renderer/core/css/resolver/font_style_resolver.cc
index 7df68566..c852a3f 100644
--- a/third_party/blink/renderer/core/css/resolver/font_style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/font_style_resolver.cc
@@ -75,6 +75,7 @@
   // CSSPropertyID::kFontWeight
   if (property_set.HasProperty(CSSPropertyID::kFontWeight)) {
     builder.SetWeight(StyleBuilderConverterBase::ConvertFontWeight(
+        conversion_data,
         *property_set.GetPropertyCSSValue(CSSPropertyID::kFontWeight),
         FontBuilder::InitialWeight()));
   }
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 c96fc99..b6f0076 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
@@ -1003,11 +1003,15 @@
 }
 
 FontSelectionValue StyleBuilderConverterBase::ConvertFontWeight(
+    const CSSLengthResolver& length_resolver,
     const CSSValue& value,
     FontSelectionValue parent_weight) {
   if (const auto* primitive_value = DynamicTo<CSSPrimitiveValue>(value)) {
     if (primitive_value->IsNumber()) {
-      return ClampTo<FontSelectionValue>(primitive_value->GetFloatValue());
+      // clamp to [1, 1000] range as per
+      // https://drafts.csswg.org/css-fonts/#font-weight-prop.
+      return ClampTo<FontSelectionValue>(std::clamp(
+          primitive_value->ComputeNumber(length_resolver), 1., 1000.));
     }
   }
 
@@ -1036,7 +1040,8 @@
     StyleResolverState& state,
     const CSSValue& value) {
   return StyleBuilderConverterBase::ConvertFontWeight(
-      value, state.ParentStyle()->GetFontDescription().Weight());
+      state.CssToLengthConversionData(), value,
+      state.ParentStyle()->GetFontDescription().Weight());
 }
 
 FontDescription::FontVariantCaps
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 97dc547..30d9c6e 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
@@ -95,7 +95,8 @@
                                                const CSSValue&);
   static FontSelectionValue ConvertFontStyle(const CSSLengthResolver&,
                                              const CSSValue&);
-  static FontSelectionValue ConvertFontWeight(const CSSValue&,
+  static FontSelectionValue ConvertFontWeight(const CSSLengthResolver&,
+                                              const CSSValue&,
                                               FontSelectionValue);
   static FontDescription::FontVariantCaps ConvertFontVariantCaps(
       const CSSValue&);
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 620e011..f30ceec0 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
@@ -184,6 +184,16 @@
   }
 }
 
+const CSSValue* FindOrNull(
+    const HeapHashMap<String, Member<const CSSValue>>& map,
+    const String& key) {
+  auto it = map.find(key);
+  if (it == map.end()) {
+    return nullptr;
+  }
+  return it->value.Get();
+}
+
 }  // namespace
 
 MatchResult& StyleCascade::MutableMatchResult() {
@@ -1407,20 +1417,33 @@
   //
   // https://drafts.csswg.org/css-mixins-1/#locally-substitute-a-var
   if (function_context) {
-    // TODO(crbug.com/325504770): Support local variables.
-    const auto it = function_context->arguments.find(var_name);
-    if (it != function_context->arguments.end()) {
-      // Note that there's nothing to actually resolve within `arg_value`;
-      // substitution functions were already eliminated at the call-site
-      // by ResolveFunctionInto. We're still using ResolveTokensInto, since
-      // it's the most convenient way to "paste" `arg_value` into `out`.
+    // TODO(crbug.com/325504770): Handle cycles.
+
+    // Locals shadow arguments, which shadow custom properties
+    // from the element.
+    const CSSValue* sub_value = FindOrNull(function_context->locals, var_name);
+    if (!sub_value) {
+      sub_value = FindOrNull(function_context->arguments, var_name);
+    }
+    if (sub_value) {
+      // Note that for arguments, there's nothing to actually resolve within
+      // `sub_value`; substitution functions were already eliminated at the
+      // call-site by ResolveFunctionInto. We're still using ResolveTokensInto,
+      // since it's the most convenient way to "paste" `sub_value` into `out`.
       //
-      // TODO(crbug.com/325504770): Avoid tokenization and the call to
-      // ResolveTokensInto.
-      String arg_value = it->value->CssText();
-      CSSParserTokenStream arg_value_stream(arg_value);
-      return ResolveTokensInto(arg_value_stream, resolver, context,
-                               /* function_context */ nullptr,
+      // TODO(crbug.com/325504770): Avoid tokenization/ResolveTokensInto
+      // for arguments.
+      //
+      // For locals, we do need to resolve var() (etc) here, but we should
+      // probably find a way to not repeat work for multiple references to
+      // the same substitution. E.g. for --c:var(--a);--b:var(--a)--a:<stuff>,
+      // we should resolve <stuff> only once.
+      //
+      // TODO(crbug.com/325504770): Cache local resolves, as described above.
+      String sub_value_str = sub_value->CssText();
+      CSSParserTokenStream sub_value_stream(sub_value_str);
+      return ResolveTokensInto(sub_value_stream, resolver, context,
+                               function_context,
                                /* stop_type */ kEOFToken, out);
     }
   }
@@ -1516,24 +1539,36 @@
   for (const StyleRuleFunction::Parameter& parameter :
        function->GetParameters()) {
     stream.ConsumeWhitespace();
-    if (!first_parameter) {
-      if (stream.Peek().GetType() != kCommaToken) {
+
+    StringView argument_string;
+
+    if (first_parameter || stream.Peek().GetType() == kCommaToken) {
+      first_parameter = false;
+      if (stream.Peek().GetType() == kCommaToken) {
+        stream.ConsumeIncludingWhitespace();
+      }
+      wtf_size_t value_start_offset = stream.LookAheadOffset();
+      stream.SkipUntilPeekedTypeIs<kCommaToken>();
+      wtf_size_t value_end_offset = stream.LookAheadOffset();
+      argument_string = stream.StringRangeAt(
+          value_start_offset, value_end_offset - value_start_offset);
+      // Explicitly empty values, e.g. --foo(1,,3), are not allowed.
+      if (argument_string.empty()) {
         return false;
       }
-      stream.ConsumeIncludingWhitespace();
+    } else if (parameter.default_value) {
+      argument_string = parameter.default_value->OriginalText();
+    } else {
+      // Argument was missing, with no default.
+      return false;
     }
-    first_parameter = false;
 
-    wtf_size_t value_start_offset = stream.LookAheadOffset();
-    stream.SkipUntilPeekedTypeIs<kCommaToken, kRightParenthesisToken>();
-    wtf_size_t value_end_offset = stream.LookAheadOffset();
-    StringView argument_string = stream.StringRangeAt(
-        value_start_offset, value_end_offset - value_start_offset);
+    DCHECK(!argument_string.empty());
 
     // We need to resolve the argument in the context of this function,
     // so that we can do type coercion on the resolved value before the call.
-    // In particular, we want any arg() within the argument to be resolved
-    // in our context; e.g., --foo(arg(--a)) should be our a, not foo's a
+    // In particular, we want any var() within the argument to be resolved
+    // in our context; e.g., --foo(var(--a)) should be our a, not foo's a
     // (if that even exists).
     //
     // Note that if this expression comes from directly a function call,
@@ -1550,10 +1585,15 @@
     function_arguments.insert(parameter.name, argument_value);
   }
 
+  if (!stream.AtEnd()) {
+    // This could mean that we have more arguments than we have parameters,
+    // which isn't allowed.
+    return false;
+  }
+
   // For now, we only support @function rules that contain a single
   // CSSNestedDeclarations rule with a single 'result' descriptor.
   //
-  // TODO(crbug.com/325504770): Support locals.
   // TODO(crbug.com/325504770): Support conditional rules.
   HeapVector<Member<StyleRuleBase>>& child_rules = function->ChildRules();
   if (child_rules.size() != 1u) {
@@ -1564,24 +1604,36 @@
   if (!nested_declartions) {
     return false;
   }
-  const CSSPropertyValueSet& properties = nested_declartions->Properties();
-  if (properties.PropertyCount() != 1u) {
-    return false;
+  const CSSPropertyValueSet& propety_value_set =
+      nested_declartions->Properties();
+
+  // Collect local variables. Any substitution functions found within relevant
+  // locals will be substituted during the call to ResolveFunctionExpression
+  // for the 'result' descriptor; they are not substituted here.
+  HeapHashMap<String, Member<const CSSValue>> locals;
+  for (const CSSPropertyValue& property_value :
+       propety_value_set.Properties()) {
+    if (property_value.PropertyID() == CSSPropertyID::kVariable) {
+      const auto& unresolved_local =
+          To<CSSUnparsedDeclarationValue>(property_value.Value());
+      locals.insert(property_value.CustomPropertyName(), &unresolved_local);
+    }
   }
+
   const auto* unresolved_result = DynamicTo<CSSUnparsedDeclarationValue>(
-      properties.GetPropertyCSSValue(CSSPropertyID::kResult));
+      propety_value_set.GetPropertyCSSValue(CSSPropertyID::kResult));
   if (!unresolved_result) {
     return false;
   }
 
-  FunctionContext local_function_context{function_arguments};
+  FunctionContext local_function_context{function_arguments, locals};
   const CSSValue* ret_value = ResolveFunctionExpression(
       unresolved_result->VariableDataValue()->OriginalText(),
       function->GetReturnType(), resolver, context, &local_function_context);
   if (ret_value == nullptr) {
     return false;
   }
-  // Urggg
+  // TODO(crbug.com/325504770): Urggg
   String ret_string = ret_value->CssText();
   CSSParserTokenStream ret_value_stream(ret_string);
   return ResolveTokensInto(ret_value_stream, resolver, context,
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade.h b/third_party/blink/renderer/core/css/resolver/style_cascade.h
index ba4dfa3..aa64bce 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade.h
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade.h
@@ -383,15 +383,41 @@
 
   // Certain parts of CSS function evaluation may need some local context
   // supplied by the caller. Given the current scoping strategy, the only
-  // relevant context is the arguments given to the function in current
-  // scope. (If we are not currently evaluating a function, this will be
-  // empty.) If we get to the point of supporting more dynamic scope,
-  // there may be a call stack or similar here, and possibly also locals.
+  // relevant context is the arguments given to the function in current scope,
+  // as well as locals within that function. (If we are not currently
+  // evaluating a function, this will be nullptr.) If we get to the point of
+  // supporting more dynamic scope, there may be a call stack or similar here.
+  //
+  // Arguments and Locals
+  // ====================
+  //
+  // Generally, when a var() is encountered, it must be substituted by some
+  // value that does not itself contain any substitution functions (e.g. another
+  // var()). For a var() that is evaluated in the context of a function, we try
+  // the following things, in order:
+  //
+  //  1. If there is a matching local variable, resolve any substitution
+  //     functions in its value, and substitute the result.
+  //  2. Otherwise, if there is a matching argument, substitute its value.
+  //     Note that argument values (stored within FunctionContext) never
+  //     contain substitution functions.
+  //  3. Otherwise, if there is a matching custom property, substitute its
+  //     computed value.
+  //  4. Otherwise, if there is a fallback, resolve any substitution functions
+  //     in the fallback value, and substitute that result.
+  //  5. Otherwise, it's invalid at computed-value time.
   struct FunctionContext {
     STACK_ALLOCATED();
 
    public:
+    // Note that `arguments` only contains resolved values, meaning that
+    // they never contain any substitution functions, such as var().
+    // This is because arguments are evaluated at the call site.
     HeapHashMap<String, Member<const CSSValue>> arguments;
+    // Locals, however, are stored here unresolved; they *may* contain
+    // substitution functions, such as var(). This is because locals,
+    // unlike arguments, can refer to other locals using var().
+    HeapHashMap<String, Member<const CSSValue>> locals;
   };
 
   // The Resolve*Into functions either resolve dependencies, append to the
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc b/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
index 22ac563..00ae3be 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
@@ -4469,6 +4469,90 @@
   EXPECT_EQ("20px", cascade.ComputedValue("left"));
 }
 
+TEST_F(StyleCascadeTest, CSSFunctionParameterDefaults) {
+  AppendSheet(R"HTML(
+     @function --foo(
+        --a <length>,
+        --b <length> : 10px,
+        --c <length> : 100px
+      ) returns <length> {
+       result: calc(var(--a) + var(--b) + var(--c));
+     }
+    )HTML");
+
+  TestCascade cascade(GetDocument());
+
+  cascade.Add("left", "--foo(1px, 2px, 3px)");
+  cascade.Add("right", "--foo(1px, 2px)");
+  cascade.Add("top", "--foo(1px)");
+  cascade.Add("--x", "--foo()");                    // Too few args.
+  cascade.Add("--y", "--foo(1px, 2px, 3px, 4px)");  // Too many args.
+  cascade.Add("--z", "--foo(1px,,3px)");            // Empty arg.
+  cascade.Add("--w", "--foo(1px, ,3px)");           // Empty arg.
+  cascade.Add("--v", "--foo(1px,)");                // Empty arg (trailing).
+  cascade.Apply();
+
+  EXPECT_EQ("6px", cascade.ComputedValue("left"));
+  EXPECT_EQ("103px", cascade.ComputedValue("right"));
+  EXPECT_EQ("111px", cascade.ComputedValue("top"));
+  EXPECT_EQ(nullptr, cascade.ComputedValue("--x"));
+  EXPECT_EQ(nullptr, cascade.ComputedValue("--y"));
+  EXPECT_EQ(nullptr, cascade.ComputedValue("--z"));
+  EXPECT_EQ(nullptr, cascade.ComputedValue("--w"));
+  EXPECT_EQ(nullptr, cascade.ComputedValue("--v"));
+}
+
+TEST_F(StyleCascadeTest, CSSFunctionLocals) {
+  AppendSheet(R"HTML(
+     @function --foo(--a <length>) returns <length> {
+       --b: 7px;
+       --c: var(--b);
+       result: calc(var(--a) + var(--c));
+     }
+    )HTML");
+
+  TestCascade cascade(GetDocument());
+
+  cascade.Add("left", "--foo(10px)");
+  cascade.Apply();
+
+  EXPECT_EQ("17px", cascade.ComputedValue("left"));
+}
+
+TEST_F(StyleCascadeTest, CSSFunctionLocalShadowingArgument) {
+  AppendSheet(R"HTML(
+     @function --foo(--a <length>) returns <length> {
+       --a: 42px;
+       result: var(--a);
+     }
+    )HTML");
+
+  TestCascade cascade(GetDocument());
+
+  cascade.Add("left", "--foo(10px)");
+  cascade.Apply();
+
+  EXPECT_EQ("42px", cascade.ComputedValue("left"));
+}
+
+TEST_F(StyleCascadeTest, CSSFunctionLocalShadowingCustomProperty) {
+  AppendSheet(R"HTML(
+     @function --foo() returns <length> {
+       --a: 42px;
+       --b: var(--a);
+       result: calc(var(--a) + var(--b));
+     }
+    )HTML");
+
+  TestCascade cascade(GetDocument());
+
+  cascade.Add("--a", "10px");
+  cascade.Add("left", "--foo()");
+  cascade.Apply();
+
+  EXPECT_EQ("84px", cascade.ComputedValue("left"));
+}
+
 TEST_F(StyleCascadeTest, CSSFunctionCallingOtherFunction) {
   AppendSheet(R"HTML(
      @function --foo(--a <length>) returns <length> {
diff --git a/third_party/blink/renderer/core/css/scroll_state_query_snapshot.cc b/third_party/blink/renderer/core/css/scroll_state_query_snapshot.cc
index 60e723c3..a8de785 100644
--- a/third_party/blink/renderer/core/css/scroll_state_query_snapshot.cc
+++ b/third_party/blink/renderer/core/css/scroll_state_query_snapshot.cc
@@ -8,6 +8,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
+#include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/paint/object_paint_properties.h"
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 
@@ -41,6 +42,9 @@
         stuck_vertical = ContainerStuckPhysical::kBottom;
       }
     }
+    if (layout_object->IsDocumentElement()) {
+      layout_object = layout_object->View();
+    }
     if (PaintLayerScrollableArea* scrollable_area =
             layout_object->GetScrollableArea()) {
       ScrollOffset max_offset = scrollable_area->MaximumScrollOffset();
diff --git a/third_party/blink/renderer/core/css/style_rule.cc b/third_party/blink/renderer/core/css/style_rule.cc
index 4723bcc..5cd2fa1 100644
--- a/third_party/blink/renderer/core/css/style_rule.cc
+++ b/third_party/blink/renderer/core/css/style_rule.cc
@@ -976,9 +976,13 @@
     HeapVector<Member<StyleRuleBase>> rules)
     : StyleRuleGroup(kStartingStyle, std::move(rules)) {}
 
+void StyleRuleFunction::Parameter::Trace(blink::Visitor* visitor) const {
+  visitor->Trace(default_value);
+}
+
 StyleRuleFunction::StyleRuleFunction(
     AtomicString name,
-    Vector<StyleRuleFunction::Parameter> parameters,
+    HeapVector<StyleRuleFunction::Parameter> parameters,
     HeapVector<Member<StyleRuleBase>> child_rules,
     CSSSyntaxDefinition return_type)
     : StyleRuleGroup(kFunction, std::move(child_rules)),
@@ -988,6 +992,7 @@
 
 void StyleRuleFunction::TraceAfterDispatch(blink::Visitor* visitor) const {
   StyleRuleGroup::TraceAfterDispatch(visitor);
+  visitor->Trace(parameters_);
 }
 
 StyleRuleMixin::StyleRuleMixin(AtomicString name, StyleRule* fake_parent_rule)
diff --git a/third_party/blink/renderer/core/css/style_rule.h b/third_party/blink/renderer/core/css/style_rule.h
index 6aea2022..c011678 100644
--- a/third_party/blink/renderer/core/css/style_rule.h
+++ b/third_party/blink/renderer/core/css/style_rule.h
@@ -621,8 +621,14 @@
 class CORE_EXPORT StyleRuleFunction : public StyleRuleGroup {
  public:
   struct Parameter {
+    DISALLOW_NEW();
+
+   public:
+    void Trace(blink::Visitor*) const;
+
     String name;
     CSSSyntaxDefinition type;
+    Member<CSSVariableData> default_value;
   };
 
   // The body of the function is represented by `child_rules`.
@@ -647,20 +653,20 @@
   //
   // TODO(crbug.com/325504770): Support parsing/evaluation of conditionals.
   StyleRuleFunction(AtomicString name,
-                    Vector<Parameter> parameters,
+                    HeapVector<Parameter> parameters,
                     HeapVector<Member<StyleRuleBase>> child_rules,
                     CSSSyntaxDefinition return_type);
   StyleRuleFunction(const StyleRuleFunction&) = delete;
 
   const AtomicString& GetName() const { return name_; }
-  const Vector<Parameter>& GetParameters() const { return parameters_; }
+  const HeapVector<Parameter>& GetParameters() const { return parameters_; }
   const CSSSyntaxDefinition& GetReturnType() const { return return_type_; }
 
   void TraceAfterDispatch(blink::Visitor*) const;
 
  private:
   AtomicString name_;
-  Vector<Parameter> parameters_;
+  HeapVector<Parameter> parameters_;
   CSSSyntaxDefinition return_type_;
 };
 
@@ -818,4 +824,7 @@
 
 }  // namespace blink
 
+WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(
+    blink::StyleRuleFunction::Parameter)
+
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RULE_H_
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
index 33bca8b..31e04452 100644
--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
@@ -23,8 +23,8 @@
 
 namespace {
 
-inline base::HistogramBase::Sample ToSample(int64_t value) {
-  return base::saturated_cast<base::HistogramBase::Sample>(value);
+inline base::HistogramBase::Sample32 ToSample(int64_t value) {
+  return base::saturated_cast<base::HistogramBase::Sample32>(value);
 }
 
 inline int64_t ApplyBucket(int64_t value) {
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
index 29d56fa5..96fca073 100644
--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
@@ -918,8 +918,8 @@
   Compositor().BeginFrame();
   histogram_tester.ExpectTotalCount("Blink.VisualUpdateDelay.UpdateTime.PreFCP",
                                     1);
-  base::HistogramBase::Sample delay =
-      base::saturated_cast<base::HistogramBase::Sample>(
+  base::HistogramBase::Sample32 delay =
+      base::saturated_cast<base::HistogramBase::Sample32>(
           (Compositor().LastFrameTime() -
            local_root_aggregator().LastFrameRequestTimeForTest())
               .InMicroseconds());
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc
index 0f1842e7..46dcf048 100644
--- a/third_party/blink/renderer/core/frame/web_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -4269,7 +4269,7 @@
   ASSERT_EQ(initial_scale, web_view_helper.GetWebView()->PageScaleFactor());
 
   // Focus the third textbox that has a touch-action: pan-x ancestor, this
-  // should cause an autozoom since it's seperated from the node with the
+  // should cause an autozoom since it's separated from the node with the
   // touch-action by an overflow:scroll element.
   web_view_helper.GetWebView()->AdvanceFocus(false);
   web_view_helper.GetWebView()
@@ -4419,7 +4419,7 @@
   const gfx::Rect edit_box_with_text(200, 200, 250, 20);
 
   web_view_helper.GetWebView()->AdvanceFocus(false);
-  // Set the caret to the begining of the input box.
+  // Set the caret to the beginning of the input box.
   web_view_helper.GetWebView()
       ->MainFrameImpl()
       ->GetDocument()
@@ -4446,7 +4446,7 @@
       element_bounds, caret_bounds, kAutoZoomToLegibleScale, scale, scroll,
       need_animation);
   EXPECT_TRUE(need_animation);
-  // Edit box and caret should be left alinged
+  // Edit box and caret should be left aligned
   int h_scroll = edit_box_with_text.x();
   EXPECT_NEAR(h_scroll, scroll.x(), 1);
   int v_scroll = edit_box_with_text.y() -
@@ -5012,7 +5012,7 @@
   ASSERT_EQ(isolated_world_id, notification->world_id);
   ASSERT_EQ(web_view_helper.GetWebView()->MainFrame(), notification->frame);
 
-  // We don't have an API to enumarate isolated worlds for a frame, but we can
+  // We don't have an API to enumerate isolated worlds for a frame, but we can
   // at least assert that the context we got is *not* the main world's context.
   ASSERT_NE(web_view_helper.LocalMainFrame()->MainWorldScriptContext(),
             v8::Local<v8::Context>::New(isolate, notification->context));
@@ -5705,7 +5705,7 @@
       kFindIdentifier, search_text, *options, false, &active_now));
   EXPECT_TRUE(active_now);
 
-  // Insert new text, which contains occurence of |searchText|.
+  // Insert new text, which contains occurrence of |searchText|.
   frame->ExecuteScript(WebScriptSource(
       "var newTextNode = document.createTextNode('bar5 foo5');"
       "var textArea = document.getElementsByTagName('textarea')[0];"
@@ -5774,7 +5774,7 @@
   EXPECT_EQ(2, find_in_page_client.ActiveIndex());
   EXPECT_FALSE(frame->EnsureTextFinder().ScopingInProgress());
 
-  // Insert new text, which contains occurence of |searchText|.
+  // Insert new text, which contains occurrence of |searchText|.
   frame->ExecuteScript(
       WebScriptSource("var textDiv = document.getElementById('new_text');"
                       "textDiv.innerHTML = 'foo abc';"));
@@ -8220,7 +8220,7 @@
   EXPECT_FALSE(iframe->GetDocumentLoader()->ReplacesCurrentHistoryItem());
 }
 
-// Test verifies that layout will change a layer's scrollable attibutes
+// Test verifies that layout will change a layer's scrollable attributes
 TEST_F(WebFrameTest, overflowHiddenRewrite) {
   RegisterMockedHttpURLLoad("non-scrollable.html");
   frame_test_helpers::WebViewHelper web_view_helper;
@@ -12831,7 +12831,7 @@
   // focused editable element. However, the scroll and zoom is a smoothly
   // animated "PageScaleAnimation" that's performed in CC only on the viewport
   // layers. There are some situations in which the widget resize causes the
-  // focued input to be hidden by clipping parents that aren't the main frame.
+  // focused input to be hidden by clipping parents that aren't the main frame.
   // In these cases, there's no way to scroll just the viewport to make the
   // input visible, we need to also scroll those clip/scroller elements  This
   // test ensures we do so. https://crbug.com/270018.
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.cc b/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.cc
index 2c3a9091..f370c9c8 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.cc
+++ b/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.cc
@@ -35,4 +35,8 @@
   return PredefinedColorSpaceToSkColorSpace(color_space_);
 }
 
+gfx::ColorSpace Canvas2DColorParams::GetGfxColorSpace() const {
+  return PredefinedColorSpaceToGfxColorSpace(color_space_);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.h b/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.h
index 6475996a..2b63391 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_2d_color_params.h
@@ -29,11 +29,9 @@
     return has_alpha_ ? kPremul_SkAlphaType : kOpaque_SkAlphaType;
   }
 
-  SkColorInfo GetSkColorInfo() const {
-    return SkColorInfo(GetSkColorType(), GetAlphaType(), GetSkColorSpace());
-  }
   SkColorType GetSkColorType() const;
   sk_sp<SkColorSpace> GetSkColorSpace() const;
+  gfx::ColorSpace GetGfxColorSpace() const;
 
  private:
   PredefinedColorSpace color_space_ = PredefinedColorSpace::kSRGB;
diff --git a/third_party/blink/renderer/core/layout/block_node.cc b/third_party/blink/renderer/core/layout/block_node.cc
index 2f8b8bc..afeb6828 100644
--- a/third_party/blink/renderer/core/layout/block_node.cc
+++ b/third_party/blink/renderer/core/layout/block_node.cc
@@ -651,7 +651,7 @@
   const LayoutResult* previous_result = box_->GetSingleCachedLayoutResult();
   DCHECK(previous_result);
 
-  // We might be be trying to perform simplfied layout on a fragment in the
+  // We might be trying to perform simplified layout on a fragment in the
   // "measure" cache slot, abort if this is the case.
   if (&previous_result->GetPhysicalFragment() != &previous_fragment) {
     return nullptr;
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
index d6b1c6eb7..f09ac51c 100644
--- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
+++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
@@ -39,7 +39,6 @@
 #include "third_party/blink/renderer/platform/graphics/canvas_resource_provider.h"
 #include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h"
 #include "third_party/blink/renderer/platform/graphics/image.h"
-#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image_transform.h"
 #include "third_party/blink/renderer/platform/graphics/unaccelerated_static_bitmap_image.h"
@@ -555,11 +554,10 @@
 
   const SkAlphaType alpha_type = GetRenderingContextAlphaType();
   const SkColorType sk_color_type = GetRenderingContextSkColorType();
-  const sk_sp<SkColorSpace> sk_color_space = GetRenderingContextSkColorSpace();
+  const gfx::ColorSpace color_space = GetRenderingContextColorSpace();
   if (use_shared_image) {
     provider = CanvasResourceProvider::CreateSharedImageProvider(
-        Size(), sk_color_type, alpha_type,
-        SkColorSpaceToGfxColorSpace(sk_color_space),
+        Size(), sk_color_type, alpha_type, color_space,
         CanvasResourceProvider::ShouldInitialize::kCallClear,
         SharedGpuContext::ContextProviderWrapper(),
         can_use_gpu ? RasterMode::kGPU : RasterMode::kCPU,
@@ -569,8 +567,7 @@
     base::WeakPtr<CanvasResourceDispatcher> dispatcher_weakptr =
         GetOrCreateResourceDispatcher()->GetWeakPtr();
     provider = CanvasResourceProvider::CreateSharedBitmapProvider(
-        Size(), sk_color_type, alpha_type,
-        SkColorSpaceToGfxColorSpace(sk_color_space),
+        Size(), sk_color_type, alpha_type, color_space,
         CanvasResourceProvider::ShouldInitialize::kCallClear,
         SharedGpuContext::SharedImageInterfaceProvider(), this);
   }
@@ -583,8 +580,7 @@
     // another type of resource prover above is a sign that the graphics
     // pipeline is in a bad state (e.g. gpu process crashed, out of memory)
     provider = CanvasResourceProvider::CreateBitmapProvider(
-        Size(), sk_color_type, alpha_type,
-        SkColorSpaceToGfxColorSpace(sk_color_space),
+        Size(), sk_color_type, alpha_type, color_space,
         CanvasResourceProvider::ShouldInitialize::kCallClear, this);
   }
 
diff --git a/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc b/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
index 74ae063..1fd0a65 100644
--- a/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
@@ -302,10 +302,10 @@
           "Renderer4.MainThreadGestureScrollReason2"),
       testing::ElementsAre(
           base::Bucket(
-              base::HistogramBase::Sample(
+              base::HistogramBase::Sample32(
                   cc::MainThreadScrollingReason::kScrollingOnMainForAnyReason),
               1),
-          base::Bucket(base::HistogramBase::Sample(
+          base::Bucket(base::HistogramBase::Sample32(
                            cc::MainThreadScrollingReason::BucketIndexForTesting(
                                expected_reason)),
                        1)));
diff --git a/third_party/blink/renderer/core/paint/text_combine_painter.cc b/third_party/blink/renderer/core/paint/text_combine_painter.cc
index 11810d0..4c8fc92 100644
--- a/third_party/blink/renderer/core/paint/text_combine_painter.cc
+++ b/third_party/blink/renderer/core/paint/text_combine_painter.cc
@@ -9,6 +9,7 @@
 #include "third_party/blink/renderer/core/paint/paint_info.h"
 #include "third_party/blink/renderer/core/paint/text_decoration_painter.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
+#include "third_party/blink/renderer/platform/fonts/shaping/caching_word_shaper.h"
 #include "third_party/blink/renderer/platform/fonts/text_fragment_paint_info.h"
 #include "third_party/blink/renderer/platform/fonts/text_run_paint_info.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
@@ -149,6 +150,23 @@
       gfx::PointF(text_origin()) +
       gfx::Vector2dF(0, font_ascent + emphasis_mark_offset());
   const TextRunPaintInfo text_run_paint_info(placeholder_text_run);
+
+  if (RuntimeEnabledFeatures::TextCombineEmphasisNGEnabled()) {
+    // TODO(crbug.com/389726691): Remove the CachingWordShaper usage.
+    CachingWordShaper word_shaper(emphasis_mark_font);
+    ShapeResultBuffer buffer;
+    word_shaper.FillResultBuffer(text_run_paint_info, &buffer);
+    if (buffer.ShapeResultSize() == 0) {
+      return;
+    }
+    graphics_context().DrawEmphasisMarks(
+        emphasis_mark_font,
+        TextFragmentPaintInfo{placeholder_text_run.ToStringView(), 0, 1,
+                              buffer.ViewAt(0)},
+        emphasis_mark(), emphasis_mark_text_origin,
+        PaintAutoDarkMode(style_, DarkModeFilter::ElementRole::kForeground));
+    return;
+  }
   graphics_context().DrawEmphasisMarks(
       emphasis_mark_font, text_run_paint_info, emphasis_mark(),
       emphasis_mark_text_origin,
diff --git a/third_party/blink/renderer/modules/ai/ai.idl b/third_party/blink/renderer/modules/ai/ai.idl
index c79d570..7899def1 100644
--- a/third_party/blink/renderer/modules/ai/ai.idl
+++ b/third_party/blink/renderer/modules/ai/ai.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 enum AICapabilityAvailability {
   "readily",
diff --git a/third_party/blink/renderer/modules/ai/ai_create_monitor.idl b/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
index b69e00b3..9677924 100644
--- a/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
+++ b/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 [
   Exposed=(Window,Worker),
diff --git a/third_party/blink/renderer/modules/ai/ai_language_model.idl b/third_party/blink/renderer/modules/ai/ai_language_model.idl
index adf152e3..c213735 100644
--- a/third_party/blink/renderer/modules/ai/ai_language_model.idl
+++ b/third_party/blink/renderer/modules/ai/ai_language_model.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 dictionary AILanguageModelCloneOptions {
   AbortSignal signal;
diff --git a/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl b/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl
index ff1f261b..01bd68c 100644
--- a/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl
+++ b/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 dictionary AILanguageModelInitialPrompt {
   required AILanguageModelInitialPromptRole role;
diff --git a/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl b/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
index bfc90bf..878e04b 100644
--- a/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
+++ b/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 enum AILanguageModelInitialPromptRole { "system", "user", "assistant" };
 enum AILanguageModelPromptRole { "user", "assistant" };
diff --git a/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl b/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
index 1a4ec48..af9a582c 100644
--- a/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
+++ b/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://github.com/explainers-by-googlers/prompt-api
+// https://github.com/webmachinelearning/prompt-api
 
 [
     Exposed=(Window,Worker),
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h
index 75330345..95f5870 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h
@@ -199,10 +199,10 @@
     return color_params_.GetSkColorType();
   }
   gfx::ColorSpace GetColorSpace() const override {
-    return SkColorSpaceToGfxColorSpace(GetSkColorSpace());
+    return color_params_.GetGfxColorSpace();
   }
   sk_sp<SkColorSpace> GetSkColorSpace() const override {
-    return color_params_.GetSkColorSpace();
+    return GetColorSpace().ToSkColorSpace();
   }
   scoped_refptr<StaticBitmapImage> GetImage(FlushReason) final;
 
diff --git a/third_party/blink/renderer/modules/credentialmanagement/digital_identity_credential_test.cc b/third_party/blink/renderer/modules/credentialmanagement/digital_identity_credential_test.cc
index 0fdbdbfa..cd0144e 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/digital_identity_credential_test.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/digital_identity_credential_test.cc
@@ -78,8 +78,9 @@
 CredentialRequestOptions* CreateValidGetOptions() {
   IdentityRequestProvider* identity_provider =
       IdentityRequestProvider::Create();
+  identity_provider->setProtocol("openid4vp");
   identity_provider->setRequest(
-      MakeGarbageCollected<V8UnionObjectOrString>(String()));
+      MakeGarbageCollected<V8UnionObjectOrString>(String("request")));
   HeapVector<Member<IdentityRequestProvider>> identity_providers;
   identity_providers.push_back(identity_provider);
   return CreateGetOptionsWithProviders(identity_providers);
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc b/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc
index 0af78b07..5b7ee61 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc
@@ -551,7 +551,7 @@
   // Records 1KB to 1GB.
   UMA_HISTOGRAM_COUNTS_1M(
       "WebCore.IndexedDB.PutValueSize2",
-      base::saturated_cast<base::HistogramBase::Sample>(
+      base::saturated_cast<base::HistogramBase::Sample32>(
           value_wrapper.DataLengthBeforeWrapInBytes() / 1024));
 
   IDBRequest* request = IDBRequest::Create(
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
index 0003c66..79fdc5f 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -888,13 +888,13 @@
 
   base::UmaHistogramCustomCounts(
       "ServiceWorker.CacheStorageInstalledScript.ScriptSize",
-      base::saturated_cast<base::Histogram::Sample>(script_size), 1000, 5000000,
+      base::saturated_cast<base::Histogram::Sample32>(script_size), 1000, 5000000,
       50);
 
   if (script_metadata_size) {
     base::UmaHistogramCustomCounts(
         "ServiceWorker.CacheStorageInstalledScript.CachedMetadataSize",
-        base::saturated_cast<base::Histogram::Sample>(script_metadata_size),
+        base::saturated_cast<base::Histogram::Sample32>(script_metadata_size),
         1000, 50000000, 50);
   }
 }
@@ -1348,18 +1348,18 @@
   // stored in Cache storage during installation.
   base::UmaHistogramCounts1000(
       "ServiceWorker.CacheStorageInstalledScript.Count",
-      base::saturated_cast<base::Histogram::Sample>(
+      base::saturated_cast<base::Histogram::Sample32>(
           cache_storage_installed_script_count_));
   base::UmaHistogramCustomCounts(
       "ServiceWorker.CacheStorageInstalledScript.ScriptTotalSize",
-      base::saturated_cast<base::Histogram::Sample>(
+      base::saturated_cast<base::Histogram::Sample32>(
           cache_storage_installed_script_total_size_),
       1000, 50000000, 50);
 
   if (cache_storage_installed_script_metadata_total_size_) {
     base::UmaHistogramCustomCounts(
         "ServiceWorker.CacheStorageInstalledScript.CachedMetadataTotalSize",
-        base::saturated_cast<base::Histogram::Sample>(
+        base::saturated_cast<base::Histogram::Sample32>(
             cache_storage_installed_script_metadata_total_size_),
         1000, 50000000, 50);
   }
diff --git a/third_party/blink/renderer/modules/storage/cached_storage_area.cc b/third_party/blink/renderer/modules/storage/cached_storage_area.cc
index a45f523..8a6ad73 100644
--- a/third_party/blink/renderer/modules/storage/cached_storage_area.cc
+++ b/third_party/blink/renderer/modules/storage/cached_storage_area.cc
@@ -667,7 +667,7 @@
   // always above what we see in practice, since histograms can't change.
   UMA_HISTOGRAM_CUSTOM_COUNTS(
       "LocalStorage.MojoSizeInKB",
-      base::saturated_cast<base::Histogram::Sample>(local_storage_size_kb), 1,
+      base::saturated_cast<base::Histogram::Sample32>(local_storage_size_kb), 1,
       6 * 1024, 50);
   if (local_storage_size_kb < 100) {
     UMA_HISTOGRAM_TIMES("LocalStorage.MojoTimeToPrimeForUnder100KB",
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
index 9f0a20c4d..22904d8 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
@@ -120,14 +120,14 @@
 }
 
 gfx::ColorSpace GPUCanvasContext::GetColorSpace() const {
-  return SkColorSpaceToGfxColorSpace(GetSkColorSpace());
+  if (!swap_buffers_) {
+    return gfx::ColorSpace::CreateSRGB();
+  }
+  return PredefinedColorSpaceToGfxColorSpace(color_space_);
 }
 
 sk_sp<SkColorSpace> GPUCanvasContext::GetSkColorSpace() const {
-  if (!swap_buffers_) {
-    return SkColorSpace::MakeSRGB();
-  }
-  return PredefinedColorSpaceToSkColorSpace(color_space_);
+  return GetColorSpace().ToSkColorSpace();
 }
 
 void GPUCanvasContext::Stop() {
diff --git a/third_party/blink/renderer/platform/fonts/font.cc b/third_party/blink/renderer/platform/fonts/font.cc
index 796d38b..cf63749 100644
--- a/third_party/blink/renderer/platform/fonts/font.cc
+++ b/third_party/blink/renderer/platform/fonts/font.cc
@@ -301,6 +301,7 @@
   return true;
 }
 
+// This function is not used if TextCombineEmphasisNG flag is enabled.
 void Font::DrawEmphasisMarks(cc::PaintCanvas* canvas,
                              const TextRunPaintInfo& run_info,
                              const AtomicString& mark,
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc
index f747213..c47f380 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc
@@ -533,6 +533,7 @@
   }
 }
 
+// This function is not used if TextCombineEmphasisNG flag is enabled.
 ShapeResultBloberizer::FillTextEmphasisGlyphs::FillTextEmphasisGlyphs(
     const FontDescription& font_description,
     const TextRunPaintInfo& run_info,
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.cc
index cc763f24..4b7dbe7 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.cc
@@ -7,6 +7,7 @@
 #include "third_party/blink/renderer/platform/fonts/character_range.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h"
+#include "third_party/blink/renderer/platform/fonts/shaping/shape_result_view.h"
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/text_run.h"
@@ -176,6 +177,10 @@
   return font_data;
 }
 
+ShapeResultView* ShapeResultBuffer::ViewAt(wtf_size_t index) const {
+  return ShapeResultView::Create(results_[index]);
+}
+
 GlyphData ShapeResultBuffer::EmphasisMarkGlyphData(
     const FontDescription& font_description) const {
   for (const auto& result : results_) {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
index f28b104..6487c5c 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
@@ -46,6 +46,9 @@
 
   HeapVector<ShapeResult::RunFontData> GetRunFontData() const;
 
+  wtf_size_t ShapeResultSize() const { return results_.size(); }
+  ShapeResultView* ViewAt(wtf_size_t index) const;
+
   GlyphData EmphasisMarkGlyphData(const FontDescription&) const;
 
  private:
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.cc b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.cc
index 7b4b085..a77ae3c 100644
--- a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.cc
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.cc
@@ -108,7 +108,7 @@
   }
 
   density_histogram->CountMany(
-      base::saturated_cast<base::Histogram::Sample>(density_centi_bpp),
+      base::saturated_cast<base::Histogram::Sample32>(density_centi_bpp),
       image_size_kib);
 }
 
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index e79a0e2..df6a6ff 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -539,6 +539,7 @@
   });
 }
 
+// This function is not used if TextCombineEmphasisNG flag is enabled.
 void GraphicsContext::DrawEmphasisMarks(const Font& font,
                                         const TextRunPaintInfo& text_info,
                                         const AtomicString& mark,
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
index 190d0a9..8fb9295 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
@@ -155,7 +155,7 @@
   //
   // Checks the counts for all 3 metrics, but only checks the value for
   // "Memory.ParkableImage.Write.Size", since the others can't be easily tested.
-  void ExpectWriteStatistics(base::HistogramBase::Sample sample,
+  void ExpectWriteStatistics(base::HistogramBase::Sample32 sample,
                              base::HistogramBase::Count expected_count) {
     histogram_tester_.ExpectTotalCount("Memory.ParkableImage.Write.Latency",
                                        expected_count);
@@ -170,7 +170,7 @@
   //
   // Checks the counts for both metrics, but not their values, since they can't
   // be easily tested.
-  void ExpectReadStatistics(base::HistogramBase::Sample sample,
+  void ExpectReadStatistics(base::HistogramBase::Sample32 sample,
                             base::HistogramBase::Count expected_count) {
     histogram_tester_.ExpectTotalCount("Memory.ParkableImage.Read.Latency",
                                        expected_count);
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
index f95b9f4..9ec2b420 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
@@ -876,7 +876,7 @@
 
 void TestAvifBppHistogram(const char* image_name,
                           const char* histogram_name = nullptr,
-                          base::HistogramBase::Sample sample = 0) {
+                          base::HistogramBase::Sample32 sample = 0) {
   TestBppHistogram(CreateAVIFDecoder, "Avif", image_name, histogram_name,
                    sample);
 }
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
index eb969a4..df69ee65 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
@@ -878,7 +878,7 @@
 
 void TestAvifBppHistogram(const char* image_name,
                           const char* histogram_name = nullptr,
-                          base::HistogramBase::Sample sample = 0) {
+                          base::HistogramBase::Sample32 sample = 0) {
   TestBppHistogram(CreateAVIFDecoder, "Avif", image_name, histogram_name,
                    sample);
 }
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.h b/third_party/blink/renderer/platform/image-decoders/image_decoder.h
index 68aec0b..4f5a994 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder.h
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.h
@@ -708,7 +708,7 @@
     density_histogram = &density_14plus_mp_histogram;
   }
 
-  density_histogram->Count(base::saturated_cast<base::Histogram::Sample>(
+  density_histogram->Count(base::saturated_cast<base::Histogram::Sample32>(
       density_centi_bpp.ValueOrDie()));
 }
 
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
index 1b6fcca..332cb54 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
@@ -536,7 +536,7 @@
                       const char* image_type,
                       const char* image_name,
                       const char* histogram_name,
-                      base::HistogramBase::Sample sample) {
+                      base::HistogramBase::Sample32 sample) {
   base::HistogramTester histogram_tester;
   std::unique_ptr<ImageDecoder> decoder = create_decoder();
   decoder->SetData(ReadFileToSharedBuffer(image_name), true);
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h
index 9a831a5..40158fa 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h
@@ -127,7 +127,7 @@
                       const char* image_type,
                       const char* image_name,
                       const char* histogram_name,
-                      base::HistogramBase::Sample sample);
+                      base::HistogramBase::Sample32 sample);
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
index 4ac926e..02e7656 100644
--- a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
@@ -106,7 +106,7 @@
 
 void TestJpegBppHistogram(const char* image_name,
                           const char* histogram_name = nullptr,
-                          base::HistogramBase::Sample sample = 0) {
+                          base::HistogramBase::Sample32 sample = 0) {
   TestBppHistogram(CreateJPEGDecoder, "Jpeg", image_name, histogram_name,
                    sample);
 }
diff --git a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
index 7ed1e37..5c8cf69 100644
--- a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
@@ -64,7 +64,7 @@
 
 void TestWebPBppHistogram(const char* image_name,
                           const char* histogram_name = nullptr,
-                          base::HistogramBase::Sample sample = 0) {
+                          base::HistogramBase::Sample32 sample = 0) {
   TestBppHistogram(CreateWEBPDecoder, "WebP", image_name, histogram_name,
                    sample);
 }
diff --git a/third_party/blink/renderer/platform/instrumentation/histogram.cc b/third_party/blink/renderer/platform/instrumentation/histogram.cc
index 91d815f..592f957b 100644
--- a/third_party/blink/renderer/platform/instrumentation/histogram.cc
+++ b/third_party/blink/renderer/platform/instrumentation/histogram.cc
@@ -11,8 +11,8 @@
 namespace blink {
 
 CustomCountHistogram::CustomCountHistogram(const char* name,
-                                           base::HistogramBase::Sample min,
-                                           base::HistogramBase::Sample max,
+                                           base::HistogramBase::Sample32 min,
+                                           base::HistogramBase::Sample32 max,
                                            int32_t bucket_count) {
   histogram_ = base::Histogram::FactoryGet(
       name, min, max, bucket_count,
@@ -22,17 +22,17 @@
 CustomCountHistogram::CustomCountHistogram(base::HistogramBase* histogram)
     : histogram_(histogram) {}
 
-void CustomCountHistogram::Count(base::HistogramBase::Sample sample) {
+void CustomCountHistogram::Count(base::HistogramBase::Sample32 sample) {
   histogram_->Add(sample);
 }
 
-void CustomCountHistogram::CountMany(base::HistogramBase::Sample sample,
+void CustomCountHistogram::CountMany(base::HistogramBase::Sample32 sample,
                                      int count) {
   histogram_->AddCount(sample, count);
 }
 
 void CustomCountHistogram::CountMicroseconds(base::TimeDelta delta) {
-  Count(base::saturated_cast<base::HistogramBase::Sample>(
+  Count(base::saturated_cast<base::HistogramBase::Sample32>(
       delta.InMicroseconds()));
 }
 
diff --git a/third_party/blink/renderer/platform/instrumentation/histogram.h b/third_party/blink/renderer/platform/instrumentation/histogram.h
index a7c5bd7..b4b7c09 100644
--- a/third_party/blink/renderer/platform/instrumentation/histogram.h
+++ b/third_party/blink/renderer/platform/instrumentation/histogram.h
@@ -28,11 +28,11 @@
  public:
   // Min values should be >=1 as emitted 0s still go into the underflow bucket.
   CustomCountHistogram(const char* name,
-                       base::HistogramBase::Sample min,
-                       base::HistogramBase::Sample max,
+                       base::HistogramBase::Sample32 min,
+                       base::HistogramBase::Sample32 max,
                        int32_t bucket_count);
-  void Count(base::HistogramBase::Sample);
-  void CountMany(base::HistogramBase::Sample, int count);
+  void Count(base::HistogramBase::Sample32);
+  void CountMany(base::HistogramBase::Sample32, int count);
   void CountMicroseconds(base::TimeDelta);
 
  protected:
@@ -79,9 +79,9 @@
   static bool ShouldRecord() { return base::TimeTicks::IsHighResolution(); }
 };
 
-static constexpr base::HistogramBase::Sample kTimeBasedHistogramMinSample = 1;
-static constexpr base::HistogramBase::Sample kTimeBasedHistogramMaxSample =
-    static_cast<base::Histogram::Sample>(base::Seconds(10).InMicroseconds());
+static constexpr base::HistogramBase::Sample32 kTimeBasedHistogramMinSample = 1;
+static constexpr base::HistogramBase::Sample32 kTimeBasedHistogramMaxSample =
+    static_cast<base::Histogram::Sample32>(base::Seconds(10).InMicroseconds());
 static constexpr int32_t kTimeBasedHistogramBucketCount = 50;
 
 #define SCOPED_BLINK_UMA_HISTOGRAM_TIMER_IMPL(name, allow_cross_thread)  \
diff --git a/third_party/blink/renderer/platform/instrumentation/histogram_test.cc b/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
index b5a4c4b..d2b6fd7 100644
--- a/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
+++ b/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
@@ -13,8 +13,8 @@
 class TestCustomCountHistogram : public CustomCountHistogram {
  public:
   TestCustomCountHistogram(const char* name,
-                           base::HistogramBase::Sample min,
-                           base::HistogramBase::Sample max,
+                           base::HistogramBase::Sample32 min,
+                           base::HistogramBase::Sample32 max,
                            int32_t bucket_count)
       : CustomCountHistogram(name, min, max, bucket_count) {}
 
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 8b5e0f88..29ad20a7 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -833,10 +833,6 @@
       status: "stable",
     },
     {
-      name: "ClipPathRejectEmptyPaths",
-      status: "stable",
-    },
-    {
       // Avoid queuing a task to fire a selectionchange event when there is already a task scheduled
       // to do that for the target according to the new spec:
       // https://w3c.github.io/selection-api/#scheduling-selectionhange-event
@@ -4247,6 +4243,11 @@
       status: "stable",
     },
     {
+      // crbug.com/389726691
+      name: "TextCombineEmphasisNG",
+      status: "stable",
+    },
+    {
       name: "TextDetector",
       status: "experimental",
     },
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
index 69e0414..43f2780d 100644
--- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -3047,7 +3047,7 @@
     touch_end_.touches_length = 1;
   }
 
-  base::HistogramBase::Sample GetBucketSample(uint32_t reason) {
+  base::HistogramBase::Sample32 GetBucketSample(uint32_t reason) {
     uint32_t bucket = 0;
     while (reason >>= 1)
       bucket++;
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 3a9c8f2..6c28588c 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -547,12 +547,6 @@
 crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-003.html [ Failure ]
 crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-004.html [ Failure ]
 
-# CSS clip-path: shape()/path() interpolation
-crbug.com/389707045 virtual/composite-clip-path-animation/external/wpt/css/css-masking/clip-path/animations/clip-path-shape-interpolation-003.html [ Failure ]
-crbug.com/389707045 virtual/composite-clip-path-animation/external/wpt/css/css-masking/clip-path/animations/clip-path-shape-interpolation-004.html [ Failure ]
-crbug.com/389707045 virtual/main-thread-clip-path-animation/external/wpt/css/css-masking/clip-path/animations/clip-path-shape-interpolation-003.html [ Failure ]
-crbug.com/389707045 virtual/main-thread-clip-path-animation/external/wpt/css/css-masking/clip-path/animations/clip-path-shape-interpolation-004.html [ Failure ]
-
 # CSS shape() interpolation windows-specific issues
 crbug.com/384781868 [ Win ] external/wpt/css/css-masking/animations/clip-path-interpolation-shape.html [ Failure ]
 crbug.com/384781868 [ Win ] external/wpt/css/css-masking/animations/clip-path-interpolation-shape-control-points.tentative.html [ Failure ]
@@ -2760,9 +2754,6 @@
 crbug.com/387626415 external/wpt/css/css-backgrounds/background-clip/clip-border-area-on-body-not-propagated-to-root.html [ Failure ]
 crbug.com/387378128 external/wpt/css/css-text/line-breaking/segment-break-transformation-punctuation-001.html [ Failure ]
 crbug.com/387626415 virtual/threaded/external/wpt/css/css-backgrounds/background-clip/clip-border-area-on-body-not-propagated-to-root.html [ Failure ]
-crbug.com/386860174 [ Win ] external/wpt/css/css-fonts/parsing/font-weight-computed.html [ Crash ]
-crbug.com/386860174 [ Mac14 ] external/wpt/css/css-fonts/parsing/font-weight-computed.html [ Crash ]
-crbug.com/386860174 [ Linux ] external/wpt/css/css-fonts/parsing/font-weight-computed.html [ Crash ]
 crbug.com/386713385 external/wpt/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change.html [ Failure ]
 crbug.com/385918146 [ Win11 ] external/wpt/webrtc-encoded-transform/tentative/RTCEncodedVideoFrame-clone.https.html [ Timeout ]
 crbug.com/386713385 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change.html [ Failure ]
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 1daa129..e836bfb 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -764,18 +764,6 @@
     "args": ["--enable-blink-features=MeasureMemory,ForceEagerMeasureMemory"],
     "expires": "Jul 1, 2025"
   },
-  {
-    "prefix": "css-sign-related-functions-disabled",
-    "owners": ["seokho@chromium.org", "sakhapov@chromium.org"],
-    "platforms": ["Linux", "Mac", "Win"],
-    "bases": [
-      "external/wpt/css/css-values/signs-abs-computed.html",
-      "external/wpt/css/css-values/signs-abs-serialize.html",
-      "external/wpt/css/css-values/signs-abs-invalid.html"
-    ],
-    "args": ["--disable-blink-features=CSSSignRelatedFunctions"],
-    "expires": "Jan 1, 2025"
-  },
   "The overlay-scrollbar virtual suite is testing a feature that is enabled",
   "or not based on platform and settings, so it should not expire.",
   {
@@ -891,7 +879,7 @@
     "owners": ["drott@chromium.org"],
     "platforms": ["Linux", "Mac", "Win", "Fuchsia"],
     "bases": [],
-    "args": ["--enable-font-antialiasing"],
+    "args": ["--enable-font-antialiasing",  "--text-contrast=0.5", "--text-gamma=0.0"],
     "expires": "Jan 1, 2026"
   },
   " Temporary test suite running virtual/text-antialias using FreeType, until   ",
diff --git a/third_party/blink/web_tests/external/wpt/css/css-conditional/container-queries/scroll-state/scroll-state-scrollable-root.html b/third_party/blink/web_tests/external/wpt/css/css-conditional/container-queries/scroll-state/scroll-state-scrollable-root.html
new file mode 100644
index 0000000..bc1c71c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-conditional/container-queries/scroll-state/scroll-state-scrollable-root.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<title>@container: scroll-state(scrollable) matching viewport for root element</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#scrollable">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/css-conditional/container-queries/support/cq-testcommon.js"></script>
+<script src="/css/css-transitions/support/helper.js"></script>
+<style>
+  :root {
+    container-type: scroll-state;
+  }
+  #target {
+    height: 5000px;
+    --top: no;
+    --bottom: no;
+    @container scroll-state(scrollable: top) {
+      --top: yes;
+    }
+    @container scroll-state(scrollable: bottom) {
+      --bottom: yes;
+    }
+  }
+</style>
+<div id="target"></div>
+<script>
+  setup(() => assert_implements_scroll_state_container_queries());
+
+  const root = document.documentElement;
+
+  promise_test(async t => {
+    await waitForAnimationFrames(2);
+    assert_equals(getComputedStyle(target).getPropertyValue("--top"), "no");
+    assert_equals(getComputedStyle(target).getPropertyValue("--bottom"), "yes");
+    assert_equals(root.scrollTop, 0);
+  }, "Check that scroll-state(scrollable) matches bottom before scroll");
+
+  promise_test(async t => {
+    root.scrollTop = 100;
+    await waitForAnimationFrames(2);
+    assert_equals(getComputedStyle(target).getPropertyValue("--top"), "yes");
+    assert_equals(getComputedStyle(target).getPropertyValue("--bottom"), "yes");
+  }, "Check that scroll-state(scrollable) matches both top and bottom in a middle position");
+
+  promise_test(async t => {
+    root.scrollTop = 5000;
+    await waitForAnimationFrames(2);
+    assert_equals(getComputedStyle(target).getPropertyValue("--top"), "yes");
+    assert_equals(getComputedStyle(target).getPropertyValue("--bottom"), "no");
+  }, "Check that scroll-state(scrollable) matches both top when scrolled to the end");
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font-weight-sign-function.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-weight-sign-function.html
new file mode 100644
index 0000000..d65284fb
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-weight-sign-function.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Fonts test: font-weight with CSS sign() function</title>
+<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-weight-prop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+:root {
+  font-size: 16px;
+}
+</style>
+<div id="target"></div>
+<script>
+  test_computed_value("font-weight", "calc(sign(1rem - 1px) * 10)", "10");
+  test_computed_value("font-weight", "calc(sign(1rem - 1px) * -10000)", "1");
+  test_computed_value("font-weight", "calc(sign(1rem - 1px) * 10000)", "1000");
+</script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-computed-expected.txt
deleted file mode 100644
index 1cc8299..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-computed-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-Found 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] Property font-weight value 'calc(0)'
-  assert_equals: expected "1" but got "0"
-[FAIL] Property font-weight value 'calc(-100)'
-  assert_equals: expected "1" but got "0"
-[FAIL] Property font-weight value 'calc(100 + (sign(20cqw - 10px) * 5))'
-  assert_equals: expected "95" but got "105"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-shorthand-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-shorthand-expected.txt
index 70323d3c7..cebd507 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-shorthand-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-shorthand-expected.txt
@@ -1,8 +1,4 @@
 This is a testharness.js-based test.
-[FAIL] Font shorthand: Font weight specified as calc(), value smaller than 1
-  assert_equals: Font shorthand expected weight: Font weight specified as calc(), value smaller than 1 expected "1" but got "0.25"
-[FAIL] Font shorthand: Font weight specified as calc(), value greater than 1000
-  assert_equals: Font shorthand expected weight: Font weight specified as calc(), value greater than 1000 expected "1000" but got "1000.5"
 [FAIL] Font shorthand: 'oblique' without slant angle
   assert_equals: Font shorthand expected style: 'oblique' without slant angle expected "oblique" but got "italic"
 [FAIL] Font shorthand: 'oblique' followed by valid small weight
@@ -15,7 +11,5 @@
   assert_equals: Font shorthand expected style: 'oblique' followed by a to-be-clamped calc() weight expected "oblique" but got "italic"
 [FAIL] Font shorthand: calc() weight folowed by 'oblique'
   assert_equals: Font shorthand expected style: calc() weight folowed by 'oblique' expected "oblique" but got "italic"
-[FAIL] Font shorthand: To-be-clamped calc() weight folowed by 'oblique' and slant angle
-  assert_equals: Font shorthand expected weight: To-be-clamped calc() weight folowed by 'oblique' and slant angle expected "1000" but got "1200"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-weight-parsing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-weight-parsing-expected.txt
deleted file mode 100644
index 8039860a..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-weight-parsing-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-[FAIL] Computed style: Negative simple calc value (to be clamped)
-  assert_equals: Negative simple calc value (to be clamped) expected "1" but got "0"
-[FAIL] Computed style: Out-of-range simple calc value (to be clamped)
-  assert_equals: Out-of-range simple calc value (to be clamped) expected "1000" but got "1001"
-[FAIL] Computed style: Valid calc expression with out-of-range value (to be clamped)
-  assert_equals: Valid calc expression with out-of-range value (to be clamped) expected "1000" but got "1101.5"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape-expected.txt
deleted file mode 100644
index 03fe0ea..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape-expected.txt
+++ /dev/null
@@ -1,292 +0,0 @@
-This is a testharness.js-based test.
-Found 144 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2% 2px, arc to 18% -12px of 7px 17px ccw small, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw large rotate - 42deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw rotate - 42deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw rotate 30deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8% 8px, arc to 12% -18px of 13px 23px ccw small, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw large rotate 102deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw rotate 102deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10% 10px, arc to 10% -20px of 15px 25px ccw small, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw large rotate 150deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw rotate 150deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2% 2px, arc to 18% -12px of 7px 17px ccw small, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw large rotate - 42deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw rotate - 42deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw rotate 30deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8% 8px, arc to 12% -18px of 13px 23px ccw small, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw large rotate 102deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw rotate 102deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10% 10px, arc to 10% -20px of 15px 25px ccw small, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw large rotate 150deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw rotate 150deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2% 2px, arc to 18% -12px of 7px 17px ccw small, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw large rotate - 42deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw rotate - 42deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw rotate 30deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8% 8px, arc to 12% -18px of 13px 23px ccw small, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw large rotate 102deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw rotate 102deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10% 10px, arc to 10% -20px of 15px 25px ccw small, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw large rotate 150deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw rotate 150deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2% 2px, arc to 18% -12px of 7px 17px ccw small, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw large rotate - 42deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 2 % 2px , arc to 18 % - 12px of 7px 17px , arc by 12 % - 2px of 33px cw rotate - 42deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw rotate 30deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8% 8px, arc to 12% -18px of 13px 23px ccw small, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw large rotate 102deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 8 % 8px , arc to 12 % - 18px of 13px 23px , arc by 18 % - 8px of 27px cw rotate 102deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10% 10px, arc to 10% -20px of 15px 25px ccw small, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw large rotate 150deg , arc to 25 % 20px of 10px 5px cw ) " but got "shape ( from 10 % 10px , arc to 10 % - 20px of 15px 25px , arc by 20 % - 10px of 25px cw rotate 150deg , arc to 25 % 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (-0.3) should be [shape(from 2px 2px, hline to -1px, vline to -2px, close)]
-  assert_equals: expected "shape ( from 2px 2px , hline to - 1px , vline to - 2px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0) should be [shape(from 5px 5px, hline to 5px, vline to -5px, close)]
-  assert_equals: expected "shape ( from 5px 5px , hline to 5px , vline to - 5px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0.5) should be [shape(from 10px 10px, hline to 15px, vline to -10px, close)]
-  assert_equals: expected "shape ( from 10px 10px , hline to 15px , vline to - 10px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1) should be [shape(from 15px 15px, hline to 25px, vline to -15px, close)]
-  assert_equals: expected "shape ( from 15px 15px , hline to 25px , vline to - 15px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1.5) should be [shape(from 20px 20px, hline to 35px, vline to -20px, close)]
-  assert_equals: expected "shape ( from 20px 20px , hline to 35px , vline to - 20px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (-0.3) should be [shape(from 2px 2px, hline to -1px, vline to -2px, close)]
-  assert_equals: expected "shape ( from 2px 2px , hline to - 1px , vline to - 2px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0) should be [shape(from 5px 5px, hline to 5px, vline to -5px, close)]
-  assert_equals: expected "shape ( from 5px 5px , hline to 5px , vline to - 5px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0.5) should be [shape(from 10px 10px, hline to 15px, vline to -10px, close)]
-  assert_equals: expected "shape ( from 10px 10px , hline to 15px , vline to - 10px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1) should be [shape(from 15px 15px, hline to 25px, vline to -15px, close)]
-  assert_equals: expected "shape ( from 15px 15px , hline to 25px , vline to - 15px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1.5) should be [shape(from 20px 20px, hline to 35px, vline to -20px, close)]
-  assert_equals: expected "shape ( from 20px 20px , hline to 35px , vline to - 20px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (-0.3) should be [shape(from 2px 2px, hline to -1px, vline to -2px, close)]
-  assert_equals: expected "shape ( from 2px 2px , hline to - 1px , vline to - 2px , close ) " but got "shape ( from 5px 5px , hline to 5px , vline to - 5px , close ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0.5) should be [shape(from 10px 10px, hline to 15px, vline to -10px, close)]
-  assert_equals: expected "shape ( from 10px 10px , hline to 15px , vline to - 10px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1) should be [shape(from 15px 15px, hline to 25px, vline to -15px, close)]
-  assert_equals: expected "shape ( from 15px 15px , hline to 25px , vline to - 15px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1.5) should be [shape(from 20px 20px, hline to 35px, vline to -20px, close)]
-  assert_equals: expected "shape ( from 20px 20px , hline to 35px , vline to - 20px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (-0.3) should be [shape(from 2px 2px, hline to -1px, vline to -2px, close)]
-  assert_equals: expected "shape ( from 2px 2px , hline to - 1px , vline to - 2px , close ) " but got "shape ( from 5px 5px , hline to 5px , vline to - 5px , close ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (0.5) should be [shape(from 10px 10px, hline to 15px, vline to -10px, close)]
-  assert_equals: expected "shape ( from 10px 10px , hline to 15px , vline to - 10px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1) should be [shape(from 15px 15px, hline to 25px, vline to -15px, close)]
-  assert_equals: expected "shape ( from 15px 15px , hline to 25px , vline to - 15px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5px 5px, hline to 5px, vline to -5px, close)] to [path("M 15 15 H 25 V -15 Z")] at (1.5) should be [shape(from 20px 20px, hline to 35px, vline to -20px, close)]
-  assert_equals: expected "shape ( from 20px 20px , hline to 35px , vline to - 20px , close ) " but got "path ( \\" M 15 15 H 25 V - 15 Z \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, curve to calc(13% - 6px) 13px with calc(0% - 3px) 86px, curve to calc(39% - 6px) 17px with calc(26% - 9px) 53px / calc(32.5% + 1.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , curve to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , curve to calc ( 39 % - 6px ) 17px with calc ( 26 % - 9px ) 53px / calc ( 32.5 % + 1.5px ) 61px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0) should be [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)]
-  assert_equals: expected "shape ( from 5 % 5px , curve to 10 % 10px with 0 % 80px , curve to 30 % 20px with 20 % 50px / 25 % 70px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, curve to calc(5% + 10px) 5px with calc(0% + 5px) 70px, curve to calc(15% + 10px) 25px with calc(10% + 15px) 45px / calc(12.5% - 2.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , curve to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , curve to calc ( 15 % + 10px ) 25px with calc ( 10 % + 15px ) 45px / calc ( 12.5 % - 2.5px ) 85px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, curve to calc(0% + 20px) 0px with calc(0% + 10px) 60px, curve to calc(0% + 20px) 30px with calc(0% + 30px) 40px / calc(0% - 5px) 100px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , curve to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , curve to calc ( 0 % + 20px ) 30px with calc ( 0 % + 30px ) 40px / calc ( 0 % - 5px ) 100px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, curve to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, curve to calc(-15% + 30px) 35px with calc(-10% + 45px) 35px / calc(-12.5% - 7.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , curve to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , curve to calc ( - 15 % + 30px ) 35px with calc ( - 10 % + 45px ) 35px / calc ( - 12.5 % - 7.5px ) 115px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, curve to calc(13% - 6px) 13px with calc(0% - 3px) 86px, curve to calc(39% - 6px) 17px with calc(26% - 9px) 53px / calc(32.5% + 1.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , curve to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , curve to calc ( 39 % - 6px ) 17px with calc ( 26 % - 9px ) 53px / calc ( 32.5 % + 1.5px ) 61px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0) should be [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)]
-  assert_equals: expected "shape ( from 5 % 5px , curve to 10 % 10px with 0 % 80px , curve to 30 % 20px with 20 % 50px / 25 % 70px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, curve to calc(5% + 10px) 5px with calc(0% + 5px) 70px, curve to calc(15% + 10px) 25px with calc(10% + 15px) 45px / calc(12.5% - 2.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , curve to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , curve to calc ( 15 % + 10px ) 25px with calc ( 10 % + 15px ) 45px / calc ( 12.5 % - 2.5px ) 85px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, curve to calc(0% + 20px) 0px with calc(0% + 10px) 60px, curve to calc(0% + 20px) 30px with calc(0% + 30px) 40px / calc(0% - 5px) 100px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , curve to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , curve to calc ( 0 % + 20px ) 30px with calc ( 0 % + 30px ) 40px / calc ( 0 % - 5px ) 100px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, curve to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, curve to calc(-15% + 30px) 35px with calc(-10% + 45px) 35px / calc(-12.5% - 7.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , curve to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , curve to calc ( - 15 % + 30px ) 35px with calc ( - 10 % + 45px ) 35px / calc ( - 12.5 % - 7.5px ) 115px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, curve to calc(13% - 6px) 13px with calc(0% - 3px) 86px, curve to calc(39% - 6px) 17px with calc(26% - 9px) 53px / calc(32.5% + 1.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , curve to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , curve to calc ( 39 % - 6px ) 17px with calc ( 26 % - 9px ) 53px / calc ( 32.5 % + 1.5px ) 61px ) " but got "shape ( from 5 % 5px , curve to 10 % 10px with 0 % 80px , curve to 30 % 20px with 20 % 50px / 25 % 70px ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, curve to calc(5% + 10px) 5px with calc(0% + 5px) 70px, curve to calc(15% + 10px) 25px with calc(10% + 15px) 45px / calc(12.5% - 2.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , curve to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , curve to calc ( 15 % + 10px ) 25px with calc ( 10 % + 15px ) 45px / calc ( 12.5 % - 2.5px ) 85px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, curve to calc(0% + 20px) 0px with calc(0% + 10px) 60px, curve to calc(0% + 20px) 30px with calc(0% + 30px) 40px / calc(0% - 5px) 100px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , curve to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , curve to calc ( 0 % + 20px ) 30px with calc ( 0 % + 30px ) 40px / calc ( 0 % - 5px ) 100px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, curve to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, curve to calc(-15% + 30px) 35px with calc(-10% + 45px) 35px / calc(-12.5% - 7.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , curve to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , curve to calc ( - 15 % + 30px ) 35px with calc ( - 10 % + 45px ) 35px / calc ( - 12.5 % - 7.5px ) 115px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, curve to calc(13% - 6px) 13px with calc(0% - 3px) 86px, curve to calc(39% - 6px) 17px with calc(26% - 9px) 53px / calc(32.5% + 1.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , curve to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , curve to calc ( 39 % - 6px ) 17px with calc ( 26 % - 9px ) 53px / calc ( 32.5 % + 1.5px ) 61px ) " but got "shape ( from 5 % 5px , curve to 10 % 10px with 0 % 80px , curve to 30 % 20px with 20 % 50px / 25 % 70px ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, curve to calc(5% + 10px) 5px with calc(0% + 5px) 70px, curve to calc(15% + 10px) 25px with calc(10% + 15px) 45px / calc(12.5% - 2.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , curve to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , curve to calc ( 15 % + 10px ) 25px with calc ( 10 % + 15px ) 45px / calc ( 12.5 % - 2.5px ) 85px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, curve to calc(0% + 20px) 0px with calc(0% + 10px) 60px, curve to calc(0% + 20px) 30px with calc(0% + 30px) 40px / calc(0% - 5px) 100px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , curve to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , curve to calc ( 0 % + 20px ) 30px with calc ( 0 % + 30px ) 40px / calc ( 0 % - 5px ) 100px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, curve to 10% 10px with 0% 80px, curve to 30% 20px with 20% 50px / 25% 70px)] to [path("M 15 15 Q 10 60 20 0 C 30 40 -5 100 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, curve to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, curve to calc(-15% + 30px) 35px with calc(-10% + 45px) 35px / calc(-12.5% - 7.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , curve to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , curve to calc ( - 15 % + 30px ) 35px with calc ( - 10 % + 45px ) 35px / calc ( - 12.5 % - 7.5px ) 115px ) " but got "path ( \\" M 15 15 Q 10 60 20 0 C 30 40 - 5 100 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (-0.3) should be [shape(from calc(-4.5% + 6.5px) 2px, curve by calc(-6% + 13px) 13px with -3% 86px, curve by calc(-6% + 39px) 17px with calc(-9% + 26px) 53px / calc(1.5% + 32.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( - 4.5 % + 6.5px ) 2px , curve by calc ( - 6 % + 13px ) 13px with - 3 % 86px , curve by calc ( - 6 % + 39px ) 17px with calc ( - 9 % + 26px ) 53px / calc ( 1.5 % + 32.5px ) 61px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0) should be [shape(from calc(0% + 5px) 5px, curve by calc(0% + 10px) 10px with 0% 80px, curve by calc(0% + 30px) 20px with calc(0% + 20px) 50px / calc(0% + 25px) 70px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 5px ) 5px , curve by calc ( 0 % + 10px ) 10px with 0 % 80px , curve by calc ( 0 % + 30px ) 20px with calc ( 0 % + 20px ) 50px / calc ( 0 % + 25px ) 70px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0.5) should be [shape(from calc(7.5% + 2.5px) 10px, curve by calc(10% + 5px) 5px with 5% 70px, curve by calc(10% + 15px) 25px with calc(15% + 10px) 45px / calc(-2.5% + 12.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 7.5 % + 2.5px ) 10px , curve by calc ( 10 % + 5px ) 5px with 5 % 70px , curve by calc ( 10 % + 15px ) 25px with calc ( 15 % + 10px ) 45px / calc ( - 2.5 % + 12.5px ) 85px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (1.5) should be [shape(from calc(22.5% - 2.5px) 20px, curve by calc(30% - 5px) -5px with 15% 50px, curve by calc(30% - 15px) 35px with calc(45% - 10px) 35px / calc(-7.5% - 12.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( 22.5 % - 2.5px ) 20px , curve by calc ( 30 % - 5px ) - 5px with 15 % 50px , curve by calc ( 30 % - 15px ) 35px with calc ( 45 % - 10px ) 35px / calc ( - 7.5 % - 12.5px ) 115px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (-0.3) should be [shape(from calc(-4.5% + 6.5px) 2px, curve by calc(-6% + 13px) 13px with -3% 86px, curve by calc(-6% + 39px) 17px with calc(-9% + 26px) 53px / calc(1.5% + 32.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( - 4.5 % + 6.5px ) 2px , curve by calc ( - 6 % + 13px ) 13px with - 3 % 86px , curve by calc ( - 6 % + 39px ) 17px with calc ( - 9 % + 26px ) 53px / calc ( 1.5 % + 32.5px ) 61px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0) should be [shape(from calc(0% + 5px) 5px, curve by calc(0% + 10px) 10px with 0% 80px, curve by calc(0% + 30px) 20px with calc(0% + 20px) 50px / calc(0% + 25px) 70px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 5px ) 5px , curve by calc ( 0 % + 10px ) 10px with 0 % 80px , curve by calc ( 0 % + 30px ) 20px with calc ( 0 % + 20px ) 50px / calc ( 0 % + 25px ) 70px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0.5) should be [shape(from calc(7.5% + 2.5px) 10px, curve by calc(10% + 5px) 5px with 5% 70px, curve by calc(10% + 15px) 25px with calc(15% + 10px) 45px / calc(-2.5% + 12.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 7.5 % + 2.5px ) 10px , curve by calc ( 10 % + 5px ) 5px with 5 % 70px , curve by calc ( 10 % + 15px ) 25px with calc ( 15 % + 10px ) 45px / calc ( - 2.5 % + 12.5px ) 85px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (1.5) should be [shape(from calc(22.5% - 2.5px) 20px, curve by calc(30% - 5px) -5px with 15% 50px, curve by calc(30% - 15px) 35px with calc(45% - 10px) 35px / calc(-7.5% - 12.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( 22.5 % - 2.5px ) 20px , curve by calc ( 30 % - 5px ) - 5px with 15 % 50px , curve by calc ( 30 % - 15px ) 35px with calc ( 45 % - 10px ) 35px / calc ( - 7.5 % - 12.5px ) 115px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (-0.3) should be [shape(from calc(-4.5% + 6.5px) 2px, curve by calc(-6% + 13px) 13px with -3% 86px, curve by calc(-6% + 39px) 17px with calc(-9% + 26px) 53px / calc(1.5% + 32.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( - 4.5 % + 6.5px ) 2px , curve by calc ( - 6 % + 13px ) 13px with - 3 % 86px , curve by calc ( - 6 % + 39px ) 17px with calc ( - 9 % + 26px ) 53px / calc ( 1.5 % + 32.5px ) 61px ) " but got "path ( \\" M 5 5 Q 5 85 15 15 C 35 65 40 85 45 35 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0) should be [shape(from calc(0% + 5px) 5px, curve by calc(0% + 10px) 10px with 0% 80px, curve by calc(0% + 30px) 20px with calc(0% + 20px) 50px / calc(0% + 25px) 70px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 5px ) 5px , curve by calc ( 0 % + 10px ) 10px with 0 % 80px , curve by calc ( 0 % + 30px ) 20px with calc ( 0 % + 20px ) 50px / calc ( 0 % + 25px ) 70px ) " but got "path ( \\" M 5 5 Q 5 85 15 15 C 35 65 40 85 45 35 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0.5) should be [shape(from calc(7.5% + 2.5px) 10px, curve by calc(10% + 5px) 5px with 5% 70px, curve by calc(10% + 15px) 25px with calc(15% + 10px) 45px / calc(-2.5% + 12.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 7.5 % + 2.5px ) 10px , curve by calc ( 10 % + 5px ) 5px with 5 % 70px , curve by calc ( 10 % + 15px ) 25px with calc ( 15 % + 10px ) 45px / calc ( - 2.5 % + 12.5px ) 85px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (1.5) should be [shape(from calc(22.5% - 2.5px) 20px, curve by calc(30% - 5px) -5px with 15% 50px, curve by calc(30% - 15px) 35px with calc(45% - 10px) 35px / calc(-7.5% - 12.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( 22.5 % - 2.5px ) 20px , curve by calc ( 30 % - 5px ) - 5px with 15 % 50px , curve by calc ( 30 % - 15px ) 35px with calc ( 45 % - 10px ) 35px / calc ( - 7.5 % - 12.5px ) 115px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (-0.3) should be [shape(from calc(-4.5% + 6.5px) 2px, curve by calc(-6% + 13px) 13px with -3% 86px, curve by calc(-6% + 39px) 17px with calc(-9% + 26px) 53px / calc(1.5% + 32.5px) 61px)]
-  assert_equals: expected "shape ( from calc ( - 4.5 % + 6.5px ) 2px , curve by calc ( - 6 % + 13px ) 13px with - 3 % 86px , curve by calc ( - 6 % + 39px ) 17px with calc ( - 9 % + 26px ) 53px / calc ( 1.5 % + 32.5px ) 61px ) " but got "path ( \\" M 5 5 Q 5 85 15 15 C 35 65 40 85 45 35 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0) should be [shape(from calc(0% + 5px) 5px, curve by calc(0% + 10px) 10px with 0% 80px, curve by calc(0% + 30px) 20px with calc(0% + 20px) 50px / calc(0% + 25px) 70px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 5px ) 5px , curve by calc ( 0 % + 10px ) 10px with 0 % 80px , curve by calc ( 0 % + 30px ) 20px with calc ( 0 % + 20px ) 50px / calc ( 0 % + 25px ) 70px ) " but got "path ( \\" M 5 5 Q 5 85 15 15 C 35 65 40 85 45 35 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (0.5) should be [shape(from calc(7.5% + 2.5px) 10px, curve by calc(10% + 5px) 5px with 5% 70px, curve by calc(10% + 15px) 25px with calc(15% + 10px) 45px / calc(-2.5% + 12.5px) 85px)]
-  assert_equals: expected "shape ( from calc ( 7.5 % + 2.5px ) 10px , curve by calc ( 10 % + 5px ) 5px with 5 % 70px , curve by calc ( 10 % + 15px ) 25px with calc ( 15 % + 10px ) 45px / calc ( - 2.5 % + 12.5px ) 85px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 q 0 80 10 10 c 20 50 25 70 30 20")] to [shape(from 15% 15px, curve by 20% 0px with 10% 60px, curve by 20% 30px with 30% 40px / -5% 100px)] at (1.5) should be [shape(from calc(22.5% - 2.5px) 20px, curve by calc(30% - 5px) -5px with 15% 50px, curve by calc(30% - 15px) 35px with calc(45% - 10px) 35px / calc(-7.5% - 12.5px) 115px)]
-  assert_equals: expected "shape ( from calc ( 22.5 % - 2.5px ) 20px , curve by calc ( 30 % - 5px ) - 5px with 15 % 50px , curve by calc ( 30 % - 15px ) 35px with calc ( 45 % - 10px ) 35px / calc ( - 7.5 % - 12.5px ) 115px ) " but got "shape ( from 15 % 15px , curve by 20 % 0px with 10 % 60px , curve by 20 % 30px with 30 % 40px / - 5 % 100px ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, smooth to calc(13% - 6px) 13px with calc(0% - 3px) 86px, smooth to calc(39% - 6px) 17px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , smooth to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , smooth to calc ( 39 % - 6px ) 17px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0) should be [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)]
-  assert_equals: expected "shape ( from 5 % 5px , smooth to 10 % 10px with 0 % 80px , smooth to 30 % 20px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, smooth to calc(5% + 10px) 5px with calc(0% + 5px) 70px, smooth to calc(15% + 10px) 25px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , smooth to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , smooth to calc ( 15 % + 10px ) 25px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, smooth to calc(0% + 20px) 0px with calc(0% + 10px) 60px, smooth to calc(0% + 20px) 30px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , smooth to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , smooth to calc ( 0 % + 20px ) 30px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, smooth to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, smooth to calc(-15% + 30px) 35px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , smooth to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , smooth to calc ( - 15 % + 30px ) 35px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, smooth to calc(13% - 6px) 13px with calc(0% - 3px) 86px, smooth to calc(39% - 6px) 17px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , smooth to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , smooth to calc ( 39 % - 6px ) 17px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0) should be [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)]
-  assert_equals: expected "shape ( from 5 % 5px , smooth to 10 % 10px with 0 % 80px , smooth to 30 % 20px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, smooth to calc(5% + 10px) 5px with calc(0% + 5px) 70px, smooth to calc(15% + 10px) 25px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , smooth to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , smooth to calc ( 15 % + 10px ) 25px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, smooth to calc(0% + 20px) 0px with calc(0% + 10px) 60px, smooth to calc(0% + 20px) 30px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , smooth to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , smooth to calc ( 0 % + 20px ) 30px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, smooth to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, smooth to calc(-15% + 30px) 35px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , smooth to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , smooth to calc ( - 15 % + 30px ) 35px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, smooth to calc(13% - 6px) 13px with calc(0% - 3px) 86px, smooth to calc(39% - 6px) 17px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , smooth to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , smooth to calc ( 39 % - 6px ) 17px ) " but got "shape ( from 5 % 5px , smooth to 10 % 10px with 0 % 80px , smooth to 30 % 20px ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, smooth to calc(5% + 10px) 5px with calc(0% + 5px) 70px, smooth to calc(15% + 10px) 25px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , smooth to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , smooth to calc ( 15 % + 10px ) 25px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, smooth to calc(0% + 20px) 0px with calc(0% + 10px) 60px, smooth to calc(0% + 20px) 30px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , smooth to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , smooth to calc ( 0 % + 20px ) 30px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, smooth to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, smooth to calc(-15% + 30px) 35px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , smooth to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , smooth to calc ( - 15 % + 30px ) 35px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, smooth to calc(13% - 6px) 13px with calc(0% - 3px) 86px, smooth to calc(39% - 6px) 17px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , smooth to calc ( 13 % - 6px ) 13px with calc ( 0 % - 3px ) 86px , smooth to calc ( 39 % - 6px ) 17px ) " but got "shape ( from 5 % 5px , smooth to 10 % 10px with 0 % 80px , smooth to 30 % 20px ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, smooth to calc(5% + 10px) 5px with calc(0% + 5px) 70px, smooth to calc(15% + 10px) 25px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , smooth to calc ( 5 % + 10px ) 5px with calc ( 0 % + 5px ) 70px , smooth to calc ( 15 % + 10px ) 25px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1) should be [shape(from calc(0% + 15px) 15px, smooth to calc(0% + 20px) 0px with calc(0% + 10px) 60px, smooth to calc(0% + 20px) 30px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , smooth to calc ( 0 % + 20px ) 0px with calc ( 0 % + 10px ) 60px , smooth to calc ( 0 % + 20px ) 30px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, smooth to 10% 10px with 0% 80px, smooth to 30% 20px)] to [path("M 15 15 S 10 60 20 0 T 20 30")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, smooth to calc(-5% + 30px) -5px with calc(0% + 15px) 50px, smooth to calc(-15% + 30px) 35px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , smooth to calc ( - 5 % + 30px ) - 5px with calc ( 0 % + 15px ) 50px , smooth to calc ( - 15 % + 30px ) 35px ) " but got "path ( \\" M 15 15 S 10 60 20 0 T 20 30 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (-0.3) should be [shape(from 2px 2px, smooth by 7px 13px with -3px 86px, smooth by 33px 17px)]
-  assert_equals: expected "shape ( from 2px 2px , smooth by 7px 13px with - 3px 86px , smooth by 33px 17px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0) should be [shape(from 5px 5px, smooth by 10px 10px with 0px 80px, smooth by 30px 20px)]
-  assert_equals: expected "shape ( from 5px 5px , smooth by 10px 10px with 0px 80px , smooth by 30px 20px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0.5) should be [shape(from 10px 10px, smooth by 15px 5px with 5px 70px, smooth by 25px 25px)]
-  assert_equals: expected "shape ( from 10px 10px , smooth by 15px 5px with 5px 70px , smooth by 25px 25px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (1.5) should be [shape(from 20px 20px, smooth by 25px -5px with 15px 50px, smooth by 15px 35px)]
-  assert_equals: expected "shape ( from 20px 20px , smooth by 25px - 5px with 15px 50px , smooth by 15px 35px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (-0.3) should be [shape(from 2px 2px, smooth by 7px 13px with -3px 86px, smooth by 33px 17px)]
-  assert_equals: expected "shape ( from 2px 2px , smooth by 7px 13px with - 3px 86px , smooth by 33px 17px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0) should be [shape(from 5px 5px, smooth by 10px 10px with 0px 80px, smooth by 30px 20px)]
-  assert_equals: expected "shape ( from 5px 5px , smooth by 10px 10px with 0px 80px , smooth by 30px 20px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0.5) should be [shape(from 10px 10px, smooth by 15px 5px with 5px 70px, smooth by 25px 25px)]
-  assert_equals: expected "shape ( from 10px 10px , smooth by 15px 5px with 5px 70px , smooth by 25px 25px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (1.5) should be [shape(from 20px 20px, smooth by 25px -5px with 15px 50px, smooth by 15px 35px)]
-  assert_equals: expected "shape ( from 20px 20px , smooth by 25px - 5px with 15px 50px , smooth by 15px 35px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (-0.3) should be [shape(from 2px 2px, smooth by 7px 13px with -3px 86px, smooth by 33px 17px)]
-  assert_equals: expected "shape ( from 2px 2px , smooth by 7px 13px with - 3px 86px , smooth by 33px 17px ) " but got "path ( \\" M 5 5 S 5 85 15 15 T 45 35 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0) should be [shape(from 5px 5px, smooth by 10px 10px with 0px 80px, smooth by 30px 20px)]
-  assert_equals: expected "shape ( from 5px 5px , smooth by 10px 10px with 0px 80px , smooth by 30px 20px ) " but got "path ( \\" M 5 5 S 5 85 15 15 T 45 35 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0.5) should be [shape(from 10px 10px, smooth by 15px 5px with 5px 70px, smooth by 25px 25px)]
-  assert_equals: expected "shape ( from 10px 10px , smooth by 15px 5px with 5px 70px , smooth by 25px 25px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (1.5) should be [shape(from 20px 20px, smooth by 25px -5px with 15px 50px, smooth by 15px 35px)]
-  assert_equals: expected "shape ( from 20px 20px , smooth by 25px - 5px with 15px 50px , smooth by 15px 35px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (-0.3) should be [shape(from 2px 2px, smooth by 7px 13px with -3px 86px, smooth by 33px 17px)]
-  assert_equals: expected "shape ( from 2px 2px , smooth by 7px 13px with - 3px 86px , smooth by 33px 17px ) " but got "path ( \\" M 5 5 S 5 85 15 15 T 45 35 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0) should be [shape(from 5px 5px, smooth by 10px 10px with 0px 80px, smooth by 30px 20px)]
-  assert_equals: expected "shape ( from 5px 5px , smooth by 10px 10px with 0px 80px , smooth by 30px 20px ) " but got "path ( \\" M 5 5 S 5 85 15 15 T 45 35 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (0.5) should be [shape(from 10px 10px, smooth by 15px 5px with 5px 70px, smooth by 25px 25px)]
-  assert_equals: expected "shape ( from 10px 10px , smooth by 15px 5px with 5px 70px , smooth by 25px 25px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 s 0 80 10 10 t 30 20")] to [shape(from 15px 15px, smooth by 20px 0px with 10px 60px, smooth by 20px 30px)] at (1.5) should be [shape(from 20px 20px, smooth by 25px -5px with 15px 50px, smooth by 15px 35px)]
-  assert_equals: expected "shape ( from 20px 20px , smooth by 25px - 5px with 15px 50px , smooth by 15px 35px ) " but got "shape ( from 15px 15px , smooth by 20px 0px with 10px 60px , smooth by 20px 30px ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, arc to calc(19.5% - 1.5px) -12px of 7px 17px, arc by calc(19.5% - 7.5px) -2px of 33px cw large rotate -42deg, arc to calc(32.5% - 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , arc to calc ( 19.5 % - 1.5px ) - 12px of 7px 17px , arc by calc ( 19.5 % - 7.5px ) - 2px of 33px cw large rotate - 42deg , arc to calc ( 32.5 % - 7.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.3) should be [shape(from calc(3.5% + 4.5px) 8px, arc to calc(10.5% + 1.5px) -18px of 13px 23px, arc by calc(10.5% + 7.5px) -8px of 27px cw large rotate 102deg, arc to calc(17.5% + 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 3.5 % + 4.5px ) 8px , arc to calc ( 10.5 % + 1.5px ) - 18px of 13px 23px , arc by calc ( 10.5 % + 7.5px ) - 8px of 27px cw large rotate 102deg , arc to calc ( 17.5 % + 7.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, arc to calc(7.5% + 2.5px) -20px of 15px 25px, arc by calc(7.5% + 12.5px) -10px of 25px cw large rotate 150deg, arc to calc(12.5% + 12.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , arc to calc ( 7.5 % + 2.5px ) - 20px of 15px 25px , arc by calc ( 7.5 % + 12.5px ) - 10px of 25px cw large rotate 150deg , arc to calc ( 12.5 % + 12.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1) should be [shape(from calc(0% + 15px) 15px, arc to calc(0% + 5px) -25px of 20px 30px, arc by calc(0% + 25px) -15px of 20px cw rotate 270deg, arc to calc(0% + 25px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , arc to calc ( 0 % + 5px ) - 25px of 20px 30px , arc by calc ( 0 % + 25px ) - 15px of 20px cw rotate 270deg , arc to calc ( 0 % + 25px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, arc to calc(-7.5% + 7.5px) -30px of 25px 35px, arc by calc(-7.5% + 37.5px) -20px of 15px cw rotate 390deg, arc to calc(-12.5% + 37.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , arc to calc ( - 7.5 % + 7.5px ) - 30px of 25px 35px , arc by calc ( - 7.5 % + 37.5px ) - 20px of 15px cw rotate 390deg , arc to calc ( - 12.5 % + 37.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, arc to calc(19.5% - 1.5px) -12px of 7px 17px, arc by calc(19.5% - 7.5px) -2px of 33px cw large rotate -42deg, arc to calc(32.5% - 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , arc to calc ( 19.5 % - 1.5px ) - 12px of 7px 17px , arc by calc ( 19.5 % - 7.5px ) - 2px of 33px cw large rotate - 42deg , arc to calc ( 32.5 % - 7.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0) should be [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.3) should be [shape(from calc(3.5% + 4.5px) 8px, arc to calc(10.5% + 1.5px) -18px of 13px 23px, arc by calc(10.5% + 7.5px) -8px of 27px cw large rotate 102deg, arc to calc(17.5% + 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 3.5 % + 4.5px ) 8px , arc to calc ( 10.5 % + 1.5px ) - 18px of 13px 23px , arc by calc ( 10.5 % + 7.5px ) - 8px of 27px cw large rotate 102deg , arc to calc ( 17.5 % + 7.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, arc to calc(7.5% + 2.5px) -20px of 15px 25px, arc by calc(7.5% + 12.5px) -10px of 25px cw large rotate 150deg, arc to calc(12.5% + 12.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , arc to calc ( 7.5 % + 2.5px ) - 20px of 15px 25px , arc by calc ( 7.5 % + 12.5px ) - 10px of 25px cw large rotate 150deg , arc to calc ( 12.5 % + 12.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1) should be [shape(from calc(0% + 15px) 15px, arc to calc(0% + 5px) -25px of 20px 30px, arc by calc(0% + 25px) -15px of 20px cw rotate 270deg, arc to calc(0% + 25px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , arc to calc ( 0 % + 5px ) - 25px of 20px 30px , arc by calc ( 0 % + 25px ) - 15px of 20px cw rotate 270deg , arc to calc ( 0 % + 25px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, arc to calc(-7.5% + 7.5px) -30px of 25px 35px, arc by calc(-7.5% + 37.5px) -20px of 15px cw rotate 390deg, arc to calc(-12.5% + 37.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , arc to calc ( - 7.5 % + 7.5px ) - 30px of 25px 35px , arc by calc ( - 7.5 % + 37.5px ) - 20px of 15px cw rotate 390deg , arc to calc ( - 12.5 % + 37.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, arc to calc(19.5% - 1.5px) -12px of 7px 17px, arc by calc(19.5% - 7.5px) -2px of 33px cw large rotate -42deg, arc to calc(32.5% - 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , arc to calc ( 19.5 % - 1.5px ) - 12px of 7px 17px , arc by calc ( 19.5 % - 7.5px ) - 2px of 33px cw large rotate - 42deg , arc to calc ( 32.5 % - 7.5px ) 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.3) should be [shape(from calc(3.5% + 4.5px) 8px, arc to calc(10.5% + 1.5px) -18px of 13px 23px, arc by calc(10.5% + 7.5px) -8px of 27px cw large rotate 102deg, arc to calc(17.5% + 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 3.5 % + 4.5px ) 8px , arc to calc ( 10.5 % + 1.5px ) - 18px of 13px 23px , arc by calc ( 10.5 % + 7.5px ) - 8px of 27px cw large rotate 102deg , arc to calc ( 17.5 % + 7.5px ) 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, arc to calc(7.5% + 2.5px) -20px of 15px 25px, arc by calc(7.5% + 12.5px) -10px of 25px cw large rotate 150deg, arc to calc(12.5% + 12.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , arc to calc ( 7.5 % + 2.5px ) - 20px of 15px 25px , arc by calc ( 7.5 % + 12.5px ) - 10px of 25px cw large rotate 150deg , arc to calc ( 12.5 % + 12.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1) should be [shape(from calc(0% + 15px) 15px, arc to calc(0% + 5px) -25px of 20px 30px, arc by calc(0% + 25px) -15px of 20px cw rotate 270deg, arc to calc(0% + 25px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , arc to calc ( 0 % + 5px ) - 25px of 20px 30px , arc by calc ( 0 % + 25px ) - 15px of 20px cw rotate 270deg , arc to calc ( 0 % + 25px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, arc to calc(-7.5% + 7.5px) -30px of 25px 35px, arc by calc(-7.5% + 37.5px) -20px of 15px cw rotate 390deg, arc to calc(-12.5% + 37.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , arc to calc ( - 7.5 % + 7.5px ) - 30px of 25px 35px , arc by calc ( - 7.5 % + 37.5px ) - 20px of 15px cw rotate 390deg , arc to calc ( - 12.5 % + 37.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (-0.3) should be [shape(from calc(6.5% - 4.5px) 2px, arc to calc(19.5% - 1.5px) -12px of 7px 17px, arc by calc(19.5% - 7.5px) -2px of 33px cw large rotate -42deg, arc to calc(32.5% - 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 6.5 % - 4.5px ) 2px , arc to calc ( 19.5 % - 1.5px ) - 12px of 7px 17px , arc by calc ( 19.5 % - 7.5px ) - 2px of 33px cw large rotate - 42deg , arc to calc ( 32.5 % - 7.5px ) 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.3) should be [shape(from calc(3.5% + 4.5px) 8px, arc to calc(10.5% + 1.5px) -18px of 13px 23px, arc by calc(10.5% + 7.5px) -8px of 27px cw large rotate 102deg, arc to calc(17.5% + 7.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 3.5 % + 4.5px ) 8px , arc to calc ( 10.5 % + 1.5px ) - 18px of 13px 23px , arc by calc ( 10.5 % + 7.5px ) - 8px of 27px cw large rotate 102deg , arc to calc ( 17.5 % + 7.5px ) 20px of 10px 5px ) " but got "shape ( from 5 % 5px , arc to 15 % - 15px of 10px 20px , arc by 15 % - 5px of 30px cw large rotate 30deg , arc to 25 % 20px of 10px 5px ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (0.5) should be [shape(from calc(2.5% + 7.5px) 10px, arc to calc(7.5% + 2.5px) -20px of 15px 25px, arc by calc(7.5% + 12.5px) -10px of 25px cw large rotate 150deg, arc to calc(12.5% + 12.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 2.5 % + 7.5px ) 10px , arc to calc ( 7.5 % + 2.5px ) - 20px of 15px 25px , arc by calc ( 7.5 % + 12.5px ) - 10px of 25px cw large rotate 150deg , arc to calc ( 12.5 % + 12.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1) should be [shape(from calc(0% + 15px) 15px, arc to calc(0% + 5px) -25px of 20px 30px, arc by calc(0% + 25px) -15px of 20px cw rotate 270deg, arc to calc(0% + 25px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( 0 % + 15px ) 15px , arc to calc ( 0 % + 5px ) - 25px of 20px 30px , arc by calc ( 0 % + 25px ) - 15px of 20px cw rotate 270deg , arc to calc ( 0 % + 25px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)] to [path("M 15 15 A 20,30 0 0,0 5,-25 a 20,20 270 0,1 25,-15 A 10,5 0 0,0 25 20")] at (1.5) should be [shape(from calc(-2.5% + 22.5px) 20px, arc to calc(-7.5% + 7.5px) -30px of 25px 35px, arc by calc(-7.5% + 37.5px) -20px of 15px cw rotate 390deg, arc to calc(-12.5% + 37.5px) 20px of 10px 5px)]
-  assert_equals: expected "shape ( from calc ( - 2.5 % + 22.5px ) 20px , arc to calc ( - 7.5 % + 7.5px ) - 30px of 25px 35px , arc by calc ( - 7.5 % + 37.5px ) - 20px of 15px cw rotate 390deg , arc to calc ( - 12.5 % + 37.5px ) 20px of 10px 5px ) " but got "path ( \\" M 15 15 A 20 30 0 0 0 5 - 25 A 20 20 270 0 1 30 - 40 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2px 2px, arc to 18px -12px of 7px 17px ccw small, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2px 2px , arc to 18px - 12px of 7px 17px , arc by 12px - 2px of 33px cw large rotate - 42deg , arc to 25px 20px of 10px 5px ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0) should be [shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5px 5px , arc to 15px - 15px of 10px 20px , arc by 15px - 5px of 30px cw large rotate 30deg , arc to 25px 20px of 10px 5px ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8px 8px, arc to 12px -18px of 13px 23px ccw small, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8px 8px , arc to 12px - 18px of 13px 23px , arc by 18px - 8px of 27px cw large rotate 102deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10px 10px, arc to 10px -20px of 15px 25px ccw small, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10px 10px , arc to 10px - 20px of 15px 25px , arc by 20px - 10px of 25px cw large rotate 150deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (1.5) should be [shape(from 20px 20px, arc to 0px -30px of 25px 35px ccw small, arc by 30px -20px of 15px rotate 390deg cw small, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 20px 20px , arc to 0px - 30px of 25px 35px , arc by 30px - 20px of 15px cw rotate 390deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2px 2px, arc to 18px -12px of 7px 17px ccw small, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2px 2px , arc to 18px - 12px of 7px 17px , arc by 12px - 2px of 33px cw large rotate - 42deg , arc to 25px 20px of 10px 5px ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0) should be [shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5px 5px , arc to 15px - 15px of 10px 20px , arc by 15px - 5px of 30px cw large rotate 30deg , arc to 25px 20px of 10px 5px ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8px 8px, arc to 12px -18px of 13px 23px ccw small, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8px 8px , arc to 12px - 18px of 13px 23px , arc by 18px - 8px of 27px cw large rotate 102deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10px 10px, arc to 10px -20px of 15px 25px ccw small, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10px 10px , arc to 10px - 20px of 15px 25px , arc by 20px - 10px of 25px cw large rotate 150deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Transitions with transition: all: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (1.5) should be [shape(from 20px 20px, arc to 0px -30px of 25px 35px ccw small, arc by 30px -20px of 15px rotate 390deg cw small, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 20px 20px , arc to 0px - 30px of 25px 35px , arc by 30px - 20px of 15px cw rotate 390deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2px 2px, arc to 18px -12px of 7px 17px ccw small, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2px 2px , arc to 18px - 12px of 7px 17px , arc by 12px - 2px of 33px cw large rotate - 42deg , arc to 25px 20px of 10px 5px ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0) should be [shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5px 5px , arc to 15px - 15px of 10px 20px , arc by 15px - 5px of 30px cw large rotate 30deg , arc to 25px 20px of 10px 5px ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8px 8px, arc to 12px -18px of 13px 23px ccw small, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8px 8px , arc to 12px - 18px of 13px 23px , arc by 18px - 8px of 27px cw large rotate 102deg , arc to 25px 20px of 10px 5px cw ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10px 10px, arc to 10px -20px of 15px 25px ccw small, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10px 10px , arc to 10px - 20px of 15px 25px , arc by 20px - 10px of 25px cw large rotate 150deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] CSS Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (1.5) should be [shape(from 20px 20px, arc to 0px -30px of 25px 35px ccw small, arc by 30px -20px of 15px rotate 390deg cw small, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 20px 20px , arc to 0px - 30px of 25px 35px , arc by 30px - 20px of 15px cw rotate 390deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (-0.3) should be [shape(from 2px 2px, arc to 18px -12px of 7px 17px ccw small, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px ccw small)]
-  assert_equals: expected "shape ( from 2px 2px , arc to 18px - 12px of 7px 17px , arc by 12px - 2px of 33px cw large rotate - 42deg , arc to 25px 20px of 10px 5px ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0) should be [shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px small)]
-  assert_equals: expected "shape ( from 5px 5px , arc to 15px - 15px of 10px 20px , arc by 15px - 5px of 30px cw large rotate 30deg , arc to 25px 20px of 10px 5px ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.3) should be [shape(from 8px 8px, arc to 12px -18px of 13px 23px ccw small, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw small )]
-  assert_equals: expected "shape ( from 8px 8px , arc to 12px - 18px of 13px 23px , arc by 18px - 8px of 27px cw large rotate 102deg , arc to 25px 20px of 10px 5px cw ) " but got "path ( \\" M 5 5 A 10 20 0 0 0 15 - 15 A 30 30 30 1 1 30 - 20 A 10 5 0 0 0 25 20 \\" ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (0.5) should be [shape(from 10px 10px, arc to 10px -20px of 15px 25px ccw small, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 10px 10px , arc to 10px - 20px of 15px 25px , arc by 20px - 10px of 25px cw large rotate 150deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-[FAIL] Web Animations: property <clip-path> from [path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")] to [shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)] at (1.5) should be [shape(from 20px 20px, arc to 0px -30px of 25px 35px ccw small, arc by 30px -20px of 15px rotate 390deg cw small, arc to 25px 20px of 10px 5px cw small)]
-  assert_equals: expected "shape ( from 20px 20px , arc to 0px - 30px of 25px 35px , arc by 30px - 20px of 15px cw rotate 390deg , arc to 25px 20px of 10px 5px cw ) " but got "shape ( from 15px 15px , arc to 5px - 25px of 20px 30px , arc by 25px - 15px of 20px cw rotate 270deg , arc to 25px 20px of 10px 5px cw ) "
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape.html b/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape.html
index 763cf00e..6d85c2a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/animations/clip-path-interpolation-shape.html
@@ -148,12 +148,12 @@
   from: 'shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)',
   to: 'shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)'
 }, [
-  {at: -0.3, expect: 'shape(from 2% 2px, arc to 18% -12px of 7px 17px ccw small, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px ccw small)'},
-  {at: 0, expect: 'shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)'},
-  {at: 0.3, expect: 'shape(from 8% 8px, arc to 12% -18px of 13px 23px ccw small, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw small )'},
-  {at: 0.5, expect: 'shape(from 10% 10px, arc to 10% -20px of 15px 25px ccw small, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw small)'},
-  {at: 1, expect: 'shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px rotate 270deg cw small, arc to 25% 20px of 10px 5px cw small)'},
-  {at: 1.5, expect: 'shape(from 20% 20px, arc to 0% -30px of 25px 35px ccw small, arc by 30% -20px of 15px rotate 390deg cw small, arc to 25% 20px of 10px 5px cw small)'},
+  {at: -0.3, expect: 'shape(from 2% 2px, arc to 18% -12px of 7px 17px, arc by 12% -2px of 33px 33px rotate -42deg cw large , arc to 25% 20px of 10px 5px)'},
+  {at: 0, expect: 'shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px)'},
+  {at: 0.3, expect: 'shape(from 8% 8px, arc to 12% -18px of 13px 23px, arc by 18% -8px of 27px 27px rotate 102deg cw large, arc to 25% 20px of 10px 5px cw)'},
+  {at: 0.5, expect: 'shape(from 10% 10px, arc to 10% -20px of 15px 25px, arc by 20% -10px of 25px rotate 150deg cw large, arc to 25% 20px of 10px 5px cw)'},
+  {at: 1, expect: 'shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px rotate 270deg cw, arc to 25% 20px of 10px 5px cw)'},
+  {at: 1.5, expect: 'shape(from 20% 20px, arc to 0% -30px of 25px 35px, arc by 30% -20px of 15px rotate 390deg cw, arc to 25% 20px of 10px 5px cw)'},
 ]);
 
 test_interpolation({
@@ -270,12 +270,12 @@
   from: 'path("M 5 5 A 10,20 0 0,0 15,-15 a 30,30 30 1,1 15,-5 A 10,5 0 0,0 25 20")',
   to: 'shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px cw rotate 270deg small, arc to 25px 20px of 10px 5px small cw)' // ccw, cw, cw
 }, [
-  {at: -0.3, expect: 'shape(from 2px 2px, arc to 18px -12px of 7px 17px ccw small, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px ccw small)'},
-  {at: 0, expect: 'shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px small)'},
-  {at: 0.3, expect: 'shape(from 8px 8px, arc to 12px -18px of 13px 23px ccw small, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw small )'},
-  {at: 0.5, expect: 'shape(from 10px 10px, arc to 10px -20px of 15px 25px ccw small, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw small)'},
-  {at: 1, expect: 'shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px rotate 270deg cw small, arc to 25px 20px of 10px 5px cw small)'},
-  {at: 1.5, expect: 'shape(from 20px 20px, arc to 0px -30px of 25px 35px ccw small, arc by 30px -20px of 15px rotate 390deg cw small, arc to 25px 20px of 10px 5px cw small)'},
+  {at: -0.3, expect: 'shape(from 2px 2px, arc to 18px -12px of 7px 17px, arc by 12px -2px of 33px 33px rotate -42deg cw large, arc to 25px 20px of 10px 5px)'},
+  {at: 0, expect: 'shape(from 5px 5px, arc to 15px -15px of 10px 20px, arc by 15px -5px of 30px cw rotate 30deg large, arc to 25px 20px of 10px 5px)'},
+  {at: 0.3, expect: 'shape(from 8px 8px, arc to 12px -18px of 13px 23px, arc by 18px -8px of 27px 27px rotate 102deg cw large, arc to 25px 20px of 10px 5px cw)'},
+  {at: 0.5, expect: 'shape(from 10px 10px, arc to 10px -20px of 15px 25px, arc by 20px -10px of 25px rotate 150deg cw large, arc to 25px 20px of 10px 5px cw)'},
+  {at: 1, expect: 'shape(from 15px 15px, arc to 5px -25px of 20px 30px, arc by 25px -15px of 20px rotate 270deg cw, arc to 25px 20px of 10px 5px cw)'},
+  {at: 1.5, expect: 'shape(from 20px 20px, arc to 0px -30px of 25px 35px, arc by 30px -20px of 15px rotate 390deg cw, arc to 25px 20px of 10px 5px cw)'},
 ]);
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-mixins/at-function-parsing.html b/third_party/blink/web_tests/external/wpt/css/css-mixins/at-function-parsing.html
new file mode 100644
index 0000000..6ab77c5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-mixins/at-function-parsing.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<title>Custom Functions: Prelude Parsing</title>
+<link rel="help" href="https://drafts.csswg.org/css-mixins-1/#function-rule">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  function test_valid_prelude(rule_without_block) {
+    test(() => {
+      let s = new CSSStyleSheet();
+      s.replaceSync(`${rule_without_block} {}`);
+      assert_equals(s.cssRules.length, 1);
+    }, `${rule_without_block} is valid`);
+  }
+
+  function test_invalid_prelude(rule_without_block) {
+    test(() => {
+      let s = new CSSStyleSheet();
+      s.replaceSync(`${rule_without_block} {}`);
+      assert_equals(s.cssRules.length, 0);
+    }, `${rule_without_block} is invalid`);
+  }
+
+  test_valid_prelude('@function --foo()');
+  test_valid_prelude('@function --foo( )');
+  test_valid_prelude('@function --foo(--x)');
+  test_valid_prelude('@function --foo( --x )');
+
+  test_invalid_prelude('@function --foo ()');
+  test_invalid_prelude('@function --foo (--x)');
+
+  // All single <syntax-component> types.
+  test_valid_prelude('@function --foo(--x auto)');
+  test_valid_prelude('@function --foo(--x <angle>)');
+  test_valid_prelude('@function --foo(--x <color>)');
+  test_valid_prelude('@function --foo(--x <custom-ident>)');
+  test_valid_prelude('@function --foo(--x <image>)');
+  test_valid_prelude('@function --foo(--x <integer>)');
+  test_valid_prelude('@function --foo(--x <length>)');
+  test_valid_prelude('@function --foo(--x <length-percentage>)');
+  test_valid_prelude('@function --foo(--x <number>)');
+  test_valid_prelude('@function --foo(--x <percentage>)');
+  test_valid_prelude('@function --foo(--x <resolution>)');
+  test_valid_prelude('@function --foo(--x <string>)');
+  test_valid_prelude('@function --foo(--x <time>)');
+  test_valid_prelude('@function --foo(--x <url>)');
+  test_valid_prelude('@function --foo(--x <transform-function>)');
+  test_valid_prelude('@function --foo(--x <transform-list>)');
+
+  test_valid_prelude('@function --foo(--x type(auto))');
+  test_valid_prelude('@function --foo(--x type(<length>))');
+  test_valid_prelude('@function --foo(--x type(<length> | auto))');
+  test_valid_prelude('@function --foo(--x type(none | auto))');
+  test_valid_prelude('@function --foo(--x type(*))');
+
+  // Multiple parameters.
+  test_valid_prelude('@function --foo(--x, --y)');
+  test_valid_prelude('@function --foo(--x, --y, --z)');
+  test_valid_prelude('@function --foo(--x <length>, --y, --z)');
+  test_valid_prelude('@function --foo(--x, --y <number>, --z <angle>)');
+
+  // Defaults.
+  test_valid_prelude('@function --foo(--x : 10px)');
+  test_valid_prelude('@function --foo(--x <length>: 10px)');
+  test_valid_prelude('@function --foo(--x <length>: 10px, --y)');
+  test_valid_prelude('@function --foo(--x, --y <length>: 10px)');
+  test_valid_prelude('@function --foo(--x type(<length> | auto): auto)');
+  test_valid_prelude('@function --foo(--x type(<length> | auto) : auto)');
+  // The value does not have to match the type during @function parsing:
+  test_valid_prelude('@function --foo(--x <angle>: 10px)');
+
+  test_invalid_prelude('@function --foo(--x: 10px !important)');
+
+  // Lists.
+  test_valid_prelude('@function --foo(--x <length>#)');
+  test_valid_prelude('@function --foo(--x <length>+)');
+  test_valid_prelude('@function --foo(--x type(<length>+))');
+  test_valid_prelude('@function --foo(--x <transform-function>#)');
+  test_valid_prelude('@function --foo(--x <transform-function>+)');
+  // <transform-list> is special: a multiplier cannot follow it.
+  test_invalid_prelude('@function --foo(--x <transform-list>#)');
+  test_invalid_prelude('@function --foo(--x <transform-list>+)');
+
+  test_invalid_prelude('@function --foo(--x *)');
+  test_invalid_prelude('@function --foo(--x !)');
+  test_invalid_prelude('@function --foo(--x 50px)');
+  test_invalid_prelude('@function --foo(--x <length> | auto)');
+  test_invalid_prelude('@function --foo(--x none | auto)');
+  test_invalid_prelude('@function --foo(--x <dino>)');
+
+  // Return value types.
+  test_valid_prelude('@function --foo(--x) returns type(*)');
+  test_valid_prelude('@function --foo(--x) returns <length>');
+  test_valid_prelude('@function --foo(--x) returns <length>+');
+  test_valid_prelude('@function --foo(--x) returns type(<length>)');
+  test_valid_prelude('@function --foo(--x) returns type(<length> | auto)');
+  test_valid_prelude('@function --foo(--x) returns type(foo | bar)');
+
+  test_invalid_prelude('@function --foo(--x) !');
+  test_invalid_prelude('@function --foo(--x) length');
+  test_invalid_prelude('@function --foo(--x) returns');
+  test_invalid_prelude('@function --foo(--x) returns ');
+  test_invalid_prelude('@function --foo(--x) returns *');
+  test_invalid_prelude('@function --foo(--x) returns <transform-list>#');
+  test_invalid_prelude('@function --foo(--x) returns <transform-list>+');
+  test_invalid_prelude('@function --foo(--x) returns auto | none');
+  test_invalid_prelude('@function --foo(--x): <length>');
+  test_invalid_prelude('@function --foo(--x): length');
+  test_invalid_prelude('@function --foo(--x) returneth <length>');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval-expected.txt
new file mode 100644
index 0000000..ba0dad7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+[FAIL] Single parameter with default value
+  assert_equals: expected "PASS" but got ""
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval.html b/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval.html
new file mode 100644
index 0000000..eb706ee
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-mixins/dashed-function-eval.html
@@ -0,0 +1,496 @@
+<!DOCTYPE html>
+<title>Custom Functions: Evaluating a &lt;dashed-function></title>
+<link rel="help" href="https://drafts.csswg.org/css-mixins-1/#substitute-a-dashed-function">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id=target></div>
+<div id=main></div>
+
+<!-- To pass, a test must produce matching computed values for --actual and
+     --expected on #target. -->
+
+<!-- Return value -->
+
+<template data-name="Literal result">
+  <style>
+    @function --f() {
+      result: 12px;
+    }
+    #target {
+      --actual: --f();
+      --expected: 12px;
+    }
+  </style>
+</template>
+
+<template data-name="Literal result, typed return">
+  <style>
+    @function --f() returns <length> {
+      result: 12px;
+    }
+    #target {
+      --actual: --f();
+      --expected: 12px;
+    }
+  </style>
+</template>
+
+<template data-name="Literal result, typed return, calc">
+  <style>
+    @function --f() returns <length> {
+      result: calc(12px + 1px);
+    }
+    #target {
+      --actual: --f();
+      --expected: 13px;
+    }
+  </style>
+</template>
+
+<template data-name="Literal result, typed return, mismatch">
+  <style>
+    @function --f() returns <length> {
+      result: 12s;
+    }
+    #target {
+      --actual: --f();
+      /* --expected: <guaranteed-invalid> */
+    }
+  </style>
+</template>
+
+<template data-name="Missing result descriptor">
+  <style>
+    @function --f() {
+    }
+    #target {
+      --actual: --f();
+      /* --expected: <guaranteed-invalid> */
+    }
+  </style>
+</template>
+
+<template data-name="Literal result, empty">
+  <style>
+    @function --f() {
+      result:;
+    }
+    #target {
+      --actual: --f();
+      --expected:;
+    }
+  </style>
+</template>
+
+<template data-name="result cascading behavior">
+  <style>
+    @function --f() returns <length> {
+      result: 12px;
+      result: 24px; /* Overwrites previous */
+    }
+    #target {
+      --actual: --f();
+      --expected: 24px;
+    }
+  </style>
+</template>
+
+<template data-name="Another dashed-function in result">
+  <style>
+    @function --f() {
+      result: --g();
+    }
+    @function --g() {
+      result: 12px;
+    }
+    #target {
+      --actual: --f();
+      --expected: 12px;
+    }
+  </style>
+</template>
+
+<!-- Parameters / Arguments -->
+
+<template data-name="Unused argument">
+  <style>
+    @function --f(--x) {
+      result: 12px;
+    }
+    #target {
+      --actual: --f(100px);
+      --expected: 12px;
+    }
+  </style>
+</template>
+
+<template data-name="Single parameter">
+  <style>
+    @function --f(--x) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(100px);
+      --expected: 100px;
+    }
+  </style>
+</template>
+
+<template data-name="Multiple parameters">
+  <style>
+    @function --f(--x, --y, --z) {
+      result: var(--x) var(--y) var(--z);
+    }
+    #target {
+      --actual: --f(100px, auto, red);
+      --expected: 100px auto red;
+    }
+  </style>
+</template>
+
+<template data-name="Single parameter, typed">
+  <style>
+    @function --f(--x <length>) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(100px);
+      --expected: 100px;
+    }
+  </style>
+</template>
+
+<template data-name="Typed parameter with calc()">
+  <style>
+    @function --f(--x <length>) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(calc(100px + 1px));
+      --expected: 101px;
+    }
+  </style>
+</template>
+
+<template data-name="Untyped parameter with calc()">
+  <style>
+    @function --f(--x type(*)) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(calc(100px + 1px));
+      --expected: calc(100px + 1px);
+    }
+  </style>
+</template>
+
+<template data-name="Various typed parameters">
+  <style>
+    @function --f(--x <length>, --y <angle>, --z <time>) {
+      result: var(--x) var(--y) var(--z);
+    }
+    #target {
+      --actual: --f(calc(100px + 1px), 1turn, 1000ms);
+      --expected: 101px 360deg 1s;
+    }
+  </style>
+</template>
+
+<template data-name="Parameter with complex type (auto)">
+  <style>
+    @function --f(--x type(<length> | auto)) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(auto);
+      --expected: auto;
+    }
+  </style>
+</template>
+
+<template data-name="Parameter with complex type (px)">
+  <style>
+    @function --f(--x type(<length> | auto)) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f(10px);
+      --expected: 10px;
+    }
+  </style>
+</template>
+
+<template data-name="Passing argument to inner function">
+  <style>
+    @function --f(--x) {
+      result: --g(var(--x));
+    }
+    @function --g(--y) {
+      result: var(--y);
+    }
+    #target {
+      --actual: --f(12px);
+      --expected: 12px;
+    }
+  </style>
+</template>
+
+<!-- Arguments + var() -->
+
+<template data-name="var() in argument resolved before call">
+  <style>
+    @function --f(--x) {
+      --one: FAIL;
+      result: var(--x);
+    }
+    #target {
+      --one: 1px;
+      --actual: --f(calc(100px + var(--one)));
+      --expected: calc(100px + 1px);
+    }
+  </style>
+</template>
+
+<template data-name="var() in argument resolved before call, typed">
+  <style>
+    @function --f(--x <length>) {
+      --one: FAIL;
+      result: var(--x);
+    }
+    #target {
+      --one: 1px;
+      --actual: --f(calc(100px + var(--one)));
+      --expected: 101px;
+    }
+  </style>
+</template>
+
+<!-- Defaults -->
+
+<template data-name="Single parameter with default value">
+  <style>
+    @function --f(--x: PASS) {
+      result: var(--x);
+    }
+    #target {
+      --actual: --f();
+      --expected: PASS;
+    }
+  </style>
+</template>
+
+<template data-name="Multiple parameters with defaults">
+  <style>
+    @function --f(--x, --y: 2px, --z: 3px) {
+      result: var(--x) var(--y) var(--z);
+    }
+    #target {
+      --actual: --f(1px, 5px);
+      --expected: 1px 5px 3px;
+    }
+  </style>
+</template>
+
+<template data-name="Multiple parameters with defaults, typed">
+  <style>
+    @function --f(--x, --y <length>: 2px, --z <length>: 3px) {
+      result: var(--x) var(--y) var(--z);
+    }
+    #target {
+      --actual: --f(1px, 5px);
+      --expected: 1px 5px 3px;
+    }
+  </style>
+</template>
+
+<!-- Locals -->
+
+<template data-name="Unused local">
+  <style>
+    @function --f() {
+      --x: 10px;
+      result: 1px;
+    }
+    #target {
+      --actual: --f();
+      --expected: 1px;
+    }
+  </style>
+</template>
+
+<template data-name="Local does not affect outer scope">
+  <style>
+    @function --f() {
+      --x: 10px;
+      result: 1px;
+    }
+    #target {
+      --x: 20px;
+      --actual: --f() var(--x);
+      --expected: 1px 20px;
+    }
+  </style>
+</template>
+
+<template data-name="Substituting local in result">
+  <style>
+    @function --f() {
+      --x: 10px;
+      result: var(--x);
+    }
+    #target {
+      --actual: --f();
+      --expected: 10px;
+    }
+  </style>
+</template>
+
+<template data-name="Substituting multiple locals in result">
+  <style>
+    @function --f() {
+      --x: 10px;
+      --y: 17px;
+      result: var(--x) var(--y);
+    }
+    #target {
+      --actual: --f();
+      --expected: 10px 17px;
+    }
+  </style>
+</template>
+
+<template data-name="Local referring to another local">
+  <style>
+    @function --f() {
+      --x: 10px;
+      --y: var(--x);
+      result: var(--y);
+    }
+    #target {
+      --actual: --f();
+      --expected: 10px;
+    }
+  </style>
+</template>
+
+<template data-name="Locals appearing after result">
+  <style>
+    @function --f() {
+      result: var(--y);
+      --x: 10px;
+      --y: var(--x);
+    }
+    #target {
+      --actual: --f();
+      --expected: 10px;
+    }
+  </style>
+</template>
+
+<template data-name="Locals cascading behavior">
+  <style>
+    @function --f() {
+      --x: 10px;
+      --y: var(--x);
+      result: var(--y);
+
+      --x: 20px; /* Surprise! */
+    }
+    #target {
+      --actual: --f();
+      --expected: 20px;
+    }
+  </style>
+</template>
+
+<!-- Scoping -->
+
+<template data-name="Custom properties are visible inside function">
+  <style>
+    @function --f() {
+      result: var(--x);
+    }
+    #target {
+      --x: 10px;
+      --actual: --f();
+      --expected: 10px;
+    }
+  </style>
+</template>
+
+<!--
+  TODO(andruud): Add more tests for dynamic scoping when Issue 10954
+  resolves: https://github.com/w3c/csswg-drafts/issues/10954
+-->
+
+<!-- Shadowing -->
+
+<template data-name="Parameter shadows custom property">
+  <style>
+    @function --f(--x) {
+      result: var(--x);
+    }
+    #target {
+      --x: FAIL;
+      --actual: --f(PASS);
+      --expected: PASS;
+    }
+  </style>
+</template>
+
+<template data-name="Local shadows parameter">
+  <style>
+    @function --f(--x) {
+      --x: PASS;
+      result: var(--x);
+    }
+    #target {
+      --x: FAIL1;
+      --actual: --f(FAIL2);
+      --expected: PASS;
+    }
+  </style>
+</template>
+
+<!-- Invalid invocations -->
+
+<template data-name="Missing only argument">
+  <style>
+    @function --f(--x) {
+      result: 10px;
+    }
+    #target {
+      --actual: --f();
+      /* --expected: <guaranteed-invalid> */
+    }
+  </style>
+</template>
+
+<template data-name="Missing one argument of several">
+  <style>
+    @function --f(--x, --y, --z) {
+      result: 10px;
+    }
+    #target {
+      --actual: --f(1, 2);
+      /* --expected: <guaranteed-invalid> */
+    }
+  </style>
+</template>
+
+
+<!-- Test runner -->
+<script>
+  let templates = document.querySelectorAll('template');
+  for (let template of templates) {
+    test((t) => {
+      t.add_cleanup(() => main.replaceChildren());
+      main.append(template.content.cloneNode(true));
+      let cs = getComputedStyle(target);
+      let actual = cs.getPropertyValue('--actual');
+      let expected = cs.getPropertyValue('--expected');
+      assert_equals(actual, expected);
+    }, template.getAttribute('data-name'));
+  }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-002.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-002.html
new file mode 100644
index 0000000..7efdef40
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-002.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<title>out-of-flow in relpos in multicol</title>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-getclientrects">
+<link rel="help" href="https://drafts.csswg.org/css-multicol/">
+<style>
+  body {
+    margin: 0;
+  }
+</style>
+<div style="margin:10px; border:10px solid; padding:5px; columns:3; gap:50px; column-fill:auto; inline-size:400px; block-size:100px;">
+  <div style="block-size:50px;"></div>
+  <div style="position:relative;">
+    <div style="block-size:60px;"></div>
+    <div id="elm" style="position:absolute; inline-size:10px; border:10px solid; block-size:100px;"></div>
+  </div>
+</div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  let rects = elm.getClientRects();
+  test(()=> { assert_equals(rects.length, 2); }, "Rectangle count");
+  test(()=> { assert_equals(rects[0].left, 175); }, "#0 left");
+  test(()=> { assert_equals(rects[0].top, 35); }, "#0 top");
+  test(()=> { assert_equals(rects[0].width, 30); }, "#0 width");
+  test(()=> { assert_equals(rects[0].height, 90); }, "#0 height");
+  test(()=> { assert_equals(rects[1].left, 325); }, "#1 left");
+  test(()=> { assert_equals(rects[1].top, 25); }, "#1 top");
+  test(()=> { assert_equals(rects[1].width, 30); }, "#1 width");
+  test(()=> { assert_equals(rects[1].height, 30); }, "#1 height");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-003.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-003.html
new file mode 100644
index 0000000..df97d66
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-003.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<title>out-of-flow in relpos in multicol in multicol</title>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-getclientrects">
+<link rel="help" href="https://drafts.csswg.org/css-multicol/">
+<style>
+  body {
+    margin: 0;
+  }
+</style>
+<div style="columns:3; gap:50px; column-fill:auto; inline-size:400px; block-size:100px; background:yellow;">
+  <div style="block-size:50px;"></div>
+  <div style="columns:2; column-fill:auto; gap:0; background:cyan;">
+    <div style="position:relative; block-size:350px;">
+      <div style="block-size:160px;"></div>
+      <div id="elm" style="position:absolute; inline-size:10px; border:10px solid; block-size:150px;"></div>
+    </div>
+  </div>
+</div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  let rects = elm.getClientRects();
+  test(()=> { assert_equals(rects.length, 3); }, "Rectangle count");
+  test(()=> { assert_equals(rects[0].left, 150); }, "#0 left");
+  test(()=> { assert_equals(rects[0].top, 60); }, "#0 top");
+  test(()=> { assert_equals(rects[0].width, 30); }, "#0 width");
+  test(()=> { assert_equals(rects[0].height, 40); }, "#0 height");
+  test(()=> { assert_equals(rects[1].left, 200); }, "#1 left");
+  test(()=> { assert_equals(rects[1].top, 0); }, "#1 top");
+  test(()=> { assert_equals(rects[1].width, 30); }, "#1 width");
+  test(()=> { assert_equals(rects[1].height, 100); }, "#1 height");
+  test(()=> { assert_equals(rects[2].left, 300); }, "#2 left");
+  test(()=> { assert_equals(rects[2].top, 0); }, "#2 top");
+  test(()=> { assert_equals(rects[2].width, 30); }, "#2 width");
+  test(()=> { assert_equals(rects[2].height, 30); }, "#2 height");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-004.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-004.html
new file mode 100644
index 0000000..f251952
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-004.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<title>out-of-flow in relpos in multicol in multicol, vertical-rl</title>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-getclientrects">
+<link rel="help" href="https://drafts.csswg.org/css-multicol/">
+<style>
+  body {
+    margin: 0;
+  }
+</style>
+<div style="writing-mode:vertical-rl; columns:3; gap:50px; column-fill:auto; inline-size:400px; block-size:100px; background:yellow;">
+  <div style="block-size:50px;"></div>
+  <div style="columns:2; column-fill:auto; gap:0; background:cyan;">
+    <div style="position:relative; block-size:350px;">
+      <div style="block-size:160px;"></div>
+      <div id="elm" style="position:absolute; inline-size:10px; border:10px solid; block-size:150px;"></div>
+    </div>
+  </div>
+</div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  let rects = elm.getClientRects();
+  test(()=> { assert_equals(rects.length, 3); }, "Rectangle count");
+  test(()=> { assert_equals(rects[0].left, 0); }, "#0 left");
+  test(()=> { assert_equals(rects[0].top, 150); }, "#0 top");
+  test(()=> { assert_equals(rects[0].width, 40); }, "#0 width");
+  test(()=> { assert_equals(rects[0].height, 30); }, "#0 height");
+  test(()=> { assert_equals(rects[1].left, 0); }, "#1 left");
+  test(()=> { assert_equals(rects[1].top, 200); }, "#1 top");
+  test(()=> { assert_equals(rects[1].width, 100); }, "#1 width");
+  test(()=> { assert_equals(rects[1].height, 30); }, "#1 height");
+  test(()=> { assert_equals(rects[2].left, 70); }, "#2 left");
+  test(()=> { assert_equals(rects[2].top, 300); }, "#2 top");
+  test(()=> { assert_equals(rects[2].width, 30); }, "#2 width");
+  test(()=> { assert_equals(rects[2].height, 30); }, "#2 height");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt
index bb44d72f8..1cfb4eae 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt
@@ -2,7 +2,7 @@
 [FAIL] Can set 'font-weight' to a number: 0
   assert_equals: expected "CSSMathSum" but got "CSSUnitValue"
 [FAIL] Can set 'font-weight' to a number: -3.14
-  assert_approx_equals: expected -3.14 +/- 0.000001 but got -3
+  assert_approx_equals: expected -3.14 +/- 0.000001 but got 1
 [FAIL] Can set 'font-weight' to a number: 3.14
   assert_approx_equals: expected 3.14 +/- 0.000001 but got 3
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webcodecs/per-frame-qp-encoding.https.any.js b/third_party/blink/web_tests/external/wpt/webcodecs/per-frame-qp-encoding.https.any.js
index c4c49d8..3669edc6 100644
--- a/third_party/blink/web_tests/external/wpt/webcodecs/per-frame-qp-encoding.https.any.js
+++ b/third_party/blink/web_tests/external/wpt/webcodecs/per-frame-qp-encoding.https.any.js
@@ -11,7 +11,7 @@
     '?vp9_p0': {codec: 'vp09.00.10.08'},
     '?vp9_p2': {codec: 'vp09.02.10.10'},
     '?h264': {codec: 'avc1.42001E', avc: {format: 'annexb'}},
-    '?h265': {codec: 'hev1.1.6.L93.90', hev: {format: 'annexb'}}
+    '?h265': {codec: 'hev1.1.6.L93.90', hevc: {format: 'annexb'}}
   }[location.search];
   config.width = 320;
   config.height = 200;
diff --git a/third_party/blink/web_tests/platform/win/compositing/culling/filter-occlusion-alpha-large-expected.png b/third_party/blink/web_tests/platform/win/compositing/culling/filter-occlusion-alpha-large-expected.png
index b708a00..72ceb3b 100644
--- a/third_party/blink/web_tests/platform/win/compositing/culling/filter-occlusion-alpha-large-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/culling/filter-occlusion-alpha-large-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/fixed-background-after-style-recalc-expected.png b/third_party/blink/web_tests/platform/win/compositing/fixed-background-after-style-recalc-expected.png
index 6e86b33..03cc8aba 100644
--- a/third_party/blink/web_tests/platform/win/compositing/fixed-background-after-style-recalc-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/fixed-background-after-style-recalc-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/fixed-body-background-positioned-expected.png b/third_party/blink/web_tests/platform/win/compositing/fixed-body-background-positioned-expected.png
index bb9dfa0..301faaf 100644
--- a/third_party/blink/web_tests/platform/win/compositing/fixed-body-background-positioned-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/fixed-body-background-positioned-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/geometry/fixed-in-composited-expected.png b/third_party/blink/web_tests/platform/win/compositing/geometry/fixed-in-composited-expected.png
index 37cf17e..50fcb98 100644
--- a/third_party/blink/web_tests/platform/win/compositing/geometry/fixed-in-composited-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/geometry/fixed-in-composited-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/geometry/horizontal-scroll-composited-expected.png b/third_party/blink/web_tests/platform/win/compositing/geometry/horizontal-scroll-composited-expected.png
index 5882c81..84675fd2 100644
--- a/third_party/blink/web_tests/platform/win/compositing/geometry/horizontal-scroll-composited-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/geometry/horizontal-scroll-composited-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/geometry/tall-page-composited-expected.png b/third_party/blink/web_tests/platform/win/compositing/geometry/tall-page-composited-expected.png
index 2eb51e92..4699093c 100644
--- a/third_party/blink/web_tests/platform/win/compositing/geometry/tall-page-composited-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/geometry/tall-page-composited-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/geometry/video-fixed-scrolling-expected.png b/third_party/blink/web_tests/platform/win/compositing/geometry/video-fixed-scrolling-expected.png
index 98487be..8ea8663 100644
--- a/third_party/blink/web_tests/platform/win/compositing/geometry/video-fixed-scrolling-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/geometry/video-fixed-scrolling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png
index 7582792..39626da 100644
--- a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png
index 46449ec..7b2529a6 100644
--- a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png
index 06679f1..1f1a45e 100644
--- a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png
index b90b01f..dc35911 100644
--- a/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-copy-on-scroll-expected.png b/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-copy-on-scroll-expected.png
index b93b40a..11eb1354 100644
--- a/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-copy-on-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-copy-on-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-in-composited-layer-expected.png b/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-in-composited-layer-expected.png
index 80c9dbf5..9fb7df5 100644
--- a/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-in-composited-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/iframes/iframe-in-composited-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-fixed-transformed-element-expected.png b/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-fixed-transformed-element-expected.png
index bf05942..ad11b03 100644
--- a/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-fixed-transformed-element-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-fixed-transformed-element-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-grandchild-iframe-expected.png b/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-grandchild-iframe-expected.png
index 3b85754..fef91af 100644
--- a/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-grandchild-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/iframes/scroll-grandchild-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/img-layer-grow-expected.png b/third_party/blink/web_tests/platform/win/compositing/img-layer-grow-expected.png
index e4a68b4..2ba25ba 100644
--- a/third_party/blink/web_tests/platform/win/compositing/img-layer-grow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/img-layer-grow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-and-transform-expected.png b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-and-transform-expected.png
index 082f48a..f7b42c0 100644
--- a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-and-transform-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-and-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-scroll-expected.png b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-scroll-expected.png
index 2dacbb9..2afef598 100644
--- a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-under-transform-expected.png b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-under-transform-expected.png
index 082f48a..f7b42c0 100644
--- a/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-under-transform-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/layer-creation/fixed-position-under-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/layers-inside-overflow-scroll-expected.png b/third_party/blink/web_tests/platform/win/compositing/layers-inside-overflow-scroll-expected.png
index 7c72dd2..f7fec3df 100644
--- a/third_party/blink/web_tests/platform/win/compositing/layers-inside-overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/layers-inside-overflow-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/layout-width-change-expected.png b/third_party/blink/web_tests/platform/win/compositing/layout-width-change-expected.png
index 1e2f38a..c607d48 100644
--- a/third_party/blink/web_tests/platform/win/compositing/layout-width-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/layout-width-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-added-filters-expected.png b/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-added-filters-expected.png
index c2bfac3..a2b9134 100644
--- a/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-added-filters-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-added-filters-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-removed-filters-expected.png b/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-removed-filters-expected.png
index ba3084e..42ec153 100644
--- a/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-removed-filters-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/masks/mask-with-removed-filters-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/masks/masked-ancestor-expected.png b/third_party/blink/web_tests/platform/win/compositing/masks/masked-ancestor-expected.png
index c18d2cd..5996eb6 100644
--- a/third_party/blink/web_tests/platform/win/compositing/masks/masked-ancestor-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/masks/masked-ancestor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/masks/multiple-masks-expected.png b/third_party/blink/web_tests/platform/win/compositing/masks/multiple-masks-expected.png
index 92c9c12f..1a25c01 100644
--- a/third_party/blink/web_tests/platform/win/compositing/masks/multiple-masks-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/masks/multiple-masks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/masks/simple-composited-mask-expected.png b/third_party/blink/web_tests/platform/win/compositing/masks/simple-composited-mask-expected.png
index 9e0c42e4..93ce2a8 100644
--- a/third_party/blink/web_tests/platform/win/compositing/masks/simple-composited-mask-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/masks/simple-composited-mask-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png
index 79b5a988..fa23d92d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
index 960a61b..f018a58 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/fractional-sized-scrolling-layer-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/fractional-sized-scrolling-layer-expected.png
index 78e5537..ad9ad2c 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/fractional-sized-scrolling-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/fractional-sized-scrolling-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/image-load-overflow-scrollbars-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/image-load-overflow-scrollbars-expected.png
index ff63745..2b86c54 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/image-load-overflow-scrollbars-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/image-load-overflow-scrollbars-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-border-radius-clipping-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-border-radius-clipping-expected.png
index d24479c..536303b 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-border-radius-clipping-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-border-radius-clipping-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-expected.png
index 439018d..3784f2a6 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png
index 6d7ef35..e11272e0 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-rotation-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
index 3ee141f..7ca9bbd 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-scrolling-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-scrolling-expected.png
index be7cee7d..75fe494 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/nested-scrolling-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/nested-scrolling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png
index 3d97e3a..6d1b557 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-expected.png
index f16f960..53cd076a 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-with-local-image-background-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-with-local-image-background-expected.png
index be0dcfe5..d608744e 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-with-local-image-background-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/overflow-scroll-with-local-image-background-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png
index 300e870..1e44b2d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/remove-overflow-crash2-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/remove-overflow-crash2-expected.png
index b476763..ee57b7f 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/remove-overflow-crash2-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/remove-overflow-crash2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/scroll-ancestor-update-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/scroll-ancestor-update-expected.png
index 2ed47907..177164d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/scroll-ancestor-update-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/scroll-ancestor-update-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbar-painting-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbar-painting-expected.png
index aca8cf8..3736223 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbar-painting-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbar-painting-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbars-with-clipped-owner-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbars-with-clipped-owner-expected.png
index e45ccbb..0e38fe5d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbars-with-clipped-owner-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/scrollbars-with-clipped-owner-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/tiled-mask-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/tiled-mask-expected.png
index 3ab48f4b..acaca6d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/tiled-mask-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/tiled-mask-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/universal-accelerated-overflow-scroll-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/universal-accelerated-overflow-scroll-expected.png
index e22056a8..000dafd 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/universal-accelerated-overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/universal-accelerated-overflow-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
index f410974..089f1e7 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overlap-blending/children-opacity-huge-expected.png b/third_party/blink/web_tests/platform/win/compositing/overlap-blending/children-opacity-huge-expected.png
index 13b2dd1..ed12b04 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overlap-blending/children-opacity-huge-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overlap-blending/children-opacity-huge-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/overlap-blending/reflection-opacity-huge-expected.png b/third_party/blink/web_tests/platform/win/compositing/overlap-blending/reflection-opacity-huge-expected.png
index d06bc3a..e80c274 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overlap-blending/reflection-opacity-huge-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/overlap-blending/reflection-opacity-huge-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/perspective-interest-rect-expected.png b/third_party/blink/web_tests/platform/win/compositing/perspective-interest-rect-expected.png
index e391926..31b3904 100644
--- a/third_party/blink/web_tests/platform/win/compositing/perspective-interest-rect-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/perspective-interest-rect-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/reflections/nested-reflection-on-overflow-expected.png b/third_party/blink/web_tests/platform/win/compositing/reflections/nested-reflection-on-overflow-expected.png
index b1dacd2..ff625a4 100644
--- a/third_party/blink/web_tests/platform/win/compositing/reflections/nested-reflection-on-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/reflections/nested-reflection-on-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-expected.png
index 6c5dbba..0ec364ee 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png
index 216842c..9958d5d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-expected.png
index 6c5dbba..0ec364ee 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png
index 216842c..9958d5d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-expected.png
index 1509711..70786e0 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png
index 59494692..536805b 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-expected.png
index 1509711..70786e0 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png
index 59494692..536805b 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-invalidation-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-invalidation-expected.png
index 14d11d8e..5638a5e 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-invalidation-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-invalidation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-scrolling-expected.png b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-scrolling-expected.png
index bd442a2..cd43218 100644
--- a/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-scrolling-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/rtl/rtl-overflow-scrolling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/scroll-with-ancestor-clip-expected.png b/third_party/blink/web_tests/platform/win/compositing/scroll-with-ancestor-clip-expected.png
index 20f05360..a79e47d 100644
--- a/third_party/blink/web_tests/platform/win/compositing/scroll-with-ancestor-clip-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/scroll-with-ancestor-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/self-painting-layers-expected.png b/third_party/blink/web_tests/platform/win/compositing/self-painting-layers-expected.png
index 9d29df6..d57a6ce 100644
--- a/third_party/blink/web_tests/platform/win/compositing/self-painting-layers-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/self-painting-layers-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/squashing/frame-clip-squashed-scrolled-expected.png b/third_party/blink/web_tests/platform/win/compositing/squashing/frame-clip-squashed-scrolled-expected.png
index 999d77c..a6cdac70 100644
--- a/third_party/blink/web_tests/platform/win/compositing/squashing/frame-clip-squashed-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/squashing/frame-clip-squashed-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/squashing/vertical-writing-mode-squashed-expected.png b/third_party/blink/web_tests/platform/win/compositing/squashing/vertical-writing-mode-squashed-expected.png
index ac3cb91..dc09bcd 100644
--- a/third_party/blink/web_tests/platform/win/compositing/squashing/vertical-writing-mode-squashed-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/squashing/vertical-writing-mode-squashed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/basic/comments-expected.png b/third_party/blink/web_tests/platform/win/css1/basic/comments-expected.png
index 78a9d8a..8a0ceb8 100644
--- a/third_party/blink/web_tests/platform/win/css1/basic/comments-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/basic/comments-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/basic/containment-expected.png b/third_party/blink/web_tests/platform/win/css1/basic/containment-expected.png
index 3f62457b..2f71c7b 100644
--- a/third_party/blink/web_tests/platform/win/css1/basic/containment-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/basic/containment-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/basic/id_as_selector-expected.png b/third_party/blink/web_tests/platform/win/css1/basic/id_as_selector-expected.png
index c5e1619a..b8aa123 100644
--- a/third_party/blink/web_tests/platform/win/css1/basic/id_as_selector-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/basic/id_as_selector-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border-expected.png
index e1839bc..9e67344 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom-expected.png
index 91920f7..9cc6caa 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom_width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom_width-expected.png
index f2d71fb..eeb54f9b6 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom_width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_bottom_width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_left-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_left-expected.png
index d3a2b1f..d1894de 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_left-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_left-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_left_width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_left_width-expected.png
index 875d582..7e8d3ad 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_left_width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_left_width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_inline-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_inline-expected.png
index b509000..f4abc92 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_inline-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_width-expected.png
index dcc99352a..8a1fbe4a 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_right_width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_style-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_style-expected.png
index b366ff48..4db42f1 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_style-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_style-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_top-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_top-expected.png
index cadf1a4..82767c0 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_top-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_top-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_top_width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_top_width-expected.png
index 4a9322a4..69448a8 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_top_width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_top_width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/border_width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/border_width-expected.png
index 1cd56ea..8a80b51 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/border_width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/border_width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/clear-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/clear-expected.png
index 6628a1d7..03ecaf0 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/clear-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/clear-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/float_elements_in_series-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/float_elements_in_series-expected.png
index 38ebd9e..d3f287d 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/float_elements_in_series-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/float_elements_in_series-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/float_margin-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/float_margin-expected.png
index 9b84abe..41ba51e 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/float_margin-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/float_margin-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/float_on_text_elements-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/float_on_text_elements-expected.png
index 1a12142..2169397 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/float_on_text_elements-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/float_on_text_elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/height-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/height-expected.png
index ec5b181..88a2f8b 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/height-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_bottom-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_bottom-expected.png
index 365fdbab..b8d0ca8 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_bottom-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_bottom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_left-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_left-expected.png
index 0c4f5368..cc711de0 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_left-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_left-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_top-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_top-expected.png
index 8984743..9310219 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/margin_top-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/margin_top-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding-expected.png
index e7d9cb8..9e581ba 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_bottom-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_bottom-expected.png
index 44e1ea1..ad2d363 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_bottom-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_bottom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_inline-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_inline-expected.png
index 155356fe..851c75f8 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_inline-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_left-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_left-expected.png
index 559d3c2..5864a56 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_left-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_left-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_right-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_right-expected.png
index c1078b2..73cce0c4 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_right-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_right-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_top-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_top-expected.png
index 91db8ce..8c60118 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/padding_top-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/padding_top-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/box_properties/width-expected.png b/third_party/blink/web_tests/platform/win/css1/box_properties/width-expected.png
index e5d240ae3..274e832 100644
--- a/third_party/blink/web_tests/platform/win/css1/box_properties/width-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/box_properties/width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/cascade/cascade_order-expected.png b/third_party/blink/web_tests/platform/win/css1/cascade/cascade_order-expected.png
index acd49298..20a5266 100644
--- a/third_party/blink/web_tests/platform/win/css1/cascade/cascade_order-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/cascade/cascade_order-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/classification/display-expected.png b/third_party/blink/web_tests/platform/win/css1/classification/display-expected.png
index 2d377cd..bfd46e7d 100644
--- a/third_party/blink/web_tests/platform/win/css1/classification/display-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/classification/display-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/classification/list_style_type-expected.png b/third_party/blink/web_tests/platform/win/css1/classification/list_style_type-expected.png
index 1f6b56b..a1521d27 100644
--- a/third_party/blink/web_tests/platform/win/css1/classification/list_style_type-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/classification/list_style_type-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/color_and_background/background-expected.png b/third_party/blink/web_tests/platform/win/css1/color_and_background/background-expected.png
index 0ba2278..718aebe 100644
--- a/third_party/blink/web_tests/platform/win/css1/color_and_background/background-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/color_and_background/background-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/color_and_background/background_position-expected.png b/third_party/blink/web_tests/platform/win/css1/color_and_background/background_position-expected.png
index a09fea6..cabdd84a 100644
--- a/third_party/blink/web_tests/platform/win/css1/color_and_background/background_position-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/color_and_background/background_position-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/conformance/forward_compatible_parsing-expected.png b/third_party/blink/web_tests/platform/win/css1/conformance/forward_compatible_parsing-expected.png
index d2b4afd9..18cfdb2b 100644
--- a/third_party/blink/web_tests/platform/win/css1/conformance/forward_compatible_parsing-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/conformance/forward_compatible_parsing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/font_properties/font-expected.png b/third_party/blink/web_tests/platform/win/css1/font_properties/font-expected.png
index e93c383..d30f3110 100644
--- a/third_party/blink/web_tests/platform/win/css1/font_properties/font-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/font_properties/font-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/font_properties/font_family-expected.png b/third_party/blink/web_tests/platform/win/css1/font_properties/font_family-expected.png
index aa8b8499..7d00d62 100644
--- a/third_party/blink/web_tests/platform/win/css1/font_properties/font_family-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/font_properties/font_family-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/font_properties/font_size-expected.png b/third_party/blink/web_tests/platform/win/css1/font_properties/font_size-expected.png
index aa2c8b4d..f0104b7c 100644
--- a/third_party/blink/web_tests/platform/win/css1/font_properties/font_size-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/font_properties/font_size-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/font_properties/font_weight-expected.png b/third_party/blink/web_tests/platform/win/css1/font_properties/font_weight-expected.png
index fc915a7..269ec39 100644
--- a/third_party/blink/web_tests/platform/win/css1/font_properties/font_weight-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/font_properties/font_weight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/formatting_model/floating_elements-expected.png b/third_party/blink/web_tests/platform/win/css1/formatting_model/floating_elements-expected.png
index 10c0ebf..94f5ffb 100644
--- a/third_party/blink/web_tests/platform/win/css1/formatting_model/floating_elements-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/formatting_model/floating_elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/formatting_model/height_of_lines-expected.png b/third_party/blink/web_tests/platform/win/css1/formatting_model/height_of_lines-expected.png
index 52b4ffb..fea23fb 100644
--- a/third_party/blink/web_tests/platform/win/css1/formatting_model/height_of_lines-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/formatting_model/height_of_lines-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/formatting_model/inline_elements-expected.png b/third_party/blink/web_tests/platform/win/css1/formatting_model/inline_elements-expected.png
index 303e4f2..327e4467 100644
--- a/third_party/blink/web_tests/platform/win/css1/formatting_model/inline_elements-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/formatting_model/inline_elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/formatting_model/replaced_elements-expected.png b/third_party/blink/web_tests/platform/win/css1/formatting_model/replaced_elements-expected.png
index 4472f84c..c224d22 100644
--- a/third_party/blink/web_tests/platform/win/css1/formatting_model/replaced_elements-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/formatting_model/replaced_elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/formatting_model/vertical_formatting-expected.png b/third_party/blink/web_tests/platform/win/css1/formatting_model/vertical_formatting-expected.png
index 41b1d0d..75f749a 100644
--- a/third_party/blink/web_tests/platform/win/css1/formatting_model/vertical_formatting-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/formatting_model/vertical_formatting-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/pseudo/anchor-expected.png b/third_party/blink/web_tests/platform/win/css1/pseudo/anchor-expected.png
index a2a6376..17a1620 100644
--- a/third_party/blink/web_tests/platform/win/css1/pseudo/anchor-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/pseudo/anchor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/pseudo/firstletter-expected.png b/third_party/blink/web_tests/platform/win/css1/pseudo/firstletter-expected.png
index 2ab57c4..b76466a 100644
--- a/third_party/blink/web_tests/platform/win/css1/pseudo/firstletter-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/pseudo/firstletter-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/pseudo/firstline-expected.png b/third_party/blink/web_tests/platform/win/css1/pseudo/firstline-expected.png
index 5ddec38b..1e06aab 100644
--- a/third_party/blink/web_tests/platform/win/css1/pseudo/firstline-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/pseudo/firstline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/pseudo/multiple_pseudo_elements-expected.png b/third_party/blink/web_tests/platform/win/css1/pseudo/multiple_pseudo_elements-expected.png
index 4b08639..ac1a9c5 100644
--- a/third_party/blink/web_tests/platform/win/css1/pseudo/multiple_pseudo_elements-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/pseudo/multiple_pseudo_elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/pseudo/pseudo_elements_in_selectors-expected.png b/third_party/blink/web_tests/platform/win/css1/pseudo/pseudo_elements_in_selectors-expected.png
index 78b96a8..286b774 100644
--- a/third_party/blink/web_tests/platform/win/css1/pseudo/pseudo_elements_in_selectors-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/pseudo/pseudo_elements_in_selectors-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/letter_spacing-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/letter_spacing-expected.png
index 84fabd4..74ee4ca3 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/letter_spacing-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/letter_spacing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/line_height-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/line_height-expected.png
index a7400240..3f506c3 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/line_height-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/line_height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/text_decoration-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/text_decoration-expected.png
index a08a194..e298fd3 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/text_decoration-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/text_decoration-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/text_indent-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/text_indent-expected.png
index dda7b09..997f298 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/text_indent-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/text_indent-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/text_transform-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/text_transform-expected.png
index 7d24ce8..ac54391 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/text_transform-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/text_transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/vertical_align-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/vertical_align-expected.png
index cdaf683..3b6b3479 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/vertical_align-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/vertical_align-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/text_properties/word_spacing-expected.png b/third_party/blink/web_tests/platform/win/css1/text_properties/word_spacing-expected.png
index 34356aaf..f9aa144 100644
--- a/third_party/blink/web_tests/platform/win/css1/text_properties/word_spacing-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/text_properties/word_spacing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css1/units/length_units-expected.png b/third_party/blink/web_tests/platform/win/css1/units/length_units-expected.png
index 20e71159..1c5751a 100644
--- a/third_party/blink/web_tests/platform/win/css1/units/length_units-expected.png
+++ b/third_party/blink/web_tests/platform/win/css1/units/length_units-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t0803-c5502-mrgn-r-02-c-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t0803-c5502-mrgn-r-02-c-expected.png
index 9e10255e..dceb5f2 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t0803-c5502-mrgn-r-02-c-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t0803-c5502-mrgn-r-02-c-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t0803-c5505-mrgn-02-c-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t0803-c5505-mrgn-02-c-expected.png
index 9db1998..414d69f 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t0803-c5505-mrgn-02-c-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t0803-c5505-mrgn-02-c-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t080301-c411-vt-mrgn-00-b-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t080301-c411-vt-mrgn-00-b-expected.png
index dca8cce..88571f5 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t080301-c411-vt-mrgn-00-b-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t080301-c411-vt-mrgn-00-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png
index 8af00efe..799335c 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t1002-c5523-width-02-b-g-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t1002-c5523-width-02-b-g-expected.png
index ace3e1f0..0f6562e 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t1002-c5523-width-02-b-g-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t1002-c5523-width-02-b-g-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png
index 20b5c8b..c61237c4 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css2.1/t140201-c537-bgfxps-00-c-ag-expected.png b/third_party/blink/web_tests/platform/win/css2.1/t140201-c537-bgfxps-00-c-ag-expected.png
index 0c5e4b7e..8d8cd42 100644
--- a/third_party/blink/web_tests/platform/win/css2.1/t140201-c537-bgfxps-00-c-ag-expected.png
+++ b/third_party/blink/web_tests/platform/win/css2.1/t140201-c537-bgfxps-00-c-ag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-auto1-expected.png b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-auto1-expected.png
index 93607e52..50370ace 100644
--- a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-auto1-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-auto1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-border-expected.png b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-border-expected.png
index b14648e..efa2098 100644
--- a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-content-expected.png b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-content-expected.png
index 9eceaa7..6f20e2d5 100644
--- a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-padding-expected.png b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-padding-expected.png
index 2af84e9f..d8a0905 100644
--- a/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-padding-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/background/background-repeat-round-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/blending/background-blend-mode-data-uri-svg-image-expected.png b/third_party/blink/web_tests/platform/win/css3/blending/background-blend-mode-data-uri-svg-image-expected.png
index c99f082..0b712787 100644
--- a/third_party/blink/web_tests/platform/win/css3/blending/background-blend-mode-data-uri-svg-image-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/blending/background-blend-mode-data-uri-svg-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-expected.png b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-expected.png
index 6e17d7e0..d967bc2 100644
--- a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-parents-expected.png b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-parents-expected.png
index 45f55f6c..33a748a 100644
--- a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-parents-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-parents-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-self-expected.png b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-self-expected.png
index c0e3da16..790c92f 100644
--- a/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-self-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/filters/blur-filter-page-scroll-self-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/flexbox/button-expected.png b/third_party/blink/web_tests/platform/win/css3/flexbox/button-expected.png
index 7af90dc0..d1c25f9 100644
--- a/third_party/blink/web_tests/platform/win/css3/flexbox/button-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/flexbox/button-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/flexbox/flexbox-baseline-margins-expected.png b/third_party/blink/web_tests/platform/win/css3/flexbox/flexbox-baseline-margins-expected.png
index a7defc0..544c1a9 100644
--- a/third_party/blink/web_tests/platform/win/css3/flexbox/flexbox-baseline-margins-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/flexbox/flexbox-baseline-margins-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-auto1-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-auto1-expected.png
index b7c2b4cb..de5cf25 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-auto1-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-auto1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-border-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-border-expected.png
index 5590118..cfa4060 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-content-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-content-expected.png
index ddad3c66..8742b323 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-padding-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-padding-expected.png
index ee2352b..a47abdbf 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-padding-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-round-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-border-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-border-expected.png
index 14b1ab86..5a826c5b 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-content-expected.png b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-content-expected.png
index ee67404..4dd305fc 100644
--- a/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/css3/masking/mask-repeat-space-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
index 055b4f6..e2b2755 100644
--- a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png
index 1126123..3fc6584 100644
--- a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-inherit-color-bug-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-inherit-color-bug-expected.png
index 6976101c..e5381ae 100644
--- a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-inherit-color-bug-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-inherit-color-bug-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-leakage-transforms-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-leakage-transforms-expected.png
index 07f59d3..70dff72 100644
--- a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-leakage-transforms-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-leakage-transforms-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/basic/align-attribute-ltr-expected.png b/third_party/blink/web_tests/platform/win/fast/block/basic/align-attribute-ltr-expected.png
index f578160..dd1a7c73 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/basic/align-attribute-ltr-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/basic/align-attribute-ltr-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/basic/fieldset-stretch-to-legend-expected.png b/third_party/blink/web_tests/platform/win/fast/block/basic/fieldset-stretch-to-legend-expected.png
index b28c282..6eb711f 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/basic/fieldset-stretch-to-legend-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/basic/fieldset-stretch-to-legend-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/008-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/008-expected.png
index 9310a91..fe94f17 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/008-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/008-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/021-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/021-expected.png
index 613c871..6327192 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/021-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/021-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/025-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/025-expected.png
index 85155bf..5635a51b 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/025-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/025-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/026-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/026-expected.png
index f45b3f7a..83d56f9 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/026-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/026-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/027-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/027-expected.png
index 85155bf..5635a51b 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/027-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/027-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/028-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/028-expected.png
index f45b3f7a..83d56f9 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/028-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/028-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/032-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/032-expected.png
index 13dc5bbf..d0f6067 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/032-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/032-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/033-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/033-expected.png
index 7b035bdc..ae22c5b4 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/033-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/033-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/035-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/035-expected.png
index 9cc7ed0..16127b6c 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/035-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/035-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/br-with-clear-2-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/br-with-clear-2-expected.png
index bf9e4b1..6004828 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/br-with-clear-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/br-with-clear-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/centered-float-avoidance-complexity-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/centered-float-avoidance-complexity-expected.png
index 7404cebf..e29bbf9 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/centered-float-avoidance-complexity-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/centered-float-avoidance-complexity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/float-avoidance-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/float-avoidance-expected.png
index c41d7be..4ac4238 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/float-avoidance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/float-avoidance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/nested-clearance-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/nested-clearance-expected.png
index 33261847..7b49b1d93 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/nested-clearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/nested-clearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/float/relative-painted-twice-expected.png b/third_party/blink/web_tests/platform/win/fast/block/float/relative-painted-twice-expected.png
index 01d87e7..701b636e 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/float/relative-painted-twice-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/float/relative-painted-twice-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/103-expected.png b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/103-expected.png
index bfaa64bd..90be770 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/103-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/103-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/104-expected.png b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/104-expected.png
index 2437bd4a..3bcf482 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/104-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/104-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/empty-clear-blocks-expected.png b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/empty-clear-blocks-expected.png
index 1e28741..e251f88 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/empty-clear-blocks-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/margin-collapse/empty-clear-blocks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/047-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/047-expected.png
index 2b38761..af6ca0d 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/047-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/047-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/051-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/051-expected.png
index 663fc7f..4ba62e0 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/051-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/051-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/055-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/055-expected.png
index d63b852..1cda778 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/055-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/055-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/007-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/007-expected.png
index 3dd7f46..1dd5584 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/007-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-lr/005-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-lr/005-expected.png
index ae7d227..9138b733 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-lr/005-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-lr/005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-rl/005-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-rl/005-expected.png
index b9941cc9..21578c97 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-rl/005-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/auto/vertical-rl/005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/fixed-positioning-scrollbar-bug-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/fixed-positioning-scrollbar-bug-expected.png
index 485f7b7c..ce29fb89 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/fixed-positioning-scrollbar-bug-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/fixed-positioning-scrollbar-bug-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-block-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-block-expected.png
index 5759a90..f581ed5 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-block-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-block-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-expected.png
index a9f1cb1..efeb477 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-float-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-float-expected.png
index cfa92a2..2e8ff54 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-float-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/relative-overflow-replaced-float-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-lr/002-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-lr/002-expected.png
index 347f987..26c7255 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-lr/002-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-lr/002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-rl/002-expected.png b/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-rl/002-expected.png
index c5351a0..1b1a9b8 100644
--- a/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-rl/002-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/block/positioning/vertical-rl/002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-expected.png
index 3b2836fe..ba4ed86 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-xhtml-expected.png
index 3b2836fe..ba4ed86 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/001-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-xhtml-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/002-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-declarative-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-declarative-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-declarative-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-declarative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-xhtml-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/003-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-declarative-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-declarative-expected.png
index eac8c8b..b20d6ef 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-declarative-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-declarative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-expected.png
index eac8c8b..b20d6ef 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-xhtml-expected.png
index eac8c8b..b20d6ef 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/004-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-declarative-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-declarative-expected.png
index 43e299d..5fff027 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-declarative-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-declarative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-expected.png
index 43e299d..5fff027 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-xhtml-expected.png
index 43e299d..5fff027 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/005-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-declarative-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-declarative-expected.png
index caa1ed5..713de26 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-declarative-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-declarative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-expected.png
index caa1ed5..713de26 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-xhtml-expected.png
index caa1ed5..713de26 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/006-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-declarative-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-declarative-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-declarative-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-declarative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-xhtml-expected.png b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-xhtml-expected.png
index 881e6b6..dee94fc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-xhtml-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/body-propagation/overflow/007-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-expected.png
index c002492..a231f55 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-01-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-01-expected.png
index 9bcc7100..d11d7e7 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-01-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-01-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-02-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-02-expected.png
index d18e9e1..bd3a3b7 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-02-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-02-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-03-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-03-expected.png
index af0dcd9..9e13f0bb 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-03-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/rtl-border-03-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/box-shadow/basic-shadows-expected.png b/third_party/blink/web_tests/platform/win/fast/box-shadow/basic-shadows-expected.png
index a462662..86785cf4 100644
--- a/third_party/blink/web_tests/platform/win/fast/box-shadow/basic-shadows-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/box-shadow/basic-shadows-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/box-sizing/box-sizing-expected.png b/third_party/blink/web_tests/platform/win/fast/box-sizing/box-sizing-expected.png
index cf5a8b1b..46a90eae 100644
--- a/third_party/blink/web_tests/platform/win/fast/box-sizing/box-sizing-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/box-sizing/box-sizing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-expected.png b/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-expected.png
index 131928b..011dcb3 100644
--- a/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-shadow-expected.png
index 678af66..985d9db 100644
--- a/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/canvas/canvas-composite-video-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/clip/014-expected.png b/third_party/blink/web_tests/platform/win/fast/clip/014-expected.png
index a04d565..9e520cb 100644
--- a/third_party/blink/web_tests/platform/win/fast/clip/014-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/clip/014-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css-generated-content/014-expected.png b/third_party/blink/web_tests/platform/win/fast/css-generated-content/014-expected.png
index f799ebe1..e4693d5 100644
--- a/third_party/blink/web_tests/platform/win/fast/css-generated-content/014-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css-generated-content/014-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css-generated-content/table-parts-before-and-after-expected.png b/third_party/blink/web_tests/platform/win/fast/css-generated-content/table-parts-before-and-after-expected.png
index 4370437..b8ce817 100644
--- a/third_party/blink/web_tests/platform/win/fast/css-generated-content/table-parts-before-and-after-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css-generated-content/table-parts-before-and-after-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/border-height-expected.png b/third_party/blink/web_tests/platform/win/fast/css/border-height-expected.png
index 1b6472c..a23eff4 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/border-height-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/border-height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/color-correction-backgrounds-and-text-expected.png b/third_party/blink/web_tests/platform/win/fast/css/color-correction-backgrounds-and-text-expected.png
index e953d845..a89beef2 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/color-correction-backgrounds-and-text-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/color-correction-backgrounds-and-text-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/color-correction-on-background-image-expected.png b/third_party/blink/web_tests/platform/win/fast/css/color-correction-on-background-image-expected.png
index d5d9521..065ad19 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/color-correction-on-background-image-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/color-correction-on-background-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/hsl-color-expected.png b/third_party/blink/web_tests/platform/win/fast/css/hsl-color-expected.png
index 52c46a9..e587e123 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/hsl-color-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/hsl-color-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/line-height-overflow-expected.png b/third_party/blink/web_tests/platform/win/fast/css/line-height-overflow-expected.png
index a102842e..8ad9033 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/line-height-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/line-height-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/nested-rounded-corners-expected.png b/third_party/blink/web_tests/platform/win/fast/css/nested-rounded-corners-expected.png
index 182f2b1..e939d4f 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/nested-rounded-corners-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/nested-rounded-corners-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/only-of-type-pseudo-class-expected.png b/third_party/blink/web_tests/platform/win/fast/css/only-of-type-pseudo-class-expected.png
index 7375871..577b11b 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/only-of-type-pseudo-class-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/only-of-type-pseudo-class-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.png b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.png
index 2a047f71..357ce5c9 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-justify-expected.png b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-justify-expected.png
index 136d81b..2522f72 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-justify-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-justify-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.png b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.png
index 44b682f..a4069d85 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.png b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.png
index e54797d3..52357b8 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png
index 25df9f7b..b24707a5 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.png b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.png
index 25df9f7b..b24707a5 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.png b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.png
index 25df9f7b..b24707a5 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png
index 25df9f7b..b24707a5 100644
--- a/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-grammar-error-expected.png b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-grammar-error-expected.png
index 4a99888..6d50e40 100644
--- a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-grammar-error-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-grammar-error-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-spelling-error-expected.png b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-spelling-error-expected.png
index bdecae6b..5048506 100644
--- a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-spelling-error-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-line-spelling-error-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
index 6c04d97..d3b2a90e 100644
--- a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
index 21b4770..781e308 100644
--- a/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-expected.png b/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-expected.png
index 19d6895b..fba9702 100644
--- a/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-horizontal-expected.png b/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-horizontal-expected.png
index 3c47916..3897797 100644
--- a/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-horizontal-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/deprecated-flexbox/009-horizontal-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/34176-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/34176-expected.png
index 3550087..015f1817 100644
--- a/third_party/blink/web_tests/platform/win/fast/dom/34176-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/dom/34176-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png
index d626ab41c..4a1ac8ce 100644
--- a/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png
index 7c596f5..88544241 100644
--- a/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png
index f454e96..f1ade1b 100644
--- a/third_party/blink/web_tests/platform/win/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dynamic/anchor-lock-expected.png b/third_party/blink/web_tests/platform/win/fast/dynamic/anchor-lock-expected.png
index 3d14409..1c2ce5e 100644
--- a/third_party/blink/web_tests/platform/win/fast/dynamic/anchor-lock-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/dynamic/anchor-lock-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png
index e56df41..855253a 100644
--- a/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/button-default-title-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/button-default-title-expected.png
index d146c3f..323f761 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/button-default-title-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/button-default-title-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/file/file-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/file/file-appearance-basic-expected.png
index 9b5d197..4655e9f3c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/file/file-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/file/file-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
index 2537258..933e2be 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
index 62b68a0..7017520 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
index bbb93850..7cf9148 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/dynamic-color-scheme-change-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/dynamic-color-scheme-change-expected.png
index cb5f5e3..478f6a5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/dynamic-color-scheme-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/dynamic-color-scheme-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
index 7d06ffd..55b4d654 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
index 30df1d5..81e94e1d 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
index ad7ce0f..cf01f708 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 523290b..40a9cde 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
index f7d449e..b3b72aeb 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
index 066a3da3..433ad09 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/control-clip-overflow-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/control-clip-overflow-expected.png
index 2bb5843..00410384 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/control-clip-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/control-clip-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/fieldset/fieldset-align-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/fieldset/fieldset-align-expected.png
index 3b40935c..33a9e1f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/fieldset/fieldset-align-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/fieldset/fieldset-align-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-scrolled-focus-ring-expected.png
index bb57fa41..0c6ebb3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-scrolled-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-scrolled-focus-ring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-with-scrollbar-expected.png
index 6833cd7..3b30be0 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-with-scrollbar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/focus-rect/textarea-with-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/form-element-geometry-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/form-element-geometry-expected.png
index fa407f3..dd6123c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/form-element-geometry-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/form-element-geometry-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-height-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-height-expected.png
index ba1d2c0c4..0b06c7e6f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-height-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-width-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-width-expected.png
index 4d90893..9e0dec0a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-width-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/huge-mac-input-clamped-width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
index 0ca0274..0b79a05e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-vertical-expected.png
index a903fe8..aa5d212 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/disabled-select-change-index-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/disabled-select-change-index-expected.png
index 74e5efa..34393f3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/disabled-select-change-index-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/disabled-select-change-index-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
index 9c80e4f..e44fe50 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-bidi-align-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-bidi-align-expected.png
index 6468c69..9f7f1e50 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-bidi-align-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-bidi-align-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-clip-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-clip-expected.png
index f95b6dc..0360f5d 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-clip-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-scrollbar-incremental-load-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-scrollbar-incremental-load-expected.png
index 5016102f..a1a83c4 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-scrollbar-incremental-load-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-scrollbar-incremental-load-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-width-change-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-width-change-expected.png
index 5666a98..bb6c209 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-width-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-width-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-with-display-none-option-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-with-display-none-option-expected.png
index e504892e..5c4b5a6a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-with-display-none-option-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-with-display-none-option-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
index ea01d35..e533f67 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/optgroup-rendering-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/optgroup-rendering-expected.png
index 6a47b3a..a825606 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/optgroup-rendering-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/optgroup-rendering-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/option-strip-whitespace-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/option-strip-whitespace-expected.png
index caa0408..043d7d5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/option-strip-whitespace-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/option-strip-whitespace-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-appearance-multiple-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-appearance-multiple-expected.png
index 153299b..92ec6e8 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-appearance-multiple-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-appearance-multiple-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-block-background-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-block-background-expected.png
index 07fb103..0a5dc8e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-block-background-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-block-background-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-listbox-size-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-listbox-size-expected.png
index 6a959dc..49434ff 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-listbox-size-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-listbox-size-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-popup-to-listbox-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-popup-to-listbox-expected.png
index 8f420862..e547d99 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-popup-to-listbox-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-change-popup-to-listbox-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-initial-position-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-initial-position-expected.png
index 32e6bdb..5f307fc 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-initial-position-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-initial-position-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-item-background-clip-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-item-background-clip-expected.png
index 9195c78..1f3c6058c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-item-background-clip-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-item-background-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-list-box-with-height-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-list-box-with-height-expected.png
index 7381a16..24af6e4 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-list-box-with-height-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-list-box-with-height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
index 30297b1..38de922 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-multiple-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-multiple-rtl-expected.png
index af05a04e..359eaf8 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-multiple-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-multiple-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-expected.png
index bb13816e..6d531ac 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-inherited-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-inherited-expected.png
index 8c06df7cf3..8d380e2 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-inherited-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-overflow-scroll-inherited-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
index f38d93f..fd02bc2 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-table-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-table-expected.png
index 25b8660..b48ff0f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-table-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-table-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-expected.png
index 429da62..b7921aaa 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-quirks-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-quirks-expected.png
index a73c77e..305372e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-quirks-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/basic-textareas-quirks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textAreaLineHeight-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textAreaLineHeight-expected.png
index 07b7ac9..4daab98 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textAreaLineHeight-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textAreaLineHeight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scroll-height-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scroll-height-expected.png
index 215c86f..dd0df29b 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scroll-height-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scroll-height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
index 5e3f1b97..b18bf14 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
index 8446365..132a1bc 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
index 957927b7..7849e06 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/frame-scrolling-attribute-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/frame-scrolling-attribute-expected.png
index 257f054..80dd0080 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/frame-scrolling-attribute-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/frame-scrolling-attribute-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/iframe-scaling-with-scroll-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/iframe-scaling-with-scroll-expected.png
index 5f26139..a110f147 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/iframe-scaling-with-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/iframe-scaling-with-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/iframe-scrolling-attribute-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/iframe-scrolling-attribute-expected.png
index dca944e..e245262 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/iframe-scrolling-attribute-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/iframe-scrolling-attribute-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/invalid-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/invalid-expected.png
index d007b6c..2a7555e 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/invalid-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/invalid-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/onlyCommentInIFrame-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/onlyCommentInIFrame-expected.png
index c82e23a..938541c25 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/onlyCommentInIFrame-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/onlyCommentInIFrame-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/frames/valid-expected.png b/third_party/blink/web_tests/platform/win/fast/frames/valid-expected.png
index d007b6c..2a7555e 100644
--- a/third_party/blink/web_tests/platform/win/fast/frames/valid-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/frames/valid-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-decrease-device-scale-factor-expected.png b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-decrease-device-scale-factor-expected.png
index 4a48833..89a09bb4 100644
--- a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-decrease-device-scale-factor-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-decrease-device-scale-factor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png
index 781616d..ee6a71a 100644
--- a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline-block/contenteditable-baseline-expected.png b/third_party/blink/web_tests/platform/win/fast/inline-block/contenteditable-baseline-expected.png
index fb5fd33..1962a2e 100644
--- a/third_party/blink/web_tests/platform/win/fast/inline-block/contenteditable-baseline-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/inline-block/contenteditable-baseline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline-block/tricky-baseline-expected.png b/third_party/blink/web_tests/platform/win/fast/inline-block/tricky-baseline-expected.png
index 2fb391d8..056ad852 100644
--- a/third_party/blink/web_tests/platform/win/fast/inline-block/tricky-baseline-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/inline-block/tricky-baseline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/inline-borders-with-bidi-override-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/inline-borders-with-bidi-override-expected.png
index 151ee19c..fb48c14 100644
--- a/third_party/blink/web_tests/platform/win/fast/inline/inline-borders-with-bidi-override-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/inline/inline-borders-with-bidi-override-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/inline-continuation-borders-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/inline-continuation-borders-expected.png
index 7c4c269..a842d392 100644
--- a/third_party/blink/web_tests/platform/win/fast/inline/inline-continuation-borders-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/inline/inline-continuation-borders-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/layers/overflow-scroll-auto-switch-expected.png b/third_party/blink/web_tests/platform/win/fast/layers/overflow-scroll-auto-switch-expected.png
index 9121599..555b9ba 100644
--- a/third_party/blink/web_tests/platform/win/fast/layers/overflow-scroll-auto-switch-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/layers/overflow-scroll-auto-switch-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/layers/scroll-rect-to-visible-expected.png b/third_party/blink/web_tests/platform/win/fast/layers/scroll-rect-to-visible-expected.png
index df9c156..5197c21 100644
--- a/third_party/blink/web_tests/platform/win/fast/layers/scroll-rect-to-visible-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/layers/scroll-rect-to-visible-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-composited-layer-expected.png b/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-composited-layer-expected.png
index 9182ac9..6144f8a 100644
--- a/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-composited-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-composited-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-layer-expected.png b/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-layer-expected.png
index 9182ac9..6144f8a 100644
--- a/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/layers/scroll-with-transform-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/lists/ol-start-parsing-expected.png b/third_party/blink/web_tests/platform/win/fast/lists/ol-start-parsing-expected.png
index b053f7c..492e83a 100644
--- a/third_party/blink/web_tests/platform/win/fast/lists/ol-start-parsing-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/lists/ol-start-parsing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/lists/olstart-expected.png b/third_party/blink/web_tests/platform/win/fast/lists/olstart-expected.png
index c6422d2c..1ddf49f 100644
--- a/third_party/blink/web_tests/platform/win/fast/lists/olstart-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/lists/olstart-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/002-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/002-expected.png
index 468dd48c..0b09892 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/002-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/003-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/003-expected.png
index 4214a9f..a6b738b 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/003-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/003-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/005-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/005-expected.png
index 5db38758..52cab0b 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/005-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/006-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/006-expected.png
index 5a68c77..3e9c6bb 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/006-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/006-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/007-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/007-expected.png
index ed66a86b..6201f88d 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/007-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/008-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/008-expected.png
index 08e00e0..6d1c751 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/008-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/008-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/childFocusRingClip-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/childFocusRingClip-expected.png
index e04dba6..6aa57f5d 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/childFocusRingClip-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/childFocusRingClip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/clip-rects-fixed-ancestor-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/clip-rects-fixed-ancestor-expected.png
index 622b8128..e397931 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/clip-rects-fixed-ancestor-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/clip-rects-fixed-ancestor-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/float-in-relpositioned-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/float-in-relpositioned-expected.png
index 24890e6..645a41b 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/float-in-relpositioned-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/float-in-relpositioned-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/hit-test-overflow-controls-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/hit-test-overflow-controls-expected.png
index 1f5afdd4..b1bbbf9 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/hit-test-overflow-controls-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/hit-test-overflow-controls-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/image-selection-highlight-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/image-selection-highlight-expected.png
index 1dfcc0d..e80da32 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/image-selection-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/image-selection-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-auto-position-absolute-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-auto-position-absolute-expected.png
index 6c7e685..351d182 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-auto-position-absolute-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-auto-position-absolute-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-expected.png
index 5d1805e..9203223 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-vertical-expected.png
index c93efed..3aa1128 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-rtl-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-text-hit-testing-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-text-hit-testing-expected.png
index 25dcc7b..70a98dc 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-text-hit-testing-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-text-hit-testing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-update-transform-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-update-transform-expected.png
index 3ca6b9c..82a8d290 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-update-transform-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-update-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-with-local-background-attachment-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-with-local-background-attachment-expected.png
index 850e455c..49a814f 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-with-local-background-attachment-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-with-local-background-attachment-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-x-y-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-x-y-expected.png
index 8017006..0789c83 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-x-y-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-x-y-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/position-fixed-transform-clipping-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/position-fixed-transform-clipping-expected.png
index 37cc24f..fdf3488 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/position-fixed-transform-clipping-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/position-fixed-transform-clipping-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
index f13ed45..90b68c2 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
index 59c8940a..90511ad 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/scrollbar-position-update-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/scrollbar-position-update-expected.png
index 83eeaae..9c2ba1e6 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/scrollbar-position-update-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/scrollbar-position-update-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/table-overflow-float-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/table-overflow-float-expected.png
index 88d1769..e61815d67 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/table-overflow-float-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/table-overflow-float-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/unreachable-overflow-rtl-bug-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/unreachable-overflow-rtl-bug-expected.png
index 062eab2..5d1c4457 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/unreachable-overflow-rtl-bug-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/unreachable-overflow-rtl-bug-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/parser/open-comment-in-textarea-expected.png b/third_party/blink/web_tests/platform/win/fast/parser/open-comment-in-textarea-expected.png
index 7775529..e9b72bd 100644
--- a/third_party/blink/web_tests/platform/win/fast/parser/open-comment-in-textarea-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/parser/open-comment-in-textarea-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/replaced/border-radius-clip-expected.png b/third_party/blink/web_tests/platform/win/fast/replaced/border-radius-clip-expected.png
index b496021..a1be795 100644
--- a/third_party/blink/web_tests/platform/win/fast/replaced/border-radius-clip-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/replaced/border-radius-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/replaced/replaced-breaking-expected.png b/third_party/blink/web_tests/platform/win/fast/replaced/replaced-breaking-expected.png
index 1f03f25..2469e11 100644
--- a/third_party/blink/web_tests/platform/win/fast/replaced/replaced-breaking-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/replaced/replaced-breaking-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/replaced/width100percent-textarea-expected.png b/third_party/blink/web_tests/platform/win/fast/replaced/width100percent-textarea-expected.png
index 1219952..92d2b55 100644
--- a/third_party/blink/web_tests/platform/win/fast/replaced/width100percent-textarea-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/replaced/width100percent-textarea-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/selectors/166-expected.png b/third_party/blink/web_tests/platform/win/fast/selectors/166-expected.png
index c781971..bce116f 100644
--- a/third_party/blink/web_tests/platform/win/fast/selectors/166-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/selectors/166-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
index 3af80f9..9155b8b 100644
--- a/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png b/third_party/blink/web_tests/platform/win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png
index ba8b14a..895232c 100644
--- a/third_party/blink/web_tests/platform/win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png b/third_party/blink/web_tests/platform/win/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png
index 14fef144..d5e3721 100644
--- a/third_party/blink/web_tests/platform/win/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/023-expected.png b/third_party/blink/web_tests/platform/win/fast/table/023-expected.png
index 544ac45..bac9711 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/023-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/023-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/027-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/table/027-vertical-expected.png
index 78707cc..7578474 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/027-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/027-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/040-expected.png b/third_party/blink/web_tests/platform/win/fast/table/040-expected.png
index a8ed66c8..a620f54e 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/040-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/040-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/040-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/table/040-vertical-expected.png
index c4bbfa6..51ca82c 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/040-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/040-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-collapsed-border-expected.png
index c64e653c..51f1d07 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-expected.png
index 45fbef0..396d257 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-cell-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-collapsed-border-expected.png
index 72ff6d4d9..e349482 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-expected.png
index 773abc73..8ba31267 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-collapsed-border-expected.png
index fcb5929..763e464 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-expected.png
index af69eee..94a2c64 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-column-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-expected.png
index 039fec6..af59494 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-quirks-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-quirks-expected.png
index f08543bc..64d410a 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-quirks-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-quirks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-collapsed-border-expected.png
index 8aa27d3..6ca40448 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-expected.png
index 86999388..2d4bd0a 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-collapsed-border-expected.png
index 217fc0b..baddd31 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-expected.png
index 3ddb11b8..694d034a 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_border-table-row-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-collapsed-border-expected.png
index 0f71a7d..56079f1 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-expected.png
index 06b417d..6a5b9a4 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-hide-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-collapsed-border-expected.png
index 49953f7..faa5b1d 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-expected.png
index 1b8ca5b..a1dd62a6 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-show-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-collapsed-border-expected.png
index 1b1a1d1..2082716a 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-expected.png
index ffb9b53d..968c3ee 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-cell-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-collapsed-border-expected.png
index d9e7252..24a6a709 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-expected.png
index 9d00844..609b189 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-collapsed-border-expected.png
index 6a1ac3c..4b58cfbf 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-expected.png
index a4fe2e5..c70b41ef6 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-column-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-expected.png
index 01c34da0..e768a2e 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-collapsed-border-expected.png
index 86b6f23..795a5e7 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-expected.png
index aedb9b81..235d233 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-collapsed-border-expected.png
index 7d119eb..3802464 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-expected.png
index cf1d3d83..bf3dde1 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_position-table-row-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-collapsed-border-expected.png
index 0ce4471..96b78c9 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-expected.png
index 005de6c..7a97777 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-cell-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-collapsed-border-expected.png
index 5715ff2..1fa060d 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-collapsed-border-expected.png
index b23a714..cb669979 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-expected.png
index 1106dba..446c68a4 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-collapsed-border-expected.png
index 8e78a73..8789751 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-expected.png
index 2bf9737..38585c18 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-column-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-expected.png
index 253b75d..7f2852b 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-collapsed-border-expected.png
index 9eb6a868..3d179a1 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-expected.png
index d345929..c119c466 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-collapsed-border-expected.png
index f19ba9e..3f1d1d28 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-expected.png
index a0a7c01..1cb91c0 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_simple-table-row-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/border-collapsing/004-expected.png b/third_party/blink/web_tests/platform/win/fast/table/border-collapsing/004-expected.png
index 91997d30..ec5703d 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/border-collapsing/004-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/border-collapsing/004-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/edge-offsets-expected.png b/third_party/blink/web_tests/platform/win/fast/table/edge-offsets-expected.png
index 321db44e..2f945b3a 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/edge-offsets-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/edge-offsets-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/empty-cells-expected.png b/third_party/blink/web_tests/platform/win/fast/table/empty-cells-expected.png
index 98ad953..97d76b78 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/empty-cells-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/empty-cells-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/height-percent-test-expected.png b/third_party/blink/web_tests/platform/win/fast/table/height-percent-test-expected.png
index 29bb144..cd59204 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/height-percent-test-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/height-percent-test-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/overflowHidden-expected.png b/third_party/blink/web_tests/platform/win/fast/table/overflowHidden-expected.png
index a83a63f0c..4cd94857 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/overflowHidden-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/overflowHidden-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/prepend-in-anonymous-table-expected.png b/third_party/blink/web_tests/platform/win/fast/table/prepend-in-anonymous-table-expected.png
index 34369ddc..cb52011 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/prepend-in-anonymous-table-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/prepend-in-anonymous-table-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/table-display-types-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/table/table-display-types-vertical-expected.png
index 73de294..3331197 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/table-display-types-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/table-display-types-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/text-autosizing/hackernews-comments-expected.png b/third_party/blink/web_tests/platform/win/fast/text-autosizing/hackernews-comments-expected.png
index a439e58..e341733a 100644
--- a/third_party/blink/web_tests/platform/win/fast/text-autosizing/hackernews-comments-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/text-autosizing/hackernews-comments-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/text/line-break/phrase-ja-expected.png b/third_party/blink/web_tests/platform/win/fast/text/line-break/phrase-ja-expected.png
index 202eee0..ba6c120 100644
--- a/third_party/blink/web_tests/platform/win/fast/text/line-break/phrase-ja-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/text/line-break/phrase-ja-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png b/third_party/blink/web_tests/platform/win/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png
index ac4d8a6..909e7f1 100644
--- a/third_party/blink/web_tests/platform/win/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/cursive-expected.png b/third_party/blink/web_tests/platform/win/fonts/cursive-expected.png
index 5dd0fdf..0eba5755 100644
--- a/third_party/blink/web_tests/platform/win/fonts/cursive-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/cursive-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/default-expected.png b/third_party/blink/web_tests/platform/win/fonts/default-expected.png
index 2cd1b5b8..8769a24 100644
--- a/third_party/blink/web_tests/platform/win/fonts/default-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/default-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/fantasy-expected.png b/third_party/blink/web_tests/platform/win/fonts/fantasy-expected.png
index b607fe3..e360a76f 100644
--- a/third_party/blink/web_tests/platform/win/fonts/fantasy-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/fantasy-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/monospace-expected.png b/third_party/blink/web_tests/platform/win/fonts/monospace-expected.png
index 5fdb4ed86..889f9b0 100644
--- a/third_party/blink/web_tests/platform/win/fonts/monospace-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/monospace-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/sans-serif-expected.png b/third_party/blink/web_tests/platform/win/fonts/sans-serif-expected.png
index f3b9038..47164fd 100644
--- a/third_party/blink/web_tests/platform/win/fonts/sans-serif-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/sans-serif-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fonts/serif-expected.png b/third_party/blink/web_tests/platform/win/fonts/serif-expected.png
index 7f36c01..91a19a3 100644
--- a/third_party/blink/web_tests/platform/win/fonts/serif-expected.png
+++ b/third_party/blink/web_tests/platform/win/fonts/serif-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fragmentation/outline-crossing-columns-expected.png b/third_party/blink/web_tests/platform/win/fragmentation/outline-crossing-columns-expected.png
index 1c70d85..ee492ca 100644
--- a/third_party/blink/web_tests/platform/win/fragmentation/outline-crossing-columns-expected.png
+++ b/third_party/blink/web_tests/platform/win/fragmentation/outline-crossing-columns-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/http/tests/media/video-frame-size-change-expected.png b/third_party/blink/web_tests/platform/win/http/tests/media/video-frame-size-change-expected.png
index 288a1b1..2e4f1c48 100644
--- a/third_party/blink/web_tests/platform/win/http/tests/media/video-frame-size-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/http/tests/media/video-frame-size-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png b/third_party/blink/web_tests/platform/win/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png
index 5bf7dcebf..2400e69 100644
--- a/third_party/blink/web_tests/platform/win/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png
+++ b/third_party/blink/web_tests/platform/win/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png b/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
index 7b22d59..38064a0 100644
--- a/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
+++ b/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png b/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png
index 898460b..3050540 100644
--- a/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png
+++ b/third_party/blink/web_tests/platform/win/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-expected.png
index 30a90cb..7ac2ceb 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-quirk-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-quirk-expected.png
index 91b1fda..559f0084 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-quirk-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-0px-images-quirk-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-10px-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-10px-images-expected.png
index fd3210a..53fc3db 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-10px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-10px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-16px-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-16px-images-expected.png
index 3b594c4..13518654 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-16px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-16px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-1px-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-1px-images-expected.png
index 2554309..9c6bac11 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-1px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-1px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-block-flow-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-block-flow-images-expected.png
index e649480..a090076 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-block-flow-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-block-flow-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-images-empty-alt-expected.png
index 0094335..d12e1443 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-images-empty-alt-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-images-empty-alt-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/rendering-broken-images-expected.png b/third_party/blink/web_tests/platform/win/images/rendering-broken-images-expected.png
index d950df4..e24611b 100644
--- a/third_party/blink/web_tests/platform/win/images/rendering-broken-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/images/rendering-broken-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls/video-controls-with-cast-rendering-expected.png b/third_party/blink/web_tests/platform/win/media/controls/video-controls-with-cast-rendering-expected.png
index 30438c4..9fde2d8 100644
--- a/third_party/blink/web_tests/platform/win/media/controls/video-controls-with-cast-rendering-expected.png
+++ b/third_party/blink/web_tests/platform/win/media/controls/video-controls-with-cast-rendering-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls/video-overlay-cast-dark-rendering-expected.png b/third_party/blink/web_tests/platform/win/media/controls/video-overlay-cast-dark-rendering-expected.png
index 4ffd17f..cfad69e 100644
--- a/third_party/blink/web_tests/platform/win/media/controls/video-overlay-cast-dark-rendering-expected.png
+++ b/third_party/blink/web_tests/platform/win/media/controls/video-overlay-cast-dark-rendering-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png
index 7718867..36b9778 100644
--- a/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png
+++ b/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png b/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png
index 6b115576..1c0e767 100644
--- a/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png
+++ b/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/overflow/overflow-transform-perspective-expected.png b/third_party/blink/web_tests/platform/win/overflow/overflow-transform-perspective-expected.png
index 2f12c32..bc46cfad 100644
--- a/third_party/blink/web_tests/platform/win/overflow/overflow-transform-perspective-expected.png
+++ b/third_party/blink/web_tests/platform/win/overflow/overflow-transform-perspective-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png
index 8f4b449..f6bfcb65 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png
index 837b5f3..a8037eb 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-on-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-on-scroll-expected.png
index 8bfcb4a..90202f0 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-on-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-on-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png
index 6c4f3ea..0cc79f7 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png
index d41fc9b..4958501 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/requires-backing-repaint-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/requires-backing-repaint-expected.png
index 92f3117e..1008f4fb 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/requires-backing-repaint-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/requires-backing-repaint-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png
index 5c854d4..8766fcab 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png
index 5c854d4..8766fcab 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png
index 7b3ad6fc0..0a686a44 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scrolling-without-painting-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scrolling-without-painting-expected.png
index 153ad6e..f8fed3c8 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scrolling-without-painting-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/scrolling-without-painting-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png
index be05eea..838cc10 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png
index 834da306..f8c6a9c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-color-change-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-color-change-expected.png
index 172fe6b..5fe670f 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-color-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-color-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-match-highlight-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-match-highlight-expected.png
index 69c2beb..4495e1c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-match-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/text-match-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-and-content-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-and-content-expected.png
index dda7f2e..c84b227 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-and-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-and-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-expected.png
index f0feb957..03d2f01a 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-content-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-content-expected.png
index 9c391aa1e..735997b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/compositing/updating-scrolling-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
index 626ae7e..4328fe96 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-after-opacity-change-subtree-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-after-opacity-change-subtree-expected.png
index d2f2e11da..b2a3b3b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-after-opacity-change-subtree-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-after-opacity-change-subtree-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-on-foreground-graphics-layer-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-on-foreground-graphics-layer-expected.png
index 9a4c7603..44657ad 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-on-foreground-graphics-layer-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidation-on-foreground-graphics-layer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-1-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-1-expected.png
index 3e804e38..650a6460 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-10-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-10-expected.png
index ef09013..ae415cf72 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-10-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-10-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-2-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-2-expected.png
index 78cc5bcf..cf903b3 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-3-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-3-expected.png
index dad354b..80d5afe 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-4-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-4-expected.png
index 2d0064a..eee1660 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-4-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-4-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-5-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-5-expected.png
index 7831adbd..4391589 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-5-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-5-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-6-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-6-expected.png
index 9d0d400..d4c2c9da 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-6-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-6-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-7-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-7-expected.png
index cb0bbaf..206e57b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-7-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-7-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-8-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-8-expected.png
index 98237d2..5947645b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-8-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-8-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-9-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-9-expected.png
index 30c2def..1c04fb2 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-9-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/line-flow-with-floats-9-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-borderbox-background-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-borderbox-background-expected.png
index a50e35c..a118b7c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-borderbox-background-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-borderbox-background-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-local-background-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-local-background-expected.png
index 9bae77e1..d7d5379 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-local-background-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-local-background-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.png
index fe8bcbbe..90ae3cb 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/overflow-outline-repaint-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/overflow-outline-repaint-expected.png
index d160976..623dff1 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/overflow-outline-repaint-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/overflow-outline-repaint-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-child-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-child-expected.png
index 9595968..1d7de9e 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-child-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-child-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-parent-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-parent-expected.png
index de25dde..8308384 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-parent-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-parent-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-same-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-same-expected.png
index 1ddb2eb..c110d974 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-same-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/overflow/vertical-overflow-same-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/position/fixed-tranformed-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/position/fixed-tranformed-expected.png
index ee270ff..508acee 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/position/fixed-tranformed-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/position/fixed-tranformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/document-flipped-blocks-writing-mode-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/document-flipped-blocks-writing-mode-scroll-expected.png
index d2c5a95..5ae50c4 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/document-flipped-blocks-writing-mode-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/document-flipped-blocks-writing-mode-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-move-after-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-move-after-scroll-expected.png
index 9a913b0..58b948b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-move-after-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-move-after-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-scrolled-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-scrolled-expected.png
index c72537f..0d723f7 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-child-of-transformed-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-descendant-of-transformed-scrolled-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-descendant-of-transformed-scrolled-expected.png
index 259307a..ab7c965 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-descendant-of-transformed-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/fixed-descendant-of-transformed-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/flipped-blocks-writing-mode-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/flipped-blocks-writing-mode-scroll-expected.png
index 4460fc4..014b9b6 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/flipped-blocks-writing-mode-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/flipped-blocks-writing-mode-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/inline-style-change-in-scrolled-view-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/inline-style-change-in-scrolled-view-expected.png
index 507ee5a..0c7e055 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/inline-style-change-in-scrolled-view-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/inline-style-change-in-scrolled-view-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/nested-fixed-iframe-scrolled-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/nested-fixed-iframe-scrolled-expected.png
index bf20acc..1868e53 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/nested-fixed-iframe-scrolled-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/nested-fixed-iframe-scrolled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-move-after-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-move-after-scroll-expected.png
index 8a3d457d..0e0ecb2 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-move-after-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-move-after-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-after-move-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-after-move-expected.png
index c8835544..a597b0fb 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-after-move-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-after-move-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-body-appear-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-body-appear-expected.png
index 32539fc1..5ab53f5 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-body-appear-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-body-appear-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-delete-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-delete-expected.png
index 13961761..e818d78a 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-delete-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-delete-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-local-background-text-color-change-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-local-background-text-color-change-expected.png
index 3b69a0be..460d642 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-local-background-text-color-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/overflow-scroll-local-background-text-color-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-composited-child-in-scrolled-container-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-composited-child-in-scrolled-container-expected.png
index 4cc3734..198a9840 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-composited-child-in-scrolled-container-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-composited-child-in-scrolled-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-expected.png
index 21b6dcc7..690b148 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.png
index dd71042e..7b20c5d 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-div-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-div-expected.png
index 949088d..0a13a254 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-div-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-div-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-iframe-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-iframe-expected.png
index 3e0ec8ea..56c3cd8 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/resize-scrollable-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-descendant-with-cached-cliprects-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-descendant-with-cached-cliprects-expected.png
index 627dcfc1..c3d10ca 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-descendant-with-cached-cliprects-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-descendant-with-cached-cliprects-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-stacking-context-backface-visiblity-leaves-traces-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-stacking-context-backface-visiblity-leaves-traces-expected.png
index 485d9f6..4fea8582 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-stacking-context-backface-visiblity-leaves-traces-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scroll-stacking-context-backface-visiblity-leaves-traces-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint-expected.png
index 6d3d218..e26836a6 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-expected.png
index 0cc8b4f2..5bc0c63 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-with-border-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-with-border-expected.png
index 8735d29..b076874 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-with-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-invalidation-on-resize-with-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-parts-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-parts-expected.png
index 4cebe07..083a3c0 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-parts-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/scrollbar-parts-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/block-selection-gap-stale-cache-2-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/block-selection-gap-stale-cache-2-expected.png
index dd320c2..adc9bee 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/block-selection-gap-stale-cache-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/block-selection-gap-stale-cache-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-within-composited-scroller-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-within-composited-scroller-expected.png
index c8f3f77a..addd883 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-within-composited-scroller-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-within-composited-scroller-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/relative-sized-document-scrollbars-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/relative-sized-document-scrollbars-expected.png
index a0832c69..c5473a2 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/relative-sized-document-scrollbars-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/relative-sized-document-scrollbars-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/repaint-in-scrolled-view-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/repaint-in-scrolled-view-expected.png
index be8b3c1..a17a06ba 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/repaint-in-scrolled-view-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/repaint-in-scrolled-view-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png
index 036f7ec5..d7919af 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/text-xy-updates-SVGList-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/text-xy-updates-SVGList-expected.png
index c5e48a0..92fad647 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/text-xy-updates-SVGList-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/text-xy-updates-SVGList-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/table/scroll-inside-table-cell-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/table/scroll-inside-table-cell-expected.png
index 853a0be6..c346e0c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/table/scroll-inside-table-cell-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/table/scroll-inside-table-cell-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png
index 71bb22a..e0660f2f 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/text-match-document-change-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/text-match-document-change-expected.png
index 62959bc..4bd05dc 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/text-match-document-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/text-match-document-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/selection/image-writing-modes-expected.png b/third_party/blink/web_tests/platform/win/paint/selection/image-writing-modes-expected.png
index b7bd2b1..9ff2636 100644
--- a/third_party/blink/web_tests/platform/win/paint/selection/image-writing-modes-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/selection/image-writing-modes-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/plugins/webview-plugin-nested-iframe-scroll-expected.png b/third_party/blink/web_tests/platform/win/plugins/webview-plugin-nested-iframe-scroll-expected.png
index 8c043bd..1d1b58d3 100644
--- a/third_party/blink/web_tests/platform/win/plugins/webview-plugin-nested-iframe-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/plugins/webview-plugin-nested-iframe-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/printing/return-from-printing-mode-expected.png b/third_party/blink/web_tests/platform/win/printing/return-from-printing-mode-expected.png
index 5dfb13ec..d1dfc96 100644
--- a/third_party/blink/web_tests/platform/win/printing/return-from-printing-mode-expected.png
+++ b/third_party/blink/web_tests/platform/win/printing/return-from-printing-mode-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/border-box-rect-clips-scrollbars-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/border-box-rect-clips-scrollbars-expected.png
index ada592d1a..d204067 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/border-box-rect-clips-scrollbars-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/border-box-rect-clips-scrollbars-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/on-sub-pixel-position-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/on-sub-pixel-position-expected.png
index 61389fc..1dbf725 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/on-sub-pixel-position-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/on-sub-pixel-position-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/resize-scales-with-dpi-150-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/resize-scales-with-dpi-150-expected.png
index a14f77e4..8a71fd65 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/resize-scales-with-dpi-150-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/resize-scales-with-dpi-150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/rtl/overflow-scroll-rtl-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/rtl/overflow-scroll-rtl-expected.png
index 6a82a102..91f78a8 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/rtl/overflow-scroll-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/rtl/overflow-scroll-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/pinch-zoom-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/pinch-zoom-expected.png
index 1e662fe..8516c5c 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/pinch-zoom-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/pinch-zoom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/scrollbars-scaled-twice-size-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/scrollbars-scaled-twice-size-expected.png
index a99614de..4a2b24c 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/scrollbars-scaled-twice-size-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/scaled-rendering/scrollbars-scaled-twice-size-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/scrollbar-corner-colors-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/scrollbar-corner-colors-expected.png
index 7ab70c0e..292f95ed 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/scrollbar-corner-colors-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/scrollbar-corner-colors-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/scrollbars-on-positioned-content-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/scrollbars-on-positioned-content-expected.png
index 8167162..5b36360 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/scrollbars-on-positioned-content-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/scrollbars-on-positioned-content-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/scrollbars/short-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/scrollbars/short-scrollbar-expected.png
index 1307a445..502bca7 100644
--- a/third_party/blink/web_tests/platform/win/scrollbars/short-scrollbar-expected.png
+++ b/third_party/blink/web_tests/platform/win/scrollbars/short-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/bug45331-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/bug45331-expected.png
index 1469990..d4384b47 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/bug45331-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/bug45331-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-expected.png
index 3f54307..f75dbcd0 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.png
index f7ca6a6..7fc27457 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-svg-area-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-svg-area-expected.png
index 713aca8..e1bb01a 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-svg-area-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/getscreenctm-in-scrollable-svg-area-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/invisible-text-after-scrolling-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/invisible-text-after-scrolling-expected.png
index e402075..030f5ea 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/invisible-text-after-scrolling-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/invisible-text-after-scrolling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/junk-data-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/junk-data-expected.png
index 656bd4f..efc73410 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/junk-data-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/junk-data-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
index 424c260..f64c8a1 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/missing-xlink-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/missing-xlink-expected.png
index 3308fbb55..e105fd4 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/missing-xlink-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/missing-xlink-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/object-sizing-no-width-height-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/object-sizing-no-width-height-expected.png
index 5bf7dcebf..2400e69 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/object-sizing-no-width-height-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/object-sizing-no-width-height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/path-bad-data-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/path-bad-data-expected.png
index 19d0041..9f4faaaf 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/path-bad-data-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/path-bad-data-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/use-font-face-crash-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/use-font-face-crash-expected.png
index 004ac81..ca28e61 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/use-font-face-crash-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/use-font-face-crash-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/dom/SVGStringList-basics-expected.png b/third_party/blink/web_tests/platform/win/svg/dom/SVGStringList-basics-expected.png
index afa3845..79c4454 100644
--- a/third_party/blink/web_tests/platform/win/svg/dom/SVGStringList-basics-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/dom/SVGStringList-basics-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/dom/css-transforms-expected.png b/third_party/blink/web_tests/platform/win/svg/dom/css-transforms-expected.png
index 9757d7d..36ac6f2 100644
--- a/third_party/blink/web_tests/platform/win/svg/dom/css-transforms-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/dom/css-transforms-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
index 25ee32c1..905036bd 100644
--- a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
index 34dcb540..edb816a 100644
--- a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
index 25ee32c1..905036bd 100644
--- a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
index 34dcb540..edb816a 100644
--- a/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png b/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
index c542ec3..8033542 100644
--- a/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png
index a61beb2..00172088 100644
--- a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png
index a61beb2..00172088 100644
--- a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png
index a61beb2..00172088 100644
--- a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png
index 71d78419..473f25d5 100644
--- a/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/text/bidi-reorder-in-text-chunks-expected.png b/third_party/blink/web_tests/platform/win/svg/text/bidi-reorder-in-text-chunks-expected.png
index 7b7964c..0c44f83f 100644
--- a/third_party/blink/web_tests/platform/win/svg/text/bidi-reorder-in-text-chunks-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/text/bidi-reorder-in-text-chunks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/text/mix-blend-mode-expected.png b/third_party/blink/web_tests/platform/win/svg/text/mix-blend-mode-expected.png
index 964b1e2..964b51a0 100644
--- a/third_party/blink/web_tests/platform/win/svg/text/mix-blend-mode-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/text/mix-blend-mode-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/text/spacing-expected.png b/third_party/blink/web_tests/platform/win/svg/text/spacing-expected.png
index c4e2519..68d515882 100644
--- a/third_party/blink/web_tests/platform/win/svg/text/spacing-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/text/spacing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png
index 11cdd07..ce9b80a 100644
--- a/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/transforms/transformed-text-fill-pattern-expected.png b/third_party/blink/web_tests/platform/win/svg/transforms/transformed-text-fill-pattern-expected.png
index 2da6df0..310e1a81 100644
--- a/third_party/blink/web_tests/platform/win/svg/transforms/transformed-text-fill-pattern-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/transforms/transformed-text-fill-pattern-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png b/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png
index 7e97603..61c6e3a 100644
--- a/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/wicd/test-scalable-background-image1-expected.png b/third_party/blink/web_tests/platform/win/svg/wicd/test-scalable-background-image1-expected.png
index e943f20..3a715b7 100644
--- a/third_party/blink/web_tests/platform/win/svg/wicd/test-scalable-background-image1-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/wicd/test-scalable-background-image1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/zoom/page/absolute-sized-document-scrollbars-expected.png b/third_party/blink/web_tests/platform/win/svg/zoom/page/absolute-sized-document-scrollbars-expected.png
index 73cb818..b4e2dee 100644
--- a/third_party/blink/web_tests/platform/win/svg/zoom/page/absolute-sized-document-scrollbars-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/zoom/page/absolute-sized-document-scrollbars-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-coords-viewattr-01-b-expected.png b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-coords-viewattr-01-b-expected.png
index 546df11..61f42e0 100644
--- a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-coords-viewattr-01-b-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-coords-viewattr-01-b-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-hixie-mixed-008-expected.png b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-hixie-mixed-008-expected.png
index b1311ae..9bc5067e 100644
--- a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-hixie-mixed-008-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-hixie-mixed-008-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-mask-with-percentages-expected.png b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-mask-with-percentages-expected.png
index 07f1088a..2fa9b12 100644
--- a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-mask-with-percentages-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-mask-with-percentages-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-svg-float-border-padding-expected.png b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-svg-float-border-padding-expected.png
index be4cd7e..1f85156 100644
--- a/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-svg-float-border-padding-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/zoom/page/zoom-svg-float-border-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png
index cc92b81..ae7ae42 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10269-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10269-2-expected.png
index d41a901..9a19ef2 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10269-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10269-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10296-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10296-1-expected.png
index 5ac31ba..45d995f 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10296-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug10296-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1055-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1055-1-expected.png
index 15f77fd1..a126b6d 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1055-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1055-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-1-expected.png
index 24c23b7..b7087de 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-3-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-3-expected.png
index 1fc58b0..6cdfe3b7 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug113235-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11944-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11944-expected.png
index 57ebe5b72..efc1684a 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11944-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11944-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug120364-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug120364-expected.png
index 6354dd2..48ec586 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug120364-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug120364-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1302-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1302-expected.png
index d33b51f3..a6ac6be7 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1302-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1302-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020-expected.png
index cc94069..76796e27 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020_iframe-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020_iframe-expected.png
index 515ff94..cec82f18 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020_iframe-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug131020_iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug137388-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug137388-2-expected.png
index 36b8591..7e978eb 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug137388-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug137388-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug149275-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug149275-1-expected.png
index 9768de1..e28a386 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug149275-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug149275-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug157890-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug157890-expected.png
index b98e92d..32f67fb 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug157890-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug157890-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug22019-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug22019-expected.png
index 0628220..bc05678a 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug22019-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug22019-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-1-expected.png
index dbfc7bed..8291aad 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-3-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-3-expected.png
index 0973619d..04d7292 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-4-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-4-expected.png
index 13a7004..66db7a66 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-4-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2479-4-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug27038-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug27038-2-expected.png
index d237233..6bd0397 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug27038-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug27038-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2947-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2947-expected.png
index a6f19906..abe830c 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2947-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2947-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug32205-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug32205-2-expected.png
index 996da6dd..126e42d 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug32205-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug32205-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug38916-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug38916-expected.png
index a38ba8f..02abe29 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug38916-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug38916-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug3977-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug3977-expected.png
index 622e370..e2d13880 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug3977-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug3977-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug46480-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug46480-1-expected.png
index 4b7307b..02f7fe8e 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug46480-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug46480-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug50695-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug50695-1-expected.png
index 58a61761..92f7b8ef 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug50695-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug50695-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug56405-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug56405-expected.png
index 12dfc444..fd18eac9 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug56405-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug56405-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug5835-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug5835-expected.png
index 6cfcd7b..4e508f3 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug5835-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug5835-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug650-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug650-expected.png
index 9540d3d..4970954 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug650-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug650-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug67915-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug67915-1-expected.png
index 69bb75b7..8d7b0aa 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug67915-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug67915-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-1-expected.png
index 18f6d79..2be4a17 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-2-expected.png
index 67260ba..d907e2e 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug7112-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug73321-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug73321-expected.png
index c3fa67b..1c8832e 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug73321-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug73321-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug96343-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug96343-expected.png
index 7811ec2..b4305c29 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug96343-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug96343-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/core/bloomberg-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/core/bloomberg-expected.png
index 5ebb5cb..84a1580 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/core/bloomberg-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/core/bloomberg-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/core/captions-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/core/captions-expected.png
index affa0fe..1bb53c0 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/core/captions-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/core/captions-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/core/cell_heights-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/core/cell_heights-expected.png
index d69a0f1..775e693 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/core/cell_heights-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/core/cell_heights-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/core/col_widths_fix_fixPer-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/core/col_widths_fix_fixPer-expected.png
index c1f028c..99af2c9 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/core/col_widths_fix_fixPer-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/core/col_widths_fix_fixPer-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/core/row_span-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/core/row_span-expected.png
index b9576b3..0737e59 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/core/row_span-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/core/row_span-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_name-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_name-expected.png
index 1ce51bdc..15f333a 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_name-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_name-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png
index 1ce51bdc..15f333a 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_name-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_name-expected.png
index fbaae88..61e7e748 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_name-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_name-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.png
index fbaae88..61e7e748 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_height-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_height-expected.png
index 958cac8..7dd1ea0 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_height-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_td_height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_name-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_name-expected.png
index c95c5892..0025334 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_name-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_name-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.png
index c95c5892..0025334 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_height-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_height-expected.png
index 49ce6f7..c1b0037 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_height-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_th_height-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_name-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_name-expected.png
index fbaae88..61e7e748 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_name-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_name-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.png
index fbaae88..61e7e748 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/cell_widths-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/cell_widths-expected.png
index 870afd05..1115fae 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/cell_widths-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/cell_widths-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/nestedTables-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/nestedTables-expected.png
index ef4ccfa..1024861 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/nestedTables-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/nestedTables-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/test3-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/test3-expected.png
index 60268fe..8aae259 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/test3-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/test3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/test6-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/test6-expected.png
index 3fe0bfb..ca1b9df4 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/test6-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/test6-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_thtd_rowspan-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_thtd_rowspan-expected.png
index 5021642..e491b96 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_thtd_rowspan-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_thtd_rowspan-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_tr_align-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_tr_align-expected.png
index 1e4e82b5..74dabed9 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_tr_align-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla/other/wa_table_tr_align-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10140-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10140-expected.png
index 4ff7f69..959ae35 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10140-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10140-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug101759-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug101759-expected.png
index ce590bc..33cd6db7 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug101759-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug101759-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10216-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10216-expected.png
index 3d3f502f..f73fe8d 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10216-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug10216-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png
index 252fe90..5375dd2 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug106966-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug106966-expected.png
index 2ef43a3..8008ea3 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug106966-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug106966-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png
index b6dbb7e..ed3cd3c5 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-1-expected.png
index b6140e4..ddf0eb3b 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-2-expected.png
index e305f16..f1b8972c 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug14007-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug19526-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug19526-expected.png
index c2c0e2b..45d5760f 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug19526-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug19526-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug22122-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug22122-expected.png
index 91b1ce87..a89e9475 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug22122-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug22122-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png
index d938149..8dec32e 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug32205-1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug32205-1-expected.png
index 142992e..e867f7a 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug32205-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug32205-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug51000-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug51000-expected.png
index de3cfa7..36eae28 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug51000-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug51000-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug80762-2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug80762-2-expected.png
index ab8ae17..5355fa5 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug80762-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug80762-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug89315-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug89315-expected.png
index 644bbd1..e729434 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug89315-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug89315-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug91057-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug91057-expected.png
index 743cb09..23eb5f5 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug91057-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/bugs/bug91057-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/backgrounds-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/backgrounds-expected.png
index 705e8b6..0864e79 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/backgrounds-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/backgrounds-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions1-expected.png
index 1f7d11d..2ac3b1f 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions2-expected.png
index 0ca3a13..e0c7f5de 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions3-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions3-expected.png
index cb805dd..9534c6cf 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions3-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/captions3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/col_span2-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/col_span2-expected.png
index 754c065..9ed24d9 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/col_span2-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/col_span2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/columns-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/columns-expected.png
index 6ac5233..a50cea1 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/columns-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/columns-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/conflicts-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/conflicts-expected.png
index e9246ea..0718b52 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/conflicts-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/conflicts-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/standards1-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/standards1-expected.png
index b84c361..ec45272 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/standards1-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/core/standards1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png
index 753fdc8..d8e64c7 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png
index d9615ad..d07dd43 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png
index b7c9e7b..f84d109 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png
index 64a128b9..40670dc 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.png
index 8be3906..1d31f41 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/test4-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/test4-expected.png
index c7d4877..846934bb 100644
--- a/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/test4-expected.png
+++ b/third_party/blink/web_tests/platform/win/tables/mozilla_expected_failures/other/test4-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/2d/transform-fixed-container-expected.png b/third_party/blink/web_tests/platform/win/transforms/2d/transform-fixed-container-expected.png
index 1dd49e4..f5741a33 100644
--- a/third_party/blink/web_tests/platform/win/transforms/2d/transform-fixed-container-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/2d/transform-fixed-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png
index 0adc1e29..943af2d 100644
--- a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-expected.png b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-expected.png
index af1473af..0528617 100644
--- a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png
index 8887d1a..ada3967 100644
--- a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png
index 9deb8c2..a6e5f97 100644
--- a/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/file/file-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/file/file-appearance-basic-expected.png
index 0b8cd5ba..c3c29843 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/file/file-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/file/file-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
index 87bde0b..ad9f715 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
index a22c8df3..ecd4c70 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
index 29b044c..f1f2240 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
index 97196e9..1ccb7d2 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
index 34f0db4..d7f85ce 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
index 3e279bd8..a221165 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 38f6ced..9ac1ced 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
index cfa61ce4..c33ef9a4 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
index a9e20aa..768e8d5 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-middle-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-middle-expected.png
index 429d4c2..b5ae8970 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-middle-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-middle-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-top-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-top-expected.png
index f6a59392..d47df69 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-top-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/scrollbar/scrollbar-top-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/file/file-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/file/file-appearance-basic-expected.png
index 4a93cdd..6874609 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/file/file-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/file/file-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
index 3aef3cce..f2119c5 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
index ac8eee26..c06b833 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
index c9f23a19..1cb2601 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
index 6c50db1..75d6e32 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
index 81e1c8f..c72d47d 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-disabled-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
index 085f72e..0df7450 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 054d152..4902cd9b 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
index 00ae8ff2..9a1bb7e7 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-selected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
index 1655f1e..7ce67382 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-hover-unselected-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-middle-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-middle-expected.png
index 15bb70e..44d4a88d 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-middle-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-middle-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-top-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-top-expected.png
index 6b67efd..bc19c5a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-top-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/scrollbar/scrollbar-top-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/text/input-dark-mode-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/text/input-dark-mode-basic-expected.png
index 71b232f6..937c1a7c 100644
--- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/text/input-dark-mode-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/text/input-dark-mode-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/disable-raster-inducing-scroll/compositing/overflow/nested-render-surfaces-with-rotation-expected.png b/third_party/blink/web_tests/platform/win/virtual/disable-raster-inducing-scroll/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
index febdd24b..8a7a095 100644
--- a/third_party/blink/web_tests/platform/win/virtual/disable-raster-inducing-scroll/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/disable-raster-inducing-scroll/compositing/overflow/nested-render-surfaces-with-rotation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
index e0b2b3d..424a3fc94 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
index 1eeb824..ed1eb801 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
index 01403fed..f76e4311 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
index 4eb51a5..a5591e7 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
index fa716c0..29f0478 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
index 04f4c9d..fd2465d 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
index a6726eee..ca931d7f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-expected.png
index 87c4ae0..544e383 100644
--- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/rendering-broken-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-expected.png
index 025b820..a7570a7a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png
index ef7cddf4..6a62ea8 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-10px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-10px-images-expected.png
index c8adfd34..09c3d91 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-10px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-10px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-16px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-16px-images-expected.png
index f2610bd..a581191 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-16px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-16px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-1px-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-1px-images-expected.png
index a6c93f6..667899a5 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-1px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-1px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png
index 32b5115b..0ebca66 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-empty-alt-expected.png
index 11792226..612d46f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-empty-alt-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-empty-alt-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-expected.png
index c69e9a8..7ed9f5b 100644
--- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/rendering-broken-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/border-box-rect-clips-scrollbars-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/border-box-rect-clips-scrollbars-expected.png
index 210d85a..c43ed52 100644
--- a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/border-box-rect-clips-scrollbars-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/border-box-rect-clips-scrollbars-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-expected.png
index a6b9899..700f549 100644
--- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-parents-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-parents-expected.png
index 673622c..6566d1f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-parents-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-parents-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-self-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-self-expected.png
index 8f565c7..9fffec0 100644
--- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-self-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/css3/filters/blur-filter-page-scroll-self-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
index d92fa600..871f3a4 100644
--- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-negative-letter-spacing-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-negative-letter-spacing-expected.png
index b122c68..184dfaa 100644
--- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-negative-letter-spacing-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-negative-letter-spacing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/selection-hard-linebreak-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/selection-hard-linebreak-expected.png
index 3952d9d..80fc144 100644
--- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/selection-hard-linebreak-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/selection-hard-linebreak-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-expected.png b/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-expected.png
index 2f7dca2..1df8cd16 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-shadow-expected.png
index 0751bd91..e6e20bfd1 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/fast/canvas/canvas-composite-video-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png b/third_party/blink/web_tests/platform/win11-arm64/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
index f09d398..0f02147 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/fast/css3-text/css3-text-decoration/text-decoration-style-wavy-font-size-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/fast/loader/json-document-appearance-expected.png b/third_party/blink/web_tests/platform/win11-arm64/fast/loader/json-document-appearance-expected.png
index 562ba60..34ed9ee 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/fast/loader/json-document-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/fast/loader/json-document-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/http/tests/media/video-frame-size-change-expected.png b/third_party/blink/web_tests/platform/win11-arm64/http/tests/media/video-frame-size-change-expected.png
index d0b2fdd4..c4741ed7 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/http/tests/media/video-frame-size-change-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/http/tests/media/video-frame-size-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png b/third_party/blink/web_tests/platform/win11-arm64/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
index b8477a2..4cb2047 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
index 267d7c8..91ff633c 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
index 699217a6..b75d48b 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
index 267d7c8..91ff633c 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
index 699217a6..b75d48b 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/text/bidi-textlength-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/text/bidi-textlength-expected.png
index 6a45d50..afb9f24 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/text/bidi-textlength-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/text/bidi-textlength-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/svg/text/mix-blend-mode-expected.png b/third_party/blink/web_tests/platform/win11-arm64/svg/text/mix-blend-mode-expected.png
index 98ee7d7..111b4f8 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/svg/text/mix-blend-mode-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/svg/text/mix-blend-mode-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
index c0b83d8..75fce99 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-playback-speed-menu-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
index 34c100a..5217c082 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
index 70e127cc..d9da189a 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/meter/meter-appearance-basic-vertical-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
index c844e4d1..92efa9e 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/dark-color-scheme/fast/forms/color-scheme/select/select-multiple-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
index 59f15916..4d53b8e 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
index 3fffbf7..ea131230 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
index 4b3f761..1b47f07 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-10px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
index 223844e..787323b 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-16px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
index 142e254..49e3aef5 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-1px-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
index 3a3a66f..ebc79d2 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
index 5179de4..0f00878 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-empty-alt-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-expected.png b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-expected.png
index b47042f6..813bb8b 100644
--- a/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-expected.png
+++ b/third_party/blink/web_tests/platform/win11-arm64/virtual/exotic-color-space/images/rendering-broken-images-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/README.md b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/README.md
deleted file mode 100644
index 4592dc5..0000000
--- a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-This suite runs the tests with
---disable-blink-features=CSSSignRelatedFunctions.
-That should be failed because abs(), sign() should not be parsed and evaluated.
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt
deleted file mode 100644
index 01284fc..0000000
--- a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt
+++ /dev/null
@@ -1,470 +0,0 @@
-This is a testharness.js-based test.
-Found 233 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] abs(1) should be used-value-equivalent to 1
-  assert_not_equals: abs(1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1) should be used-value-equivalent to 1
-  assert_not_equals: sign(1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] abs(-1) should be used-value-equivalent to 1
-  assert_not_equals: abs(-1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] abs(sign(1)) should be used-value-equivalent to 1
-  assert_not_equals: abs(sign(1)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] abs(sign(sign(1))) should be used-value-equivalent to 1
-  assert_not_equals: abs(sign(sign(1))) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(sign(sign(1) + sign(1))) should be used-value-equivalent to 1
-  assert_not_equals: sign(sign(sign(1) + sign(1))) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(abs(0.1 + 0.2) + 0.05) should be used-value-equivalent to 0.35
-  assert_not_equals: calc(abs(0.1 + 0.2) + 0.05) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(sign(0.1 + 0.2) - 0.05) should be used-value-equivalent to 0.95
-  assert_not_equals: calc(sign(0.1 + 0.2) - 0.05) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(abs(0.1 + 0.2) * 2) should be used-value-equivalent to 0.6
-  assert_not_equals: calc(abs(0.1 + 0.2) * 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(abs(sign(0.1) + 0.2) / 2) should be used-value-equivalent to 0.6
-  assert_not_equals: calc(abs(sign(0.1) + 0.2) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(abs(0.1 + 0.2) * -2) should be used-value-equivalent to -0.6
-  assert_not_equals: calc(abs(0.1 + 0.2) * -2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(sign(0.1 - 0.2) - 0.05) should be used-value-equivalent to -1.05
-  assert_not_equals: calc(sign(0.1 - 0.2) - 0.05) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(sign(1) + sign(1) - 0.05) should be used-value-equivalent to 1.95
-  assert_not_equals: calc(sign(1) + sign(1) - 0.05) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] abs(10px) should be used-value-equivalent to 10px
-  assert_not_equals: abs(10px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(10%) should be used-value-equivalent to 10px
-  assert_not_equals: abs(10%) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(10px + 10%) should be used-value-equivalent to 20px
-  assert_not_equals: abs(10px + 10%) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(10px + abs(10%)) should be used-value-equivalent to 20px
-  assert_not_equals: calc(10px + abs(10%)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-10px) should be used-value-equivalent to 10px
-  assert_not_equals: abs(-10px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-10%) should be used-value-equivalent to 10px
-  assert_not_equals: abs(-10%) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) should be used-value-equivalent to 21px
-  assert_not_equals: calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(calc(sign(-0))) should be used-value-equivalent to 0
-  assert_not_equals: calc(calc(sign(-0))) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(calc(sign(-0)))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(calc(sign(-0)))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(calc(sign(0))) should be used-value-equivalent to 0
-  assert_not_equals: calc(calc(sign(0))) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(calc(sign(0)))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(calc(sign(0)))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] abs(infinity) should be used-value-equivalent to calc(infinity)
-  assert_not_equals: abs(infinity) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] abs(-infinity) should be used-value-equivalent to calc(infinity)
-  assert_not_equals: abs(-infinity) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] abs(NaN) should be used-value-equivalent to calc(NaN)
-  assert_not_equals: abs(NaN) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(20 - abs(-10)) should be used-value-equivalent to 10
-  assert_not_equals: calc(20 - abs(-10)) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(20 - abs(10)) should be used-value-equivalent to 10
-  assert_not_equals: calc(20 - abs(10)) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(10 - abs(10 - abs(-30)) should be used-value-equivalent to -10
-  assert_not_equals: calc(10 - abs(10 - abs(-30)) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2 - sign(1)) should be used-value-equivalent to 1
-  assert_not_equals: calc(2 - sign(1)) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2 - sign(-1)) should be used-value-equivalent to 3
-  assert_not_equals: calc(2 - sign(-1)) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2 - sign(1 - sign(-1))) should be used-value-equivalent to 1
-  assert_not_equals: calc(2 - sign(1 - sign(-1))) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(10 - abs(20 - sign(2 - abs(-20)))) should be used-value-equivalent to -11
-  assert_not_equals: calc(10 - abs(20 - sign(2 - abs(-20)))) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] sign(1px) should be used-value-equivalent to 1
-  assert_not_equals: sign(1px) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1cm) should be used-value-equivalent to 1
-  assert_not_equals: sign(1cm) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1mm) should be used-value-equivalent to 1
-  assert_not_equals: sign(1mm) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1Q) should be used-value-equivalent to 1
-  assert_not_equals: sign(1Q) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1in) should be used-value-equivalent to 1
-  assert_not_equals: sign(1in) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1pc) should be used-value-equivalent to 1
-  assert_not_equals: sign(1pc) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1pt) should be used-value-equivalent to 1
-  assert_not_equals: sign(1pt) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1em) should be used-value-equivalent to 1
-  assert_not_equals: sign(1em) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1ex) should be used-value-equivalent to 1
-  assert_not_equals: sign(1ex) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1ch) should be used-value-equivalent to 1
-  assert_not_equals: sign(1ch) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1rem) should be used-value-equivalent to 1
-  assert_not_equals: sign(1rem) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1vh) should be used-value-equivalent to 1
-  assert_not_equals: sign(1vh) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1vw) should be used-value-equivalent to 1
-  assert_not_equals: sign(1vw) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1vmin) should be used-value-equivalent to 1
-  assert_not_equals: sign(1vmin) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1vmax) should be used-value-equivalent to 1
-  assert_not_equals: sign(1vmax) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1px) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1px) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1cm) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1cm) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1mm) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1mm) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1Q) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1Q) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1in) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1in) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1pc) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1pc) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1pt) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1pt) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1em) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1em) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1ex) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1ex) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1ch) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1ch) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1rem) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1rem) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1vh) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1vh) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1vw) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1vw) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1vmin) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1vmin) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1vmax) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1vmax) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1s) should be used-value-equivalent to 1
-  assert_not_equals: sign(1s) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1ms) should be used-value-equivalent to 1
-  assert_not_equals: sign(1ms) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1s) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1s) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1ms) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1ms) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1deg) should be used-value-equivalent to 1
-  assert_not_equals: sign(1deg) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1grad) should be used-value-equivalent to 1
-  assert_not_equals: sign(1grad) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1rad) should be used-value-equivalent to 1
-  assert_not_equals: sign(1rad) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(1turn) should be used-value-equivalent to 1
-  assert_not_equals: sign(1turn) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1deg) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1deg) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1grad) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1grad) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1rad) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1rad) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(-1turn) should be used-value-equivalent to -1
-  assert_not_equals: sign(-1turn) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0px)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0px)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0px))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0px))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0cm)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0cm)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0cm))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0cm))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0mm)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0mm)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0mm))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0mm))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0Q)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0Q)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0Q))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0Q))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0in)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0in)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0in))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0in))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0pc)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0pc)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0pc))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0pc))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0pt)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0pt)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0pt))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0pt))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0em)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0em)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0em))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0em))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0ex)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0ex)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0ex))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0ex))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0ch)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0ch)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0ch))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0ch))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0rem)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0rem)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0rem))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0rem))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0vh)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0vh)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0vh))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0vh))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0vw)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0vw)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0vw))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0vw))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0vmin)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0vmin)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0vmin))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0vmin))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0vmax)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0vmax)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0vmax))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0vmax))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0px)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0px)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0px))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0px))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0cm)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0cm)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0cm))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0cm))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0mm)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0mm)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0mm))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0mm))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0Q)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0Q)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0Q))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0Q))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0in)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0in)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0in))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0in))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0pc)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0pc)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0pc))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0pc))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0pt)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0pt)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0pt))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0pt))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0em)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0em)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0em))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0em))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0ex)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0ex)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0ex))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0ex))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0ch)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0ch)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0ch))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0ch))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0rem)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0rem)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0rem))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0rem))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0vh)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0vh)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0vh))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0vh))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0vw)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0vw)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0vw))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0vw))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0vmin)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0vmin)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0vmin))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0vmin))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0vmax)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0vmax)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0vmax))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0vmax))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0s)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0s)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0s))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0s))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0ms)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0ms)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0ms))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0ms))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0s)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0s)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0s))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0s))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0ms)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0ms)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0ms))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0ms))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0deg)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0deg)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0deg))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0deg))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0grad)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0grad)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0grad))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0grad))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0rad)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0rad)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0rad))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0rad))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(0turn)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(0turn)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(0turn))), 1) should be used-value-equivalent to 1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(0turn))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0deg)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0deg)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0deg))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0deg))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0grad)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0grad)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0grad))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0grad))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0rad)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0rad)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0rad))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0rad))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(-0turn)) should be used-value-equivalent to 0
-  assert_not_equals: calc(sign(-0turn)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] clamp(-1, calc( 1 / sign(sign(-0turn))), 1) should be used-value-equivalent to -1
-  assert_not_equals: clamp(-1, calc( 1 / sign(sign(-0turn))), 1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] abs(1px) should be used-value-equivalent to 1px
-  assert_not_equals: abs(1px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1cm) should be used-value-equivalent to 1cm
-  assert_not_equals: abs(1cm) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1mm) should be used-value-equivalent to 1mm
-  assert_not_equals: abs(1mm) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1Q) should be used-value-equivalent to 1Q
-  assert_not_equals: abs(1Q) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1in) should be used-value-equivalent to 1in
-  assert_not_equals: abs(1in) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1pc) should be used-value-equivalent to 1pc
-  assert_not_equals: abs(1pc) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1pt) should be used-value-equivalent to 1pt
-  assert_not_equals: abs(1pt) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1em) should be used-value-equivalent to 1em
-  assert_not_equals: abs(1em) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1ex) should be used-value-equivalent to 1ex
-  assert_not_equals: abs(1ex) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1ch) should be used-value-equivalent to 1ch
-  assert_not_equals: abs(1ch) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1rem) should be used-value-equivalent to 1rem
-  assert_not_equals: abs(1rem) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1vh) should be used-value-equivalent to 1vh
-  assert_not_equals: abs(1vh) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1vw) should be used-value-equivalent to 1vw
-  assert_not_equals: abs(1vw) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1vmin) should be used-value-equivalent to 1vmin
-  assert_not_equals: abs(1vmin) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1vmax) should be used-value-equivalent to 1vmax
-  assert_not_equals: abs(1vmax) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1px) should be used-value-equivalent to 1px
-  assert_not_equals: abs(-1px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1cm) should be used-value-equivalent to 1cm
-  assert_not_equals: abs(-1cm) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1mm) should be used-value-equivalent to 1mm
-  assert_not_equals: abs(-1mm) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1Q) should be used-value-equivalent to 1Q
-  assert_not_equals: abs(-1Q) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1in) should be used-value-equivalent to 1in
-  assert_not_equals: abs(-1in) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1pc) should be used-value-equivalent to 1pc
-  assert_not_equals: abs(-1pc) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1pt) should be used-value-equivalent to 1pt
-  assert_not_equals: abs(-1pt) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1em) should be used-value-equivalent to 1em
-  assert_not_equals: abs(-1em) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1ex) should be used-value-equivalent to 1ex
-  assert_not_equals: abs(-1ex) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1ch) should be used-value-equivalent to 1ch
-  assert_not_equals: abs(-1ch) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1rem) should be used-value-equivalent to 1rem
-  assert_not_equals: abs(-1rem) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1vh) should be used-value-equivalent to 1vh
-  assert_not_equals: abs(-1vh) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1vw) should be used-value-equivalent to 1vw
-  assert_not_equals: abs(-1vw) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1vmin) should be used-value-equivalent to 1vmin
-  assert_not_equals: abs(-1vmin) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(-1vmax) should be used-value-equivalent to 1vmax
-  assert_not_equals: abs(-1vmax) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] abs(1s) should be used-value-equivalent to 1s
-  assert_not_equals: abs(1s) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] abs(1ms) should be used-value-equivalent to 1ms
-  assert_not_equals: abs(1ms) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] abs(-1s) should be used-value-equivalent to 1s
-  assert_not_equals: abs(-1s) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] abs(-1ms) should be used-value-equivalent to 1ms
-  assert_not_equals: abs(-1ms) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] abs(1deg) should be used-value-equivalent to 1deg
-  assert_not_equals: abs(1deg) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(1grad) should be used-value-equivalent to 1grad
-  assert_not_equals: abs(1grad) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(1rad) should be used-value-equivalent to 1rad
-  assert_not_equals: abs(1rad) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(1turn) should be used-value-equivalent to 1turn
-  assert_not_equals: abs(1turn) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(-1deg) should be used-value-equivalent to 1deg
-  assert_not_equals: abs(-1deg) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(-1grad) should be used-value-equivalent to 1grad
-  assert_not_equals: abs(-1grad) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(-1rad) should be used-value-equivalent to 1rad
-  assert_not_equals: abs(-1rad) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] abs(-1turn) should be used-value-equivalent to 1turn
-  assert_not_equals: abs(-1turn) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] sign(10px - 1em) should be used-value-equivalent to 0; fontSize=10px
-  assert_not_equals: sign(10px - 1em) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] sign(10px - 2em) should be used-value-equivalent to -1; fontSize=10px
-  assert_not_equals: sign(10px - 2em) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(sign(10%) * 100px) should be used-value-equivalent to 100px
-  assert_not_equals: calc(sign(10%) * 100px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(2.5 - sign(41px - 2em) / 2) should be used-value-equivalent to 2
-  assert_not_equals: calc(2.5 - sign(41px - 2em) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2.5 - sign(40px - 2em) / 2) should be used-value-equivalent to 2.5
-  assert_not_equals: calc(2.5 - sign(40px - 2em) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2.5 - sign(39px - 2em) / 2) should be used-value-equivalent to 3
-  assert_not_equals: calc(2.5 - sign(39px - 2em) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(3 + sign(42px - 2em)) should be used-value-equivalent to 4
-  assert_not_equals: calc(3 + sign(42px - 2em)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(3 + sign(40px - 2em)) should be used-value-equivalent to 3
-  assert_not_equals: calc(3 + sign(40px - 2em)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(3 + sign(38px - 2em)) should be used-value-equivalent to 2
-  assert_not_equals: calc(3 + sign(38px - 2em)) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto"
-[FAIL] calc(50px + 100px * sign(42px - 2em)) should be used-value-equivalent to 150px
-  assert_not_equals: calc(50px + 100px * sign(42px - 2em)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(50px + 100px * sign(40px - 2em)) should be used-value-equivalent to 50px
-  assert_not_equals: calc(50px + 100px * sign(40px - 2em)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(50px + 100px * sign(38px - 2em)) should be used-value-equivalent to -50px
-  assert_not_equals: calc(50px + 100px * sign(38px - 2em)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(90deg + 30deg * sign(42px - 2em)) should be used-value-equivalent to 120deg
-  assert_not_equals: calc(90deg + 30deg * sign(42px - 2em)) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] calc(90deg + 30deg * sign(40px - 2em)) should be used-value-equivalent to 90deg
-  assert_not_equals: calc(90deg + 30deg * sign(40px - 2em)) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] calc(90deg + 30deg * sign(38px - 2em)) should be used-value-equivalent to 60deg
-  assert_not_equals: calc(90deg + 30deg * sign(38px - 2em)) isn't valid in 'rotate'; got the default value instead. got disallowed value "none"
-[FAIL] calc(5s + 15s * sign(42px - 2em)) should be used-value-equivalent to 20s
-  assert_not_equals: calc(5s + 15s * sign(42px - 2em)) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] calc(5s + 15s * sign(40px - 2em)) should be used-value-equivalent to 5s
-  assert_not_equals: calc(5s + 15s * sign(40px - 2em)) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] calc(5s + 15s * sign(38px - 2em)) should be used-value-equivalent to -10s
-  assert_not_equals: calc(5s + 15s * sign(38px - 2em)) isn't valid in 'transition-delay'; got the default value instead. got disallowed value "0s"
-[FAIL] calc(100dpi + 20dpi * sign(42px - 2em)) should be used-value-equivalent to 120dpi
-  assert_not_equals: calc(100dpi + 20dpi * sign(42px - 2em)) isn't valid in 'image-resolution'; got the default value instead. got disallowed value undefined
-[FAIL] calc(100dpi + 20dpi * sign(40px - 2em)) should be used-value-equivalent to 100dpi
-  assert_not_equals: calc(100dpi + 20dpi * sign(40px - 2em)) isn't valid in 'image-resolution'; got the default value instead. got disallowed value undefined
-[FAIL] calc(100dpi + 20dpi * sign(38px - 2em)) should be used-value-equivalent to 80dpi
-  assert_not_equals: calc(100dpi + 20dpi * sign(38px - 2em)) isn't valid in 'image-resolution'; got the default value instead. got disallowed value undefined
-[FAIL] calc(3fr + 1fr * sign(42px - 2em)) should be used-value-equivalent to 4fr
-  assert_not_equals: calc(3fr + 1fr * sign(42px - 2em)) isn't valid in 'grid-template-rows'; got the default value instead. got disallowed value "none"
-[FAIL] calc(3fr + 1fr * sign(40px - 2em)) should be used-value-equivalent to 3fr
-  assert_not_equals: calc(3fr + 1fr * sign(40px - 2em)) isn't valid in 'grid-template-rows'; got the default value instead. got disallowed value "none"
-[FAIL] calc(3fr + 1fr * sign(38px - 2em)) should be used-value-equivalent to 2fr
-  assert_not_equals: calc(3fr + 1fr * sign(38px - 2em)) isn't valid in 'grid-template-rows'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2.5 - sign(33px - 2rem) / 2) should be used-value-equivalent to 2
-  assert_not_equals: calc(2.5 - sign(33px - 2rem) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2.5 - sign(32px - 2rem) / 2) should be used-value-equivalent to 2.5
-  assert_not_equals: calc(2.5 - sign(32px - 2rem) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(2.5 - sign(31px - 2rem) / 2) should be used-value-equivalent to 3
-  assert_not_equals: calc(2.5 - sign(31px - 2rem) / 2) isn't valid in 'scale'; got the default value instead. got disallowed value "none"
-[FAIL] calc(50px + 100px * sign(34px - 2rem)) should be used-value-equivalent to 150px
-  assert_not_equals: calc(50px + 100px * sign(34px - 2rem)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(50px + 100px * sign(32px - 2rem)) should be used-value-equivalent to 50px
-  assert_not_equals: calc(50px + 100px * sign(32px - 2rem)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-[FAIL] calc(50px + 100px * sign(30px - 2rem)) should be used-value-equivalent to -50px
-  assert_not_equals: calc(50px + 100px * sign(30px - 2rem)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt
deleted file mode 100644
index 5b37deb..0000000
--- a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-All subtests passed and are omitted for brevity.
-See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/writing_web_tests.md#Text-Test-Baselines for details.
-Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-serialize-expected.txt b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-serialize-expected.txt
deleted file mode 100644
index d75d5928..0000000
--- a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-serialize-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-[FAIL] 'scale(abs(1))' as a specified value should serialize as 'scale(calc(1))'.
-  assert_not_equals: 'scale(abs(1))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(sign(.1))' as a specified value should serialize as 'scale(calc(1))'.
-  assert_not_equals: 'scale(sign(.1))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(abs(1 + 2 + 3))' as a specified value should serialize as 'scale(calc(6))'.
-  assert_not_equals: 'scale(abs(1 + 2 + 3))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(sign(1 + 2 + 3))' as a specified value should serialize as 'scale(calc(1))'.
-  assert_not_equals: 'scale(sign(1 + 2 + 3))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(abs(1) + abs(2)))' as a specified value should serialize as 'scale(calc(3))'.
-  assert_not_equals: 'scale(calc(abs(1) + abs(2)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(.1) + sign(.2)))' as a specified value should serialize as 'scale(calc(2))'.
-  assert_not_equals: 'scale(calc(sign(.1) + sign(.2)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(1 + abs(1)))' as a specified value should serialize as 'scale(calc(2))'.
-  assert_not_equals: 'scale(calc(1 + abs(1)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(.1) + 1))' as a specified value should serialize as 'scale(calc(2))'.
-  assert_not_equals: 'scale(calc(sign(.1) + 1))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(abs(inFinity)))' as a specified value should serialize as 'scale(calc(infinity))'.
-  assert_not_equals: 'scale(calc(abs(inFinity)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(abs(infinity)))' as a specified value should serialize as 'scale(calc(infinity))'.
-  assert_not_equals: 'scale(calc(abs(infinity)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(infinity)))' as a specified value should serialize as 'scale(calc(1))'.
-  assert_not_equals: 'scale(calc(sign(infinity)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(abs(infinity))' as a specified value should serialize as 'scale(calc(infinity))'.
-  assert_not_equals: 'scale(abs(infinity))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(abs(-infinity)))' as a specified value should serialize as 'scale(calc(infinity))'.
-  assert_not_equals: 'scale(calc(abs(-infinity)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(-1 * infinity)))' as a specified value should serialize as 'scale(calc(-1))'.
-  assert_not_equals: 'scale(calc(sign(-1 * infinity)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(-1 * NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.
-  assert_not_equals: 'scale(calc(sign(-1 * NaN)))' should be valid in transform. got disallowed value ""
-[FAIL] 'scale(calc(sign(1 * NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.
-  assert_not_equals: 'scale(calc(sign(1 * NaN)))' should be valid in transform. got disallowed value ""
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
index 6c50db1..75d6e32 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/fast/forms/color-scheme/scrollbar/horizontal-scrollbar-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
index 04959716..19f2d6b2 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dark-mode/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-150/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-150/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
index 51d4814..08e441c 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-150/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-150/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-200/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-200/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
index 6495168f..8ea25b40 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-200/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-dsf-200/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
index 8bf328b..e6f3423 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
index d266645..bde2a59 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
index 5b7a429..6523b890 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/composited/basic-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
index 8b1cbdb..901ce6a 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
index 19ff31b..68ae9b5 100644
--- a/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
index fd9b020..2508058 100644
--- a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar-hc/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
index db670b06..874edb2 100644
--- a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/hover-over-scrollbar-thumb-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
index 85d389f9..3197700 100644
--- a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/virtual/fluent-non-overlay-scrollbar/main/hover-over-main-thread-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/visual/scrollbar-show-tickmarks-expected.png b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/visual/scrollbar-show-tickmarks-expected.png
index 58fe8ed..b5f25a6 100644
--- a/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/visual/scrollbar-show-tickmarks-expected.png
+++ b/third_party/blink/web_tests/virtual/fluent-overlay-scrollbar/visual/scrollbar-show-tickmarks-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
index e89c9b2..5da9e13 100644
--- a/third_party/blink/web_tests/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
+++ b/third_party/blink/web_tests/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-expected.html b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-expected.html
index f76587e..79787b6 100644
--- a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-expected.html
+++ b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-expected.html
@@ -3,4 +3,4 @@
 Tests whether visual overflow contains glyph overflow.
 Passes if the overhanging part of 'f' character is not clipped off.
 </div>
-<div style="font-size: 100px">f&nbsp;</div>
+<div style="font-size: 100px; will-change: transform;">f&nbsp;</div>
diff --git a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing-expected.html b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing-expected.html
index d7f0c196..b3ec7228 100644
--- a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing-expected.html
+++ b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing-expected.html
@@ -2,5 +2,5 @@
 <div>
 Tests whether visual overflow contains glyph overflow when there is word-spacing.
 Passes if the overhanging part of 'f' character is not clipped off.
-<div>
-<div style="font-size: 100px; word-spacing: 50px;">o f&nbsp;</div>
+</div>
+<div style="font-size: 100px; word-spacing: 50px; will-change: transform;">o f&nbsp;</div>
diff --git a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing.html b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing.html
index a24d7db..5b7f041 100644
--- a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing.html
+++ b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow-with-word-spacing.html
@@ -3,4 +3,4 @@
 Tests whether visual overflow contains glyph overflow when there is word-spacing.
 Passes if the overhanging part of 'f' character is not clipped off.
 </div>
-<div style="font-size: 100px; word-spacing: 50px; float: left; backface-visibility: hidden">o f</div>
+<div style="font-size: 100px; word-spacing: 50px; float: left; backface-visibility: hidden; will-change: transform;">o f</div>
diff --git a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow.html b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow.html
index 9e021c1..491b1d7 100644
--- a/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow.html
+++ b/third_party/blink/web_tests/virtual/text-antialias/glyph-overflow.html
@@ -3,4 +3,4 @@
 Tests whether visual overflow contains glyph overflow.
 Passes if the overhanging part of 'f' character is not clipped off.
 </div>
-<div style="float: left; font-size: 100px; backface-visibility: hidden; backface-visibility: hidden">f</div>
+<div style="float: left; font-size: 100px; backface-visibility: hidden;  will-change: transform;">f</div>
diff --git a/third_party/crossbench b/third_party/crossbench
index 1c8bcfd..d0cdca0e 160000
--- a/third_party/crossbench
+++ b/third_party/crossbench
@@ -1 +1 @@
-Subproject commit 1c8bcfd1d85892781103fa1d6497a1ffad01c9db
+Subproject commit d0cdca0efd6c6042043beaf5b35930457c9f056e
diff --git a/third_party/dawn b/third_party/dawn
index 4585c94..5f1e7e3 160000
--- a/third_party/dawn
+++ b/third_party/dawn
@@ -1 +1 @@
-Subproject commit 4585c9495dd4c1958890921fa2abacd8546d088d
+Subproject commit 5f1e7e33cbd81dbd4a63d91228fe0aa59d060211
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index c6bb3b2c..87be7c1 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit c6bb3b2ce900d42eefac9c72600ea69e74d40943
+Subproject commit 87be7c12133947828466773b7f181d534df37526
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium
index 8f906b15..8efaabf 100644
--- a/third_party/freetype/README.chromium
+++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@
 Name: FreeType
 URL: http://www.freetype.org/
-Version: VER-2-13-3-55-ge3a3b39dd
-Revision: e3a3b39dd0cf0a01ec8998cc760d01b9f0b1bac7
+Version: VER-2-13-3-59-ga059b237b
+Revision: a059b237bb01eb3e4f9f8b1618dda8c117498bab
 CPEPrefix: cpe:/a:freetype:freetype:2.13.3
 License: FTL
 License File: src/docs/FTL.TXT
diff --git a/third_party/freetype/src b/third_party/freetype/src
index e3a3b39..a059b23 160000
--- a/third_party/freetype/src
+++ b/third_party/freetype/src
@@ -1 +1 @@
-Subproject commit e3a3b39dd0cf0a01ec8998cc760d01b9f0b1bac7
+Subproject commit a059b237bb01eb3e4f9f8b1618dda8c117498bab
diff --git a/third_party/libyuv b/third_party/libyuv
index 47ddac2..10592b6 160000
--- a/third_party/libyuv
+++ b/third_party/libyuv
@@ -1 +1 @@
-Subproject commit 47ddac2996378c34aab9318f0d218303b1d282e7
+Subproject commit 10592b60c0b2c33210b7752454253dc2625b4305
diff --git a/third_party/perfetto b/third_party/perfetto
index 943a0d8..a0c2bc7 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit 943a0d89925e7f9a898c2e49c41feb9bf5dab71e
+Subproject commit a0c2bc7919f7467cf4a8287c8389c3f96a3fcbac
diff --git a/third_party/skia b/third_party/skia
index dac8081..7f19d76 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit dac808134f758c75b52cd53a4c93f84dea22803a
+Subproject commit 7f19d763e013561599c7f8eb3b866660c0680bd2
diff --git a/third_party/webrtc b/third_party/webrtc
index 9aeeb61..d481136 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 9aeeb6123d2a4fc868626a9ee8f45b268d223c03
+Subproject commit d48113627a5ee53aa7eef4cffcba0a10b8e95ca7
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 6458507..4dd2647 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -20913,6 +20913,7 @@
   <int value="174759256" label="LockScreenMediaControls:enabled"/>
   <int value="174917935" label="ReengagementNotification:disabled"/>
   <int value="175254474" label="SpectreVariant2Mitigation:enabled"/>
+  <int value="176284157" label="HistoryOptInEntryPoints:enabled"/>
   <int value="176401620" label="TabGroupParityAndroid:enabled"/>
   <int value="176421334"
       label="OmniboxHistoryQuickProviderSpecificityScoreCountUniqueHosts:enabled"/>
@@ -25293,6 +25294,7 @@
   <int value="1886462832" label="EnableTouchscreenMappingExperience:enabled"/>
   <int value="1887031213" label="AutofillManualFallbackAndroid:disabled"/>
   <int value="1887085478" label="WallpaperGooglePhotosSharedAlbums:enabled"/>
+  <int value="1887360012" label="PrivacyGuideAiSettings:disabled"/>
   <int value="1887882558" label="RTCUnifiedPlanByDefault:enabled"/>
   <int value="1888075407" label="CrOSDspBasedNsAllowed:enabled"/>
   <int value="1888665816"
@@ -25688,6 +25690,7 @@
   <int value="2040216830" label="ArcTouchscreenEmulation:disabled"/>
   <int value="2040391862" label="SubframeProcessReuseThresholds:enabled"/>
   <int value="2041570184" label="UsePreferredIntervalForVideo:enabled"/>
+  <int value="2042556902" label="HistoryOptInEntryPoints:disabled"/>
   <int value="2042966110" label="EnablePolicyPromotionBanner:enabled"/>
   <int value="2043141918" label="DnsOverHttps:enabled"/>
   <int value="2043321329" label="OfflinePagesPrefetchingUI:disabled"/>
@@ -25760,6 +25763,7 @@
   <int value="2072231406" label="SingleProcessMash:disabled"/>
   <int value="2072755432" label="AndroidBcivBottomControls:disabled"/>
   <int value="2073113207" label="SensorContentSetting:disabled"/>
+  <int value="2073207038" label="PrivacyGuideAiSettings:enabled"/>
   <int value="2073762173" label="ToolbarPhoneCleanup:disabled"/>
   <int value="2074475824" label="tab-link-drag-drop:enabled"/>
   <int value="2075207488" label="AutomaticPasswordGeneration:disabled"/>
@@ -28777,6 +28781,15 @@
   <int value="4" label="On-Device prediction model"/>
 </enum>
 
+<enum name="PermissionRequestRelevance">
+  <int value="0" label="Unspecified"/>
+  <int value="1" label="Very Low"/>
+  <int value="2" label="Low"/>
+  <int value="3" label="Medium"/>
+  <int value="4" label="High"/>
+  <int value="5" label="Very High"/>
+</enum>
+
 <enum name="PermissionRequestType">
   <int value="0" label="PERMISSION_BUBBLE_UNKNOWN"/>
   <int value="1" label="PERMISSION_BUBBLE_MULTIPLE_AUDIO_AND_VIDEO_CAPTURE"/>
diff --git a/tools/metrics/histograms/metadata/autofill/enums.xml b/tools/metrics/histograms/metadata/autofill/enums.xml
index 213c293..85de720 100644
--- a/tools/metrics/histograms/metadata/autofill/enums.xml
+++ b/tools/metrics/histograms/metadata/autofill/enums.xml
@@ -722,6 +722,9 @@
   <int value="10048"
       label="ADDRESS_HOME_APT_TYPE: Not autofilled or autofilled value edited"/>
   <int value="10049" label="ADDRESS_HOME_APT_TYPE: Autofilled value accepted"/>
+  <int value="10112"
+      label="LOYALTY_MEMBERSHIP_ID: Not autofilled or autofilled value edited"/>
+  <int value="10113" label="LOYALTY_MEMBERSHIP_ID: Autofilled value accepted"/>
   <int value="10240"
       label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: Not autofilled or
              autofilled value edited"/>
@@ -771,20 +774,15 @@
   <int value="11009"
       label="PASSPORT_ISSUE_DATE_TAG: Autofilled value accepted"/>
   <int value="11072"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Not autofilled or autofilled
-             value edited"/>
-  <int value="11073"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Autofilled value accepted"/>
-  <int value="11136"
-      label="LOYALTY_CARD_PROGRAM: Not autofilled or autofilled value edited"/>
-  <int value="11137" label="LOYALTY_CARD_PROGRAM: Autofilled value accepted"/>
-  <int value="11200"
-      label="LOYALTY_CARD_PROVIDER: Not autofilled or autofilled value edited"/>
-  <int value="11201" label="LOYALTY_CARD_PROVIDER: Autofilled value accepted"/>
-  <int value="11264"
-      label="LOYALTY_CARD_MEMBER_ID: Not autofilled or autofilled value
+      label="LOYALTY_MEMBERSHIP_PROGRAM: Not autofilled or autofilled value
              edited"/>
-  <int value="11265" label="LOYALTY_CARD_MEMBER_ID: Autofilled value accepted"/>
+  <int value="11073"
+      label="LOYALTY_MEMBERSHIP_PROGRAM: Autofilled value accepted"/>
+  <int value="11136"
+      label="LOYALTY_MEMBERSHIP_PROVIDER: Not autofilled or autofilled value
+             edited"/>
+  <int value="11137"
+      label="LOYALTY_MEMBERSHIP_PROVIDER: Autofilled value accepted"/>
 </enum>
 
 <enum name="AutofillDeveloperEngagement">
@@ -1040,6 +1038,8 @@
   <int value="2497" label="ADDRESS_HOME_APT: accepted"/>
   <int value="2512" label="ADDRESS_HOME_APT_TYPE: edited"/>
   <int value="2513" label="ADDRESS_HOME_APT_TYPE: accepted"/>
+  <int value="2528" label="LOYALTY_MEMBERSHIP_ID: edited"/>
+  <int value="2529" label="LOYALTY_MEMBERSHIP_ID: accepted"/>
   <int value="2560" label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: edited"/>
   <int value="2561" label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: accepted"/>
   <int value="2592" label="IMPROVED_PREDICTION: edited"/>
@@ -1064,14 +1064,10 @@
   <int value="2737" label="PASSPORT_EXPIRATION_DATE_TAG: accepted"/>
   <int value="2752" label="PASSPORT_ISSUE_DATE_TAG: edited"/>
   <int value="2753" label="PASSPORT_ISSUE_DATE_TAG: accepted"/>
-  <int value="2768" label="PASSPORT_COUNTRY_OF_BIRTH_TAG: edited"/>
-  <int value="2769" label="PASSPORT_COUNTRY_OF_BIRTH_TAG: accepted"/>
-  <int value="2784" label="LOYALTY_CARD_PROGRAM: edited"/>
-  <int value="2785" label="LOYALTY_CARD_PROGRAM: accepted"/>
-  <int value="2800" label="LOYALTY_CARD_PROVIDER: edited"/>
-  <int value="2801" label="LOYALTY_CARD_PROVIDER: accepted"/>
-  <int value="2816" label="LOYALTY_CARD_MEMBER_ID: edited"/>
-  <int value="2817" label="LOYALTY_CARD_MEMBER_ID: accepted"/>
+  <int value="2768" label="LOYALTY_MEMBERSHIP_PROGRAM: edited"/>
+  <int value="2769" label="LOYALTY_MEMBERSHIP_PROGRAM: accepted"/>
+  <int value="2784" label="LOYALTY_MEMBERSHIP_PROVIDER: edited"/>
+  <int value="2785" label="LOYALTY_MEMBERSHIP_PROVIDER: accepted"/>
 </enum>
 
 <enum name="AutofillErrorDialogType">
@@ -1877,6 +1873,7 @@
   <int value="154" label="SINGLE_USERNAME_FORGOT_PASSWORD"/>
   <int value="156" label="ADDRESS_HOME_APT"/>
   <int value="157" label="ADDRESS_HOME_APT_TYPE"/>
+  <int value="158" label="LOYALTY_MEMBERSHIP_ID"/>
   <int value="160" label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES"/>
   <int value="161" label="SERVER_RESPONSE_PENDING"/>
   <int value="162" label="IMPROVED_PREDICTION"/>
@@ -1890,10 +1887,8 @@
   <int value="170" label="PASSPORT_ISSUING_COUNTRY_TAG"/>
   <int value="171" label="PASSPORT_EXPIRATION_DATE_TAG"/>
   <int value="172" label="PASSPORT_ISSUE_DATE_TAG"/>
-  <int value="173" label="PASSPORT_COUNTRY_OF_BIRTH_TAG"/>
-  <int value="174" label="LOYALTY_CARD_PROGRAM"/>
-  <int value="175" label="LOYALTY_CARD_PROVIDER"/>
-  <int value="176" label="LOYALTY_CARD_MEMBER_ID"/>
+  <int value="173" label="LOYALTY_MEMBERSHIP_PROGRAM"/>
+  <int value="174" label="LOYALTY_MEMBERSHIP_PROVIDER"/>
 </enum>
 
 <enum name="AutofillFilledCardInformationBubbleFieldClicked">
@@ -3832,6 +3827,22 @@
   <int value="948"
       label="ADDRESS_HOME_APT_TYPE - Predictions different - Value agrees
              with both predictions"/>
+  <int value="949"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions equal - Value agrees"/>
+  <int value="950"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions equal - Value disagrees"/>
+  <int value="951"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions different - Value agrees
+             with old prediction"/>
+  <int value="952"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions different - Value agrees
+             with new prediction"/>
+  <int value="953"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions different - Value agrees
+             with neither prediction"/>
+  <int value="954"
+      label="LOYALTY_MEMBERSHIP_ID - Predictions different - Value agrees
+             with both predictions"/>
   <int value="961"
       label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES - Predictions equal -
              Value agrees"/>
@@ -4026,70 +4037,38 @@
       label="PASSPORT_ISSUE_DATE_TAG - Predictions different - Value agrees
              with both predictions"/>
   <int value="1039"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions equal - Value agrees"/>
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions equal - Value agrees"/>
   <int value="1040"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions equal - Value
-             disagrees"/>
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions equal - Value disagrees"/>
   <int value="1041"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions different - Value
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions different - Value
              agrees with old prediction"/>
   <int value="1042"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions different - Value
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions different - Value
              agrees with new prediction"/>
   <int value="1043"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions different - Value
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions different - Value
              agrees with neither prediction"/>
   <int value="1044"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG - Predictions different - Value
+      label="LOYALTY_MEMBERSHIP_PROGRAM - Predictions different - Value
              agrees with both predictions"/>
   <int value="1045"
-      label="LOYALTY_CARD_PROGRAM - Predictions equal - Value agrees"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions equal - Value agrees"/>
   <int value="1046"
-      label="LOYALTY_CARD_PROGRAM - Predictions equal - Value disagrees"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions equal - Value
+             disagrees"/>
   <int value="1047"
-      label="LOYALTY_CARD_PROGRAM - Predictions different - Value agrees with
-             old prediction"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions different - Value
+             agrees with old prediction"/>
   <int value="1048"
-      label="LOYALTY_CARD_PROGRAM - Predictions different - Value agrees with
-             new prediction"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions different - Value
+             agrees with new prediction"/>
   <int value="1049"
-      label="LOYALTY_CARD_PROGRAM - Predictions different - Value agrees with
-             neither prediction"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions different - Value
+             agrees with neither prediction"/>
   <int value="1050"
-      label="LOYALTY_CARD_PROGRAM - Predictions different - Value agrees with
-             both predictions"/>
-  <int value="1051"
-      label="LOYALTY_CARD_PROVIDER - Predictions equal - Value agrees"/>
-  <int value="1052"
-      label="LOYALTY_CARD_PROVIDER - Predictions equal - Value disagrees"/>
-  <int value="1053"
-      label="LOYALTY_CARD_PROVIDER - Predictions different - Value agrees
-             with old prediction"/>
-  <int value="1054"
-      label="LOYALTY_CARD_PROVIDER - Predictions different - Value agrees
-             with new prediction"/>
-  <int value="1055"
-      label="LOYALTY_CARD_PROVIDER - Predictions different - Value agrees
-             with neither prediction"/>
-  <int value="1056"
-      label="LOYALTY_CARD_PROVIDER - Predictions different - Value agrees
-             with both predictions"/>
-  <int value="1057"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions equal - Value agrees"/>
-  <int value="1058"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions equal - Value disagrees"/>
-  <int value="1059"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions different - Value agrees
-             with old prediction"/>
-  <int value="1060"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions different - Value agrees
-             with new prediction"/>
-  <int value="1061"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions different - Value agrees
-             with neither prediction"/>
-  <int value="1062"
-      label="LOYALTY_CARD_MEMBER_ID - Predictions different - Value agrees
-             with both predictions"/>
+      label="LOYALTY_MEMBERSHIP_PROVIDER - Predictions different - Value
+             agrees with both predictions"/>
 </enum>
 
 <enum name="AutofillPreferenceSetter">
@@ -4359,6 +4338,8 @@
   <int value="2497" label="ADDRESS_HOME_APT: Empty on page load"/>
   <int value="2512" label="ADDRESS_HOME_APT_TYPE: Pre-filled on page load"/>
   <int value="2513" label="ADDRESS_HOME_APT_TYPE: Empty on page load"/>
+  <int value="2528" label="LOYALTY_MEMBERSHIP_ID: Pre-filled on page load"/>
+  <int value="2529" label="LOYALTY_MEMBERSHIP_ID: Empty on page load"/>
   <int value="2560"
       label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: Pre-filled on page
              load"/>
@@ -4389,14 +4370,11 @@
   <int value="2752" label="PASSPORT_ISSUE_DATE_TAG: Pre-filled on page load"/>
   <int value="2753" label="PASSPORT_ISSUE_DATE_TAG: Empty on page load"/>
   <int value="2768"
-      label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Pre-filled on page load"/>
-  <int value="2769" label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Empty on page load"/>
-  <int value="2784" label="LOYALTY_CARD_PROGRAM: Pre-filled on page load"/>
-  <int value="2785" label="LOYALTY_CARD_PROGRAM: Empty on page load"/>
-  <int value="2800" label="LOYALTY_CARD_PROVIDER: Pre-filled on page load"/>
-  <int value="2801" label="LOYALTY_CARD_PROVIDER: Empty on page load"/>
-  <int value="2816" label="LOYALTY_CARD_MEMBER_ID: Pre-filled on page load"/>
-  <int value="2817" label="LOYALTY_CARD_MEMBER_ID: Empty on page load"/>
+      label="LOYALTY_MEMBERSHIP_PROGRAM: Pre-filled on page load"/>
+  <int value="2769" label="LOYALTY_MEMBERSHIP_PROGRAM: Empty on page load"/>
+  <int value="2784"
+      label="LOYALTY_MEMBERSHIP_PROVIDER: Pre-filled on page load"/>
+  <int value="2785" label="LOYALTY_MEMBERSHIP_PROVIDER: Empty on page load"/>
 </enum>
 
 <enum name="AutofillProfileImportDecision">
@@ -5307,6 +5285,8 @@
   <int value="625" label="ADDRESS_HOME_APT: Accepted"/>
   <int value="628" label="ADDRESS_HOME_APT_TYPE: Ignored"/>
   <int value="629" label="ADDRESS_HOME_APT_TYPE: Accepted"/>
+  <int value="632" label="LOYALTY_MEMBERSHIP_ID: Ignored"/>
+  <int value="633" label="LOYALTY_MEMBERSHIP_ID: Accepted"/>
   <int value="640" label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: Ignored"/>
   <int value="641" label="SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES: Accepted"/>
   <int value="648" label="IMPROVED_PREDICTION: Ignored"/>
@@ -5331,14 +5311,10 @@
   <int value="685" label="PASSPORT_EXPIRATION_DATE_TAG: Accepted"/>
   <int value="688" label="PASSPORT_ISSUE_DATE_TAG: Ignored"/>
   <int value="689" label="PASSPORT_ISSUE_DATE_TAG: Accepted"/>
-  <int value="692" label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Ignored"/>
-  <int value="693" label="PASSPORT_COUNTRY_OF_BIRTH_TAG: Accepted"/>
-  <int value="696" label="LOYALTY_CARD_PROGRAM: Ignored"/>
-  <int value="697" label="LOYALTY_CARD_PROGRAM: Accepted"/>
-  <int value="700" label="LOYALTY_CARD_PROVIDER: Ignored"/>
-  <int value="701" label="LOYALTY_CARD_PROVIDER: Accepted"/>
-  <int value="704" label="LOYALTY_CARD_MEMBER_ID: Ignored"/>
-  <int value="705" label="LOYALTY_CARD_MEMBER_ID: Accepted"/>
+  <int value="692" label="LOYALTY_MEMBERSHIP_PROGRAM: Ignored"/>
+  <int value="693" label="LOYALTY_MEMBERSHIP_PROGRAM: Accepted"/>
+  <int value="696" label="LOYALTY_MEMBERSHIP_PROVIDER: Ignored"/>
+  <int value="697" label="LOYALTY_MEMBERSHIP_PROVIDER: Accepted"/>
 </enum>
 
 <enum name="IbanCountry">
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml
index 57abad0..42569d93 100644
--- a/tools/metrics/histograms/metadata/autofill/histograms.xml
+++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -496,9 +496,9 @@
   <variant name="FIELD_WITH_DEFAULT_VALUE"/>
   <variant name="IBAN_VALUE"/>
   <variant name="IMPROVED_PREDICTION"/>
-  <variant name="LOYALTY_CARD_MEMBER_ID"/>
-  <variant name="LOYALTY_CARD_PROGRAM"/>
-  <variant name="LOYALTY_CARD_PROVIDER"/>
+  <variant name="LOYALTY_MEMBERSHIP_ID"/>
+  <variant name="LOYALTY_MEMBERSHIP_PROGRAM"/>
+  <variant name="LOYALTY_MEMBERSHIP_PROVIDER"/>
   <variant name="MERCHANT_EMAIL_SIGNUP"/>
   <variant name="MERCHANT_PROMO_CODE"/>
   <variant name="NAME_FIRST"/>
@@ -521,7 +521,6 @@
   <variant name="NOT_USERNAME"/>
   <variant name="NUMERIC_QUANTITY"/>
   <variant name="ONE_TIME_CODE"/>
-  <variant name="PASSPORT_COUNTRY_OF_BIRTH_TAG"/>
   <variant name="PASSPORT_EXPIRATION_DATE_TAG"/>
   <variant name="PASSPORT_ISSUE_DATE_TAG"/>
   <variant name="PASSPORT_ISSUING_COUNTRY_TAG"/>
diff --git a/tools/metrics/histograms/metadata/memory/histograms.xml b/tools/metrics/histograms/metadata/memory/histograms.xml
index 7408511b..5115cb3 100644
--- a/tools/metrics/histograms/metadata/memory/histograms.xml
+++ b/tools/metrics/histograms/metadata/memory/histograms.xml
@@ -561,7 +561,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Browser2" units="MB"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
 
   <owner>erikchen@chromium.org</owner>
@@ -577,7 +577,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Browser2.Custom" units="bytes"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
@@ -629,7 +629,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Extension2" units="MB"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
 
   <owner>erikchen@chromium.org</owner>
@@ -645,7 +645,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Extension2.Custom"
-    units="bytes" expires_after="2025-01-10">
+    units="bytes" expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
@@ -679,7 +679,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Extension2.Tiny" units="bytes"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
@@ -807,7 +807,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.NetworkService2" units="MiB"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
 
   <owner>mmenke@chromium.org</owner>
@@ -825,7 +825,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.NetworkService2.Custom"
-    units="bytes" expires_after="2025-01-10">
+    units="bytes" expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
@@ -843,7 +843,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.NetworkService2.Small"
-    units="KiB" expires_after="2025-01-10">
+    units="KiB" expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
 
   <owner>mmenke@chromium.org</owner>
@@ -926,7 +926,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Renderer2.Custom"
-    units="bytes" expires_after="2025-01-10">
+    units="bytes" expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
@@ -1056,7 +1056,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Utility2" units="MB"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
 
   <owner>erikchen@chromium.org</owner>
@@ -1072,7 +1072,7 @@
 </histogram>
 
 <histogram base="true" name="Memory.Experimental.Utility2.Custom" units="bytes"
-    expires_after="2025-01-10">
+    expires_after="2026-01-10">
 <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" -->
 
   <owner>sashamcintosh@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/net/enums.xml b/tools/metrics/histograms/metadata/net/enums.xml
index 55bd4eb8..175b79a 100644
--- a/tools/metrics/histograms/metadata/net/enums.xml
+++ b/tools/metrics/histograms/metadata/net/enums.xml
@@ -2455,6 +2455,20 @@
   <int value="3" label="SETTING_DO_NOT_FRAGMENT"/>
 </enum>
 
+<!-- LINT.IfChange(QuicSessionKeyMismatchedField) -->
+
+<enum name="QuicSessionKeyMismatchedField">
+  <int value="0" label="kPrivacyMode"/>
+  <int value="1" label="kSocketTag"/>
+  <int value="2" label="kProxyChain"/>
+  <int value="3" label="kSessionUsage"/>
+  <int value="4" label="kNetworkAnonymizationKey"/>
+  <int value="5" label="kSecureDnsPolicy"/>
+  <int value="6" label="kRequireDNSHttpsAlpn"/>
+</enum>
+
+<!-- LINT.ThenChange(//net/quic/quic_session_pool.cc:QuicSessionKeyMismatchedField) -->
+
 <!-- LINT.IfChange(QuicSessionKeyPartialMatchResult) -->
 
 <enum name="QuicSessionKeyPartialMatchResult">
@@ -2810,6 +2824,12 @@
   <int value="3" label="Both"/>
 </enum>
 
+<enum name="TrafficAnnotationUniqueIdHash">
+  <int value="29693511" label="loading_predictor_preconnect"/>
+  <int value="81815349" label="search_engine_preconnect"/>
+  <int value="131223974" label="network_hints_preconnect"/>
+</enum>
+
 <!-- LINT.IfChange(TrustTokenOperationStatus) -->
 
 <enum name="TrustTokenOperationStatus">
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml
index a884c8a..e265c79 100644
--- a/tools/metrics/histograms/metadata/net/histograms.xml
+++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -4792,12 +4792,38 @@
   </summary>
 </histogram>
 
+<histogram name="Net.QuicSession.SessionKeyMismatch.MismatchedField{HostType}"
+    enum="QuicSessionKeyMismatchedField" expires_after="2025-07-06">
+  <owner>suzukikeita@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    Records which fields in `QuicSessionKey` mismatched with the key of existing
+    session or an in-flight session attempt to {HostType} with the same
+    `ServerId`. Recorded every time when we attempt to create a QUIC session.
+  </summary>
+  <token key="HostType" variants="HostType"/>
+</histogram>
+
+<histogram
+    name="Net.QuicSession.SessionKeyMismatch.TotalMismatchedField{HostType}"
+    units="count" expires_after="2025-07-06">
+  <owner>suzukikeita@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    Records the total number fields in `QuicSessionKey` which mismatched with
+    the key of existing session or an in-flight session attempt to {HostType}
+    with the same `ServerId`. Recorded every time when we attempt to create a
+    QUIC session.
+  </summary>
+  <token key="HostType" variants="HostType"/>
+</histogram>
+
 <histogram name="Net.QuicSession.SessionKeyMismatch{HostType}"
     enum="QuicSessionKeyPartialMatchResult" expires_after="2025-07-06">
   <owner>suzukikeita@chromium.org</owner>
   <owner>blink-network-stack@google.com</owner>
   <summary>
-    Records whether `QuicSessionPool` had an existing session or an in-flight
+    Records whether `QuicSessionKey` had an existing session or an in-flight
     session attempt to {HostType}. Recorded every time when we attempt to create
     a QUIC session.
   </summary>
@@ -5457,6 +5483,57 @@
   </token>
 </histogram>
 
+<histogram
+    name="Net.SessionCreate.GoogleSearch.Preconnect.{ProtocolType}.IsSessionReused"
+    enum="Boolean" expires_after="2025-03-02">
+  <owner>suzukikeita@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    Records whether the session is already established for a preconnect request
+    to GoogleSearch using {ProtocolType}. This is recorded everytime a
+    preconnect is attempted to GoogleSearch, after preconnect attempt is
+    finished.
+  </summary>
+  <token key="ProtocolType">
+    <variant name="Quic"/>
+    <variant name="Spdy"/>
+  </token>
+</histogram>
+
+<histogram
+    name="Net.SessionCreate.{ProtocolType}.HasTrafficAnnotation{HostType}"
+    enum="Boolean" expires_after="2025-03-02">
+  <owner>suzukikeita@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    Whether the session create to {HostType} using {ProtocolType} had any
+    traffic annotation tag associated. {ProtocolType}. This is recorded
+    everytime a session create is attempted to GoogleSearch, after the attempt
+    is finished.
+  </summary>
+  <token key="ProtocolType">
+    <variant name="Quic"/>
+    <variant name="Spdy"/>
+  </token>
+  <token key="HostType" variants="HostType"/>
+</histogram>
+
+<histogram name="Net.SessionCreate.{ProtocolType}.TrafficAnnotation{HostType}"
+    enum="TrafficAnnotationUniqueIdHash" expires_after="2025-03-02">
+  <owner>suzukikeita@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    The traffic annotation tag for the session create to {HostType} using
+    {ProtocolType}. This is recorded everytime a session create is attempted to
+    GoogleSearch, after the attempt is finished.
+  </summary>
+  <token key="ProtocolType">
+    <variant name="Quic"/>
+    <variant name="Spdy"/>
+  </token>
+  <token key="HostType" variants="HostType"/>
+</histogram>
+
 <histogram name="Net.SharedDictionaryManagerOnDisk.DictionarySizeKB" units="KB"
     expires_after="2024-12-20">
   <owner>horo@chromium.org</owner>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index 43451940..276d123 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -17878,6 +17878,12 @@
       permission has been automatically revoked in the past at least once.
     </summary>
   </metric>
+  <metric name="PermissionRequestRelevance" enum="PermissionRequestRelevance">
+    <summary>
+      An enum of type PermissionRequestRelevance describing the permission
+      request relevance returned by a genAI and/or TFLite on-device model.
+    </summary>
+  </metric>
   <metric name="PermissionType">
     <summary>
       An enum of type ContentSettingsType.
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 6724392..cdfc4de 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v49.0/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "1c92a6e5ce76875a764aafc645124b645187cfd3",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/943a0d89925e7f9a898c2e49c41feb9bf5dab71e/trace_processor_shell.exe"
+            "hash": "e3daabcd3dbf201a1c9f0e90362b097535542527",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/3b5f76b795d1d280787e64706dd031ebe12fa46a/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "a15d8362d80cfd7cd8d785cf6afc22586de688cd",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v49.0/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "c993ea68c410707bc9f008686392a2c995791669",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/943a0d89925e7f9a898c2e49c41feb9bf5dab71e/trace_processor_shell"
+            "hash": "8c84e001f1194b19156b832204d18bd241d52a8a",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/81a61ea19e624a538e29d9b5bf459c2d700aed84/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
index c2edc927..bd257c3 100644
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -422,9 +422,6 @@
 BASE_FEATURE(kUseGammaContrastRegistrySettings,
              "UseGammaContrastRegistrySettings",
              base::FEATURE_ENABLED_BY_DEFAULT);
-BASE_FEATURE(kIncreaseWindowsTextContrast,
-             "IncreaseWindowsTextContrast",
-             base::FEATURE_ENABLED_BY_DEFAULT);
 #endif  // BUILDFLAG(IS_WIN)
 
 BASE_FEATURE(kBubbleFrameViewTitleIsHeading,
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
index a66151f1..e806273 100644
--- a/ui/base/ui_base_features.h
+++ b/ui/base/ui_base_features.h
@@ -211,11 +211,6 @@
 // If not set, these values fall back to the pre-defined Skia defaults.
 COMPONENT_EXPORT(UI_BASE_FEATURES)
 BASE_DECLARE_FEATURE(kUseGammaContrastRegistrySettings);
-
-// Increases the contrast of text to align more closely with contemporary
-// applications.
-COMPONENT_EXPORT(UI_BASE_FEATURES)
-BASE_DECLARE_FEATURE(kIncreaseWindowsTextContrast);
 #endif  // BUILDFLAG(IS_WIN)
 
 COMPONENT_EXPORT(UI_BASE_FEATURES)
diff --git a/ui/display/util/display_util_unittest.cc b/ui/display/util/display_util_unittest.cc
index 751633c..0a1b679 100644
--- a/ui/display/util/display_util_unittest.cc
+++ b/ui/display/util/display_util_unittest.cc
@@ -222,7 +222,7 @@
                 .ToString());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kSuccess),
       1);
 
@@ -247,7 +247,7 @@
                 .ToString());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kSuccess),
       2);
 
@@ -272,7 +272,7 @@
                 .ToString());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kSuccess),
       3);
 
@@ -297,7 +297,7 @@
                 .ToString());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kSuccess),
       4);
 
@@ -309,7 +309,7 @@
   EXPECT_FALSE(no_gamma_color_space.IsValid());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorBadGamma),
       1);
   histogram_tester.ExpectTotalCount(
@@ -351,7 +351,7 @@
             GetColorSpaceFromEdid(display::EdidParser(std::move(empty_edid))));
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorPrimariesAreaTooSmall),
       1);
 
@@ -362,7 +362,7 @@
   EXPECT_FALSE(invalid_color_space.IsValid());
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorPrimariesAreaTooSmall),
       2);
 
@@ -372,7 +372,7 @@
   EXPECT_FALSE(sst210_color_space.IsValid()) << sst210_color_space.ToString();
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorBadCoordinates),
       1);
 
@@ -384,7 +384,7 @@
       << sst210_color_space_2.ToString();
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorPrimariesAreaTooSmall),
       3);
 
@@ -397,7 +397,7 @@
       << broken_blue_color_space.ToString();
   histogram_tester.ExpectBucketCount(
       "DrmUtil.GetColorSpaceFromEdid.ChecksOutcome",
-      static_cast<base::HistogramBase::Sample>(
+      static_cast<base::HistogramBase::Sample32>(
           EdidColorSpaceChecksOutcome::kErrorBluePrimaryIsBroken),
       1);
   histogram_tester.ExpectTotalCount(
diff --git a/ui/gfx/color_space.h b/ui/gfx/color_space.h
index 490366b1..3744d184 100644
--- a/ui/gfx/color_space.h
+++ b/ui/gfx/color_space.h
@@ -13,7 +13,6 @@
 
 #include "base/gtest_prod_util.h"
 #include "build/build_config.h"
-#include "skia/ext/skcolorspace_trfn.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/gfx/color_space_export.h"
 
diff --git a/ui/gfx/font_render_params_win.cc b/ui/gfx/font_render_params_win.cc
index a20d03f..a37a00d 100644
--- a/ui/gfx/font_render_params_win.cc
+++ b/ui/gfx/font_render_params_win.cc
@@ -92,7 +92,7 @@
       params_->text_contrast = FontUtilWin::GetContrastFromRegistry();
       params_->text_gamma = FontUtilWin::GetGammaFromRegistry();
     } else {
-      params_->text_contrast = FontUtilWin::TextGammaContrast();
+      params_->text_contrast = SK_GAMMA_CONTRAST;
       params_->text_gamma = SK_GAMMA_EXPONENT;
     }
 
diff --git a/ui/gfx/font_render_params_win_unittest.cc b/ui/gfx/font_render_params_win_unittest.cc
index 1ef67ba..c6af1ff3 100644
--- a/ui/gfx/font_render_params_win_unittest.cc
+++ b/ui/gfx/font_render_params_win_unittest.cc
@@ -38,12 +38,6 @@
 }  // namespace
 
 TEST_F(FontRenderParamsTest, SystemFontSettingsDisabled) {
-  // TODO(crbug.com/40037626)
-  // Disable IncreaseWindowsTextContrast until SK_GAMMA_CONTRAST is set to 1.0f.
-  base::test::ScopedFeatureList scoped_features;
-  scoped_features.InitWithFeatures({},
-                                   {features::kIncreaseWindowsTextContrast});
-
   // Ensure that without the feature enabled, the values of `FontRenderParams`
   // match Skia default values.
   FontRenderParams params =
@@ -56,11 +50,8 @@
   // Ensure that with the feature enabled, the values of `FontRenderParams`
   // match the associated registry key values.
   base::test::ScopedFeatureList scoped_features;
-  // TODO(crbug.com/40037626)
-  // Disable IncreaseWindowsTextContrast until SK_GAMMA_CONTRAST is set to 1.0f.
   scoped_features.InitWithFeatures(
-      {features::kUseGammaContrastRegistrySettings},
-      {features::kIncreaseWindowsTextContrast});
+      {features::kUseGammaContrastRegistrySettings}, {});
 
   FontRenderParams params =
       GetFontRenderParams(FontRenderParamsQuery(), nullptr);
@@ -154,17 +145,4 @@
   }
 }
 
-TEST_F(FontRenderParamsTest, TextGammaContrast) {
-  // TODO(crbug.com/40037626)
-  // Disable IncreaseWindowsTextContrast until SK_GAMMA_CONTRAST is set to 1.0f.
-  base::test::ScopedFeatureList scoped_features;
-  scoped_features.InitWithFeatures({},
-                                   {features::kIncreaseWindowsTextContrast});
-  EXPECT_EQ(FontUtilWin::TextGammaContrast(), SK_GAMMA_CONTRAST);
-}
-
-TEST_F(FontRenderParamsTest, IncreasedContrast) {
-  EXPECT_EQ(FontUtilWin::TextGammaContrast(), 1.0f);
-}
-
 }  // namespace gfx
diff --git a/ui/gfx/font_util_win.cc b/ui/gfx/font_util_win.cc
index 297470d..cb6b2ca 100644
--- a/ui/gfx/font_util_win.cc
+++ b/ui/gfx/font_util_win.cc
@@ -26,7 +26,7 @@
   static TextParameters text_parameters;
   static std::once_flag flag;
   std::call_once(flag, [&] {
-    text_parameters.contrast = FontUtilWin::TextGammaContrast();
+    text_parameters.contrast = SK_GAMMA_CONTRAST;
     text_parameters.gamma = SK_GAMMA_EXPONENT;
     // Only apply values from `IDWriteRenderingParams` if the user has
     // the appropriate registry keys set. Otherwise, `IDWriteRenderingParams`
@@ -93,15 +93,4 @@
   return GetTextParameters().gamma;
 }
 
-// static
-float FontUtilWin::TextGammaContrast() {
-  if (base::FeatureList::IsEnabled(features::kIncreaseWindowsTextContrast)) {
-    // On Windows, SK_GAMMA_CONTRAST is currently 0.5. This flag increases it
-    // to 1.0.
-    return 1.0f;
-  } else {
-    return SK_GAMMA_CONTRAST;
-  }
-}
-
 }  // namespace gfx
diff --git a/ui/gfx/font_util_win.h b/ui/gfx/font_util_win.h
index ba2872f..10635bc7 100644
--- a/ui/gfx/font_util_win.h
+++ b/ui/gfx/font_util_win.h
@@ -16,7 +16,6 @@
   static float ClampGamma(float value);
   static float GetContrastFromRegistry();
   static float GetGammaFromRegistry();
-  static float TextGammaContrast();
 };
 
 }  // namespace gfx
diff --git a/v8 b/v8
index 4bd0d47..6a3f340 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit 4bd0d4731ea90ff9460eeb6d5cfc6cc1127363d3
+Subproject commit 6a3f340a7a16560ac01d3fea3db3e0af7046f26c