diff --git a/DEPS b/DEPS
index 15f06b9..40943c85 100644
--- a/DEPS
+++ b/DEPS
@@ -275,15 +275,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': 'b0831daddc8d12df16dd4d9b2a17686a4e92b15f',
+  'skia_revision': '162dfca3403b21575212f2b75e6627fa88ae6160',
   # 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': 'd09bd16635919befeb7d86e768285e2ad2d9b5b5',
+  'v8_revision': '0803b5bb667ac1f24a9f36dbfbc8d4b7fd7b9154',
   # 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': 'cd80b511ee47200db2c12224a773bc4eb179ab55',
+  'angle_revision': 'cd42f669abe00c43242299737859ba4a215b4bc7',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -302,7 +302,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
-  'fuchsia_version': 'version:8.20220526.2.1',
+  'fuchsia_version': 'version:8.20220527.1.1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling google-toolbox-for-mac
   # and whatever else without interference from each other.
@@ -354,7 +354,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': '75bfe891dbf5b4988178c8188e6412a754cb4b91',
+  'devtools_frontend_revision': '251df4314f2c5fa05759fd4a9d79e8ff7c204f9f',
   # 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.
@@ -390,7 +390,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': 'e6c03a3799922151e821c57a69c78b5e422ac2a5',
+  'dawn_revision': '70724a5180e9c6105dc4d6585e81b09516498c9a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -920,7 +920,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'D5bTTaUupCRV16Ip4D_XOLIU6YLCyvBCqFzYnvoKsogC',
+          'version': '-hRN0Qsp6Ws7bGPZknnK_7B0x4p6WN_9TxKHkmarWUIC',
       },
     ],
     'condition': 'checkout_android',
@@ -1136,7 +1136,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '09c0c073ea80ea33335541e5179c809422fe6fb9',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'ca53c9067007992cc9be8833b655a07cbb609fab',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -1210,7 +1210,7 @@
     Var('chromium_git') + '/external/github.com/khaledhosny/ots.git' + '@' + Var('ots_revision'),
 
   'src/third_party/libgav1/src':
-    Var('chromium_git') + '/codecs/libgav1.git' + '@' + '76a86fcb8cdc93d651eb0f001c3ffda9c290c420',
+    Var('chromium_git') + '/codecs/libgav1.git' + '@' + '38ca0c62d9079820bbb872d81738770c0a28ae6d',
 
   'src/third_party/google_toolbox_for_mac/src': {
       'url': Var('chromium_git') + '/external/github.com/google/google-toolbox-for-mac.git' + '@' + Var('google_toolbox_for_mac_revision'),
@@ -1533,7 +1533,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'fecea55a5bc59c274e8200d06cd68260832d5591',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'a2ba21403c0a958883480c4191c8b5d48a350806',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1669,7 +1669,7 @@
       'condition': 'checkout_android',
   },
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@0899816630a9ae85789f2455fcbe9ac1b94b7438',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@090d24c0ff24f139f95eb9ce0a331b6bee769903',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907',
@@ -1705,10 +1705,10 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'bb289ce3cb15bbabd42fdcb01439367846d9069d',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '5f05d6d5e625fe6f04903335473c5638ddf94514',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '70091fdb8d3d037b8f2919eb63e5a2bf6444deb7',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '488dd9ad158f80cffe297cd48e91f9b646b770a1',
+    Var('webrtc_git') + '/src.git' + '@' + '94ad387f776d974a5ae0d1c926366e23673eaa9a',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1781,7 +1781,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@5a341e08cea8e876756d576036550e1271cd4ea0',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@df1ef77b64694078366c2df988627574b87b7a04',
     'condition': 'checkout_src_internal',
   },
 
@@ -1833,7 +1833,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'YbrqBQouSiZIhlrCKcyN0bEJJFJ7oS7WqLBsNnA7HmwC',
+        'version': 'wia4LIvBXYtmD32chYy-LGLF9GHp0DqDa3DDXm_b7EsC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 85e858d..d71a086 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -69,18 +69,15 @@
   }
 }
 
-# This version of the WebView APK doesn't include WebLayer.
+# This version of the WebView APK doesn't include WebLayer java and resources.
 # It's used to define the allowlist of resources to be pulled out of language
 # splits. See |shared_resources_allowlist_target|.
 standalone_system_webview_apk_tmpl("system_webview_no_weblayer_apk") {
   exclude_weblayer_java = true
   apk_name = "SystemWebViewNoWebLayer"
 
-  # Don't include any code to speed up compilation. This is used only for the
-  # resources allowlist.
   include_32_bit_webview = false
   include_64_bit_webview = false
-  omit_dex = true
 
   # Adding deps on recycler view in the base WebView APK will end up keeping the
   # Java in the base APK instead of the WebLayer DFM, even though it is not
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index fbfabfc..a45447b 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -961,32 +961,39 @@
                     (int) mRootView.getY() + mRootView.getHeight());
             int rootArea = RectUtils.getRectArea(rootVisibleRect);
 
+            int globalPercentage = 0;
+
             // Note that a scheme could occur more than once at a time.
             List<String> schemes = new ArrayList<>();
             List<Integer> schemePercentages = new ArrayList<>();
 
-            for (AwContents content : mAwContentsList) {
-                // A workaround for a deeper problem: https://crbug.com/1232765#c19
-                if (content.isDestroyed(NO_WARN)) continue;
-                if (content.mIsAttachedToWindow && content.mIsViewVisible
-                        && content.mIsWindowVisible) {
-                    // The result of getGlobalVisibleRect can change underneath us, so take a
-                    // protective copy.
-                    Rect contentRect = new Rect(content.getGlobalVisibleRect());
+            // If the root view has a width or height of 0 then nothing is visible, so leave the
+            // lists empty and pass them on like that. Also, we don't want to divide by 0.
+            if (rootArea > 0) {
+                for (AwContents content : mAwContentsList) {
+                    // A workaround for a deeper problem: https://crbug.com/1232765#c19
+                    if (content.isDestroyed(NO_WARN)) continue;
+                    if (content.mIsAttachedToWindow && content.mIsViewVisible
+                            && content.mIsWindowVisible) {
+                        // The result of getGlobalVisibleRect can change underneath us, so take a
+                        // protective copy.
+                        Rect contentRect = new Rect(content.getGlobalVisibleRect());
 
-                    // If the intersect method returns true then it has modified contentRect.
-                    if (contentRect.intersect(rootVisibleRect)) {
-                        contentRects.add(contentRect);
-                        schemes.add(
-                                AwContentsJni.get().getScheme(content.mNativeAwContents, content));
-                        schemePercentages.add(RectUtils.getRectArea(contentRect) * 100 / rootArea);
+                        // If the intersect method returns true then it has modified contentRect.
+                        if (contentRect.intersect(rootVisibleRect)) {
+                            contentRects.add(contentRect);
+                            schemes.add(AwContentsJni.get().getScheme(
+                                    content.mNativeAwContents, content));
+                            schemePercentages.add(
+                                    RectUtils.getRectArea(contentRect) * 100 / rootArea);
+                        }
                     }
                 }
-            }
 
-            int globalPercentage =
-                    RectUtils.calculatePixelsOfCoverage(rootVisibleRect, contentRects) * 100
-                    / rootArea;
+                globalPercentage =
+                        RectUtils.calculatePixelsOfCoverage(rootVisibleRect, contentRects) * 100
+                        / rootArea;
+            }
 
             AwContentsJni.get().updateScreenCoverage(globalPercentage,
                     schemes.toArray(new String[schemes.size()]), toIntArray(schemePercentages));
diff --git a/android_webview/system_webview_apk_tmpl.gni b/android_webview/system_webview_apk_tmpl.gni
index 8b3da5cb..86f8504 100644
--- a/android_webview/system_webview_apk_tmpl.gni
+++ b/android_webview/system_webview_apk_tmpl.gni
@@ -45,8 +45,6 @@
                              "include_64_bit_webview",
                            ])
 
-    _omit_dex = defined(omit_dex) && omit_dex
-
     deps += [
       "//android_webview:locale_pak_assets",
       "//android_webview:pak_file_assets",
@@ -82,9 +80,7 @@
       }
     }
 
-    if (!_omit_dex) {
-      product_config_java_packages = [ webview_product_config_java_package ]
-    }
+    product_config_java_packages = [ webview_product_config_java_package ]
 
     if (webview_includes_weblayer) {
       if (_is_bundle_module) {
@@ -92,9 +88,7 @@
       } else {
         deps += [ "//weblayer:locale_pak_assets" ]
       }
-      if (!_omit_dex) {
-        product_config_java_packages += [ weblayer_product_config_java_package ]
-      }
+      product_config_java_packages += [ weblayer_product_config_java_package ]
     }
 
     if (!defined(alternative_android_sdk_dep)) {
@@ -112,18 +106,14 @@
         "If trichrome library is used, static_library_provider must be set " +
             "so that a dep can be added on the library APK.")
 
-    _include_32_bit_webview = !defined(invoker.include_32_bit_webview) ||
-                              invoker.include_32_bit_webview
-    if (android_64bit_target_cpu) {
-      _include_64_bit_webview = !defined(invoker.include_64_bit_webview) ||
-                                invoker.include_64_bit_webview
-    }
-
     # Pure 32-bit implies a 32-bit only Webview built on a 64-bit configuration.
-    _pure_32_bit = android_64bit_target_cpu && !_include_64_bit_webview
-    _pure_64_bit = android_64bit_target_cpu && !_include_32_bit_webview
+    _pure_32_bit =
+        android_64bit_target_cpu && defined(invoker.include_64_bit_webview) &&
+        !invoker.include_64_bit_webview
+    _pure_64_bit =
+        android_64bit_target_cpu && defined(invoker.include_32_bit_webview) &&
+        !invoker.include_32_bit_webview
     not_needed([
-                 "_include_32_bit_webview",
                  "_pure_32_bit",
                  "_pure_64_bit",
                ])
@@ -135,8 +125,7 @@
     if (!_use_trichrome_library) {
       shared_resources = true
 
-      if ((!android_64bit_target_cpu && _include_32_bit_webview) ||
-          (android_64bit_target_cpu && !_pure_32_bit)) {
+      if (!android_64bit_target_cpu || !_pure_32_bit) {
         shared_libraries = [ "//android_webview:libwebviewchromium" ]
         _include_primary_support = true
       }
@@ -154,26 +143,16 @@
       if (android_64bit_target_cpu) {
         if (invoker.is_64_bit_browser) {
           native_lib_placeholders = [ "libdummy.so" ]
-          if (_include_32_bit_webview) {
+          if (invoker.include_32_bit_webview) {
             secondary_abi_shared_libraries = [ "//android_webview:monochrome_64($android_secondary_abi_toolchain)" ]
             _include_secondary_support = true
           }
         } else {
-          if (_include_64_bit_webview) {
+          if (invoker.include_64_bit_webview) {
             shared_libraries = [ "//android_webview:monochrome" ]
             _include_primary_support = true
           }
           secondary_native_lib_placeholders = [ "libdummy.so" ]
-          static_library_provider_use_secondary_abi = true
-        }
-
-        # http://crbug.com/1042107.
-        if (is_component_build) {
-          if (invoker.is_64_bit_browser) {
-            main_component_library = "libmonochrome_64.cr.so"
-          } else {
-            main_component_library = "libmonochrome.cr.so"
-          }
         }
       } else {
         native_lib_placeholders = [ "libdummy.so" ]
@@ -267,7 +246,7 @@
       command_line_flags_file = "webview-command-line"
     }
 
-    if (!is_java_debug && !_omit_dex) {
+    if (!is_java_debug) {
       proguard_enabled = true
       if (!defined(proguard_configs)) {
         proguard_configs = []
@@ -284,13 +263,13 @@
       if (_use_trichrome_library) {
         if (android_64bit_target_cpu) {
           if (invoker.is_64_bit_browser) {
-            if (_include_32_bit_webview) {
+            if (invoker.include_32_bit_webview) {
               version_code = trichrome_64_32_version_code
             } else {
               version_code = trichrome_64_version_code
             }
           } else {
-            if (_include_64_bit_webview) {
+            if (invoker.include_64_bit_webview) {
               version_code = trichrome_32_64_version_code
             } else {
               version_code = trichrome_32_version_code
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index 4085de3..64c6dac6 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -1086,6 +1086,11 @@
 const base::Feature kOobeHidDetectionRevamp{"OobeHidDetectionRevamp",
                                             base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Enables chrome://oobe/login url. The url seems not being used. The flag is a
+// precaution in case it's actually used.
+const base::Feature kOobeLoginUrl{"OobeLoginUrl",
+                                  base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Enables or disables the Oobe quick start flow.
 const base::Feature kOobeQuickStart{"OobeQuickStart",
                                     base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h
index 9b241f86..89ae419 100644
--- a/ash/constants/ash_features.h
+++ b/ash/constants/ash_features.h
@@ -435,6 +435,8 @@
 COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kOobeHidDetectionRevamp;
 COMPONENT_EXPORT(ASH_CONSTANTS)
+extern const base::Feature kOobeLoginUrl;
+COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kOobeQuickStart;
 COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kOobeNewRecommendApps;
diff --git a/ash/public/cpp/system_tray_client.h b/ash/public/cpp/system_tray_client.h
index 4c98648..03806d04 100644
--- a/ash/public/cpp/system_tray_client.h
+++ b/ash/public/cpp/system_tray_client.h
@@ -144,17 +144,17 @@
   virtual void ShowAccessCodeCastingDialog(
       AccessCodeCastDialogOpenLocation open_location) = 0;
 
-  // Shows a calendar event. If an event is present then we open it, otherwise
-  // we open Google Calendar with no arguments, which as of now just opens on
-  // today's date. We open the calendar PWA if it's installed (and assign true
-  // to |opened_pwa|), a new browser tab otherwise (and assign false to
-  // |opened_pwa|).
+  // Shows a calendar event. If an event is present then it's opened, otherwise
+  // Google Calendar is opened to `date`. Open in the calendar PWA if
+  // installed (and assign true to `opened_pwa`), in a new browser tab otherwise
+  // (and assign false to |opened_pwa|).
   //
   // The calendar PWA requires the event URL to have a specific prefix,
-  // so the URL we actually open may not be the same as the URL that was passed
-  // in.  This is guaranteed to be the case if no event URL was passed in.  The
-  // URL we actually opened is assigned to |finalized_event_url|.
+  // so the URL actually opened may not be the same as the passed-in URL.  This
+  // is guaranteed to be the case if no event URL was passed in.  The URL that's
+  // actually opened is assigned to `finalized_event_url`.
   virtual void ShowCalendarEvent(const absl::optional<GURL>& event_url,
+                                 const base::Time& date,
                                  bool& opened_pwa,
                                  GURL& finalized_event_url) = 0;
 
diff --git a/ash/public/cpp/test/test_system_tray_client.cc b/ash/public/cpp/test/test_system_tray_client.cc
index 538f857..a7c1532 100644
--- a/ash/public/cpp/test/test_system_tray_client.cc
+++ b/ash/public/cpp/test/test_system_tray_client.cc
@@ -116,6 +116,7 @@
 
 void TestSystemTrayClient::ShowCalendarEvent(
     const absl::optional<GURL>& event_url,
+    const base::Time& date,
     bool& opened_pwa,
     GURL& final_event_url) {}
 
diff --git a/ash/public/cpp/test/test_system_tray_client.h b/ash/public/cpp/test/test_system_tray_client.h
index 7b47551..4db1910 100644
--- a/ash/public/cpp/test/test_system_tray_client.h
+++ b/ash/public/cpp/test/test_system_tray_client.h
@@ -63,6 +63,7 @@
   void ShowAccessCodeCastingDialog(
       AccessCodeCastDialogOpenLocation open_location) override;
   void ShowCalendarEvent(const absl::optional<GURL>& event_url,
+                         const base::Time& date,
                          bool& opened_pwa,
                          GURL& final_event_url) override;
 
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index e477fef..673f5ad 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Jy sal aanbevelings sien sodat jy kan aanhou waar jy opgehou het. Jy kan raak en hou om aanbevelings te verwyder.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Rakgroep</translation>
-<translation id="2803313416453193357">Maak vouer oop</translation>
 <translation id="2805756323405976993">Programme</translation>
 <translation id="2814448776515246190">Gedeeltelike opname</translation>
 <translation id="2819276065543622893">Jy sal nou afgemeld word.</translation>
@@ -1062,6 +1061,7 @@
 <translation id="7348093485538360975">Opskerm-sleutelbord</translation>
 <translation id="735745346212279324">VPN ontkoppel</translation>
 <translation id="7360036564632145207">As jy jou datatoegangbeskerming vir randtoestelle se instelling verander, kan dit werkverrigting optimeer</translation>
+<translation id="736045644501761622">Stel muurpapier en styl</translation>
 <translation id="7371404428569700291">Neem venster op</translation>
 <translation id="7377169924702866686">Hoofletterslot is aan.</translation>
 <translation id="7377481913241237033">Koppel met 'n kode</translation>
@@ -1296,6 +1296,7 @@
 <translation id="8721053961083920564">Wissel volume. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Volskermskoot</translation>
 <translation id="8734991477317290293">Dit kan dalk probeer om jou sleuteldrukke te steel</translation>
+<translation id="8735678380411481005">Kleur van sleutelbord se agterlig</translation>
 <translation id="8735953464173050365">Wys sleutelbordinstellings. <ph name="KEYBOARD_NAME" /> is gekies</translation>
 <translation id="8755498163081687682">Verifieer jou identiteit: <ph name="ORIGIN_NAME" /> wil bevestig dat dit jy is</translation>
 <translation id="875593634123171288">Wys VPN-instellings</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 9d3e3b9..96f6e702 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">ካቆሙበት መቀጠል እንዲችሉ ምክሮችን ይመለከታሉ። ምክሮችን ለማስወገድ መንካት እና መያዝ ይችላሉ።</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">የመደርደሪያ ፓርቲ</translation>
-<translation id="2803313416453193357">አቃፊ ክፈት</translation>
 <translation id="2805756323405976993">መተግበሪያዎች</translation>
 <translation id="2814448776515246190">ከፊል መያዝ</translation>
 <translation id="2819276065543622893">አሁን ዘግተው እንዲወጡ ይደረጋሉ።</translation>
@@ -696,6 +695,7 @@
 <translation id="5071064518267176975">አንድ መተግበሪያ ማይክሮፎኑን መጠቀም ይፈልጋል</translation>
 <translation id="5078796286268621944">የተሳሳተ ፒን</translation>
 <translation id="5083553833479578423">ተጨማሪ የረዳት ባህሪያትን ያስከፍቱ።</translation>
+<translation id="509790653408515442">የስልክዎን መተግበሪያዎች በዥረት ሲለቅቁ እዚህ ይታያሉ</translation>
 <translation id="5107522548814527560">ድር</translation>
 <translation id="5117590920725113268">ቀጣዩን ወር አሳይ</translation>
 <translation id="5136175204352732067">የተለየ የቁልፍ ሰሌዳ ተገናኝቷል</translation>
@@ -718,6 +718,7 @@
 <translation id="523505283826916779">የተደራሽነት ቅንብሮች</translation>
 <translation id="5245201184978705914">ትራንስክሪፕት መፍጠር አልተቻለም</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> ከተሰኘ መሣሪያ ጋር ተገናኝቷል፣ <ph name="BATTERY_PERCENTAGE" />% ባትሪ</translation>
+<translation id="5258528442992323769">ምንም የተቀመጡ ዴስኮች የሉም</translation>
 <translation id="5260676007519551770">ዴስክ 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> የእርስዎን ትኩረት ይፈልጋል።</translation>
 <translation id="5283198616748585639">1 ደቂቃ ያክሉ</translation>
@@ -1257,6 +1258,7 @@
 <translation id="851458219935658693">አሁን ካለ ዴስክ መስኮቶችን አሳይ፣ የራዲዮ አዝራር ተመርጧል</translation>
 <translation id="8517041960877371778">የእርሰዎ <ph name="DEVICE_TYPE" /> እንደበራ ኃይል መሙላት አይችሉ ይሆናል።</translation>
 <translation id="8535393432370007982">በቀለም የተደረደረበት ቅደም-ተከተል ቀልብስ</translation>
+<translation id="8542053257095774575">ምንም የተቀመጡ ዴስኮች ወይም ቅንብር ደንቦች የሉም</translation>
 <translation id="8546059259582788728">ድርደራም መቀልበስ ተሳክቷል</translation>
 <translation id="8551588720239073785">የቀን እና የጊዜ ቅንብሮች</translation>
 <translation id="8553395910833293175">ለሁሉም ዴስኮች ቀድሞውኑ ተመድቧል።</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 9cf59ff..650b03d 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -302,7 +302,6 @@
 <translation id="2791421900609674576">ستظهر لك اقتراحات كي تتمكّن من المتابعة من حيث توقفت، ويمكنك النقر مع الاستمرار لإزالة هذه الاقتراحات.</translation>
 <translation id="2792498699870441125">‏Alt+مفتاح البحث</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">فتح المجلد</translation>
 <translation id="2805756323405976993">التطبيقات</translation>
 <translation id="2814448776515246190">تصوير جزئي</translation>
 <translation id="2819276065543622893">سيتم تسجيل خروجك الآن.</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index dfdffa2..2f3d68e 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">আপুনি চুপাৰিছ দেখা পাব যাতে আপুনি য'ত এৰিছিল তাৰ পৰাই পুনৰ আৰম্ভ কৰিব পাৰে।  আপুনি চুপাৰিছ আঁতৰাবলৈ স্পর্শ কৰি কিছুসময় ধৰি থাকিব পাৰে।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">ফ'ল্ডাৰ খোলক</translation>
 <translation id="2805756323405976993">এপ্</translation>
 <translation id="2814448776515246190">আংশিক কেপচাৰ</translation>
 <translation id="2819276065543622893">আপুনি এতিয়া ছাইন আউট হ’ব।</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 75bbd37..60d7639 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Qalan yerdən davam edə bilmək üçün tövsiyələri görəcəksiniz. Tövsiyələri silmək üçün toxunub saxlaya bilərsiniz.</translation>
 <translation id="2792498699870441125">Alt+Axtarış</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Qovluğu açın</translation>
 <translation id="2805756323405976993">Tətbiq</translation>
 <translation id="2814448776515246190">Qismən çəkim</translation>
 <translation id="2819276065543622893">Az sonra hesabdan çıxacaqsınız.</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index 64cc3171..14c08e14 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Выкарыстоўвайце рэкамендацыі, каб працягваць работу з таго месца, на якім вы спыніліся. Каб выдаліць рэкамендацыю, націсніце на яе і ўтрымлівайце.</translation>
 <translation id="2792498699870441125">Alt+Пошук</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Адкрыць папку</translation>
 <translation id="2805756323405976993">Праграмы</translation>
 <translation id="2814448776515246190">Здыманне часткі экрана</translation>
 <translation id="2819276065543622893">Вы выйдзеце з уліковага запісу зараз.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Праграма запытвае дазвол на выкарыстанне мікрафона</translation>
 <translation id="5078796286268621944">Няправільны PIN-код</translation>
 <translation id="5083553833479578423">Адкрыйце больш функцый Памочніка.</translation>
+<translation id="509790653408515442">Тут будуць з'яўляцца праграмы з вашага тэлефона, якія вы адкрываеце без спампоўвання</translation>
 <translation id="5107522548814527560">Інтэрнэт</translation>
 <translation id="5117590920725113268">Паказаць наступны месяц</translation>
 <translation id="5136175204352732067">Падключана іншая клавіятура</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Налады спецыяльных магчымасцей</translation>
 <translation id="5245201184978705914">Не ўдалося стварыць расшыфроўку</translation>
 <translation id="5253783950165989294">Устаноўлена падключэнне да прылады "<ph name="DEVICE_NAME" />", <ph name="BATTERY_PERCENTAGE" />% зараду акумулятара</translation>
+<translation id="5258528442992323769">Няма захаваных працоўных сталоў</translation>
 <translation id="5260676007519551770">Стол 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> патрабуе вашай увагі.</translation>
 <translation id="5283198616748585639">Дадаць 1 хвіліну</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Паказ вокнаў бягучага працоўнага стала, выбраны пераключальнік</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> можа не зараджацца ва ўключаным стане.</translation>
 <translation id="8535393432370007982">Адрабіць сартаванне па колеры</translation>
+<translation id="8542053257095774575">Няма захаваных працоўных сталоў і шаблонаў</translation>
 <translation id="8546059259582788728">Сартаванне адроблена</translation>
 <translation id="8551588720239073785">Налады даты і часу</translation>
 <translation id="8553395910833293175">Акно ўжо даступнае на ўсіх працоўных сталах.</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index be35139..9975c75 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Ще виждате препоръки, така че да можете да продължавате оттам, откъдето сте прекъснали. Имате възможност да докоснете и задържите дадена препоръка, за да я премахнете.</translation>
 <translation id="2792498699870441125">Alt + търсене</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Отваряне на папката</translation>
 <translation id="2805756323405976993">Приложения</translation>
 <translation id="2814448776515246190">Частично заснемане</translation>
 <translation id="2819276065543622893">Ще излезете сега.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Приложение иска да използва микрофона</translation>
 <translation id="5078796286268621944">Неправилен ПИН</translation>
 <translation id="5083553833479578423">Отключете още функции на Асистент.</translation>
+<translation id="509790653408515442">Когато предавате поточно приложенията на телефона си, те ще се показват тук</translation>
 <translation id="5107522548814527560">Мрежата</translation>
 <translation id="5117590920725113268">Показване на следващия месец</translation>
 <translation id="5136175204352732067">Свързана е различна клавиатура</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Настройки за достъпност</translation>
 <translation id="5245201184978705914">Преписът не може да се генерира</translation>
 <translation id="5253783950165989294">Установена е връзка с устройство на име <ph name="DEVICE_NAME" />. Ниво на батерията: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Няма запазени работни кътове</translation>
 <translation id="5260676007519551770">Работен кът 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> се нуждае от вниманието ви.</translation>
 <translation id="5283198616748585639">Добавяне на 1 мин</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Показват се прозорците от текущия работен кът, активиран е бутон за избор</translation>
 <translation id="8517041960877371778">Възможно е вашият <ph name="DEVICE_TYPE" /> да не се зарежда, докато е включен.</translation>
 <translation id="8535393432370007982">Отмяна на сортирането по цвят</translation>
+<translation id="8542053257095774575">Няма запазени работни кътове или шаблони</translation>
 <translation id="8546059259582788728">Отмяната на сортирането е успешна</translation>
 <translation id="8551588720239073785">Настройки за дата и час</translation>
 <translation id="8553395910833293175">Вече е прехвърлено във всички работни кътове.</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 84721b29..7e1d5181 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">আপনি সাজেশন দেখতে পাবেন যাতে যেখানে শেষ কাজ করেছিলেন সেখান থেকেই আবার শুরু করতে পারেন। সাজেশন সরিয়ে দেওয়ার জন্য আপনি টাচ করে ধরে থাকতে পারেন।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">শেল্ফ পার্টি</translation>
-<translation id="2803313416453193357">ফোল্ডার খুলুন</translation>
 <translation id="2805756323405976993">অ্যাপ্স</translation>
 <translation id="2814448776515246190">আংশিক ক্যাপচার</translation>
 <translation id="2819276065543622893">আপনি এখনই প্রস্থান করুন হবেন৷</translation>
@@ -1059,6 +1058,7 @@
 <translation id="7348093485538360975">অন-স্ক্রীণ কীবোর্ড</translation>
 <translation id="735745346212279324">VPN ডিসকানেক্ট করা হয়েছে</translation>
 <translation id="7360036564632145207">পেরিফেরাল সেটিংসের জন্য আপনার 'ডেটা অ্যাক্সেস সুরক্ষা' ব্যবস্থায় পরিবর্তন করলে পারফর্ম্যান্স অপ্টিমাইজ হতে পারে</translation>
+<translation id="736045644501761622">'ওয়ালপেপার ও স্টাইল' ফিচার সেট করুন</translation>
 <translation id="7371404428569700291">উইন্ডো রেকর্ড করুন</translation>
 <translation id="7377169924702866686">Caps Lock চালু আছে৷</translation>
 <translation id="7377481913241237033">কোড ব্যবহার করে কানেক্ট করুন</translation>
@@ -1292,6 +1292,7 @@
 <translation id="8721053961083920564">ভলিউম টগল করুন। <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">ফুল-স্ক্রিন ক্যাপচার</translation>
 <translation id="8734991477317290293">এটি আপনার পাসওয়ার্ড চুরি করার চেষ্টা করতে পারে</translation>
+<translation id="8735678380411481005">কীবোর্ড ব্যাকলাইটের রঙ</translation>
 <translation id="8735953464173050365">কীবোর্ড সেটিংস দেখান। <ph name="KEYBOARD_NAME" /> বেছে নেওয়া হয়েছে</translation>
 <translation id="8755498163081687682">আপনার পরিচয় যাচাই করুন: <ph name="ORIGIN_NAME" /> আপনার পরিচয় যাচাই করতে চায়</translation>
 <translation id="875593634123171288">VPN সেটিংস দেখান</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index 6e16a56..b0004ac2 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Otvoreno jučer</translation>
 <translation id="2441427462554639370">Snimanje je prekinuto zbog jako malo slobodnog prostora za pohranu</translation>
 <translation id="24452542372838207">Proširi obavještenje</translation>
+<translation id="2449089818483227734">Slaba baterija</translation>
 <translation id="2450205753526923158">Način rada za snimak ekrana</translation>
 <translation id="2456008742792828469">Kalendar, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Potvrdite rezoluciju</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">Vidjet ćete preporuke da možete nastaviti gdje ste stali.  Možete dodirnuti i zadržati da uklonite preporuke.</translation>
 <translation id="2792498699870441125">Alt + tipka za pretraživanje</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Otvori folder</translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2814448776515246190">Djelimično snimanje</translation>
 <translation id="2819276065543622893">Sada ćete se odjaviti.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3445925074670675829">USB-C uređaj</translation>
+<translation id="3455468639467374593">Predložak, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Od vaše posljednje prijave na ovaj uređaj je povezana još jedna tastatura. Prije nego što upotrijebite tu tastaturu, provjerite je li pouzdana.</translation>
 <translation id="3465356146291925647">Upravlja vaš administrator</translation>
 <translation id="3477079411857374384">Ctrl + Shift + razmak</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Polica je automatski skrivena</translation>
+<translation id="3505066820268455558">Punjenje baterije</translation>
 <translation id="3509391053705095206">Nije moguće pronaći vaš telefon. Provjerite je li Bluetooth na telefonu uključen.</translation>
 <translation id="3510164367642747937">Istakni kursor miša</translation>
 <translation id="3513798432020909783">Računom upravlja <ph name="MANAGER_EMAIL" /></translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Otvorite postavke Bluetootha da uparite uređaj</translation>
 <translation id="3638400994746983214">Uključite/isključite ekran za privatnost. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Rok za ažuriranje je prekoračen</translation>
+<translation id="3659814201068740063">Još oko <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" />%).
+Priključite uređaj na napajanje.</translation>
 <translation id="366222428570480733">Korisnik kojim upravlja <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="36813544980941320">WiFi mreže će se dijeliti između vašeg telefona i uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Web-lokacije</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">Prethodna numera</translation>
 <translation id="3969043077941541451">Isključeno</translation>
 <translation id="397105322502079400">Računanje…</translation>
+<translation id="397726367135689299">Punjenje baterije možda nije pouzdano.</translation>
 <translation id="3977512764614765090">Baterija je na <ph name="PERCENTAGE" />% i puni se.</translation>
 <translation id="3986082989454912832">Odgovori</translation>
 <translation id="3995138139523574647">USB-C uređaj (stražnji desni priključak)</translation>
@@ -1039,6 +1044,7 @@
 <translation id="7130207228079676353">VEOMA VJEROVATNO</translation>
 <translation id="7131634465328662194">Automatski ćete se odjaviti.</translation>
 <translation id="7143207342074048698">Povezivanje</translation>
+<translation id="7144942256906679589">Status baterije</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Vraćanje na staru rezoluciju za <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Osvježi</translation>
@@ -1105,6 +1111,7 @@
 <translation id="7593891976182323525">Tipka za pretraživanje ili Shift</translation>
 <translation id="7600875258240007829">Prikaži sva obavještenja</translation>
 <translation id="7607002721634913082">Pauzirano</translation>
+<translation id="7609951632080598826">Prikaz kalendara, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Kamera je ponovo povezana.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Vidite postavke Dijeljenja u blizini.</translation>
@@ -1230,6 +1237,7 @@
 <translation id="8345019317483336363">Odabran je prozor <ph name="WINDOW_TITLE" /></translation>
 <translation id="8351131234907093545">Napravite bilješku</translation>
 <translation id="8364673525741149932">Uključite Shelf Party. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Spremljena radna površina, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Slovo unaprijed</translation>
 <translation id="8371991222807690464">Performanse perifernog uređaja mogu biti ograničene u Načinu rada za gosta</translation>
 <translation id="8374601332003098278">Pritisnite Enter da snimite dio ekrana</translation>
@@ -1342,6 +1350,7 @@
 <translation id="9000771174482730261">UPRAVLJAJTE POHRANOM</translation>
 <translation id="9017320285115481645">Unesite kôd za pristup roditelja za Family Link.</translation>
 <translation id="9024331582947483881">cijeli zaslon</translation>
+<translation id="9029736946581028033">Uređaj će se uskoro isključiti</translation>
 <translation id="9030319654231318877">Isključeno do zalaska sunca</translation>
 <translation id="9034924485347205037">Linux fajlovi</translation>
 <translation id="9047624247355796468">Otvorite postavke za mrežu <ph name="NETWORK_NAME" /></translation>
@@ -1371,6 +1380,7 @@
 <translation id="9168436347345867845">Uradit ću to kasnije</translation>
 <translation id="9178475906033259337">Prikaz 1 rezultata za upit <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ova funkcija vam omogućava da brzo pristupite prijavljenim korisnicima bez lozinke. Ovu funkciju koristite samo s računima kojima vjerujete.</translation>
+<translation id="9180906851711123156">Pritisnite Ctrl + W da biste zatvorili</translation>
 <translation id="9183456764293710005">Povećalo za cijeli ekran</translation>
 <translation id="9193626018745640770">Emitiranje na nepoznatom prijemniku</translation>
 <translation id="9194617393863864469">Prijavite još jednog korisnika...</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index ebc818c..6a20f2e 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Veuràs recomanacions per poder continuar des d'on ho vas deixar. Pots mantenir premuda qualsevol recomanació per suprimir-la.</translation>
 <translation id="2792498699870441125">Alt+Cerca</translation>
 <translation id="2797741504905337289">Grup de prestatges</translation>
-<translation id="2803313416453193357">Obre la carpeta</translation>
 <translation id="2805756323405976993">Aplicacions</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">Ara se us tancarà la sessió.</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index adb6db4..c355eed 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Budou se zobrazovat doporučení, abyste mohli pokračovat od místa, kde jste skončili. Doporučení můžete odstranit podržením.</translation>
 <translation id="2792498699870441125">Alt + Vyhledávání</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Otevřít složku</translation>
 <translation id="2805756323405976993">Aplikace</translation>
 <translation id="2814448776515246190">Částečný záznam</translation>
 <translation id="2819276065543622893">Nyní budete odhlášeni.</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb
index 73a062d3..0f22b1d 100644
--- a/ash/strings/ash_strings_cy.xtb
+++ b/ash/strings/ash_strings_cy.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Byddwch yn gweld argymhellion fel eich bod yn gallu parhau lle y gwnaethoch adael. Gallwch gyffwrdd a daliwch i dynnu argymhellion.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Parti Silff</translation>
-<translation id="2803313416453193357">Agor y ffolder</translation>
 <translation id="2805756323405976993">Apiau</translation>
 <translation id="2814448776515246190">Tynnu'n rhannol</translation>
 <translation id="2819276065543622893">Byddwch yn cael eich allgofnodi nawr.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Mae ap eisiau defnyddio'r meicroffon</translation>
 <translation id="5078796286268621944">PIN anghywir</translation>
 <translation id="5083553833479578423">Datgloi rhagor o nodweddion Assistant.</translation>
+<translation id="509790653408515442">Pan fyddwch yn ffrydio apiau eich ffôn, byddant yn ymddangos yma</translation>
 <translation id="5107522548814527560">Y We</translation>
 <translation id="5117590920725113268">Dangos y mis nesaf</translation>
 <translation id="5136175204352732067">Mae bysellfwrdd gwahanol wedi'i gysylltu</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Gosodiadau hygyrchedd</translation>
 <translation id="5245201184978705914">Methu â chynhyrchu trawsgrifiad</translation>
 <translation id="5253783950165989294">Wedi'i gysylltu â dyfais o'r enw <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% batri</translation>
+<translation id="5258528442992323769">Nid oes unrhyw ddesgiau wedi'u cadw</translation>
 <translation id="5260676007519551770">Desg 4</translation>
 <translation id="5283099933536931082">Mae angen eich sylw ar <ph name="APP_ITEM_TITLE" />.</translation>
 <translation id="5283198616748585639">Ychwanegwch 1 fun</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Dangos ffenestri o'r ddesg bresennol, botwm radio wedi'i ddewis</translation>
 <translation id="8517041960877371778">Mae'n bosib na fydd eich <ph name="DEVICE_TYPE" /> yn gwefru tra bydd ymlaen.</translation>
 <translation id="8535393432370007982">Dadwnued trefnu yn ôl lliw</translation>
+<translation id="8542053257095774575">Nid oes unrhyw ddesgiau neu dempledi wedi'u cadw</translation>
 <translation id="8546059259582788728">Wedi dadwneud trefnu yn llwyddiannus</translation>
 <translation id="8551588720239073785">Gosodiadau dyddiad ac amser</translation>
 <translation id="8553395910833293175">Wedi'i haseinio i bob desg yn barod.</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index a576168..7675d217 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Du får vist anbefalinger, så du kan fortsætte, hvor du slap. Du kan fjerne anbefalinger ved at trykke og holde fingeren nede.</translation>
 <translation id="2792498699870441125">Alt+Søg</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Åbn mappe</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Afgrænset screenshot</translation>
 <translation id="2819276065543622893">Du bliver logget ud nu.</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 3240861e..9cc26ef 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">Empfehlungen werden angezeigt, damit du dort fortfahren kannst, wo du aufgehört hast. Durch Berühren und Halten kannst du Empfehlungen entfernen.</translation>
 <translation id="2792498699870441125">Alt+Suchtaste</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Ordner öffnen</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Ausschnitt aufnehmen</translation>
 <translation id="2819276065543622893">Du wirst jetzt abgemeldet.</translation>
@@ -696,6 +695,7 @@
 <translation id="5071064518267176975">Eine App möchte das Mikrofon verwenden</translation>
 <translation id="5078796286268621944">Falsche PIN</translation>
 <translation id="5083553833479578423">Möchtest du weitere Assistant-Funktionen freischalten?</translation>
+<translation id="509790653408515442">Wenn du Apps von deinem Smartphone streamst, werden sie hier angezeigt</translation>
 <translation id="5107522548814527560">Web</translation>
 <translation id="5117590920725113268">Nächsten Monat anzeigen</translation>
 <translation id="5136175204352732067">Andere Tastatur angeschlossen</translation>
@@ -718,6 +718,7 @@
 <translation id="523505283826916779">Einstellungen für Bedienungshilfen</translation>
 <translation id="5245201184978705914">Transkript konnte nicht erstellt werden</translation>
 <translation id="5253783950165989294">Mit einem Gerät namens „<ph name="DEVICE_NAME" />“ verbunden, <ph name="BATTERY_PERCENTAGE" /> % Akku</translation>
+<translation id="5258528442992323769">Keine gespeicherten Desktops</translation>
 <translation id="5260676007519551770">Desktop 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> erfordert deine Aufmerksamkeit.</translation>
 <translation id="5283198616748585639">1 min hinzufügen</translation>
@@ -1256,6 +1257,7 @@
 <translation id="851458219935658693">Fenster des aktuellen Desktops werden angezeigt, Optionsfeld ausgewählt</translation>
 <translation id="8517041960877371778">Dein <ph name="DEVICE_TYPE" /> wird möglicherweise nicht aufgeladen, wenn es eingeschaltet ist.</translation>
 <translation id="8535393432370007982">Sortierung nach Farbe rückgängig machen</translation>
+<translation id="8542053257095774575">Keine gespeicherten Desktops oder Vorlagen</translation>
 <translation id="8546059259582788728">Sortierung rückgängig gemacht</translation>
 <translation id="8551588720239073785">Datums- und Uhrzeiteinstellungen</translation>
 <translation id="8553395910833293175">Ist bereits allen Desktops zugewiesen.</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index c886933..de40b2e3 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Θα βλέπετε προτάσεις για να συνεχίσετε από εκεί που σταματήσατε. Μπορείτε να αγγίξετε παρατεταμένα για να καταργήσετε προτάσεις.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Άνοιγμα φακέλου</translation>
 <translation id="2805756323405976993">Εφαρμογές </translation>
 <translation id="2814448776515246190">Μερική λήψη</translation>
 <translation id="2819276065543622893">Θα αποσυνδεθείτε τώρα.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Μια εφαρμογή θέλει να χρησιμοποιήσει το μικρόφωνο</translation>
 <translation id="5078796286268621944">Εσφαλμένο PIN</translation>
 <translation id="5083553833479578423">Ξεκλειδώστε περισσότερες λειτουργίες του Βοηθού.</translation>
+<translation id="509790653408515442">Όταν μεταδίδετε τις εφαρμογές του τηλεφώνου σας σε ροή, θα εμφανίζονται εδώ.</translation>
 <translation id="5107522548814527560">Ιστός</translation>
 <translation id="5117590920725113268">Εμφάνιση επόμενου μήνα</translation>
 <translation id="5136175204352732067">Συνδέθηκε διαφορετικό πληκτρολόγιο</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Ρυθμίσεις προσβασιμότητας</translation>
 <translation id="5245201184978705914">Δεν είναι δυνατή η δημιουργία μεταγραφής</translation>
 <translation id="5253783950165989294">Πραγματοποιήθηκε σύνδεση σε συσκευή με όνομα <ph name="DEVICE_NAME" />, μπαταρία <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Δεν υπάρχουν αποθηκευμένα γραφεία.</translation>
 <translation id="5260676007519551770">Γραφείο 4</translation>
 <translation id="5283099933536931082">Η εφαρμογή <ph name="APP_ITEM_TITLE" /> χρειάζεται την προσοχή σας.</translation>
 <translation id="5283198616748585639">Προσθήκη 1 λεπτού</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Εμφάνιση παραθύρων από το τρέχον γραφείο, επιλέχτηκε το κουμπί επιλογής.</translation>
 <translation id="8517041960877371778">Δεν είναι δυνατή η φόρτιση της συσκευής <ph name="DEVICE_TYPE" /> ενώ είναι ενεργοποιημένη.</translation>
 <translation id="8535393432370007982">Αναίρεση σειράς ταξινόμησης κατά χρώμα</translation>
+<translation id="8542053257095774575">Δεν υπάρχουν αποθηκευμένα γραφεία ή πρότυπα.</translation>
 <translation id="8546059259582788728">Η αναίρεση ταξινόμησης ήταν επιτυχής</translation>
 <translation id="8551588720239073785">Ρυθμίσεις ημερομηνίας και ώρας</translation>
 <translation id="8553395910833293175">Έχει εκχωρηθεί ήδη σε όλα τα γραφεία.</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index fd24d41..d5c7c870 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Opened yesterday</translation>
 <translation id="2441427462554639370">Recording ended due to critically low storage space</translation>
 <translation id="24452542372838207">Expand notification</translation>
+<translation id="2449089818483227734">Low battery</translation>
 <translation id="2450205753526923158">Screenshot mode</translation>
 <translation id="2456008742792828469">Calendar, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Confirm resolution</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">You’ll see recommendations so that you can continue where you left off. You can touch &amp; hold to remove recommendations.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Open folder</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Partial capture</translation>
 <translation id="2819276065543622893">You will be signed out now.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3445925074670675829">USB-C device</translation>
+<translation id="3455468639467374593">Template, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Another keyboard has connected to this device since you last signed in. Make sure that you trust this keyboard before you use it.</translation>
 <translation id="3465356146291925647">Managed by your administrator</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, signal strength <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Shelf auto hidden</translation>
+<translation id="3505066820268455558">Battery charging</translation>
 <translation id="3509391053705095206">Can’t find your phone. Make sure that your phone’s Bluetooth is on.</translation>
 <translation id="3510164367642747937">Highlight mouse cursor</translation>
 <translation id="3513798432020909783">Account managed by <ph name="MANAGER_EMAIL" /></translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Open Bluetooth settings to pair your device</translation>
 <translation id="3638400994746983214">Toggle privacy screen. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Update overdue</translation>
+<translation id="3659814201068740063">About <ph name="TIME_LEFT" /> left (<ph name="PERCENTAGE" />%).
+Connect your device to power.</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> managed user</translation>
 <translation id="36813544980941320">Wi-Fi networks will be shared between your phone and <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Websites</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">Previous track</translation>
 <translation id="3969043077941541451">Off</translation>
 <translation id="397105322502079400">Calculating...</translation>
+<translation id="397726367135689299">Battery charging may be unreliable.</translation>
 <translation id="3977512764614765090">Battery at <ph name="PERCENTAGE" />% and charging.</translation>
 <translation id="3986082989454912832">Answer</translation>
 <translation id="3995138139523574647">USB-C device (right-hand-side back port)</translation>
@@ -1039,6 +1044,7 @@
 <translation id="7130207228079676353">MOST LIKELY</translation>
 <translation id="7131634465328662194">You will automatically be signed out.</translation>
 <translation id="7143207342074048698">Connecting</translation>
+<translation id="7144942256906679589">Battery status</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Reverting to old resolution in <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Refresh</translation>
@@ -1105,6 +1111,7 @@
 <translation id="7593891976182323525">Search or Shift</translation>
 <translation id="7600875258240007829">See all notifications</translation>
 <translation id="7607002721634913082">Paused</translation>
+<translation id="7609951632080598826">Calendar view, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Camera reconnected.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Show Nearby Share settings.</translation>
@@ -1230,6 +1237,7 @@
 <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> window selected</translation>
 <translation id="8351131234907093545">Create note</translation>
 <translation id="8364673525741149932">Toggle Shelf Party. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Saved desk, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Forward by letter</translation>
 <translation id="8371991222807690464">Peripheral performance may be limited in Guest mode</translation>
 <translation id="8374601332003098278">Press enter to record partial screen</translation>
@@ -1342,6 +1350,7 @@
 <translation id="9000771174482730261">MANAGE STORAGE</translation>
 <translation id="9017320285115481645">Enter Family Link parent access code.</translation>
 <translation id="9024331582947483881">full screen</translation>
+<translation id="9029736946581028033">Device will power down soon</translation>
 <translation id="9030319654231318877">Off until sunset</translation>
 <translation id="9034924485347205037">Linux files</translation>
 <translation id="9047624247355796468">Open settings for <ph name="NETWORK_NAME" /></translation>
@@ -1371,6 +1380,7 @@
 <translation id="9168436347345867845">Do it later</translation>
 <translation id="9178475906033259337">Displaying one result for <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">This feature allows you to quickly access any signed-in user without requiring a password. Only use this feature with accounts that you trust.</translation>
+<translation id="9180906851711123156">Press Ctrl+W to close</translation>
 <translation id="9183456764293710005">Full-screen Magnifier</translation>
 <translation id="9193626018745640770">Casting on an unknown receiver</translation>
 <translation id="9194617393863864469">Sign in another user...</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index 11e35a15..0547d54 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Verás recomendaciones para continuar desde donde dejaste. Para quitarlas, manténlas presionadas.</translation>
 <translation id="2792498699870441125">Alt+tecla de búsqueda</translation>
 <translation id="2797741504905337289">Grupo de barras</translation>
-<translation id="2803313416453193357">Abrir carpeta</translation>
 <translation id="2805756323405976993">Aplicaciones</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">Saldrás de la sesión ahora.</translation>
@@ -700,6 +699,7 @@
 <translation id="5071064518267176975">Una app quiere usar el micrófono</translation>
 <translation id="5078796286268621944">Número de PIN incorrecto</translation>
 <translation id="5083553833479578423">Desbloquea más funciones del Asistente.</translation>
+<translation id="509790653408515442">Cuando transmitas las apps del teléfono, aparecerán aquí</translation>
 <translation id="5107522548814527560">Web</translation>
 <translation id="5117590920725113268">Mostrar el mes siguiente</translation>
 <translation id="5136175204352732067">Se conectó otro teclado</translation>
@@ -722,6 +722,7 @@
 <translation id="523505283826916779">Configuración de accesibilidad</translation>
 <translation id="5245201184978705914">No se puede generar una transcripción</translation>
 <translation id="5253783950165989294">Se estableció la conexión con un dispositivo llamado <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% de batería</translation>
+<translation id="5258528442992323769">No hay escritorios guardados</translation>
 <translation id="5260676007519551770">Escritorio 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> requiere tu atención.</translation>
 <translation id="5283198616748585639">Agregar 1 min</translation>
@@ -1261,6 +1262,7 @@
 <translation id="851458219935658693">Está seleccionado el botón que muestra las ventanas del escritorio actual</translation>
 <translation id="8517041960877371778">Tu <ph name="DEVICE_TYPE" /> podría no cargarse si el dispositivo está encendido.</translation>
 <translation id="8535393432370007982">Deshacer el orden por color</translation>
+<translation id="8542053257095774575">No hay escritorios ni plantillas guardados</translation>
 <translation id="8546059259582788728">Se deshizo el orden correctamente</translation>
 <translation id="8551588720239073785">Configuración de fecha y hora</translation>
 <translation id="8553395910833293175">Ya se asignó a todos los escritorios.</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index f0c2dcf6..4b384e4 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Aparecerán recomendaciones para que puedas seguir donde lo dejaste. Puedes mantener pulsadas las recomendaciones para quitarlas.</translation>
 <translation id="2792498699870441125">Alt+tecla de búsqueda</translation>
 <translation id="2797741504905337289">Grupo de estanterías</translation>
-<translation id="2803313416453193357">Abrir carpeta</translation>
 <translation id="2805756323405976993">Aplicaciones</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">Tu sesión se cerrará ahora.</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index 833d535..3c53a241 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Näete soovitusi, et saaksite jätkata sealt, kus pooleli jäite. Soovituste eemaldamiseks võite pikalt puudutada.</translation>
 <translation id="2792498699870441125">Alt + otsinguklahv</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Kausta avamine</translation>
 <translation id="2805756323405976993">Rakendused</translation>
 <translation id="2814448776515246190">Osaline jäädvustamine</translation>
 <translation id="2819276065543622893">Teid logitakse nüüd välja.</translation>
@@ -700,6 +699,7 @@
 <translation id="5071064518267176975">Rakendus soovib mikrofoni kasutada</translation>
 <translation id="5078796286268621944">Vale PIN-kood</translation>
 <translation id="5083553833479578423">Avage rohkem assistendi funktsioone.</translation>
+<translation id="509790653408515442">Telefoni rakenduste voogesitamisel kuvatakse need siin</translation>
 <translation id="5107522548814527560">Veeb</translation>
 <translation id="5117590920725113268">Järgmise kuu kuvamine</translation>
 <translation id="5136175204352732067">Ühendatud on teine klaviatuur</translation>
@@ -722,6 +722,7 @@
 <translation id="523505283826916779">Juurdepääsuseaded</translation>
 <translation id="5245201184978705914">Ei saa transkriptsiooni luua</translation>
 <translation id="5253783950165989294">Ühendatud seadmega <ph name="DEVICE_NAME" /> (akutase <ph name="BATTERY_PERCENTAGE" />%)</translation>
+<translation id="5258528442992323769">Salvestatud töölaudu ei ole</translation>
 <translation id="5260676007519551770">Töölaud 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> vajab teie tähelepanu.</translation>
 <translation id="5283198616748585639">Lisa 1 min</translation>
@@ -1261,6 +1262,7 @@
 <translation id="851458219935658693">Valitud on raadionupp Näita praeguse töölaua aknaid</translation>
 <translation id="8517041960877371778">Kui seade <ph name="DEVICE_TYPE" /> on sisse lülitatud, ei pruugita seda laadida.</translation>
 <translation id="8535393432370007982">Võta värvi järgi sortimine tagasi</translation>
+<translation id="8542053257095774575">Salvestatud töölaudu ega malle ei ole</translation>
 <translation id="8546059259582788728">Sortimise tagasivõtmine õnnestus</translation>
 <translation id="8551588720239073785">Kuupäeva ja kellaaja seaded</translation>
 <translation id="8553395910833293175">Juba määratud kõigile töölaudadele.</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 9a8e1070..9acf039 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Gomendioak ikusiko dituzu utzi zenuen tokitik jarraitu ahal izateko. Haiek kentzeko, eduki itzazu sakatuta.</translation>
 <translation id="2792498699870441125">Alt + Bilaketa</translation>
 <translation id="2797741504905337289">Apal-festa</translation>
-<translation id="2803313416453193357">Ireki karpeta</translation>
 <translation id="2805756323405976993">Aplikazioak</translation>
 <translation id="2814448776515246190">Pantaila-kaptura partziala</translation>
 <translation id="2819276065543622893">Saioa amaituko zaizu.</translation>
@@ -700,6 +699,7 @@
 <translation id="5071064518267176975">Aplikazio batek mikrofonoa erabili nahi du</translation>
 <translation id="5078796286268621944">Okerra da PINa</translation>
 <translation id="5083553833479578423">Desblokeatu Laguntzailea zerbitzuaren eginbide gehiago.</translation>
+<translation id="509790653408515442">Telefonoko aplikazioak zuzenean igortzen dituzunean, hemen agertuko dira</translation>
 <translation id="5107522548814527560">Sarea</translation>
 <translation id="5117590920725113268">Erakutsi hurrengo hilabetea</translation>
 <translation id="5136175204352732067">Beste teklatu bat konektatu duzu</translation>
@@ -722,6 +722,7 @@
 <translation id="523505283826916779">Erabilerraztasun-ezarpenak</translation>
 <translation id="5245201184978705914">Ezin da sortu transkripzioa</translation>
 <translation id="5253783950165989294">Konektatu da <ph name="DEVICE_NAME" /> izeneko gailu batera. Bateria: % <ph name="BATTERY_PERCENTAGE" />.</translation>
+<translation id="5258528442992323769">Ez dago lan-eremurik gordeta</translation>
 <translation id="5260676007519551770">4. lan-eremua</translation>
 <translation id="5283099933536931082">Zure arreta behar du <ph name="APP_ITEM_TITLE" /> aplikazioak.</translation>
 <translation id="5283198616748585639">Gehitu 1 minutu</translation>
@@ -1261,6 +1262,7 @@
 <translation id="851458219935658693">Erakutsi lan-eremu honetan dauden leihoak, aukera-botoia hautatuta dago</translation>
 <translation id="8517041960877371778">Baliteke <ph name="DEVICE_TYPE" /> gailua ez kargatzea piztuta dagoen bitartean.</translation>
 <translation id="8535393432370007982">Desegin kolorearen arabera ordenatzeko irizpidea ezartzeko aukera</translation>
+<translation id="8542053257095774575">Ez dago lan-eremu edo txantiloirik gordeta</translation>
 <translation id="8546059259582788728">Desegin da ordenatzeko irizpidea ezartzeko aukera</translation>
 <translation id="8551588720239073785">Data- eta ordu-ezarpenak</translation>
 <translation id="8553395910833293175">Lan-eremu guztiei esleitu zaie dagoeneko.</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index b918bdee..818ad56 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">توصیه‌هایی خواهید دید تا بتوانید کارتان را از جایی که رها کرده‌اید ادامه دهید. برای حذف توصیه‌ها می‌توانید لمس کنید و نگه دارید.</translation>
 <translation id="2792498699870441125">‏Alt+جستجو</translation>
 <translation id="2797741504905337289">گروه قفسه‌ها</translation>
-<translation id="2803313416453193357">بازکردن پوشه</translation>
 <translation id="2805756323405976993">برنامه‌ها</translation>
 <translation id="2814448776515246190">ضبط جزئی</translation>
 <translation id="2819276065543622893">هم‌اکنون از سیستم خارج خواهید شد.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">برنامه‌ای می‌خواهد از میکروفون شما استفاده کند</translation>
 <translation id="5078796286268621944">پین اشتباه</translation>
 <translation id="5083553833479578423">باز کردن قفل ویژگی‌های بیشتری از «دستیار».</translation>
+<translation id="509790653408515442">وقتی برنامه‌های تلفنتان را جاری‌سازی می‌کنید، اینجا نشان داده می‌شوند</translation>
 <translation id="5107522548814527560">وب</translation>
 <translation id="5117590920725113268">نمایش ماه بعدی</translation>
 <translation id="5136175204352732067">صفحه‌کلید دیگری متصل شد</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">تنظیمات دسترس‌پذیری</translation>
 <translation id="5245201184978705914">ترانویسی ایجاد نشد</translation>
 <translation id="5253783950165989294">متصل به دستگاهی با نام <ph name="DEVICE_NAME" />، شارژ باتری <ph name="BATTERY_PERCENTAGE" />٪</translation>
+<translation id="5258528442992323769">میزکار ذخیره‌شده‌ای ندارید</translation>
 <translation id="5260676007519551770">میز ۴</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> به توجه شما نیاز دارد.</translation>
 <translation id="5283198616748585639">افزودن ۱ دقیقه</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">نمایش پنجره‌ها از میزکار فعلی، دکمه رادیو انتخاب شد</translation>
 <translation id="8517041960877371778">ممکن است وقتی <ph name="DEVICE_TYPE" /> شما خاموش است، شارژ نشود.</translation>
 <translation id="8535393432370007982">واگرد کردن مرتب‌سازی براساس رنگ</translation>
+<translation id="8542053257095774575">میزکار یا الگوی ذخیره‌شده‌ای ندارید</translation>
 <translation id="8546059259582788728">مرتب‌سازی واگرد شد</translation>
 <translation id="8551588720239073785">تنظیمات تاریخ و ساعت</translation>
 <translation id="8553395910833293175">قبلاً به همه میزکارها اختصاص داده شده است.</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 53a7032..4e1967d 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -300,7 +300,6 @@
 <translation id="2791421900609674576">Näet suosituksia, joten voit jatkaa siitä, mihin jäit. Suosituksia voi poistaa koskettamalla pitkään.</translation>
 <translation id="2792498699870441125">Alt + haku</translation>
 <translation id="2797741504905337289">Hyllyryhmä</translation>
-<translation id="2803313416453193357">Avaa kansio</translation>
 <translation id="2805756323405976993">Sovellukset</translation>
 <translation id="2814448776515246190">Osittainen kuvakaappaus</translation>
 <translation id="2819276065543622893">Sinut kirjataan ulos nyt.</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 8b78ada..c6bd3368 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Makakakita ka ng mga rekomendasyon para makapagpatuloy ka kung saan ka huminto. Puwede kang pumindot nang matagal para alisin ang mga rekomendasyon.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Buksan ang folder</translation>
 <translation id="2805756323405976993">Mga App</translation>
 <translation id="2814448776515246190">Pag-capture ng isang bahagi ng screen</translation>
 <translation id="2819276065543622893">Masa-sign out ka ngayon.</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index da82196d..8515a587 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Des recommandations s'afficheront pour vous permettre de reprendre le cours de vos activités. Vous pouvez maintenir le doigt pour retirer les recommandations.</translation>
 <translation id="2792498699870441125">Alt + Recherche</translation>
 <translation id="2797741504905337289">Mode Shelf Party</translation>
-<translation id="2803313416453193357">Ouvrir le dossier</translation>
 <translation id="2805756323405976993">Applications</translation>
 <translation id="2814448776515246190">Capture partielle</translation>
 <translation id="2819276065543622893">Vous allez maintenant être déconnecté.</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 7f343636..d53f2f7 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Des recommandations s'affichent pour vous proposer de reprendre où vous avez arrêté. Vous pouvez appuyer dessus de manière prolongée pour les supprimer.</translation>
 <translation id="2792498699870441125">Alt + Recherche</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Ouvrir le dossier</translation>
 <translation id="2805756323405976993">Applications</translation>
 <translation id="2814448776515246190">Capture partielle</translation>
 <translation id="2819276065543622893">Vous allez être déconnecté maintenant.</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index 27d2cde0..57c5602 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Recibirás recomendacións para poder continuar coas túas actividades desde onde as deixaches. Podes manter premidas as recomendacións para quitalas.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Grupo de andeis</translation>
-<translation id="2803313416453193357">Abrir cartafol</translation>
 <translation id="2805756323405976993">Aplicacións</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">Pecharase a túa sesión agora.</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 474b95c2..819389a 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">તમને સુઝાવો દેખાશે જેથી તમે જ્યાંથી છોડી દીધું હતું ત્યાંથી ચાલુ રાખી શકો.  સુઝાવો કાઢી નાખવા માટે, તમે ટચ કરીને થોડીવાર દબાવી રાખી શકો છો.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">શેલ્ફ પાર્ટી</translation>
-<translation id="2803313416453193357">ફોલ્ડર ખોલો</translation>
 <translation id="2805756323405976993">ઍપ</translation>
 <translation id="2814448776515246190">આંશિક સ્ક્રીન કૅપ્ચર</translation>
 <translation id="2819276065543622893">તમે હવે સાઇન આઉટ થશો.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index c1356ef1..0b28f70 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">जहां पिछली बार छोड़ा था वहीं से इस्तेमाल शुरू करने के लिए, आपको सुझाव दिखेंगे.  दबाकर रखने से, इन सुझावों को बंद किया जा सकता है.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">शेल्फ़ पार्टी मोड</translation>
-<translation id="2803313416453193357">फ़ोल्डर खोलें</translation>
 <translation id="2805756323405976993">ऐप्स</translation>
 <translation id="2814448776515246190">पार्शियल कैप्चर</translation>
 <translation id="2819276065543622893">अब आप प्रस्थान कर जाएंगे.</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index b37b9163..90d1ac4 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Otvoreno jučer</translation>
 <translation id="2441427462554639370">Snimanje je završilo zbog jako malo slobodnog prostora za pohranu</translation>
 <translation id="24452542372838207">Proširi obavijest</translation>
+<translation id="2449089818483227734">Slaba baterija</translation>
 <translation id="2450205753526923158">Način snimke zaslona</translation>
 <translation id="2456008742792828469">Kalendar, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Potvrđivanje razlučivosti</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">Primat ćete preporuke kako biste mogli nastaviti tamo gdje ste stali. Preporuke možete ukloniti tako da ih dodirnete i zadržite.</translation>
 <translation id="2792498699870441125">Alt + Pretraživanje</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Otvori mapu</translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2814448776515246190">Djelomično snimanje</translation>
 <translation id="2819276065543622893">Odjavit ćete se sada.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3445925074670675829">USB-C uređaj</translation>
+<translation id="3455468639467374593">Predložak, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Još je jedna tipkovnica povezana s ovim uređajem otkad ste se posljednji put prijavili. Provjerite je li riječ o pouzdanoj tipkovnici prije nego što je upotrijebite.</translation>
 <translation id="3465356146291925647">Upravlja administrator</translation>
 <translation id="3477079411857374384">Control-Shift-razmaknica</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Polica je automatski skrivena</translation>
+<translation id="3505066820268455558">Punjenje baterije</translation>
 <translation id="3509391053705095206">Ne možemo pronaći vaš telefon. Provjerite je li na telefonu uključen Bluetooth.</translation>
 <translation id="3510164367642747937">Istakni pokazivač miša</translation>
 <translation id="3513798432020909783">Računom upravlja <ph name="MANAGER_EMAIL" /></translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Otvorite postavke Bluetootha da biste uparili uređaj</translation>
 <translation id="3638400994746983214">Uključite/isključite zaslon privatnosti. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Zakašnjelo ažuriranje</translation>
+<translation id="3659814201068740063">Još oko <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" />%).
+Priključite uređaj na napajanje.</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> upravljani korisnik</translation>
 <translation id="36813544980941320">Wi-Fi mreže dijelit će se između vašeg telefona i uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Web-lokacije</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">Prethodna pjesma</translation>
 <translation id="3969043077941541451">Isključeno</translation>
 <translation id="397105322502079400">Izračun u tijeku…</translation>
+<translation id="397726367135689299">Punjenje baterije možda nije pouzdano.</translation>
 <translation id="3977512764614765090">Baterija je na <ph name="PERCENTAGE" />% i puni se.</translation>
 <translation id="3986082989454912832">Odgovori</translation>
 <translation id="3995138139523574647">USB-C uređaj (stražnji desni priključak)</translation>
@@ -699,6 +704,7 @@
 <translation id="5071064518267176975">Aplikacija želi koristiti mikrofon</translation>
 <translation id="5078796286268621944">Netočan PIN</translation>
 <translation id="5083553833479578423">Otključajte više značajki Asistenta.</translation>
+<translation id="509790653408515442">Kad emitirate aplikacije svojeg telefona, one će se pojaviti ovdje</translation>
 <translation id="5107522548814527560">Web</translation>
 <translation id="5117590920725113268">Prikaži sljedeći mjesec</translation>
 <translation id="5136175204352732067">Povezana je neka druga tipkovnica</translation>
@@ -721,6 +727,7 @@
 <translation id="523505283826916779">Postavke pristupačnosti</translation>
 <translation id="5245201184978705914">Generiranje prijepisa nije uspjelo</translation>
 <translation id="5253783950165989294">Povezano s uređajem <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% baterije</translation>
+<translation id="5258528442992323769">Nema nijedne spremljene radne površine</translation>
 <translation id="5260676007519551770">Radna površina 4</translation>
 <translation id="5283099933536931082">Aplikacija <ph name="APP_ITEM_TITLE" /> zahtijeva vašu pažnju.</translation>
 <translation id="5283198616748585639">Dodaj 1 min</translation>
@@ -1037,6 +1044,7 @@
 <translation id="7130207228079676353">NAJVJEROJATNIJE</translation>
 <translation id="7131634465328662194">Odjavit ćete se automatski.</translation>
 <translation id="7143207342074048698">Povezivanje</translation>
+<translation id="7144942256906679589">Status baterije</translation>
 <translation id="7165278925115064263">Alt + Shift + K</translation>
 <translation id="7168224885072002358">Vraćanje na staru razlučivost za <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Osvježi</translation>
@@ -1103,6 +1111,7 @@
 <translation id="7593891976182323525">Pretraživanje ili Shift</translation>
 <translation id="7600875258240007829">Pogledajte sve obavijesti</translation>
 <translation id="7607002721634913082">Pauzirano</translation>
+<translation id="7609951632080598826">Prikaz kalendara, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Kamera je ponovo povezana.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Prikaži postavke dijeljenja u blizini.</translation>
@@ -1228,6 +1237,7 @@
 <translation id="8345019317483336363">Odabran je prozor <ph name="WINDOW_TITLE" /></translation>
 <translation id="8351131234907093545">Izrada bilješke</translation>
 <translation id="8364673525741149932">Prebacite Shelf Party. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Spremljena radna površina, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Slovo unaprijed</translation>
 <translation id="8371991222807690464">Rad perifernog uređaja može biti ograničen u načinu rada za goste</translation>
 <translation id="8374601332003098278">Pritisnite Enter za snimanje djelomičnog zaslona</translation>
@@ -1261,6 +1271,7 @@
 <translation id="851458219935658693">Prikaži prozore s trenutačne radne površine, odabran je izborni gumb</translation>
 <translation id="8517041960877371778">Uređaj <ph name="DEVICE_TYPE" /> možda se neće puniti dok je uključen.</translation>
 <translation id="8535393432370007982">Poništavanje poretka po boji</translation>
+<translation id="8542053257095774575">Nema nijedne spremljene radne površine ili predloška</translation>
 <translation id="8546059259582788728">Poništavanje razvrstavanja je uspjelo</translation>
 <translation id="8551588720239073785">Postavke datuma i vremena</translation>
 <translation id="8553395910833293175">Već je dodijeljeno svim radnim površinama.</translation>
@@ -1339,6 +1350,7 @@
 <translation id="9000771174482730261">UPRAVLJAJTE POHRANOM</translation>
 <translation id="9017320285115481645">Unesite kôd za roditeljski pristup Family Linka.</translation>
 <translation id="9024331582947483881">cijeli zaslon</translation>
+<translation id="9029736946581028033">Uređaj će se uskoro isključiti</translation>
 <translation id="9030319654231318877">Isključeno do zalaska sunca</translation>
 <translation id="9034924485347205037">Linux datoteke</translation>
 <translation id="9047624247355796468">Otvorite postavke mreže <ph name="NETWORK_NAME" /></translation>
@@ -1368,6 +1380,7 @@
 <translation id="9168436347345867845">Učinite to kasnije</translation>
 <translation id="9178475906033259337">Prikazuje se jedan rezultat za upit <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ta vam značajka omogućuje brzi pristup bilo kojem prijavljenom korisniku bez zahtijevanja zaporke. Tu značajku upotrebljavajte samo s pouzdanim računima.</translation>
+<translation id="9180906851711123156">Pritisnite Ctrl + W da biste zatvorili</translation>
 <translation id="9183456764293710005">Povećalo za cijeli zaslon</translation>
 <translation id="9193626018745640770">Emitiranje na nepoznatom prijamniku</translation>
 <translation id="9194617393863864469">Prijavljivanje drugog korisnika...</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index dd34b84..2ee21af 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Ajánlásokat tekinthet meg, hogy ott folytathassa, ahol abbahagyta. Érintéssel és nyomva tartással eltávolíthatja az ajánlásokat.</translation>
 <translation id="2792498699870441125">Alt + Keresés</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Mappa megnyitása</translation>
 <translation id="2805756323405976993">Alkalmazások</translation>
 <translation id="2814448776515246190">Részleges rögzítés</translation>
 <translation id="2819276065543622893">A rendszer most kijelentkezteti Önt.</translation>
@@ -700,6 +699,7 @@
 <translation id="5071064518267176975">Egy alkalmazás használni szeretné a mikrofont</translation>
 <translation id="5078796286268621944">Helytelen PIN-kód</translation>
 <translation id="5083553833479578423">Hozzáférés a Segéd további funkcióihoz</translation>
+<translation id="509790653408515442">Telefonja alkalmazásai itt jelennek majd meg streameléskor</translation>
 <translation id="5107522548814527560">Internet</translation>
 <translation id="5117590920725113268">A következő hónap megjelenítése</translation>
 <translation id="5136175204352732067">Új billentyűzet lett csatlakoztatva</translation>
@@ -722,6 +722,7 @@
 <translation id="523505283826916779">Kisegítő beállítások</translation>
 <translation id="5245201184978705914">Nem sikerült az átirat létrehozása</translation>
 <translation id="5253783950165989294">Csatlakoztatva van a(z) <ph name="DEVICE_NAME" /> nevű eszközhöz, akkumulátor töltöttségi szintje: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Nincsenek mentett asztalok</translation>
 <translation id="5260676007519551770">4. asztal</translation>
 <translation id="5283099933536931082">A(z) <ph name="APP_ITEM_TITLE" /> alkalmazás a figyelmét igényli.</translation>
 <translation id="5283198616748585639">1 perc hozzáadása</translation>
@@ -1060,6 +1061,7 @@
 <translation id="7348093485538360975">Képernyő-billentyűzet</translation>
 <translation id="735745346212279324">A VPN nincs csatlakoztatva</translation>
 <translation id="7360036564632145207">A perifériás adathozzáférési védelemre vonatkozó beállítás módosítása optimalizálhatja a teljesítményt.</translation>
+<translation id="736045644501761622">Háttérkép és stílus beállítása</translation>
 <translation id="7371404428569700291">Felvétel készítése az ablakról</translation>
 <translation id="7377169924702866686">A Caps Lock be van kapcsolva.</translation>
 <translation id="7377481913241237033">Összekapcsolás kód használatával</translation>
@@ -1261,6 +1263,7 @@
 <translation id="851458219935658693">A jelenlegi asztal ablakainak megjelenítésére vonatkozó kapcsológomb van kiválasztva</translation>
 <translation id="8517041960877371778">Előfordulhat, hogy a(z) <ph name="DEVICE_TYPE" /> nem töltődik, amíg be van kapcsolva.</translation>
 <translation id="8535393432370007982">Szín szerinti rendezés visszavonása</translation>
+<translation id="8542053257095774575">Nincsenek mentett asztalok vagy sablonok</translation>
 <translation id="8546059259582788728">Rendezés visszavonása sikeres</translation>
 <translation id="8551588720239073785">Dátum- és időbeállítások</translation>
 <translation id="8553395910833293175">Már minden asztalhoz hozzá van rendelve.</translation>
@@ -1293,6 +1296,7 @@
 <translation id="8721053961083920564">Hang ki-, illetve bekapcsolása. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Felvétel készítése a teljes képernyőről</translation>
 <translation id="8734991477317290293">Előfordulhat, hogy így kísérlik meg a billentyűleütések rögzítését</translation>
+<translation id="8735678380411481005">Billentyűzet háttérvilágításának színe</translation>
 <translation id="8735953464173050365">A billentyűzet beállításainak megjelenítése. <ph name="KEYBOARD_NAME" /> van kiválasztva</translation>
 <translation id="8755498163081687682">Igazolja személyazonosságát, a következő szeretne meggyőződni a személyazonosságáról: <ph name="ORIGIN_NAME" /></translation>
 <translation id="875593634123171288">VPN-beállítások megjelenítése</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index e442b7c..e5e7fbaa 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Դուք առաջարկություններ կտեսնեք և կկարողանաք շարունակել այն պահից, որտեղ կանգ էիք առել։ Առաջարկությունները հեռացնելու համար հպեք և պահեք։</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Բացել պանակը</translation>
 <translation id="2805756323405976993">Հավելվածներ</translation>
 <translation id="2814448776515246190">Էկրանի մի մասի տեսագրում</translation>
 <translation id="2819276065543622893">Դուք հիմա դուրս կգրվեք:</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Հավելվածը հայցում է խոսափողն օգտագործելու թույլտվություն</translation>
 <translation id="5078796286268621944">Սխալ PIN կոդ</translation>
 <translation id="5083553833479578423">Օգտվեք Օգնականի այլ գործառույթներից</translation>
+<translation id="509790653408515442">Երբ դուք հեռարձակեք ձեր հեռախոսի հավելվածները, դրանք կհայտնվեն այստեղ</translation>
 <translation id="5107522548814527560">Վեբ</translation>
 <translation id="5117590920725113268">Ցուցադրել հաջորդ ամիսը</translation>
 <translation id="5136175204352732067">Այլ ստեղնաշար է միացվել</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Հատուկ գործառույթների կարգավորումներ</translation>
 <translation id="5245201184978705914">Չհաջողվեց ստեղծել տեքստային տարբերակը</translation>
 <translation id="5253783950165989294">Կապ է հաստատվել «<ph name="DEVICE_NAME" />» սարքի հետ, մարտկոցի լիցքը՝ <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Պահված աշխատասեղաններ չկան</translation>
 <translation id="5260676007519551770">Աշխատասեղան 4</translation>
 <translation id="5283099933536931082">«<ph name="APP_ITEM_TITLE" />» հավելվածը ձեզ ծանուցում է ցուցադրում։</translation>
 <translation id="5283198616748585639">Ավելացնել 1 րոպե</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Ընթացիկ աշխատասեղանի պատուհանների ցուցադրում, ընտրված է կետակոճակը</translation>
 <translation id="8517041960877371778">Որպեսզի ձեր <ph name="DEVICE_TYPE" /> սարքը լիցքավորվի, անհրաժեշտ է անջատել այն:</translation>
 <translation id="8535393432370007982">Ըստ գույնի դասավորումը հետարկվեց</translation>
+<translation id="8542053257095774575">Պահված աշխատասեղաններ կամ ձևանմուշներ չկան</translation>
 <translation id="8546059259582788728">Դասավորումը հետարկվեց</translation>
 <translation id="8551588720239073785">Ամսաթվի և ժամի կարգավորումներ</translation>
 <translation id="8553395910833293175">Արդեն հասանելի է բոլոր աշխատասեղաններին։</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 5d0e8a086..14fe754 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Rekomendasi akan ditampilkan sehingga Anda dapat melanjutkan aktivitas terakhir yang Anda lakukan. Anda dapat menyentuh lama untuk menghapus rekomendasi.</translation>
 <translation id="2792498699870441125">Alt+Telusuri</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Buka folder</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2814448776515246190">Tangkapan layar sebagian</translation>
 <translation id="2819276065543622893">Anda akan dikeluarkan sekarang.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Sebuah aplikasi ingin menggunakan mikrofon</translation>
 <translation id="5078796286268621944">PIN salah</translation>
 <translation id="5083553833479578423">Dapatkan lebih banyak fitur Asisten.</translation>
+<translation id="509790653408515442">Jika Anda menstreaming aplikasi ponsel, aplikasi akan muncul di sini</translation>
 <translation id="5107522548814527560">Web</translation>
 <translation id="5117590920725113268">Tampilkan bulan berikutnya</translation>
 <translation id="5136175204352732067">Keyboard yang berbeda terhubung</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Setelan aksesibilitas</translation>
 <translation id="5245201184978705914">Tidak dapat membuat transkrip</translation>
 <translation id="5253783950165989294">Terhubung ke perangkat bernama <ph name="DEVICE_NAME" />, baterai <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Tidak ada desktop tersimpan</translation>
 <translation id="5260676007519551770">Halaman kerja 4</translation>
 <translation id="5283099933536931082">Anda perlu memeriksa <ph name="APP_ITEM_TITLE" />.</translation>
 <translation id="5283198616748585639">Tambahkan 1 mnt</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Menampilkan jendela dari desktop saat ini, tombol pilihan dipilih</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> Anda mungkin tidak diisi daya saat dinyalakan.</translation>
 <translation id="8535393432370007982">Urungkan tata urutan menurut warna</translation>
+<translation id="8542053257095774575">Tidak ada desktop atau template tersimpan</translation>
 <translation id="8546059259582788728">Berhasil mengurungkan pengurutan</translation>
 <translation id="8551588720239073785">Setelan tanggal dan waktu</translation>
 <translation id="8553395910833293175">Telah ditetapkan ke semua desktop.</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index b58a531..1ddce7b8 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Þú sérð tillögur svo þú getir haldið áfram þar sem frá var horfið. Þú getur haldið inni til að fjarlægja tillögur.</translation>
 <translation id="2792498699870441125">Alt+leitarhnappur</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Opna möppu</translation>
 <translation id="2805756323405976993">Forrit</translation>
 <translation id="2814448776515246190">Myndataka að hluta til</translation>
 <translation id="2819276065543622893">Þú verður skráð(ur) út núna.</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 130373c..ff053bf 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">Vedrai consigli per poter continuare dal punto in cui avevi interrotto. Puoi toccare i consigli e tenere premuto per rimuoverli.</translation>
 <translation id="2792498699870441125">Alt+tasto per la ricerca</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Apri cartella</translation>
 <translation id="2805756323405976993">App</translation>
 <translation id="2814448776515246190">Acquisizione parziale</translation>
 <translation id="2819276065543622893">Verrai disconnesso ora.</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index c57661b2..119fa819 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">יוצגו לך המלצות כדי שתהיה לך אפשרות להמשיך מאיפה שהפסקת. ניתן להסיר את ההמלצות בלחיצה ארוכה.</translation>
 <translation id="2792498699870441125">‏Alt + חיפוש</translation>
 <translation id="2797741504905337289">קבוצת מדפים</translation>
-<translation id="2803313416453193357">פתיחת התיקייה</translation>
 <translation id="2805756323405976993">אפליקציות</translation>
 <translation id="2814448776515246190">צילום חלקי</translation>
 <translation id="2819276065543622893">המערכת תוציא אותך עכשיו מהחשבון.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">אפליקציה כלשהי מבקשת להשתמש במיקרופון</translation>
 <translation id="5078796286268621944">‏PIN שגוי</translation>
 <translation id="5083553833479578423">‏אפשר להפעיל תכונות Assistant נוספות.</translation>
+<translation id="509790653408515442">כשמשדרים את האפליקציות של הטלפון, הן מופיעות כאן</translation>
 <translation id="5107522548814527560">אינטרנט</translation>
 <translation id="5117590920725113268">הצגת החודש הבא</translation>
 <translation id="5136175204352732067">חוברה מקלדת אחרת</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">הגדרות נגישות</translation>
 <translation id="5245201184978705914">לא ניתן ליצור תמליל</translation>
 <translation id="5253783950165989294">המכשיר <ph name="DEVICE_NAME" /> מחובר, <ph name="BATTERY_PERCENTAGE" />% סוללה</translation>
+<translation id="5258528442992323769">אין שולחנות עבודה וירטואליים שמורים</translation>
 <translation id="5260676007519551770">שולחן עבודה 4</translation>
 <translation id="5283099933536931082">האפליקציה <ph name="APP_ITEM_TITLE" /> מבקשת את תשומת לבך.</translation>
 <translation id="5283198616748585639">הוספת דקה</translation>
@@ -1262,6 +1263,7 @@
 <translation id="851458219935658693">הצגת חלונות משולחן העבודה הווירטואלי הנוכחי, לחצן הבחירה נבחר</translation>
 <translation id="8517041960877371778">ייתכן שה-<ph name="DEVICE_TYPE" /> לא ייטען כשהוא פועל.</translation>
 <translation id="8535393432370007982">ביטול של סדר המיון לפי צבע</translation>
+<translation id="8542053257095774575">אין תבניות או שולחנות עבודה וירטואליים שמורים</translation>
 <translation id="8546059259582788728">הביטול של המיון הצליח</translation>
 <translation id="8551588720239073785">הגדרות תאריך ושעה</translation>
 <translation id="8553395910833293175">כבר מוקצה לכל שולחנות העבודה הווירטואליים.</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 6710abe..f7c82d0 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">昨日開いたファイル</translation>
 <translation id="2441427462554639370">保存容量が非常に少なくなっているため、録画を終了しました</translation>
 <translation id="24452542372838207">通知を展開</translation>
+<translation id="2449089818483227734">バッテリー残量が少なくなっています</translation>
 <translation id="2450205753526923158">スクリーンショット モード</translation>
 <translation id="2456008742792828469">カレンダー、<ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">解像度の確定</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">前回中断したところから再開できるように、おすすめが表示されます。おすすめは長押しで削除できます。</translation>
 <translation id="2792498699870441125">Alt+ 検索</translation>
 <translation id="2797741504905337289">シェルフ グループ</translation>
-<translation id="2803313416453193357">フォルダを開く</translation>
 <translation id="2805756323405976993">アプリ</translation>
 <translation id="2814448776515246190">画面の一部のキャプチャ</translation>
 <translation id="2819276065543622893">ログアウトします。</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" />分</translation>
 <translation id="3445925074670675829">USB-C デバイス</translation>
+<translation id="3455468639467374593">テンプレート、<ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">前回のログイン後に、別のキーボードがこのデバイスに接続されました。このキーボードを使用する前に信頼できるものかどうか確認してください。</translation>
 <translation id="3465356146291925647">管理者によって管理</translation>
 <translation id="3477079411857374384">Control+Shift+Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />、<ph name="CONNECTION_STATUS" />、信号強度 <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">シェルフは自動的に非表示になります</translation>
+<translation id="3505066820268455558">バッテリー充電中</translation>
 <translation id="3509391053705095206">スマートフォンが見つかりません。スマートフォンの Bluetooth がオンであることを確認してください</translation>
 <translation id="3510164367642747937">マウスカーソルをハイライト表示する</translation>
 <translation id="3513798432020909783">このアカウントは <ph name="MANAGER_EMAIL" /> により管理されています</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">デバイスをペア設定するには、Bluetooth 設定を開いてください</translation>
 <translation id="3638400994746983214">プライバシー スクリーンを切り替えます。<ph name="STATE_TEXT" />。</translation>
 <translation id="3649505501900178324">更新の期限が過ぎています</translation>
+<translation id="3659814201068740063">残り <ph name="TIME_LEFT" />(<ph name="PERCENTAGE" /> %)。
+デバイスを電源に接続してください。</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> の管理対象ユーザー</translation>
 <translation id="36813544980941320">スマートフォンと <ph name="DEVICE_NAME" /> で Wi-Fi ネットワークが共有されます</translation>
 <translation id="3694122362646626770">ウェブサイト</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">前の曲</translation>
 <translation id="3969043077941541451">オフ</translation>
 <translation id="397105322502079400">計算しています...</translation>
+<translation id="397726367135689299">バッテリーの充電が不安定になっている可能性があります</translation>
 <translation id="3977512764614765090">電池残量は <ph name="PERCENTAGE" />% です(現在充電中)。</translation>
 <translation id="3986082989454912832">応答</translation>
 <translation id="3995138139523574647">USB-C デバイス(右奥のポート)</translation>
@@ -699,6 +704,7 @@
 <translation id="5071064518267176975">アプリがマイクの使用を求めています</translation>
 <translation id="5078796286268621944">PIN が正しくありません</translation>
 <translation id="5083553833479578423">さらに多くのアシスタント機能をぜひご活用ください。</translation>
+<translation id="509790653408515442">スマートフォンのアプリでストリーミングした場合、そのアプリがここに表示されます</translation>
 <translation id="5107522548814527560">ウェブ</translation>
 <translation id="5117590920725113268">次の月を表示</translation>
 <translation id="5136175204352732067">別のキーボードが接続されています</translation>
@@ -721,6 +727,7 @@
 <translation id="523505283826916779">ユーザー補助機能の設定</translation>
 <translation id="5245201184978705914">文字起こしを生成できません</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> という名前のデバイスに接続しています、電池残量 <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">保存したデスクはありません</translation>
 <translation id="5260676007519551770">デスク 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> から通知が届いています。</translation>
 <translation id="5283198616748585639">1 分追加</translation>
@@ -1037,6 +1044,7 @@
 <translation id="7130207228079676353">これですか?</translation>
 <translation id="7131634465328662194">制限時間になると自動的にログアウトします。</translation>
 <translation id="7143207342074048698">接続中</translation>
+<translation id="7144942256906679589">バッテリーの状態</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358"><ph name="TIMEOUT_SECONDS" /> 秒後に元の解像度に戻ります</translation>
 <translation id="7180611975245234373">更新</translation>
@@ -1059,6 +1067,7 @@
 <translation id="7348093485538360975">画面キーボード</translation>
 <translation id="735745346212279324">VPN が切断されました</translation>
 <translation id="7360036564632145207">周辺機器の設定でデータアクセスの保護を変更すると、パフォーマンスを最適化できます。</translation>
+<translation id="736045644501761622">壁紙とスタイルを設定</translation>
 <translation id="7371404428569700291">ウィンドウを録画</translation>
 <translation id="7377169924702866686">CapsLock 
 がオンになっています。</translation>
@@ -1103,6 +1112,7 @@
 <translation id="7593891976182323525">検索/Shift</translation>
 <translation id="7600875258240007829">通知をすべて表示</translation>
 <translation id="7607002721634913082">一時停止中</translation>
+<translation id="7609951632080598826">カレンダー表示、<ph name="DATE" />、<ph name="TIME" /></translation>
 <translation id="7611213136657090146">カメラが再接続されました。</translation>
 <translation id="7624117708979618027">華氏 <ph name="TEMPERATURE_F" /> 度</translation>
 <translation id="7633755430369750696">ニアバイシェア設定を表示します。</translation>
@@ -1228,6 +1238,7 @@
 <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> ウィンドウが選択されています</translation>
 <translation id="8351131234907093545">メモを作成</translation>
 <translation id="8364673525741149932">シェルフ グループを切り替えます。<ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">保存したデスク、<ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">1 字進む</translation>
 <translation id="8371991222807690464">ゲストモードでは、周辺機器のパフォーマンスが制限される場合があります</translation>
 <translation id="8374601332003098278">画面の一部を録画するには Enter キーを押してください</translation>
@@ -1261,6 +1272,7 @@
 <translation id="851458219935658693">現在のデスクのウィンドウを表示する、ラジオボタンが選択されています</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> は電源がオンのままでは充電できない可能性があります。</translation>
 <translation id="8535393432370007982">色による並べ替えを元に戻す</translation>
+<translation id="8542053257095774575">保存したデスクやテンプレートはありません</translation>
 <translation id="8546059259582788728">並べ替えを元に戻しました</translation>
 <translation id="8551588720239073785">日時の設定</translation>
 <translation id="8553395910833293175">すべてのデスクに割り当て済みです。</translation>
@@ -1293,6 +1305,7 @@
 <translation id="8721053961083920564">音量を切り替えます。<ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">全画面キャプチャ</translation>
 <translation id="8734991477317290293">キー入力が読み取られる可能性があります</translation>
+<translation id="8735678380411481005">キーボードのバックライトの色</translation>
 <translation id="8735953464173050365">キーボード設定を表示します。<ph name="KEYBOARD_NAME" /> が選択されています</translation>
 <translation id="8755498163081687682">本人確認: <ph name="ORIGIN_NAME" /> が本人確認をリクエストしています</translation>
 <translation id="875593634123171288">VPN 設定を表示</translation>
@@ -1338,6 +1351,7 @@
 <translation id="9000771174482730261">ストレージを管理</translation>
 <translation id="9017320285115481645">ファミリー リンクの保護者のアクセスコードを入力してください。</translation>
 <translation id="9024331582947483881">全画面表示</translation>
+<translation id="9029736946581028033">デバイスの電源がまもなく切れます</translation>
 <translation id="9030319654231318877">日の入りまでオフ</translation>
 <translation id="9034924485347205037">Linux ファイル</translation>
 <translation id="9047624247355796468"><ph name="NETWORK_NAME" /> の設定を開く</translation>
@@ -1367,6 +1381,7 @@
 <translation id="9168436347345867845">後で行う</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> の結果 1 件を表示しています</translation>
 <translation id="9179259655489829027">この機能を使用すると、パスワードを入力せずにログイン ユーザーにすばやくアクセスできます。この機能は信頼できるアカウントにのみ使用してください。</translation>
+<translation id="9180906851711123156">閉じるには Ctrl+W キーを押します</translation>
 <translation id="9183456764293710005">全画面拡大鏡</translation>
 <translation id="9193626018745640770">不明な受信デバイスにキャストしています</translation>
 <translation id="9194617393863864469">別のユーザーとしてログイン...</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index f68f188..38edae8 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">თქვენ იხილავთ რეკომენდაციებს, რომ შეძლოთ იქიდან გაგრძელება, სადაც შეჩერდით. რეკომენდაციების ამოშლა შეგიძლიათ ხანგრძლივად შეხებით.</translation>
 <translation id="2792498699870441125">Alt+ძიება</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">გახსენით საქაღალდე</translation>
 <translation id="2805756323405976993">პროგრამები</translation>
 <translation id="2814448776515246190">ნაწილობრივი აღბეჭდვა</translation>
 <translation id="2819276065543622893">თქვენ ახლა გამოხვალთ.</translation>
@@ -1061,6 +1060,7 @@
 <translation id="7348093485538360975">ეკრანული კლავიატურა</translation>
 <translation id="735745346212279324">VPN გამორთულია</translation>
 <translation id="7360036564632145207">პერიფერიული მოწყობილობებისთვის მონაცემებზე წვდომის დაცვის პარამეტრების შეცვლით შესაძლებელია წარმადობის ოპტიმიზაცია</translation>
+<translation id="736045644501761622">ფონის და სტილის დაყენება</translation>
 <translation id="7371404428569700291">ფანჯრის ჩაწერა</translation>
 <translation id="7377169924702866686">Caps Lock ჩართულია.</translation>
 <translation id="7377481913241237033">კოდით დაკავშირება</translation>
@@ -1295,6 +1295,7 @@
 <translation id="8721053961083920564">ხმის გადართვა. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">სრული ეკრანის აღბეჭდვა</translation>
 <translation id="8734991477317290293">ეს შეიძლება იყოს თქვენ მიერ აკრეფილი ტექსტის მოპარვის მცდელობა</translation>
+<translation id="8735678380411481005">კლავიატურის ფონური განათების ფერი</translation>
 <translation id="8735953464173050365">კლავიატურის პარამეტრების ჩვენება. არჩეულია <ph name="KEYBOARD_NAME" /></translation>
 <translation id="8755498163081687682">დაადასტურეთ ვინაობა: <ph name="ORIGIN_NAME" /> ითხოვს თქვენი ვინაობის დადასტურებას</translation>
 <translation id="875593634123171288">VPN-ის პარამეტრების ჩვენება</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index f95320d..a56f73d 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Көретін ұсыныстардың арқасында тоқтаған жеріңізден жалғастыра аласыз.  Ұсыныстарды өшіру үшін басып тұрыңыз.</translation>
 <translation id="2792498699870441125">Alt+Іздеу</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Қалтаны ашу</translation>
 <translation id="2805756323405976993">Қолданбалар</translation>
 <translation id="2814448776515246190">Экранның бір бөлігін түсіру</translation>
 <translation id="2819276065543622893">Жүйеден қазір шығасыз.</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 8e82a3f..9d02ce84 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">អ្នកនឹងមើលឃើញការណែនាំ ដើម្បីឱ្យអ្នកអាចបន្តត្រង់ចំណុចដែលអ្នកបានចាកចេញ។ អ្នកអាចចុចឱ្យជាប់ ដើម្បីដកការណែនាំចេញ។</translation>
 <translation id="2792498699870441125">Alt+ស្វែងរក</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">បើកថតឯកសារ</translation>
 <translation id="2805756323405976993">កម្មវិធី</translation>
 <translation id="2814448776515246190">ថតនៅផ្នែកខ្លះ</translation>
 <translation id="2819276065543622893">អ្នកនឹងត្រូវចាកចេញឥឡូវនេះ។</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">មានកម្មវិធីមួយ​ចង់ប្រើ​មីក្រូហ្វូន</translation>
 <translation id="5078796286268621944">លេខសម្គាល់មិនត្រឹមត្រូវ</translation>
 <translation id="5083553833479578423">ដោះសោ​មុខងារ​ជំនួយការ​ជាច្រើនទៀត។</translation>
+<translation id="509790653408515442">នៅពេល​អ្នក​ស្ទ្រីម​កម្មវិធី​ទូរសព្ទ​របស់អ្នក កម្មវិធី​ទាំងនោះ​នឹង​បង្ហាញ​នៅត្រង់នេះ</translation>
 <translation id="5107522548814527560">បណ្ដាញ</translation>
 <translation id="5117590920725113268">បង្ហាញខែបន្ទាប់</translation>
 <translation id="5136175204352732067">បាន​ភ្ជាប់​ក្ដារចុច​ផ្សេង</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">ការកំណត់លទ្ធភាពប្រើប្រាស់</translation>
 <translation id="5245201184978705914">មិនអាចបង្កើតប្រតិចារឹកបានទេ</translation>
 <translation id="5253783950165989294">បានភ្ជាប់ជាមួយ​ឧបករណ៍ដែលមាន​ឈ្មោះថា <ph name="DEVICE_NAME" /> ថ្ម <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">មិន​មាន​តុ​ដែលបានរក្សាទុក​ទេ</translation>
 <translation id="5260676007519551770">តុទី 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> ស្នើឱ្យអ្នកយកចិត្តទុកដាក់។</translation>
 <translation id="5283198616748585639">បន្ថែម 1 នាទី</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">បង្ហាញ​វិនដូពីតុបច្ចុប្បន្ន បានជ្រើសរើស​ប៊ូតុង​មូល</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> របស់អ្នកអាចនឹងមិនសាកថ្មទេនៅពេលបើក។</translation>
 <translation id="8535393432370007982">ត្រឡប់លំដាប់នៃការតម្រៀបតាមពណ៌វិញ</translation>
+<translation id="8542053257095774575">មិន​មាន​តុ ឬ​ទម្រង់គំរូ​ដែលបាន​រក្សាទុក​ទេ</translation>
 <translation id="8546059259582788728">ត្រឡប់ការតម្រៀបវិញដោយជោគជ័យ</translation>
 <translation id="8551588720239073785">ការកំណត់​កាលបរិច្ឆេទ និងម៉ោង</translation>
 <translation id="8553395910833293175">បានកំណត់​ទៅតុទាំងអស់​រួចហើយ។</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 92b036a..85e1820 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">ನೀವು ಶಿಫಾರಸುಗಳನ್ನು ನೋಡುತ್ತೀರಿ ಆದ್ದರಿಂದ ನೀವು ಎಲ್ಲಿಗೆ ನಿಲ್ಲಿಸಿರುವಿರೋ ಅಲ್ಲಿಂದಲೇ ಮುಂದುವರಿಸಬಹುದು. ಶಿಫಾರಸುಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಬಹುದು.</translation>
 <translation id="2792498699870441125">Alt+ಹುಡುಕಾಟ</translation>
 <translation id="2797741504905337289">ಶೆಲ್ಫ್ ಪಾರ್ಟಿ</translation>
-<translation id="2803313416453193357">ಫೋಲ್ಡರ್ ತೆರೆಯಿರಿ</translation>
 <translation id="2805756323405976993">ಆಪ್ಸ್‌‌</translation>
 <translation id="2814448776515246190">ಭಾಗಶಃ ಕ್ಯಾಪ್ಚರ್</translation>
 <translation id="2819276065543622893">ಈಗ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">ಮೈಕ್ರೊಫೋನ್ ಬಳಸಲು ಆ್ಯಪ್ ಬಯಸುತ್ತದೆ</translation>
 <translation id="5078796286268621944">ತಪ್ಪಾದ PIN</translation>
 <translation id="5083553833479578423">ಇನ್ನಷ್ಟು ಅಸಿಸ್ಟೆಂಟ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್‌ಲಾಕ್‌ ಮಾಡಿ.</translation>
+<translation id="509790653408515442">ನಿಮ್ಮ ಫೋನ್‌ನ ಆ್ಯಪ್‌ಗಳನ್ನು ನೀವು ಸ್ಟ್ರೀಮ್ ಮಾಡಿದಾಗ, ಅವು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
 <translation id="5107522548814527560">ವೆಬ್</translation>
 <translation id="5117590920725113268">ಮುಂದಿನ ತಿಂಗಳು ತೋರಿಸಿ</translation>
 <translation id="5136175204352732067">ವಿವಿಧ ಕೀಬೋರ್ಡ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="5245201184978705914">ಟ್ರಾನ್ಸ್‌ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> ಹೆಸರಿನ ಸಾಧನಕ್ಕೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ, <ph name="BATTERY_PERCENTAGE" />% ಬ್ಯಾಟರಿ</translation>
+<translation id="5258528442992323769">ಯಾವುದೇ ಉಳಿಸಿದ ಡೆಸ್ಕ್‌ಗಳಿಲ್ಲ</translation>
 <translation id="5260676007519551770">ಡೆಸ್ಕ್ 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" />, ನಿಮ್ಮ ಗಮನವನ್ನು ವಿನಂತಿಸುತ್ತದೆ.</translation>
 <translation id="5283198616748585639">1 ನಿಮಿಷ ಸೇರಿಸಿ</translation>
@@ -1060,6 +1061,7 @@
 <translation id="7348093485538360975">ಆನ್ ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="735745346212279324">VPN ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="7360036564632145207">ಬಾಹ್ಯ ಸಾಧನಗಳ ಸೆಟ್ಟಿಂಗ್‌ಗಾಗಿ ನಿಮ್ಮ ಡೇಟಾ ಪ್ರವೇಶ ರಕ್ಷಣೆಯನ್ನು ಬದಲಾಯಿಸಿದರೆ, ಅವುಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸಬಹುದು</translation>
+<translation id="736045644501761622">ವಾಲ್‌ಪೇಪರ್ ಮತ್ತು ಸ್ಟೈಲ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="7371404428569700291">ವಿಂಡೋ ರೆಕಾರ್ಡ್ ಮಾಡಿ</translation>
 <translation id="7377169924702866686">CAPS LOCK ಆನ್ ಆಗಿದೆ.</translation>
 <translation id="7377481913241237033">ಕೋಡ್ ಮೂಲಕ ಕನೆಕ್ಟ್ ಮಾಡಿ</translation>
@@ -1261,6 +1263,7 @@
 <translation id="851458219935658693">ಪ್ರಸ್ತುತ ಡೆಸ್ಕ್‌ನಿಂದ ವಿಂಡೋಗಳನ್ನು ತೋರಿಸಿ, ರೇಡಿಯೋ ಬಟನ್ ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8517041960877371778">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಆನ್ ಮಾಡಿರುವಾಗ ಅದನ್ನು ಚಾರ್ಜ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="8535393432370007982">ಬಣ್ಣದ ಪ್ರಕಾರ ಮಾಡಿರುವ ವಿಂಗಡಣೆಯನ್ನು ರದ್ದುಗೊಳಿಸಿ</translation>
+<translation id="8542053257095774575">ಯಾವುದೇ ಡೆಸ್ಕ್‌ಗಳು ಅಥವಾ ಟೆಂಪ್ಲೇಟ್‌ಗಳನ್ನು ಉಳಿಸಲಾಗಿಲ್ಲ</translation>
 <translation id="8546059259582788728">ವಿಂಗಡಣೆಯ ರದ್ದತಿ ಯಶಸ್ವಿಯಾಗಿದೆ</translation>
 <translation id="8551588720239073785">ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="8553395910833293175">ಈಗಾಗಲೇ ಎಲ್ಲಾ ಡೆಸ್ಕ್‌ಗಳಿಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ.</translation>
@@ -1293,6 +1296,7 @@
 <translation id="8721053961083920564">ವಾಲ್ಯೂಮ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ ಕ್ಯಾಪ್ಚರ್</translation>
 <translation id="8734991477317290293">ನಿಮ್ಮ ಕೀಸ್ಟ್ರೋಕ್‌ಗಳನ್ನು ಕಳವು ಮಾಡಲು ಇದು ಪ್ರಯತ್ನಿಸುತ್ತಿರಬಹುದು</translation>
+<translation id="8735678380411481005">ಕೀಬೋರ್ಡ್ ಬ್ಯಾಕ್‌ಲೈಟ್ ಬಣ್ಣ</translation>
 <translation id="8735953464173050365">ಕೀಬೋರ್ಡ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ. <ph name="KEYBOARD_NAME" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8755498163081687682">ನಿಮ್ಮ ಗುರುತನ್ನು ಖಚಿತಪಡಿಸಿ: ಇದು ನೀವೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು <ph name="ORIGIN_NAME" /> ಬಯಸುತ್ತದೆ</translation>
 <translation id="875593634123171288">VPN ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 6c424228..a28eed7 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">이전에 중단한 부분부터 계속할 수 있도록 추천 항목이 표시됩니다. 추천 항목을 삭제하려면 길게 터치하세요.</translation>
 <translation id="2792498699870441125">Alt+검색 키</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">폴더 열기</translation>
 <translation id="2805756323405976993">앱</translation>
 <translation id="2814448776515246190">부분 캡처</translation>
 <translation id="2819276065543622893">지금 로그아웃됩니다.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">앱에서 마이크를 사용하려고 함</translation>
 <translation id="5078796286268621944">잘못된 PIN</translation>
 <translation id="5083553833479578423">더 많은 어시스턴트 기능을 사용해 보세요.</translation>
+<translation id="509790653408515442">휴대전화의 앱을 스트리밍하면 여기 표시됩니다.</translation>
 <translation id="5107522548814527560">웹</translation>
 <translation id="5117590920725113268">다음 달 표시</translation>
 <translation id="5136175204352732067">다른 키보드 연결됨</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">접근성 설정</translation>
 <translation id="5245201184978705914">스크립트를 생성할 수 없음</translation>
 <translation id="5253783950165989294">이름이 <ph name="DEVICE_NAME" />인 기기에 연결됨(배터리 <ph name="BATTERY_PERCENTAGE" />%)</translation>
+<translation id="5258528442992323769">저장된 데스크 없음</translation>
 <translation id="5260676007519551770">데스크 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> 알림이 있습니다.</translation>
 <translation id="5283198616748585639">1분 추가</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">현재 데스크의 창 표시, 라디오 버튼 선택됨</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" />이(가) 켜져 있는 동안에는 충전되지 않을 수 있습니다.</translation>
 <translation id="8535393432370007982">색상별 정렬 순서 실행취소</translation>
+<translation id="8542053257095774575">저장된 데스크 또는 템플릿 없음</translation>
 <translation id="8546059259582788728">정렬이 실행취소됨</translation>
 <translation id="8551588720239073785">날짜 및 시간 설정</translation>
 <translation id="8553395910833293175">이미 모든 데스크에 할당되어 있습니다.</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index bf773d2..468f9fd 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Токтогон жериңизден улантуу үчүн сунуштарды көрөсүз. Сунуштарды өчүрүү үчүн коё бербей басып туруңуз.</translation>
 <translation id="2792498699870441125">Alt+Издөө</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Куржунду ачуу</translation>
 <translation id="2805756323405976993">Колдонмолор</translation>
 <translation id="2814448776515246190">Сүрөткө жарым-жартылай тартып алуу</translation>
 <translation id="2819276065543622893">Сиз азыр чыгарыласыз.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Колдонмо микрофонду ачканы жатат</translation>
 <translation id="5078796286268621944">Туура эмес PIN</translation>
 <translation id="5083553833479578423">Жардамчынын башка функцияларын иштетиңиз.</translation>
+<translation id="509790653408515442">Телефонуңуздагы колдонмолорду алып ойнотконуңузда, алар ушул жерде көрсөтүлөт</translation>
 <translation id="5107522548814527560">Интернет</translation>
 <translation id="5117590920725113268">Кийинки айды көрсөтүү</translation>
 <translation id="5136175204352732067">Башка баскычтоп туташтырылды</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Атайын мүмкүнчүлүктөрдү жөндөө</translation>
 <translation id="5245201184978705914">Транскрипция түзүлгөн жок</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> деп аталган түзмөккө туташты, батареянын кубаты: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Сакталган иш такталар жок</translation>
 <translation id="5260676007519551770">4-иш такта</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> колдонмосун караңыз.</translation>
 <translation id="5283198616748585639">1 мүн. кошуу</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Учурдагы иш тактадагы терезелерди көрсөтүү, радио баскычы тандалды</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> түзмөгүңүз өчүп турганда кубатталбай калышы мүмкүн.</translation>
 <translation id="8535393432370007982">Түсү боюнча иреттөө тартибин артка кайтаруу</translation>
+<translation id="8542053257095774575">Сакталган иш такталар же үлгүлөр жок</translation>
 <translation id="8546059259582788728">Иреттөө токтотулду</translation>
 <translation id="8551588720239073785">Күн менен убакыт жөндөөлөрү</translation>
 <translation id="8553395910833293175">Бардык иш такталар дайындалган.</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index e409ad9..d3aa340 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">ທ່ານຈະເຫັນການແນະນຳເພື່ອໃຫ້ທ່ານສາມາດສືບຕໍ່ຈາກບ່ອນທີ່ເປີດຄ້າງໄວ້ໄດ້. ທ່ານສາມາດແຕະຄ້າງໄວ້ເພື່ອລຶບການແນະນຳອອກໄດ້.</translation>
 <translation id="2792498699870441125">Alt+ຊອກຫາ</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">ເປີດ​ໂຟລເດີ</translation>
 <translation id="2805756323405976993">ແອັບ</translation>
 <translation id="2814448776515246190">ຖ່າຍຮູບບາງສ່ວນ</translation>
 <translation id="2819276065543622893">ທ່ານຈະຖືກອອກຈາກລະບົບດຽວນີ້.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index efc3933..8cc05a3 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Matysite rekomendacijas, kad galėtumėte tęsti nuo ten, kur baigėte. Palieskite ir palaikykite, jei norite pašalinti rekomendacijas.</translation>
 <translation id="2792498699870441125">„Alt“ + paieškos klavišas</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Atidaryti aplanką</translation>
 <translation id="2805756323405976993">Taikomosios programos</translation>
 <translation id="2814448776515246190">Dalinio vaizdo užfiksavimas</translation>
 <translation id="2819276065543622893">Būsite atjungti.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Programa nori naudoti mikrofoną</translation>
 <translation id="5078796286268621944">Neteisingas PIN kodas</translation>
 <translation id="5083553833479578423">Atrakinkite daugiau Padėjėjo funkcijų.</translation>
+<translation id="509790653408515442">Kai srautu perduodate telefono programas, jos rodomos čia</translation>
 <translation id="5107522548814527560">Žiniatinklis</translation>
 <translation id="5117590920725113268">Rodyti kitą mėnesį</translation>
 <translation id="5136175204352732067">Prijungta kita klaviatūra</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Pasiekiamumo nustatymai</translation>
 <translation id="5245201184978705914">Nepavyko sugeneruoti transkribuoto teksto</translation>
 <translation id="5253783950165989294">Prisijungta prie įrenginio pavadinimu „<ph name="DEVICE_NAME" />“, akumuliatoriaus įkrovos lygis: <ph name="BATTERY_PERCENTAGE" /> proc.</translation>
+<translation id="5258528442992323769">Nėra jokių išsaugotų darbalaukių</translation>
 <translation id="5260676007519551770">4 pultas</translation>
 <translation id="5283099933536931082">Reikia atkreipti dėmesį į „<ph name="APP_ITEM_TITLE" />“.</translation>
 <translation id="5283198616748585639">Pridėti 1 min.</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Rodyti dabartinio darbalaukio langus, pasirinkta akutė</translation>
 <translation id="8517041960877371778">„<ph name="DEVICE_TYPE" />“ gali nebūti kraunamas, kai yra įjungtas.</translation>
 <translation id="8535393432370007982">Anuliuoti rūšiavimo tvarką pagal spalvą</translation>
+<translation id="8542053257095774575">Nėra jokių išsaugotų darbalaukių ar šablonų</translation>
 <translation id="8546059259582788728">Rūšiavimas sėkmingai anuliuotas</translation>
 <translation id="8551588720239073785">Datos ir laiko nustatymai</translation>
 <translation id="8553395910833293175">Jau priskirta visiems darbalaukiams.</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index a96a904..251a1c59 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Tā kā tiks rādīti ieteikumi, varēsiet turpināt no vietas, kur beidzāt darbu. Lai noņemtu ieteikumus, varat pieskarties un turēt.</translation>
 <translation id="2792498699870441125">Alt+Meklēt</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Atvērt mapi</translation>
 <translation id="2805756323405976993">Lietotnes</translation>
 <translation id="2814448776515246190">Daļēja ekrāna uzņemšana</translation>
 <translation id="2819276065543622893">Jūs tagad tiksiet izrakstīts.</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index 69560ff7..fc20682 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Отворено вчера</translation>
 <translation id="2441427462554639370">Снимањето заврши бидејќи речиси нема простор за складирање на дискот</translation>
 <translation id="24452542372838207">Прошири го известувањето</translation>
+<translation id="2449089818483227734">Слаба батерија</translation>
 <translation id="2450205753526923158">Режим на слика од екранот</translation>
 <translation id="2456008742792828469">Календар, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Потврдете ја резолуцијата</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">Ќе видите препораки за да можете да продолжите каде што сте застанале. Може да допрете и задржите за да ги отстраните препораките.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Група на полица</translation>
-<translation id="2803313416453193357">Отвори папка</translation>
 <translation id="2805756323405976993">Апликации</translation>
 <translation id="2814448776515246190">Делумно снимање</translation>
 <translation id="2819276065543622893">Сега ќе бидете одјавени.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин.</translation>
 <translation id="3445925074670675829">USB-Ц уред</translation>
+<translation id="3455468639467374593">Шаблон, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Друга тастатура се поврзала со уредов од вашето последно најавување. Проверете дали ѝ верувате на тастатурава пред да ја користите.</translation>
 <translation id="3465356146291925647">Управувана од администраторот</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Полицата е автоматски сокриена</translation>
+<translation id="3505066820268455558">Батеријата се полни</translation>
 <translation id="3509391053705095206">Не може да се најде телефонот. Проверете дали ви е вклучен Bluetooth на телефонот.</translation>
 <translation id="3510164367642747937">Нагласи го покажувачот на глувчето</translation>
 <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> управува со сметката</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Отворете ги поставките за Bluetooth за да го спарите уредот</translation>
 <translation id="3638400994746983214">Вклучете/исклучете го екранот за приватност. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Измина рокот за ажурирање</translation>
+<translation id="3659814201068740063">Простануваат уште околу <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" /> %).
+Приклучете го уредот во струја.</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" />, управуван корисник</translation>
 <translation id="36813544980941320">Wi-Fi мрежите ќе се споделуваат помеѓу вашиот телефон и <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Веб-страници</translation>
@@ -513,6 +517,7 @@
 <translation id="3962859241508114581">Претходна песна</translation>
 <translation id="3969043077941541451">Исклучи</translation>
 <translation id="397105322502079400">Се пресметува…</translation>
+<translation id="397726367135689299">Полнењето на батеријата може да е нестабилно.</translation>
 <translation id="3977512764614765090">Батеријата е на <ph name="PERCENTAGE" /> % и се полни.</translation>
 <translation id="3986082989454912832">Одговори</translation>
 <translation id="3995138139523574647">USB-Ц уред (задна порта од десна страна)</translation>
@@ -1040,6 +1045,7 @@
 <translation id="7130207228079676353">ВЕРОЈАТНО ЌЕ ГИ КЛИКНЕТЕ</translation>
 <translation id="7131634465328662194">Автоматски ќе ве одјавиме.</translation>
 <translation id="7143207342074048698">Се поврзува</translation>
+<translation id="7144942256906679589">Статус на батеријата</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Се навраќа на стара резолуција за <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Освежи</translation>
@@ -1105,6 +1111,7 @@
 <translation id="7593891976182323525">Search или Shift</translation>
 <translation id="7600875258240007829">Видете ги сите известувања</translation>
 <translation id="7607002721634913082">Паузирано</translation>
+<translation id="7609951632080598826">Приказ на календар, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Камерата е поврзана повторно.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Прикажи поставки за „Споделување во близина“.</translation>
@@ -1230,6 +1237,7 @@
 <translation id="8345019317483336363">Избран е прозорецот <ph name="WINDOW_TITLE" /></translation>
 <translation id="8351131234907093545">Создајте белешка</translation>
 <translation id="8364673525741149932">Вклучете група на полица. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Зачувана работна површина, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Напред за една буква</translation>
 <translation id="8371991222807690464">Периферните перформанси може да бидат ограничени во режим на гостин</translation>
 <translation id="8374601332003098278">Притиснете Enter за да го снимите екранот делумно</translation>
@@ -1341,6 +1349,7 @@
 <translation id="9000771174482730261">УПРАВУВАЈТЕ СО КАПАЦИТЕТОТ</translation>
 <translation id="9017320285115481645">Внесете го кодот за пристап на родители на Family Link.</translation>
 <translation id="9024331582947483881">цел екран</translation>
+<translation id="9029736946581028033">Уредот ќе се исклучи наскоро</translation>
 <translation id="9030319654231318877">Исклучено до зајдисонце</translation>
 <translation id="9034924485347205037">Датотеки на Linux</translation>
 <translation id="9047624247355796468">Отвори поставки за <ph name="NETWORK_NAME" /></translation>
@@ -1370,6 +1379,7 @@
 <translation id="9168436347345867845">Остави за подоцна</translation>
 <translation id="9178475906033259337">Се прикажува 1 резултат за <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Функцијава ви овозможува брзо да пристапите до секој најавен корисник без да биде потребна лозинка. Користете ја само со сметки во кои имате доверба.</translation>
+<translation id="9180906851711123156">Притиснете Ctrl+W за да затворите</translation>
 <translation id="9183456764293710005">Лупа за цел екран</translation>
 <translation id="9193626018745640770">Се емитува на непознат приемник</translation>
 <translation id="9194617393863864469">Пријави друг корисник...</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index a81eea91..7648426 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">ഇന്നലെ തുറന്നത്</translation>
 <translation id="2441427462554639370">സ്റ്റോറേജ് ഇടം വളരെ കുറവായതിനാൽ റെക്കോർഡിംഗ് അവസാനിച്ചു</translation>
 <translation id="24452542372838207">അറിയിപ്പ് വികസിപ്പിക്കുക</translation>
+<translation id="2449089818483227734">ബാറ്ററി ചാർജ് കുറവാണ്</translation>
 <translation id="2450205753526923158">സ്ക്രീൻഷോട്ട് മോഡ്</translation>
 <translation id="2456008742792828469">കലണ്ടർ, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">റെസല്യൂഷൻ സ്ഥിരീകരിക്കുക</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">നിർത്തിയ ഇടത്ത് നിന്ന് തുടരാനാകുന്ന തരത്തിൽ നിങ്ങൾക്ക് നിർദ്ദേശങ്ങൾ കാണാം.  നിർദ്ദേശങ്ങൾ നീക്കം ചെയ്യാൻ സ്പർശിച്ച് പിടിക്കുക.</translation>
 <translation id="2792498699870441125">Alt+തിരയൽ</translation>
 <translation id="2797741504905337289">ഷെൽഫ് പാർട്ടി</translation>
-<translation id="2803313416453193357">ഫോൾഡർ തുറക്കുക</translation>
 <translation id="2805756323405976993">ആപ്സ്</translation>
 <translation id="2814448776515246190">ഭാഗികമായി ക്യാപ്‌ചർ ചെയ്യൽ</translation>
 <translation id="2819276065543622893">നിങ്ങൾ ഇപ്പോൾ സൈൻ ഔട്ട് ചെയ്യും.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> മി.</translation>
 <translation id="3445925074670675829">USB-C ഉപകരണം</translation>
+<translation id="3455468639467374593">ടെംപ്ലേറ്റ്, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">നിങ്ങൾ അവസാനമായി സൈൻ ഇൻ ചെയ്‌തതിന് ശേഷം ഈ ഉപകരണത്തിലേക്ക് മറ്റൊരു കീബോഡ് കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്നു. ഉപയോഗിക്കുന്നതിന് മുമ്പായി, വിശ്വസിക്കാനാവുന്ന കീബോഡാണ് ഇതെന്ന് ഉറപ്പ് വരുത്തുക.</translation>
 <translation id="3465356146291925647">നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">ഷെൽഫ് സ്വയമേവ മറച്ചു</translation>
+<translation id="3505066820268455558">ബാറ്ററി ചാർജ് ചെയ്യുന്നു</translation>
 <translation id="3509391053705095206">നിങ്ങളുടെ ഫോൺ കണ്ടെത്താനാകുന്നില്ല. ഫോണിൻ്റെ Bluetooth ഓണാണെന്ന് ഉറപ്പുവരുത്തുക.</translation>
 <translation id="3510164367642747937">മൗസ് കഴ്‌സർ ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="3513798432020909783">അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="MANAGER_EMAIL" /> ആണ്</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">നിങ്ങളുടെ ഉപകരണം ജോടിയാക്കാൻ Bluetooth ക്രമീകരണം തുറക്കുക</translation>
 <translation id="3638400994746983214">സ്വകാര്യതാ സ്‌ക്രീൻ മാറ്റുക. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">അപ്‌ഡേറ്റ് കാലാവധി കഴിഞ്ഞിരിക്കുന്നു</translation>
+<translation id="3659814201068740063">ഏതാണ്ട് <ph name="TIME_LEFT" /> ശേഷിക്കുന്നു (<ph name="PERCENTAGE" />%).
+നിങ്ങളുടെ ഉപകരണം വൈദ്യുതി സ്രോതസ്സിലേക്ക് കണക്റ്റ് ചെയ്യുക.</translation>
 <translation id="366222428570480733">നിയന്ത്രിത ഉപയോക്താവ് <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="36813544980941320">നിങ്ങളുടെ ഫോണിനും <ph name="DEVICE_NAME" /> എന്നതിനുമിടയിൽ വെെഫെെ നെറ്റ്‌വർക്കുകൾ പങ്കിടും</translation>
 <translation id="3694122362646626770">വെബ്‌സൈറ്റുകൾ</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">മുമ്പത്തെ ട്രാക്ക്</translation>
 <translation id="3969043077941541451">ഓഫാണ്</translation>
 <translation id="397105322502079400">കണക്കാക്കുന്നു...</translation>
+<translation id="397726367135689299">ബാറ്ററി ശരിയായി ചാർജ് ആകുന്നുണ്ടാകില്ല.</translation>
 <translation id="3977512764614765090">ബാറ്ററി <ph name="PERCENTAGE" />% ഉണ്ട്, ചാർജ് ചെയ്യുകയുമാണ്.</translation>
 <translation id="3986082989454912832">കോൾ സ്വീകരിക്കുക</translation>
 <translation id="3995138139523574647">USB-C ഉപകരണം (വലതുവശത്ത് പിന്നിലെ പോർട്ട്)</translation>
@@ -1039,6 +1044,7 @@
 <translation id="7130207228079676353">ഏറ്റവും കൂടുതൽ പേർ ലൈക്കുചെയ്‌‌തത്</translation>
 <translation id="7131634465328662194">നിങ്ങൾ സ്വമേധയാ സൈൻ ഔട്ടാകും.</translation>
 <translation id="7143207342074048698">കണക്റ്റിംഗ്</translation>
+<translation id="7144942256906679589">ബാറ്ററി നില</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358"><ph name="TIMEOUT_SECONDS" />-ൽ പഴയ റെസല്യൂഷനിലേക്ക് മാറ്റുന്നു</translation>
 <translation id="7180611975245234373">റീഫ്രഷ് ചെയ്യുക</translation>
@@ -1061,6 +1067,7 @@
 <translation id="7348093485538360975">ഓൺ-സ്‌ക്രീൻ കീബോർഡ്</translation>
 <translation id="735745346212279324">VPN വിച്‍ഛേദിച്ചു</translation>
 <translation id="7360036564632145207">പെരിഫറലുകളുടെ ക്രമീകരണത്തിനുള്ള നിങ്ങളുടെ ഡാറ്റാ ആക്‌സസ് പരിരക്ഷ മാറ്റുന്നത് പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യും</translation>
+<translation id="736045644501761622">വാൾപേപ്പറും സ്‌റ്റൈലും സജ്ജീകരിക്കുക</translation>
 <translation id="7371404428569700291">വിൻഡോ റെക്കോർഡ് ചെയ്യുക</translation>
 <translation id="7377169924702866686">Caps Lock ഓൺ ആണ്.</translation>
 <translation id="7377481913241237033">കോഡ് ഉപയോഗിച്ച് കണക്റ്റ് ചെയ്യുക</translation>
@@ -1104,6 +1111,7 @@
 <translation id="7593891976182323525">തിരയൽ അല്ലെങ്കിൽ Shift</translation>
 <translation id="7600875258240007829">എല്ലാ അറിയിപ്പുകളും കാണുക</translation>
 <translation id="7607002721634913082">അല്പംനിര്‍ത്തി</translation>
+<translation id="7609951632080598826">കലണ്ടർ കാഴ്‌ച, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">ക്യാമറ വീണ്ടും കണക്റ്റ് ചെയ്തു.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">'സമീപമുള്ള പങ്കിടൽ' ക്രമീകരണം കാണിക്കുക.</translation>
@@ -1229,6 +1237,7 @@
 <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> വിന്‍ഡോ തിരഞ്ഞടുത്തു</translation>
 <translation id="8351131234907093545">കുറിപ്പ് സൃഷ്‌ടിക്കുക</translation>
 <translation id="8364673525741149932">ഷെൽഫ് പാർട്ടി മാറ്റുക. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">സംരക്ഷിച്ച ഡെസ്‌ക്, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">ഒരക്ഷരം മുന്നിലേക്ക് പോവുക</translation>
 <translation id="8371991222807690464">അതിഥി മോഡിൽ പെരിഫറൽ പ്രകടനം പരിമിതപ്പെട്ടേക്കാം</translation>
 <translation id="8374601332003098278">ഭാഗിക സ്ക്രീൻ റെക്കോർഡ് ചെയ്യാൻ Enter അമർത്തുക</translation>
@@ -1295,6 +1304,7 @@
 <translation id="8721053961083920564">വോളിയം മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">പൂർണ്ണ സ്ക്രീൻ ക്യാപ്‌ചർ ചെയ്യൽ</translation>
 <translation id="8734991477317290293">ഇത് നിങ്ങളുടെ കീസ്ട്രോക്കുകൾ മോഷ്‌ടിക്കാൻ ശ്രമിച്ചേക്കാം.</translation>
+<translation id="8735678380411481005">കീബോർഡ് ബാക്ക്‌ലൈറ്റ് നിറം</translation>
 <translation id="8735953464173050365">കീബോഡ് ക്രമീകരണം കാണിക്കുക. <ph name="KEYBOARD_NAME" /> തിരഞ്ഞെടുത്തിരിക്കുന്നു</translation>
 <translation id="8755498163081687682">നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിച്ചുറപ്പിക്കുക: ഇത് നിങ്ങൾ തന്നെയാണെന്ന് സ്ഥിരീകരിക്കാൻ <ph name="ORIGIN_NAME" /> ആഗ്രഹിക്കുന്നു</translation>
 <translation id="875593634123171288">VPN ക്രമീകരണം കാണിക്കുക</translation>
@@ -1340,6 +1350,7 @@
 <translation id="9000771174482730261">സ്‌റ്റോറേജ് മാനേജ് ചെയ്യുക</translation>
 <translation id="9017320285115481645">Family Link രക്ഷാകർതൃ ആക്‌സസ് കോഡ് നൽകുക.</translation>
 <translation id="9024331582947483881">പൂര്‍ണ്ണ സ്‌ക്രീന്‍</translation>
+<translation id="9029736946581028033">ഉപകരണം ഉടൻ ഓഫാകും</translation>
 <translation id="9030319654231318877">സൂര്യാസ്തമയം വരെ ഓഫാണ്</translation>
 <translation id="9034924485347205037">Linux ഫയലുകൾ</translation>
 <translation id="9047624247355796468"><ph name="NETWORK_NAME" /> എന്നതിനുള്ള ക്രമീകരണം തുറക്കുക</translation>
@@ -1369,6 +1380,7 @@
 <translation id="9168436347345867845">ഇത് പിന്നീട് ചെയ്യുക</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> എന്നതിനുള്ള ഒരു ഫലം കാണിക്കുന്നു</translation>
 <translation id="9179259655489829027">സൈൻ ഇൻ ചെയ്‌ത ഏതൊരു ഉപയോക്താവിനെ പാസ്‌വേഡ് ഇല്ലാതെ തന്നെ വേഗത്തിൽ ആക്‌സസ് ചെയ്യാൻ ഈ ഫീച്ചർ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് വിശ്വാസമുള്ള അക്കൗണ്ടുകളിൽ മാത്രം ഈ ഫീച്ചർ ഉപയോഗിക്കുക.</translation>
+<translation id="9180906851711123156">അടയ്‌ക്കാൻ Ctrl+W അമർത്തുക</translation>
 <translation id="9183456764293710005">പൂർണ്ണ സ്ക്രീൻ മാഗ്നിഫയർ</translation>
 <translation id="9193626018745640770">ഒരു അജ്ഞാത റിസീവറിൽ കാസ്‌റ്റ് ചെയ്യുന്നു</translation>
 <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 2bd33c6..faa07ef4 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Та зөвлөмжүүд харах бөгөөд ингэснээр орхисон газраасаа үргэлжлүүлэх боломжтой.  Та зөвлөмжүүдийг хасахын тулд удаан дарж болно.</translation>
 <translation id="2792498699870441125">Alt+ Хайлт</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Хавтсыг нээ</translation>
 <translation id="2805756323405976993">Програм</translation>
 <translation id="2814448776515246190">Хэсэгчилсэн зураг авах</translation>
 <translation id="2819276065543622893">Та нэвтрэх хэсгээс яг одоо гарч байна.</translation>
@@ -1062,6 +1061,7 @@
 <translation id="7348093485538360975">Дэлгэцэн дээрх компьютерийн гар</translation>
 <translation id="735745346212279324">VPN салгагдсан</translation>
 <translation id="7360036564632145207">Та дагалдах төхөөрөмжүүдийн тохиргооны өгөгдлийн хандалтын хамгаалалтаа өөрчилснөөр гүйцэтгэлийг оновчлох боломжтой</translation>
+<translation id="736045644501761622">Дэлгэцийн зураг ба загвар тохируулах</translation>
 <translation id="7371404428569700291">Цонхыг бичих</translation>
 <translation id="7377169924702866686">Caps Lock идэвхжсэн байна.</translation>
 <translation id="7377481913241237033">Кодоор холбогдох</translation>
@@ -1297,6 +1297,7 @@
 <translation id="8721053961083920564">Дууг хаах/нээх. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Бүтэн дэлгэцийн зураг авах</translation>
 <translation id="8734991477317290293">Энэ нь таны түлхүүрийн цуглуулгыг хулгайлахаар оролдож байж болзошгүй</translation>
+<translation id="8735678380411481005">Гарын арын гэрлийн өнгө</translation>
 <translation id="8735953464173050365">Гарын тохиргоог харуулна уу. <ph name="KEYBOARD_NAME" />-г сонгосон</translation>
 <translation id="8755498163081687682">Өөрийгөө баталгаажуулах: <ph name="ORIGIN_NAME" /> таныг мөн болохыг баталгаажуулахыг хүсэж байна</translation>
 <translation id="875593634123171288">VPN тохиргоог харуулах</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 8e62f87b..9bd13716 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">तुम्हाला शिफारशी दिसतील, जेणेकरून तुम्ही जिथे सोडले होते तेथून सुरू ठेवू शकता. तुम्ही शिफारशी काढून टाकण्यासाठी स्पर्श करून धरून ठेवू शकता.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">शेल्फ पार्टी</translation>
-<translation id="2803313416453193357">फोल्डर उघडा</translation>
 <translation id="2805756323405976993">ॲप्लिकेशन</translation>
 <translation id="2814448776515246190">आंशिक कॅप्चर</translation>
 <translation id="2819276065543622893">आता तुम्हाला साइन आउट केले जाईल.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">ॲपला मायक्रोफोन वापरायचा आहे</translation>
 <translation id="5078796286268621944">चुकीचा पिन</translation>
 <translation id="5083553833479578423">असिस्टंटची आणखी वैशिष्ट्ये अनलॉक करा.</translation>
+<translation id="509790653408515442">तुम्ही तुमच्या फोनची अ‍ॅप्स स्ट्रीम कराल, तेव्हा ती येथे दिसतील</translation>
 <translation id="5107522548814527560">वेब</translation>
 <translation id="5117590920725113268">पुढील महिना दर्शवा</translation>
 <translation id="5136175204352732067">वेगळा कीबोर्ड कनेक्ट केला आहे</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">ॲक्सेसिबिलिटी सेटिंग्ज</translation>
 <translation id="5245201184978705914">ट्रान्स्क्रिप्ट जनरेट करू शकत नाही</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> नावाच्या डिव्‍हाइसशी कनेक्ट केले, बॅटरी<ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">कोणतीही सेव्ह केलेली डेस्‍क नाहीत</translation>
 <translation id="5260676007519551770">डेस्‍क ४</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> तुम्हाला लक्ष देण्याची विनंती करते.</translation>
 <translation id="5283198616748585639">एक मिनिट जोडा</translation>
@@ -787,7 +788,7 @@
 <translation id="5669267381087807207">सक्रिय करत आहे</translation>
 <translation id="5673434351075758678">तुमच्या सेटिंग्ज सिंक केल्यानंतर "<ph name="FROM_LOCALE" />" पासून "<ph name="TO_LOCALE" />" पर्यंत.</translation>
 <translation id="5675363643668471212">शेल्‍फ आयटम</translation>
-<translation id="5677928146339483299">अवरोधित</translation>
+<translation id="5677928146339483299">ब्लॉक केले</translation>
 <translation id="5678564054339031017">पुढील आठवडा दाखवा</translation>
 <translation id="5679050765726761783">कमी पॉवरचे अडॅप्टर कनेक्ट केले</translation>
 <translation id="5682642926269496722">सध्याच्या वापरकर्ता खात्यावर Google असिस्टंट उपलब्ध नाही.</translation>
@@ -1059,6 +1060,7 @@
 <translation id="7348093485538360975">ऑन-स्क्रीन कीबोर्ड</translation>
 <translation id="735745346212279324">VPN डिस्कनेक्ट केले</translation>
 <translation id="7360036564632145207">पेरिफेरल सेटिंगसाठी डेटा अ‍ॅक्सेस संरक्षण बदलल्याने परफॉर्मन्स ऑप्टिमाइझ होऊ शकतो</translation>
+<translation id="736045644501761622">वॉलपेपर आणि स्टाइल सेट करा</translation>
 <translation id="7371404428569700291">विंडो रेकॉर्ड करा</translation>
 <translation id="7377169924702866686">Caps Lock सुरू आहे.</translation>
 <translation id="7377481913241237033">कोड वापरून कनेक्ट करा</translation>
@@ -1260,6 +1262,7 @@
 <translation id="851458219935658693">सध्याच्या डेस्कवरील विंडो दाखवा, रेडिओ बटण निवडले</translation>
 <translation id="8517041960877371778">तुमचे <ph name="DEVICE_TYPE" /> सुरू केले असताना कदाचित चार्ज होणार नाही.</translation>
 <translation id="8535393432370007982">रंगानुसार क्रमवारीचा क्रम पहिल्यासारखा करा</translation>
+<translation id="8542053257095774575">कोणतीही सेव्ह केलेली डेस्‍क किंवा टेंप्लेट नाहीत</translation>
 <translation id="8546059259582788728">क्रमाने लावणे पहिल्यासारखे करण्यात यश आले</translation>
 <translation id="8551588720239073785">तारीख आणि वेळ सेटिंग्ज</translation>
 <translation id="8553395910833293175">सर्व डेस्कना आधीपासून असाइन केले आहे.</translation>
@@ -1292,6 +1295,7 @@
 <translation id="8721053961083920564">व्‍हॉल्‍यूम टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">फुल स्‍क्रीन कॅप्‍चर</translation>
 <translation id="8734991477317290293">तो कदाचित तुमचे कीस्ट्रोक चोरण्याचा प्रयत्न करत असेल.</translation>
+<translation id="8735678380411481005">कीबोर्ड बॅकलाइटचा रंग</translation>
 <translation id="8735953464173050365">कीबोर्ड सेटिंग्ज दाखवा. <ph name="KEYBOARD_NAME" /> निवडले आहे</translation>
 <translation id="8755498163081687682">तुमच्या ओळखीची पडताळणी करा: हे तुम्हीच असल्याची <ph name="ORIGIN_NAME" /> ला खात्री करायची आहे</translation>
 <translation id="875593634123171288">VPN सेटिंग्ज दाखवा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index b19afc0..2654fbb4 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Anda akan melihat pengesyoran supaya anda boleh meneruskan dari tempat anda berhenti. Anda boleh sentuh &amp; tahan untuk mengalih keluar pengesyoran.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Buka folder</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2814448776515246190">Tangkapan separa</translation>
 <translation id="2819276065543622893">Anda akan dilog keluar sekarang.</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 4ad84f8f..3791328e 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">မနေ့က ဖွင့်ထားသည်</translation>
 <translation id="2441427462554639370">သိုလှောင်ခန်းနေရာ အလွန်နည်းနေသဖြင့် ရိုက်ကူးမှု ရပ်သွားသည်</translation>
 <translation id="24452542372838207">အကြောင်းကြားချက်ကို ချဲ့ရန်</translation>
+<translation id="2449089818483227734">ဘက်ထရီ အားနည်းနေသည်</translation>
 <translation id="2450205753526923158">ဖန်သားပြင်ဓာတ်ပုံမုဒ်</translation>
 <translation id="2456008742792828469">ပြက္ခဒိန်၊ <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">ပုံရိပ်ပြတ်သားကိန်း အတည်ပြုခြင်း</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">ထားခဲ့သည့်နေရာမှ ဆက်လုပ်နိုင်ရန် အကြံပြုချက်များ မြင်ရပါမည်။ တို့ထိ၍ ဖိထားပြီး အကြံပြုချက်များ ဖျက်နိုင်သည်။</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">ဖိုင်တွဲဖွင့်</translation>
 <translation id="2805756323405976993">အက်ပ်များ</translation>
 <translation id="2814448776515246190">တစ်စိတ်တစ်ပိုင်း ပုံဖမ်းယူရန်</translation>
 <translation id="2819276065543622893">သင်ယခု ထွက်ပါမည်။</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> မိနစ်</translation>
 <translation id="3445925074670675829">USB-C ကိရိယာ</translation>
+<translation id="3455468639467374593">ပုံစံ၊ <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">သင်နောက်ဆုံးအကြိမ် လက်မှတ်ထိုးဝင်သည့်အချိန်မှစ၍ အခြားကီးဘုတ်တစ်ခုကို ဤစက်ပစ္စည်းသို့ ချိတ်ဆက်ထားပါသည်။ ကီးဘုတ်ကို အသုံးမပြုမီ သင်ယုံကြည်မှုရှိမရှိ သေချာစစ်ဆေးပါ။</translation>
 <translation id="3465356146291925647">သင့် 'ကြီးကြပ်သူ' က စီမံထားသည်</translation>
 <translation id="3477079411857374384">Control−Shift−Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />၊ <ph name="CONNECTION_STATUS" />၊ လိုင်းဆွဲအား <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">စင်ကို အလိုလိုဖျောက်ထားသည်</translation>
+<translation id="3505066820268455558">ဘက်ထရီ အားသွင်းနေသည်</translation>
 <translation id="3509391053705095206">သင့်ဖုန်းကို ရှာမတွေ့ပါ။ သင့်ဖုန်း၏ ဘလူးတုသ်ကို ဖွင့်ထားပါ။</translation>
 <translation id="3510164367642747937">မောက်စ်ကာဆာကို ထင်သာမြင်သာဖြစ်အောင်ပြုလုပ်ရန်</translation>
 <translation id="3513798432020909783">အကောင့်ကို <ph name="MANAGER_EMAIL" /> က စီမံပါသည်</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">သင်၏စက်နှင့် တွဲချိတ်ရန် ဘလူးတုသ်ဆက်တင်များ ဖွင့်ပါ</translation>
 <translation id="3638400994746983214">ကိုယ်ရေးလုံခြုံမှု ဖန်သားပြင်ကို အဖွင့်အပိတ်လုပ်ရန်။ <ph name="STATE_TEXT" />။</translation>
 <translation id="3649505501900178324">အပ်ဒိတ် ရက်လွန်နေသည်</translation>
+<translation id="3659814201068740063"><ph name="TIME_LEFT" /> ခန့် ကျန်သည် (<ph name="PERCENTAGE" />%)။
+စက်ကို အားသွင်းပါ။</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> စီမံခန့်ခွဲသော အသုံးပြုသူ</translation>
 <translation id="36813544980941320">သင့်ဖုန်းနှင့် <ph name="DEVICE_NAME" /> အကြားတွင် Wi-Fi ကွန်ရက်များကို မျှဝေပါမည်</translation>
 <translation id="3694122362646626770">ဝဘ်ဆိုက်များ</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">ယခင်တစ်ပုဒ်</translation>
 <translation id="3969043077941541451">ပိတ်ရန်</translation>
 <translation id="397105322502079400">တွက်ချက်နေ...</translation>
+<translation id="397726367135689299">ဘက်ထရီ အားသွင်းခြင်းသည် စိတ်ချရမှုမရှိနိုင်ပါ။</translation>
 <translation id="3977512764614765090">ဘက်ထရီသည် <ph name="PERCENTAGE" />% ရှိပြီး အားသွင်းနေပါသည်။</translation>
 <translation id="3986082989454912832">ဖြေဆိုရန်</translation>
 <translation id="3995138139523574647">USB-C ကိရိယာ (ညာဘက် နောက်ပိုင်း ပို့တ်)</translation>
@@ -1039,6 +1044,7 @@
 <translation id="7130207228079676353">ဖြစ်နိုင်ချေအများဆုံး</translation>
 <translation id="7131634465328662194">သင့်ကို အလိုအလျောက် ထွက်လိုက်ပါမည်။</translation>
 <translation id="7143207342074048698">ချိတ်ဆက်နေသည်</translation>
+<translation id="7144942256906679589">ဘက်ထရီ အခြေအနေ</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">စက္ကန့် <ph name="TIMEOUT_SECONDS" /> အတွင်းမှာ ပြတ်သားမှု အဟောင်းဆီကို ပြန်ပြောင်းမည်</translation>
 <translation id="7180611975245234373">ပြန်လည်စတင်ရန်</translation>
@@ -1104,6 +1110,7 @@
 <translation id="7593891976182323525">ရှာဖွေမည် သို့မဟုတ် ပြောင်းလဲမည်</translation>
 <translation id="7600875258240007829">အကြောင်းကြားချက်အားလုံးကို ကြည့်ရန်</translation>
 <translation id="7607002721634913082">ဆိုင်းငံ့ထား</translation>
+<translation id="7609951632080598826">ပြက္ခဒိန်ပြသခြင်း၊ <ph name="DATE" />၊ <ph name="TIME" /></translation>
 <translation id="7611213136657090146">ကင်မရာကို ပြန်လည်ချိတ်ဆက်ထားသည်။</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">'အနီးတစ်ဝိုက် မျှဝေခြင်း' ဆက်တင်များ ပြပေးသည်။</translation>
@@ -1229,6 +1236,7 @@
 <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> ဝင်းဒိုးကို ရွေးထားသည်</translation>
 <translation id="8351131234907093545">မှတ်စုရေးရန်</translation>
 <translation id="8364673525741149932">Shelf Party ပြောင်းရန်။ <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">သိမ်းထားသည့်မျက်နှာပြင်၊ <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">အက္ခရာအလိုက် ရှေ့သို့သွားရန်</translation>
 <translation id="8371991222807690464">‘ဧည့်သည်မုဒ်’ တွင် ချိတ်ဆက်ပစ္စည်း၏ စွမ်းဆောင်ရည်ကို ကန့်သတ်ထားနိုင်သည်</translation>
 <translation id="8374601332003098278">ဖန်သားပြင်တစ်စိတ်တစ်ပိုင်းကို မှတ်တမ်းတင်ရန် Enter နှိပ်ပါ</translation>
@@ -1340,6 +1348,7 @@
 <translation id="9000771174482730261">သိုလှောင်ခန်း စီမံခန့်ခွဲရန်</translation>
 <translation id="9017320285115481645">Family Link မိဘသုံးကုဒ် ထည့်ပါ။</translation>
 <translation id="9024331582947483881">မျက်နှာပြင်အပြည့်</translation>
+<translation id="9029736946581028033">စက်သည် မကြာမီ အားကုန်တော့မည်</translation>
 <translation id="9030319654231318877">နေဝင်ချိန်အထိ ပိတ်ရန်</translation>
 <translation id="9034924485347205037">Linux ဖိုင်များ</translation>
 <translation id="9047624247355796468"><ph name="NETWORK_NAME" /> အတွက် ဆက်တင်များကို ဖွင့်ရန်</translation>
@@ -1369,6 +1378,7 @@
 <translation id="9168436347345867845">နောက်မှလုပ်ရန်</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> အတွက် ရလဒ် ၁ ခုကို ပြနေသည်</translation>
 <translation id="9179259655489829027">ဤဝန်ဆောင်မှုက လက်မှတ်ထိုးဝင်ထားသူ မည်သူမဆိုအား စကားဝှက်မလိုအပ်ဘဲ အသုံးပြုခွင့်ပေးပါသည်။ သင်ယုံကြည်စိတ်ချရသည့် အကောင့်များဖြင့်သာ ဤဝန်ဆောင်မှုကို အသုံးပြုပါ။</translation>
+<translation id="9180906851711123156">ပိတ်ရန် Ctrl+W နှိပ်ပါ</translation>
 <translation id="9183456764293710005">မျက်နှာပြင်အပြည့် မှန်ဘီလူး</translation>
 <translation id="9193626018745640770">အမည်မသိလက်ခံစက်တွင် ကာ့စ်လုပ်နေသည်</translation>
 <translation id="9194617393863864469">အခြားသူ အနေဖြင့် လက်မှတ်ထိုးဝင်ပါ...</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 71dbe36..2d2e955f 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">हिजो खोलिएको</translation>
 <translation id="2441427462554639370">भण्डारणमा अत्यन्तै कम खाली ठाउँ भएकाले रेकर्डिङ बन्द भयो</translation>
 <translation id="24452542372838207">सूचना विस्तृत गर्नुहोस्‌</translation>
+<translation id="2449089818483227734">ब्याट्री कम छ</translation>
 <translation id="2450205753526923158">स्क्रिनसट मोड</translation>
 <translation id="2456008742792828469">पात्रो, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">रिजोल्युसन पुष्टि गर्नुहोस्</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">तपाईं आफूले छाडेकै ठाउँबाट जारी राख्न सक्नुहोस् भन्नाका लागि तपाईंलाई सिफारिसहरू देखाइने छन्।  तपाईं टच एण्ड होल्ड गरेर ती सिफारिसहरू हटाउन सक्नुहुन्छ।</translation>
 <translation id="2792498699870441125">Alt + खोज</translation>
 <translation id="2797741504905337289">सेल्फ पार्टी</translation>
-<translation id="2803313416453193357">फोल्डर खोल्नुहोस्</translation>
 <translation id="2805756323405976993">एप्स</translation>
 <translation id="2814448776515246190">स्क्रिनको केही भाग क्याप्चर गर्ने सुविधा</translation>
 <translation id="2819276065543622893">तपाइँलाई अब साइन आउट गराइनेछ।</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> मिनेट</translation>
 <translation id="3445925074670675829">USB-C यन्त्र</translation>
+<translation id="3455468639467374593">टेम्प्लेट, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">तपाईंले पछिल्लो पटक साइन इन गरेयता यो डिभाइसमा अर्को किबोर्ड जडान गरिएको छ। यो किबोर्डको प्रयोग थाल्नुअघि तपाईं यसमाथि भरोसा गर्नुहुन्छ भन्ने कुरा सुनिश्चित गर्नुहोस्।</translation>
 <translation id="3465356146291925647">तपाईंका प्रशासकले व्यवस्थित गर्नुभएको छ</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">सेल्फ स्वतः लुक्ने छ</translation>
+<translation id="3505066820268455558">ब्याट्री चार्ज हुँदै छ</translation>
 <translation id="3509391053705095206">तपाईंको फोन भेट्टाउन सकिएन। आफ्नो फोनको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्।</translation>
 <translation id="3510164367642747937">माउसको कर्सरलाई हाइलाइट</translation>
 <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> ले व्यवस्थापन गरेको खाता</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">आफ्नो डिभाइस कनेक्ट गर्न ब्लुटुथका सेटिङ खोल्नुहोस्</translation>
 <translation id="3638400994746983214">गोपनीयताको स्क्रिन टगल गर्नुहोस्। <ph name="STATE_TEXT" />।</translation>
 <translation id="3649505501900178324">अद्यावधिक हुन बाँकी</translation>
+<translation id="3659814201068740063">लगभग <ph name="TIME_LEFT" /> बाँकी (<ph name="PERCENTAGE" />%)।
+आफ्नो डिभाइस बिजुलीको स्रोतमा जोड्नुहोस्।</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> व्यवस्थापन गरिएका प्रयोगकर्ता</translation>
 <translation id="36813544980941320">तपाईंको फोन र <ph name="DEVICE_NAME" /> का बिचमा Wi-Fi नेटवर्कहरू सेयर गरिने छन्</translation>
 <translation id="3694122362646626770">वेबसाइटहरू</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">अघिल्लो ट्र्याक</translation>
 <translation id="3969043077941541451">अफ छ</translation>
 <translation id="397105322502079400">हिसाब गर्दै...</translation>
+<translation id="397726367135689299">ब्याट्री राम्रोसँग चार्ज नहुन सक्छ।</translation>
 <translation id="3977512764614765090">ब्याट्री <ph name="PERCENTAGE" />% छ र चार्ज हुँदै छ।</translation>
 <translation id="3986082989454912832">कल उठाउनुहोस्</translation>
 <translation id="3995138139523574647">USB-C यन्त्र (दायाँ भागको पछाडिको पोर्ट)</translation>
@@ -1039,6 +1044,7 @@
 <translation id="7130207228079676353">सबैभन्दा बढी क्लिक हुने सम्भावना भएका एपहरू</translation>
 <translation id="7131634465328662194">तपाईं स्वतः साइन आउट हुनु हुने छ।</translation>
 <translation id="7143207342074048698">जडान गर्दै...</translation>
+<translation id="7144942256906679589">ब्याट्रीको स्थिति</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358"><ph name="TIMEOUT_SECONDS" /> सेकेन्डमा पुरानो रिजोल्युसनमा फिर्ता जाँदै</translation>
 <translation id="7180611975245234373">ताजा गर्नुहोस्</translation>
@@ -1061,6 +1067,7 @@
 <translation id="7348093485538360975">अन्-स्क्रिन कुञ्जीपाटी</translation>
 <translation id="735745346212279324">VPN को जडान विच्छेद भयो</translation>
 <translation id="7360036564632145207">तपाईंले 'सहायक यन्त्रलाई डेटा प्रयोग गर्न रोक लगाउने सुविधा' का सेटिङ बदल्नुभयो भने ती यन्त्रहरूले अझ राम्रोसँग काम गर्न सक्छन्</translation>
+<translation id="736045644501761622">वालपेपर र शैली तय गर्नुहोस्</translation>
 <translation id="7371404428569700291">विन्डोको भिडियो रेकर्ड गर्नुहोस्</translation>
 <translation id="7377169924702866686">क्याप्स लक सक्रिय छ।</translation>
 <translation id="7377481913241237033">कोड प्रयोग गरी कनेक्ट गर्नुहोस्</translation>
@@ -1104,6 +1111,7 @@
 <translation id="7593891976182323525">सिफ्टको लागि खोज्नुहोस्</translation>
 <translation id="7600875258240007829">सबै सूचनाहरू हेर्नुहोस्</translation>
 <translation id="7607002721634913082">रोकिएको छ</translation>
+<translation id="7609951632080598826">पात्रोको भ्यू, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">क्यामेरा पुनः कनेक्ट गरियो।</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">नजिकैका डिभाइससँग सेयर गर्ने सुविधासम्बन्धी सेटिङ देखाउनुहोस्।</translation>
@@ -1229,6 +1237,7 @@
 <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> नामक विन्डो चयन गरियो</translation>
 <translation id="8351131234907093545">टिपोट सिर्जना गर्नुहोस्</translation>
 <translation id="8364673525741149932">सेल्फ पार्टी टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">सेभ गरिएको डेस्क, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">कर्सरलाई एक अक्षर अगाडि लैजानुहोस्</translation>
 <translation id="8371991222807690464">गेस्ट मोडमा भएका बेला सहायक यन्त्रले पूर्ण रूपमा काम नगर्न सक्छ</translation>
 <translation id="8374601332003098278">आंशिक स्क्रिन रेकर्ड गर्न इन्टर थिच्नुहोस्</translation>
@@ -1295,6 +1304,7 @@
 <translation id="8721053961083920564">भोल्युम टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">फुल स्क्रिन क्याप्चर</translation>
 <translation id="8734991477317290293">यसले तपाईंका किस्ट्रोकहरू चोर्न खोजिरहेको हुन सक्छ</translation>
+<translation id="8735678380411481005">किबोर्डको ब्याकलाइटको रङ</translation>
 <translation id="8735953464173050365">किबोर्डका सेटिङहरू देखाउनुहोस्। <ph name="KEYBOARD_NAME" /> चयन गरिएको छ</translation>
 <translation id="8755498163081687682">आफ्नो पहिचान पुष्टि गर्नुहोस्: <ph name="ORIGIN_NAME" /> तपाईंको पहिचान पुष्टि गर्न चाहन्छ</translation>
 <translation id="875593634123171288">VPN सेटिङहरू देखाउनुहोस्</translation>
@@ -1340,6 +1350,7 @@
 <translation id="9000771174482730261">भण्डारण व्यवस्थापन गर्नुहोस्</translation>
 <translation id="9017320285115481645">Family Link को अभिभावकको पहुँचसम्बन्धी कोड प्रविष्टि गर्नुहोस्।</translation>
 <translation id="9024331582947483881">फुल स्क्रिन</translation>
+<translation id="9029736946581028033">डिभाइस चाँडै नै पावर डाउन हुने छ</translation>
 <translation id="9030319654231318877">सूर्यास्त नहुँदासम्म अफ</translation>
 <translation id="9034924485347205037">Linux का फाइलहरू</translation>
 <translation id="9047624247355796468"><ph name="NETWORK_NAME" /> को सेटिङ खोल्नुहोस्</translation>
@@ -1369,6 +1380,7 @@
 <translation id="9168436347345867845">यो कार्य पछि गर्नुहोस्‌</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> सम्बन्धी १ परिणाम देखाउँदै</translation>
 <translation id="9179259655489829027">यस सुविधाले तपाईंलाई पासवर्ड प्रविष्ट नगरिकनै साइन इन भएका जुनसुकै प्रयोगकर्तामाथि द्रुत रूपमा पहुँच राख्न दिन्छ।आफूले विश्वास गर्ने खाताहरूमा मात्र यो सुविधाको प्रयोग गर्नुहोस्।</translation>
+<translation id="9180906851711123156">बन्द गर्न Ctrl+W थिच्नुहोस्</translation>
 <translation id="9183456764293710005">फुल स्क्रिन म्याग्निफायर</translation>
 <translation id="9193626018745640770">कुनै अज्ञात प्रापकमा cast गर्दै</translation>
 <translation id="9194617393863864469">अर्को प्रयोगकर्तालाई साइन इन गर्नुहोस् ...</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index a0ac95a8..03d1c608 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">Je ziet aanbevelingen zodat je verder kunt gaan waar je gebleven was. Tik en houd vast om aanbevelingen te verwijderen.</translation>
 <translation id="2792498699870441125">Alt+Zoeken</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Map openen</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Gedeeltelijke opname</translation>
 <translation id="2819276065543622893">Je wordt nu uitgelogd.</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index 8ba240a..da698b7 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Du ser anbefalinger, slik at du kan fortsette der du slapp. Trykk og hold for å fjerne anbefalinger.</translation>
 <translation id="2792498699870441125">Alt + Søk</translation>
 <translation id="2797741504905337289">Hyllegruppe</translation>
-<translation id="2803313416453193357">Åpne mappen</translation>
 <translation id="2805756323405976993">Apper</translation>
 <translation id="2814448776515246190">Delvis opptak</translation>
 <translation id="2819276065543622893">Du blir nå logget av.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">En app vil bruke mikrofonen</translation>
 <translation id="5078796286268621944">Feil personlig kode</translation>
 <translation id="5083553833479578423">Lås opp flere Assistent-funksjoner.</translation>
+<translation id="509790653408515442">Når du strømmer appene på telefonen din, vises de her</translation>
 <translation id="5107522548814527560">Nettet</translation>
 <translation id="5117590920725113268">Se neste måned</translation>
 <translation id="5136175204352732067">Et annet tastatur er koblet til</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Tilgjengelighetsinnstillinger</translation>
 <translation id="5245201184978705914">Kan ikke generere noen transkripsjon</translation>
 <translation id="5253783950165989294">Koblet til enheten <ph name="DEVICE_NAME" /> – <ph name="BATTERY_PERCENTAGE" /> % batteri</translation>
+<translation id="5258528442992323769">Ingen lagrede skrivebord</translation>
 <translation id="5260676007519551770">Skrivebord 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> ber om din oppmerksomhet.</translation>
 <translation id="5283198616748585639">Legg til 1 min</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Vis vinduer fra det gjeldende skrivebordet – alternativknappen er valgt</translation>
 <translation id="8517041960877371778">Det kan hende at din <ph name="DEVICE_TYPE" /> ikke lader når den er slått på.</translation>
 <translation id="8535393432370007982">Angre sortering etter farge</translation>
+<translation id="8542053257095774575">Ingen lagrede skrivebord eller maler</translation>
 <translation id="8546059259582788728">Sorteringen ble angret</translation>
 <translation id="8551588720239073785">Innstillinger for dato og klokkeslett</translation>
 <translation id="8553395910833293175">Allerede tilordnet til alle skrivebord.</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 88fa7c8..7176e6d 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">ଆପଣ ଯେଉଁଠାରେ ଛାଡ଼ିଥିଲେ ସେଠାରୁ ଜାରି ରଖିବା ପାଇଁ ସୁପାରିଶଗୁଡ଼ିକ ଦେଖିବେ। ଆପଣ ସୁପାରିଶଗୁଡ଼ିକୁ କାଢ଼ି ଦେବା ପାଇଁ ସ୍ପର୍ଶ କରି ଧରି ରଖିପାରିବେ।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">ସେଲ୍ଫ ପାର୍ଟି</translation>
-<translation id="2803313416453193357">ଫୋଲ୍ଡର ଖୋଲନ୍ତୁ</translation>
 <translation id="2805756323405976993">ଆପ୍ସ</translation>
 <translation id="2814448776515246190">ଆଂଶିକ କ୍ୟାପଚର୍</translation>
 <translation id="2819276065543622893">ବର୍ତ୍ତମାନ, ଆପଣଙ୍କୁ ସାଇନ୍‌ ଆଉଟ୍‌ କରିଦିଆଯିବ।</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">ଏକ ଆପ୍ ମାଇକ୍ରୋଫୋନ୍ ବ୍ୟବହାର କରିବାକୁ ଚାହେଁ</translation>
 <translation id="5078796286268621944">ଭୁଲ ପିନ୍</translation>
 <translation id="5083553833479578423">ଆହୁରି ଆସିଷ୍ଟାଣ୍ଟ ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକ ଅନ୍‌ଲକ୍‌ କରନ୍ତୁ</translation>
+<translation id="509790653408515442">ଆପଣ ଆପଣଙ୍କ ଫୋନର ଆପ୍ସକୁ ଷ୍ଟ୍ରିମ କଲେ, ସେଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ</translation>
 <translation id="5107522548814527560">ୱେବ</translation>
 <translation id="5117590920725113268">ପରବର୍ତ୍ତୀ ମାସ ଦେଖାନ୍ତୁ</translation>
 <translation id="5136175204352732067">ଅଲଗା କୀବୋର୍ଡ ସଂଯୁକ୍ତ ହୋ‍ଇଛି</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସ୍‌</translation>
 <translation id="5245201184978705914">ଟ୍ରାନ୍ସକ୍ରିପ୍ଟ ତିଆରି କରାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> ନାମକ ଏକ ଡିଭାଇସ୍ ସହ ସଂଯୋଗ କରାଯାଇଛି, ବ୍ୟାଟେରୀରେ <ph name="BATTERY_PERCENTAGE" />% ଚାର୍ଜ ଅଛି</translation>
+<translation id="5258528442992323769">କୌଣସି ସେଭ ହୋଇଥିବା ଡେସ୍କ ନାହିଁ</translation>
 <translation id="5260676007519551770">ଡେସ୍କ 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> ଆପଣଙ୍କୁ ଧ୍ୟାନ ଦେବା ପାଇଁ ଅନୁରୋଧ କରୁଛି।</translation>
 <translation id="5283198616748585639">1 ମିନିଟ୍ ଯୋଗ କରନ୍ତୁ</translation>
@@ -1259,6 +1260,7 @@
 <translation id="851458219935658693">ବର୍ତ୍ତମାନର ଡେସ୍କରୁ ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ, ରେଡିଓ ବଟନକୁ ଚୟନ କରାଯାଇଛି</translation>
 <translation id="8517041960877371778">ଯେତେବେଳେ ଏହା ଚାଲୁ ଅଛି, ସେତେବେଳେ ଆପଣଙ୍କର <ph name="DEVICE_TYPE" /> ଚାର୍ଜ ହୋ‍ଇନପାରେ।</translation>
 <translation id="8535393432370007982">ରଙ୍ଗ ଅନୁସାରେ ସର୍ଟ କରିବାକୁ ପୂର୍ବବତ୍ କରନ୍ତୁ</translation>
+<translation id="8542053257095774575">କୌଣସି ସେଭ ହୋଇଥିବା ଡେସ୍କ କିମ୍ବା ଟେମ୍ପଲେଟ ନାହିଁ</translation>
 <translation id="8546059259582788728">ସର୍ଟ କରିବାକୁ ପୂର୍ବବତ୍ କରିବା ବିଫଳ ହୋଇଛି</translation>
 <translation id="8551588720239073785">ତାରିଖ ଏବଂ ସମୟ ସେଟିଂସ୍</translation>
 <translation id="8553395910833293175">ସମସ୍ତ ଡେସ୍କକୁ ପୂର୍ବରୁ ଆସାଇନ୍ କରାଯାଇଛି।</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index 88252b8..7a6fef5 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">ਤੁਹਾਨੂੰ ਸਿਫ਼ਾਰਸ਼ਾਂ ਦਿਖਾਈ ਦੇਣਗੀਆਂ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉੱਥੋਂ ਜਾਰੀ ਰੱਖ ਸਕੋ ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ।  ਤੁਸੀਂ ਸਿਫ਼ਾਰਸ਼ਾਂ ਹਟਾਉਣ ਲਈ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖ ਸਕਦੇ ਹੋ।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">ਸ਼ੈਲਫ ਪਾਰਟੀ</translation>
-<translation id="2803313416453193357">ਫੋਲਡਰ ਖੋਲ੍ਹੋ</translation>
 <translation id="2805756323405976993">ਐਪਸ</translation>
 <translation id="2814448776515246190">ਅੰਸ਼ਕ ਕੈਪਚਰ</translation>
 <translation id="2819276065543622893">ਤੁਹਾਨੂੰ ਹੁਣ ਸਾਈਨ ਆਉਟ ਕੀਤਾ ਜਾਏਗਾ।</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 0969633c..b37a640 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Zobaczysz rekomendacje, dzięki którym możesz kontynuować od ostatniego miejsca. Aby je usunąć, naciśnij i przytrzymaj.</translation>
 <translation id="2792498699870441125">Alt+Szukaj</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Otwórz folder</translation>
 <translation id="2805756323405976993">Aplikacje</translation>
 <translation id="2814448776515246190">Przechwytywanie części ekranu</translation>
 <translation id="2819276065543622893">Zostaniesz teraz wylogowany.</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 802bb7e..f454420 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Serão mostradas recomendações para que você continue de onde parou. Se quiser que elas sejam removidas, toque na tela e a mantenha pressionada.</translation>
 <translation id="2792498699870441125">Alt + Pesquisar</translation>
 <translation id="2797741504905337289">Grupo de estantes</translation>
-<translation id="2803313416453193357">Abrir pasta</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">Você sairá agora.</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index 59286cd..f97adef3 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Verá recomendações para poder continuar onde parou. Pode tocar sem soltar para remover recomendações.</translation>
 <translation id="2792498699870441125">Alt + Pesquisar</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Abrir pasta</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2814448776515246190">Captura parcial</translation>
 <translation id="2819276065543622893">A sessão será terminada agora.</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 01cbdc6..b7c650a 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Vei vedea recomandări ca să poți continua de unde ai rămas. Poți să atingi lung ca să elimini recomandările.</translation>
 <translation id="2792498699870441125">Alt+Căutare</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Deschideți dosarul</translation>
 <translation id="2805756323405976993">Aplicații</translation>
 <translation id="2814448776515246190">Captură parțială</translation>
 <translation id="2819276065543622893">Veți fi deconectat(ă) acum.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">O aplicație solicită permisiunea de a folosi microfonul</translation>
 <translation id="5078796286268621944">Cod PIN incorect</translation>
 <translation id="5083553833479578423">Deblochează mai multe funcții ale Asistentului.</translation>
+<translation id="509790653408515442">Când redai în stream aplicații de pe telefon, ele vor apărea aici</translation>
 <translation id="5107522548814527560">Web</translation>
 <translation id="5117590920725113268">Afișează luna următoare</translation>
 <translation id="5136175204352732067">Altă tastatură conectată</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Setări de accesibilitate</translation>
 <translation id="5245201184978705914">Nu se poate genera transcrierea</translation>
 <translation id="5253783950165989294">S-a conectat la dispozitivul <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% baterie</translation>
+<translation id="5258528442992323769">Nu există desktopuri salvate</translation>
 <translation id="5260676007519551770">Desktop 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> are nevoie de atenție.</translation>
 <translation id="5283198616748585639">Adaugă 1 min.</translation>
@@ -1059,6 +1060,7 @@
 <translation id="7348093485538360975">Tastatură pe ecran</translation>
 <translation id="735745346212279324">Rețea VPN deconectată</translation>
 <translation id="7360036564632145207">Modificarea setării pentru protecția accesului la date pentru dispozitive periferice poate optimiza performanța</translation>
+<translation id="736045644501761622">Setează imaginea de fundal și stilul</translation>
 <translation id="7371404428569700291">Înregistrează fereastra</translation>
 <translation id="7377169924702866686">Tasta Caps Lock este activată.</translation>
 <translation id="7377481913241237033">Conectează-te cu un cod</translation>
@@ -1260,6 +1262,7 @@
 <translation id="851458219935658693">Se afișează ferestrele de pe desktopul actual, buton radio selectat</translation>
 <translation id="8517041960877371778">Este posibil ca <ph name="DEVICE_TYPE" /> să nu se încarce cât timp este pornit.</translation>
 <translation id="8535393432370007982">Anulează sortarea după culoare</translation>
+<translation id="8542053257095774575">Nu există desktopuri sau șabloane salvate</translation>
 <translation id="8546059259582788728">Sortarea a fost anulată</translation>
 <translation id="8551588720239073785">Setări de dată și oră</translation>
 <translation id="8553395910833293175">A fost deja atribuită tuturor desktopurilor.</translation>
@@ -1292,6 +1295,7 @@
 <translation id="8721053961083920564">Activează sau dezactivează volumul: <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Captură pe ecran complet</translation>
 <translation id="8734991477317290293">Aceasta ar putea încerca să înregistreze ce taste apeși</translation>
+<translation id="8735678380411481005">Culoarea retroiluminării tastaturii</translation>
 <translation id="8735953464173050365">Afișează setările pentru tastatură. Este selectată <ph name="KEYBOARD_NAME" /></translation>
 <translation id="8755498163081687682">Confirmă-ți identitatea: <ph name="ORIGIN_NAME" /> solicită să îți confirmi identitatea</translation>
 <translation id="875593634123171288">Afișează setările VPN</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 6a78a6e..118ee0f 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Следуйте рекомендациям, чтобы продолжить работу с того места, на котором вы остановились. Нажмите на них и удерживайте, чтобы удалить.</translation>
 <translation id="2792498699870441125">Alt + Search</translation>
 <translation id="2797741504905337289">Совместный просмотр панели запуска</translation>
-<translation id="2803313416453193357">Открыть папку.</translation>
 <translation id="2805756323405976993">Сервисы</translation>
 <translation id="2814448776515246190">Запись части экрана</translation>
 <translation id="2819276065543622893">Сеанс завершен.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Приложение запрашивает доступ к микрофону</translation>
 <translation id="5078796286268621944">Неверный PIN-код</translation>
 <translation id="5083553833479578423">Получите доступ к другим возможностям Ассистента.</translation>
+<translation id="509790653408515442">Приложения, которые вы транслируете с телефона, появляются здесь.</translation>
 <translation id="5107522548814527560">Интернет</translation>
 <translation id="5117590920725113268">Показать следующий месяц</translation>
 <translation id="5136175204352732067">Подключена другая клавиатура</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Настройки специальных возможностей</translation>
 <translation id="5245201184978705914">Не удается создать расшифровку.</translation>
 <translation id="5253783950165989294">Установлено подключение к устройству "<ph name="DEVICE_NAME" />", заряд батареи – <ph name="BATTERY_PERCENTAGE" /> %</translation>
+<translation id="5258528442992323769">Нет сохраненных рабочих столов.</translation>
 <translation id="5260676007519551770">Рабочий стол 4</translation>
 <translation id="5283099933536931082">Приложение "<ph name="APP_ITEM_TITLE" />" требует вашего внимания.</translation>
 <translation id="5283198616748585639">Добавить 1 мин.</translation>
@@ -1059,6 +1060,7 @@
 <translation id="7348093485538360975">Экранная клавиатура</translation>
 <translation id="735745346212279324">VPN-соединение прервано</translation>
 <translation id="7360036564632145207">Чтобы оптимизировать производительность, измените настройки доступа к данным для периферийных устройств.</translation>
+<translation id="736045644501761622">Выбрать обои и стиль</translation>
 <translation id="7371404428569700291">Запись контента в окне</translation>
 <translation id="7377169924702866686">Включен режим Caps Lock.</translation>
 <translation id="7377481913241237033">Подключиться с помощью кода</translation>
@@ -1260,6 +1262,7 @@
 <translation id="851458219935658693">Показ окон текущего рабочего стола. Выбран переключатель.</translation>
 <translation id="8517041960877371778">Не удается зарядить устройство <ph name="DEVICE_TYPE" />, пока оно включено.</translation>
 <translation id="8535393432370007982">Отменить упорядочивание по цвету</translation>
+<translation id="8542053257095774575">Нет сохраненных шаблонов или рабочих столов.</translation>
 <translation id="8546059259582788728">Действие "Сортировать" отменено</translation>
 <translation id="8551588720239073785">Настройки даты и времени</translation>
 <translation id="8553395910833293175">Уже доступно на всех рабочих столах.</translation>
@@ -1292,6 +1295,7 @@
 <translation id="8721053961083920564">Включить или выключить звук. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Запись всего экрана</translation>
 <translation id="8734991477317290293">Это может быть попыткой узнать, какие клавиши вы нажимаете.</translation>
+<translation id="8735678380411481005">Цвет подсветки клавиатуры</translation>
 <translation id="8735953464173050365">Показать настройки клавиатуры. Выбрана клавиатура "<ph name="KEYBOARD_NAME" />".</translation>
 <translation id="8755498163081687682"><ph name="ORIGIN_NAME" /> запрашивает подтверждение вашей личности</translation>
 <translation id="875593634123171288">Показать настройки VPN</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index c02ae7c..807a4b6 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">ඔබ නතර කළ තැනින් ඉදිරියට යාමට ඔබට නිර්දේශ පෙනෙනු ඇත. නිර්දේශ ඉවත් කිරීමට ඔබට ස්පර්ශ කර අල්ලා ගෙන සිටිය හැකිය.</translation>
 <translation id="2792498699870441125">Alt+සෙවීම</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">ෆෝල්ඩරය විවෘත කරන්න</translation>
 <translation id="2805756323405976993">යෙදුම්</translation>
 <translation id="2814448776515246190">අර්ධ ග්‍රහණය</translation>
 <translation id="2819276065543622893">ඔබව දැන් වරනු ඇත.</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index 19cc5e32..da241f4 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Zobrazia sa vám odporúčania, aby ste mohli pokračovať tam, kde ste prestali. Odstránite ich pridržaním.</translation>
 <translation id="2792498699870441125">Alt + Hľadať</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Otvoriť priečinok</translation>
 <translation id="2805756323405976993">Aplikácie</translation>
 <translation id="2814448776515246190">Čiastočná snímka</translation>
 <translation id="2819276065543622893">Teraz prebehne odhlásenie.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Určitá aplikácia chce používať mikrofón</translation>
 <translation id="5078796286268621944">Nesprávny kód PIN</translation>
 <translation id="5083553833479578423">Odblokujte ďalšie funkcie Asistenta.</translation>
+<translation id="509790653408515442">Tu sa zobrazia aplikácie streamované z telefónu</translation>
 <translation id="5107522548814527560">Internet</translation>
 <translation id="5117590920725113268">Zobraziť ďalší mesiac</translation>
 <translation id="5136175204352732067">Bola pripojená iná klávesnica</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Nastavenia zjednodušenia prístupu</translation>
 <translation id="5245201184978705914">Prepis sa nedá vygenerovať</translation>
 <translation id="5253783950165989294">Pripojené k zariadeniu <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" /> % batéria</translation>
+<translation id="5258528442992323769">Žiadne uložené plochy</translation>
 <translation id="5260676007519551770">4. plocha</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> vyžaduje vašu pozornosť.</translation>
 <translation id="5283198616748585639">Pridať 1 minútu</translation>
@@ -1059,6 +1060,7 @@
 <translation id="7348093485538360975">Klávesnica na obrazovke</translation>
 <translation id="735745346212279324">Sieť VPN je odpojená</translation>
 <translation id="7360036564632145207">Zmenou ochrany prístupu k údajom pre nastavenie periférií môžete optimalizovať výkonnosť</translation>
+<translation id="736045644501761622">Nastaviť tapety a štýl</translation>
 <translation id="7371404428569700291">Okno nahrávania</translation>
 <translation id="7377169924702866686">Kláves Caps Lock je zapnutý.</translation>
 <translation id="7377481913241237033">Pripojiť pomocou kódu</translation>
@@ -1260,6 +1262,7 @@
 <translation id="851458219935658693">Prepínač je prepnutý na možnosť zobrazenia okien z aktuálnej plochy</translation>
 <translation id="8517041960877371778">Vaše zariadenie <ph name="DEVICE_TYPE" /> sa nemusí nabíjať, keď je zapnuté.</translation>
 <translation id="8535393432370007982">Vrátiť späť poradie zoradenia podľa farby</translation>
+<translation id="8542053257095774575">Žiadne uložené plochy ani šablóny</translation>
 <translation id="8546059259582788728">Zoradenie sa podarilo vrátiť späť</translation>
 <translation id="8551588720239073785">Nastavenia dátumu a času</translation>
 <translation id="8553395910833293175">Už bolo pridelené všetkým plochám.</translation>
@@ -1292,6 +1295,7 @@
 <translation id="8721053961083920564">Prepínač zvuku. <ph name="STATE_TEXT" /></translation>
 <translation id="8724318433625452070">Záznam celej obrazovky</translation>
 <translation id="8734991477317290293">Je možné, že sa pokúša ukradnúť vaše stlačenia klávesov</translation>
+<translation id="8735678380411481005">Farba podsvietenia klávesnice</translation>
 <translation id="8735953464173050365">Zobraziť nastavenia klávesnice. Vybraná klávesnica: <ph name="KEYBOARD_NAME" /></translation>
 <translation id="8755498163081687682">Overte svoju totožnosť: <ph name="ORIGIN_NAME" /> chce potvrdiť, že ste to vy</translation>
 <translation id="875593634123171288">Zobraziť nastavenia VPN</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 7a9ef672..24070f4e 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Prikazana bodo priporočila, da boste lahko nadaljevali tam, kjer ste končali. Priporočila lahko odstranite tako, da se dotaknete in pridržite.</translation>
 <translation id="2792498699870441125">Alt + iskanje</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Odpri mapo</translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2814448776515246190">Delni zajem</translation>
 <translation id="2819276065543622893">Zdaj boste odjavljeni.</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 2fd07d4..cc27cf6 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Do të shohësh rekomandime, në mënyrë që të vazhdosh aty ku e ke lënë. Mund të prekësh dhe të mbash shtypur për të hequr rekomandimet.</translation>
 <translation id="2792498699870441125">Alt+Kërko</translation>
 <translation id="2797741504905337289">Grupi i rafteve</translation>
-<translation id="2803313416453193357">Hap dosjen</translation>
 <translation id="2805756323405976993">Aplikacionet</translation>
 <translation id="2814448776515246190">Regjistrim i pjesshëm</translation>
 <translation id="2819276065543622893">Do të dalësh nga llogaria tani.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">Një aplikacion kërkon të përdorë mikrofonin</translation>
 <translation id="5078796286268621944">Kod i pasaktë PIN</translation>
 <translation id="5083553833479578423">Shkyç më shumë funksione të "Asistentit".</translation>
+<translation id="509790653408515442">Kur transmeton aplikacionet e telefonit tënd, ato do të shfaqen këtu</translation>
 <translation id="5107522548814527560">Ueb</translation>
 <translation id="5117590920725113268">Trego muajin e ardhshëm</translation>
 <translation id="5136175204352732067">Është lidhur një tastierë tjetër</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Cilësimet e qasjes</translation>
 <translation id="5245201184978705914">Transkripti nuk mund të krijohet</translation>
 <translation id="5253783950165989294">U lidh me një pajisje me emrin "<ph name="DEVICE_NAME" />". Niveli i baterisë <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">Nuk ka asnjë tavolinë pune të ruajtur</translation>
 <translation id="5260676007519551770">Tavolina e punës 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> kërkon vëmendjen tënde.</translation>
 <translation id="5283198616748585639">Shto 1 minutë</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Shfaq dritaret nga tavolina aktuale e punës, butoni i radios i zgjedhur</translation>
 <translation id="8517041960877371778">Pajisja jote <ph name="DEVICE_TYPE" /> mund të mos ngarkohet kur është e ndezur.</translation>
 <translation id="8535393432370007982">Zhbëj mënyrën e renditjes sipas ngjyrës</translation>
+<translation id="8542053257095774575">Nuk ka asnjë tavolinë pune apo shabllon të ruajtur</translation>
 <translation id="8546059259582788728">Mënyra e renditjes u zhbë me sukses</translation>
 <translation id="8551588720239073785">Cilësimet e datës dhe orës</translation>
 <translation id="8553395910833293175">Është caktuar tashmë te të gjitha tavolinat e punës.</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index 42868c4..0028cb25 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Otvarano juče</translation>
 <translation id="2441427462554639370">Snimanje je prekinuto zbog izuzetno malo prostora</translation>
 <translation id="24452542372838207">Proširi obaveštenje</translation>
+<translation id="2449089818483227734">Nizak nivo baterije</translation>
 <translation id="2450205753526923158">Režim snimka ekrana</translation>
 <translation id="2456008742792828469">Kalendar, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Potvrdite rezoluciju</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">Videćete preporuke da biste mogli da nastavite tamo gde ste stali.  Možete da dodirnete i zadržite da biste uklonili preporuke.</translation>
 <translation id="2792498699870441125">Alt + taster za pretragu</translation>
 <translation id="2797741504905337289">Žurka na polici</translation>
-<translation id="2803313416453193357">Otvorite direktorijum</translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2814448776515246190">Delimično snimanje</translation>
 <translation id="2819276065543622893">Bićete odmah odjavljeni.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3445925074670675829">Uređaj sa USB priključkom tipa C</translation>
+<translation id="3455468639467374593">Šablon, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Još jedna tastatura je povezana sa ovim uređajem otkad ste se poslednji put prijavili. Uverite se da je u pitanju pouzdana tastatura pre nego što je koristite.</translation>
 <translation id="3465356146291925647">Upravlja administrator</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Polica je automatski sakrivena</translation>
+<translation id="3505066820268455558">Baterija se puni</translation>
 <translation id="3509391053705095206">Pronalaženje telefona nije uspelo. Proverite da li je Bluetooth na telefonu uključen.</translation>
 <translation id="3510164367642747937">Istakni kursor miša</translation>
 <translation id="3513798432020909783">Nalogom upravlja <ph name="MANAGER_EMAIL" /></translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Otvorite podešavanja Bluetooth-a da biste uparili uređaj</translation>
 <translation id="3638400994746983214">Uključuje/isključuje ekran za privatnost. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Ažurirajte isteklo</translation>
+<translation id="3659814201068740063">Preostalo je oko <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" />%).
+Priključite uređaj na napajanje.</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> Korisnik kojim se upravlja</translation>
 <translation id="36813544980941320">WiFi mreže će se deliti između vašeg telefona i uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Veb-sajtovi</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">Prethodna pesma</translation>
 <translation id="3969043077941541451">Isključi</translation>
 <translation id="397105322502079400">Izračunavanje...</translation>
+<translation id="397726367135689299">Punjenje baterije je možda nepouzdano.</translation>
 <translation id="3977512764614765090">Baterija je na <ph name="PERCENTAGE" />% i puni se.</translation>
 <translation id="3986082989454912832">Odgovori</translation>
 <translation id="3995138139523574647">Uređaj sa USB priključkom tipa C (desni zadnji port)</translation>
@@ -699,6 +704,7 @@
 <translation id="5071064518267176975">Aplikacija želi da koristi mikrofon</translation>
 <translation id="5078796286268621944">Netačan PIN</translation>
 <translation id="5083553833479578423">Otključajte još funkcija Pomoćnika.</translation>
+<translation id="509790653408515442">Kada strimujete aplikacije sa telefona, one se prikazuju ovde</translation>
 <translation id="5107522548814527560">Veb</translation>
 <translation id="5117590920725113268">Prikaži sledeći mesec</translation>
 <translation id="5136175204352732067">Neka druga tastatura je povezana</translation>
@@ -721,6 +727,7 @@
 <translation id="523505283826916779">Podešavanja pristupačnosti</translation>
 <translation id="5245201184978705914">Generisanje transkripta nije uspelo</translation>
 <translation id="5253783950165989294">Povezani ste sa uređajem pod nazivom <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% baterije</translation>
+<translation id="5258528442992323769">Nema sačuvanih radnih površina</translation>
 <translation id="5260676007519551770">Radna površina 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> zahteva vašu pažnju.</translation>
 <translation id="5283198616748585639">Dodaj 1 min</translation>
@@ -1037,6 +1044,7 @@
 <translation id="7130207228079676353">NAJVEROVATNIJE</translation>
 <translation id="7131634465328662194">Odjavićemo vas automatski.</translation>
 <translation id="7143207342074048698">Povezivanje</translation>
+<translation id="7144942256906679589">Status baterije</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Vraćanje na staru rezoluciju za <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Osveži</translation>
@@ -1102,6 +1110,7 @@
 <translation id="7593891976182323525">Taster za pretragu ili Shift</translation>
 <translation id="7600875258240007829">Pogledajte sva obaveštenja</translation>
 <translation id="7607002721634913082">Pauzirano</translation>
+<translation id="7609951632080598826">Prikaz kalendara, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Kamera je ponovo povezana.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Prikažite podešavanja Deljenja u blizini.</translation>
@@ -1227,6 +1236,7 @@
 <translation id="8345019317483336363">Prozor <ph name="WINDOW_TITLE" /> je izabran</translation>
 <translation id="8351131234907093545">Napravite belešku</translation>
 <translation id="8364673525741149932">Uključite/isključite Žurku na polici. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Sačuvana radna površina, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Slovo unapred</translation>
 <translation id="8371991222807690464">Učinak perifernog uređaja je možda ograničen u režimu gosta</translation>
 <translation id="8374601332003098278">Pritisnite Enter da biste snimili deo ekrana</translation>
@@ -1260,6 +1270,7 @@
 <translation id="851458219935658693">Prikazujte prozore sa aktuelne radne površine, dugme za izbor je izabrano</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> se možda neće puniti dok je uključen.</translation>
 <translation id="8535393432370007982">Opozovite redosled sortiranja prema boji</translation>
+<translation id="8542053257095774575">Nema sačuvanih radnih površina niti šablona</translation>
 <translation id="8546059259582788728">Opozvali ste sortiranje</translation>
 <translation id="8551588720239073785">Podešavanja datuma i vremena</translation>
 <translation id="8553395910833293175">Već je dodeljeno svim radnim površinama.</translation>
@@ -1337,6 +1348,7 @@
 <translation id="9000771174482730261">UPRAVLJAJTE MEMORIJSKIM PROSTOROM</translation>
 <translation id="9017320285115481645">Unesite pristupni kôd roditelja za Family Link.</translation>
 <translation id="9024331582947483881">ceo ekran</translation>
+<translation id="9029736946581028033">Uređaj će se uskoro isključiti</translation>
 <translation id="9030319654231318877">Isključeno do sumraka</translation>
 <translation id="9034924485347205037">Linux datoteke</translation>
 <translation id="9047624247355796468">Otvorite podešavanja za <ph name="NETWORK_NAME" /></translation>
@@ -1366,6 +1378,7 @@
 <translation id="9168436347345867845">Uradiću to kasnije</translation>
 <translation id="9178475906033259337">Prikazuje se jedan rezultat za: <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ova funkcija vam omogućava da brzo pristupite bilo kom prijavljenom korisniku bez lozinke. Koristite ovu funkciju samo sa nalozima u koje imate poverenja.</translation>
+<translation id="9180906851711123156">Pritisnite Ctrl+W da biste zatvorili.</translation>
 <translation id="9183456764293710005">Lupa za ceo ekran</translation>
 <translation id="9193626018745640770">Prebacuje se na nepoznati prijemnik</translation>
 <translation id="9194617393863864469">Prijavite još jednog korisnika...</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index 3dbdf5b..6951a76 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">Отварано јуче</translation>
 <translation id="2441427462554639370">Снимање је прекинуто због изузетно мало простора</translation>
 <translation id="24452542372838207">Прошири обавештење</translation>
+<translation id="2449089818483227734">Низак ниво батерије</translation>
 <translation id="2450205753526923158">Режим снимка екрана</translation>
 <translation id="2456008742792828469">Календар, <ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">Потврдите резолуцију</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">Видећете препоруке да бисте могли да наставите тамо где сте стали.  Можете да додирнете и задржите да бисте уклонили препоруке.</translation>
 <translation id="2792498699870441125">Alt + тастер за претрагу</translation>
 <translation id="2797741504905337289">Журка на полици</translation>
-<translation id="2803313416453193357">Отворите директоријум</translation>
 <translation id="2805756323405976993">Апликације</translation>
 <translation id="2814448776515246190">Делимично снимање</translation>
 <translation id="2819276065543622893">Бићете одмах одјављени.</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин</translation>
 <translation id="3445925074670675829">Уређај са USB прикључком типа C</translation>
+<translation id="3455468639467374593">Шаблон, <ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">Још једна тастатура је повезана са овим уређајем откад сте се последњи пут пријавили. Уверите се да је у питању поуздана тастатура пре него што је користите.</translation>
 <translation id="3465356146291925647">Управља администратор</translation>
 <translation id="3477079411857374384">Control-Shift-Space</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, јачина сигнала <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">Полица је аутоматски сакривена</translation>
+<translation id="3505066820268455558">Батерија се пуни</translation>
 <translation id="3509391053705095206">Проналажење телефона није успело. Проверите да ли је Bluetooth на телефону укључен.</translation>
 <translation id="3510164367642747937">Истакни курсор миша</translation>
 <translation id="3513798432020909783">Налогом управља <ph name="MANAGER_EMAIL" /></translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">Отворите подешавања Bluetooth-а да бисте упарили уређај</translation>
 <translation id="3638400994746983214">Укључује/искључује екран за приватност. <ph name="STATE_TEXT" />.</translation>
 <translation id="3649505501900178324">Ажурирајте истекло</translation>
+<translation id="3659814201068740063">Преостало је око <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" />%).
+Прикључите уређај на напајање.</translation>
 <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> Корисник којим се управља</translation>
 <translation id="36813544980941320">WiFi мреже ће се делити између вашег телефона и уређаја <ph name="DEVICE_NAME" /></translation>
 <translation id="3694122362646626770">Веб-сајтови</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">Претходна песма</translation>
 <translation id="3969043077941541451">Искључи</translation>
 <translation id="397105322502079400">Израчунавање...</translation>
+<translation id="397726367135689299">Пуњење батерије је можда непоуздано.</translation>
 <translation id="3977512764614765090">Батерија је на <ph name="PERCENTAGE" />% и пуни се.</translation>
 <translation id="3986082989454912832">Одговори</translation>
 <translation id="3995138139523574647">Уређај са USB прикључком типа C (десни задњи порт)</translation>
@@ -699,6 +704,7 @@
 <translation id="5071064518267176975">Апликација жели да користи микрофон</translation>
 <translation id="5078796286268621944">Нетачан PIN</translation>
 <translation id="5083553833479578423">Откључајте још функција Помоћника.</translation>
+<translation id="509790653408515442">Када стримујете апликације са телефона, оне се приказују овде</translation>
 <translation id="5107522548814527560">Веб</translation>
 <translation id="5117590920725113268">Прикажи следећи месец</translation>
 <translation id="5136175204352732067">Нека друга тастатура је повезана</translation>
@@ -721,6 +727,7 @@
 <translation id="523505283826916779">Подешавања приступачности</translation>
 <translation id="5245201184978705914">Генерисање транскрипта није успело</translation>
 <translation id="5253783950165989294">Повезани сте са уређајем под називом <ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% батерије</translation>
+<translation id="5258528442992323769">Нема сачуваних радних површина</translation>
 <translation id="5260676007519551770">Радна површина 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> захтева вашу пажњу.</translation>
 <translation id="5283198616748585639">Додај 1 мин</translation>
@@ -1037,6 +1044,7 @@
 <translation id="7130207228079676353">НАЈВЕРОВАТНИЈЕ</translation>
 <translation id="7131634465328662194">Одјавићемо вас аутоматски.</translation>
 <translation id="7143207342074048698">Повезивање</translation>
+<translation id="7144942256906679589">Статус батерије</translation>
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Враћање на стару резолуцију за <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7180611975245234373">Освежи</translation>
@@ -1102,6 +1110,7 @@
 <translation id="7593891976182323525">Тастер за претрагу или Shift</translation>
 <translation id="7600875258240007829">Погледајте сва обавештења</translation>
 <translation id="7607002721634913082">Паузирано</translation>
+<translation id="7609951632080598826">Приказ календара, <ph name="DATE" />, <ph name="TIME" /></translation>
 <translation id="7611213136657090146">Камера је поново повезана.</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
 <translation id="7633755430369750696">Прикажите подешавања Дељења у близини.</translation>
@@ -1227,6 +1236,7 @@
 <translation id="8345019317483336363">Прозор <ph name="WINDOW_TITLE" /> је изабран</translation>
 <translation id="8351131234907093545">Направите белешку</translation>
 <translation id="8364673525741149932">Укључите/искључите Журку на полици. <ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">Сачувана радна површина, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">Слово унапред</translation>
 <translation id="8371991222807690464">Учинак периферног уређаја је можда ограничен у режиму госта</translation>
 <translation id="8374601332003098278">Притисните Enter да бисте снимили део екрана</translation>
@@ -1260,6 +1270,7 @@
 <translation id="851458219935658693">Приказујте прозоре са актуелне радне површине, дугме за избор је изабрано</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> се можда неће пунити док је укључен.</translation>
 <translation id="8535393432370007982">Опозовите редослед сортирања према боји</translation>
+<translation id="8542053257095774575">Нема сачуваних радних површина нити шаблона</translation>
 <translation id="8546059259582788728">Опозвали сте сортирање</translation>
 <translation id="8551588720239073785">Подешавања датума и времена</translation>
 <translation id="8553395910833293175">Већ је додељено свим радним површинама.</translation>
@@ -1337,6 +1348,7 @@
 <translation id="9000771174482730261">УПРАВЉАЈТЕ МЕМОРИЈСКИМ ПРОСТОРОМ</translation>
 <translation id="9017320285115481645">Унесите приступни кôд родитеља за Family Link.</translation>
 <translation id="9024331582947483881">цео екран</translation>
+<translation id="9029736946581028033">Уређај ће се ускоро искључити</translation>
 <translation id="9030319654231318877">Искључено до сумрака</translation>
 <translation id="9034924485347205037">Linux датотеке</translation>
 <translation id="9047624247355796468">Отворите подешавања за <ph name="NETWORK_NAME" /></translation>
@@ -1366,6 +1378,7 @@
 <translation id="9168436347345867845">Урадићу то касније</translation>
 <translation id="9178475906033259337">Приказује се један резултат за: <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ова функција вам омогућава да брзо приступите било ком пријављеном кориснику без лозинке. Користите ову функцију само са налозима у које имате поверења.</translation>
+<translation id="9180906851711123156">Притисните Ctrl+W да бисте затворили.</translation>
 <translation id="9183456764293710005">Лупа за цео екран</translation>
 <translation id="9193626018745640770">Пребацује се на непознати пријемник</translation>
 <translation id="9194617393863864469">Пријавите још једног корисника...</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index d7ac10c..8b56d86 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Rekommendationer visas så att du kan fortsätta där du slutade. Du kan ta bort rekommendationer genom att trycka länge.</translation>
 <translation id="2792498699870441125">Alt + Sök</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Öppna mappen</translation>
 <translation id="2805756323405976993">Appar</translation>
 <translation id="2814448776515246190">Skärmbild/skärminspelning av en del av skärmen</translation>
 <translation id="2819276065543622893">Du loggas nu ut.</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 9155e8b..4209f57 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Utaona mapendekezo ili uweze kuendelea ulipoachia. Unaweza kugusa na ushikilie ili kuondoa mapendekezo.</translation>
 <translation id="2792498699870441125">Alt + Utafutaji</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Fungua folda</translation>
 <translation id="2805756323405976993">Programu</translation>
 <translation id="2814448776515246190">Kupiga picha ya sehemu ya skrini</translation>
 <translation id="2819276065543622893">Utaondolewa kwenye akaunti sasa hivi.</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index fae129d..585fc693 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">நீங்கள் விட்ட இடத்தில் இருந்து தொடர்வதற்கு உதவும் வகையில் பரிந்துரைகள் காட்டப்படும். தொட்டுப் பிடிப்பதன் மூலம் அவற்றை அகற்றலாம்.</translation>
 <translation id="2792498699870441125">Alt+தேடல்</translation>
 <translation id="2797741504905337289">ஷெல்ஃப் பார்ட்டி</translation>
-<translation id="2803313416453193357">ஃபோல்டரைத் திற</translation>
 <translation id="2805756323405976993">ஆப்ஸ்</translation>
 <translation id="2814448776515246190">பகுதியளவு படமெடுக்கும்</translation>
 <translation id="2819276065543622893">இப்போது வெளியேற்றப்படுவீர்கள்.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">மைக்ரோஃபோனை ஓர் ஆப்ஸ் பயன்படுத்த விரும்புகிறது</translation>
 <translation id="5078796286268621944">தவறான PIN</translation>
 <translation id="5083553833479578423">மேலும் பல அசிஸ்டண்ட் அம்சங்களைப் பெறுக.</translation>
+<translation id="509790653408515442">நீங்கள் ஸ்ட்ரீம் செய்யும் மொபைல் ஆப்ஸ் இங்கே காட்டப்படும்</translation>
 <translation id="5107522548814527560">இணையம்</translation>
 <translation id="5117590920725113268">அடுத்த மாதத்தைக் காட்டு</translation>
 <translation id="5136175204352732067">வேறொரு கீபோர்டு இணைக்கப்பட்டது</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">அணுகல்தன்மை அமைப்புகள்</translation>
 <translation id="5245201184978705914">டிரான்ஸ்கிரிப்ட்டை உருவாக்க முடியவில்லை</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> என்ற சாதனத்துடன் இணைக்கப்பட்டுள்ளது. பேட்டரி: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">சேமிக்கப்பட்ட டெஸ்க்குகள் எதுவுமில்லை</translation>
 <translation id="5260676007519551770">மேசை 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> ஆப்ஸில் புதிய அறிவிப்புகள் உள்ளன.</translation>
 <translation id="5283198616748585639">1 நிமிடத்தைச் சேர்</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">தற்போதைய டெஸ்கில் உள்ள சாளரங்களைக் காட்டும், ரேடியோ பட்டன் தேர்ந்தெடுக்கப்பட்டது</translation>
 <translation id="8517041960877371778">இயக்கப்பட்டிருக்கும் போது உங்கள் <ph name="DEVICE_TYPE" /> இல் சார்ஜ் ஏறாது.</translation>
 <translation id="8535393432370007982">வண்ணத்தின்படி வரிசைப்படுத்தியதைச் செயல்தவிர்க்கும்</translation>
+<translation id="8542053257095774575">சேமிக்கப்பட்ட டெஸ்க்குகளோ டெம்ப்ளேட்டுகளோ எதுவுமில்லை</translation>
 <translation id="8546059259582788728">வரிசைப்படுத்துதல் செயல்தவிர்க்கப்பட்டது</translation>
 <translation id="8551588720239073785">தேதி &amp; நேர அமைப்புகள்</translation>
 <translation id="8553395910833293175">எல்லா டெஸ்க்குகளுக்கும் ஏற்கெனவே ஒதுக்கப்பட்டுள்ளது.</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 14a42fbf..0411bb00 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">మీకు సిఫార్సులు కనిపిస్తాయి, కాబట్టి మీరు ఆపివేసిన చోటు నుండే కొనసాగించవచ్చు.  మీరు తాకి, నొక్కి ఉంచి, సిఫార్సులను తీసివేయవచ్చు.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">షెల్ఫ్ పార్టీ మోడ్</translation>
-<translation id="2803313416453193357">ఫోల్డర్‌ను తెరవండి</translation>
 <translation id="2805756323405976993">యాప్స్</translation>
 <translation id="2814448776515246190">పాక్షికంగా క్యాప్చర్ చేయండి</translation>
 <translation id="2819276065543622893">మీరు ఇప్పుడు సైన్ అవుట్ చేయబడతారు.</translation>
@@ -700,6 +699,7 @@
 <translation id="5071064518267176975">యాప్ మైక్రోఫోన్‌ను ఉపయోగించాలనుకుంటోంది</translation>
 <translation id="5078796286268621944"> సరి కానటువంటి PIN</translation>
 <translation id="5083553833479578423">మరిన్ని Assistant ఫీచర్‌లను అన్‌లాక్ చేయండి.</translation>
+<translation id="509790653408515442">మీరు మీ ఫోన్ యాప్‌లను స్ట్రీమ్ చేసినప్పుడు, అవి ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="5107522548814527560">వెబ్</translation>
 <translation id="5117590920725113268">తరువాత నెలను చూపుతుంది</translation>
 <translation id="5136175204352732067">వేరే కీబోర్డ్ కనెక్ట్ చేయబడింది</translation>
@@ -722,6 +722,7 @@
 <translation id="523505283826916779">యాక్సెస్‌ సెట్టింగ్‌లు</translation>
 <translation id="5245201184978705914">టైప్ చేసిన మాటల ఫైల్‌‌ను జెనరేట్ చేయడం సాధ్యపడదు</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> అనే పేరుతో ఉన్న పరికరానికి కనెక్ట్ చేయబడింది, బ్యాటరీ<ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="5258528442992323769">సేవ్ చేసిన డెస్క్‌లు లేవు</translation>
 <translation id="5260676007519551770">డెస్క్ 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" />, మీ అటెన్షన్ కోసం రిక్వెస్ట్ చేస్తోంది.</translation>
 <translation id="5283198616748585639">1 నిమి జోడించు</translation>
@@ -1261,6 +1262,7 @@
 <translation id="851458219935658693">ప్రస్తుత డెస్క్ నుండి విండోలను చూపండి, అనే రేడియో బటన్ ఎంచుకోబడింది</translation>
 <translation id="8517041960877371778">మీ <ph name="DEVICE_TYPE" /> ఆన్‌లో ఉన్నప్పుడు ఛార్జ్ కాకపోవచ్చు.</translation>
 <translation id="8535393432370007982">రంగు ఆధారంగా క్రమపద్ధతిలో అమర్చిన దానిని రద్దు చేశారు</translation>
+<translation id="8542053257095774575">సేవ్ చేసిన డెస్క్‌లు లేదా టెంప్లేట్‌లు లేవు</translation>
 <translation id="8546059259582788728">క్రమపద్ధతిలో అమర్చిన దానిని విజయవంతంగా రద్దు చేశారు</translation>
 <translation id="8551588720239073785">తేదీ, సమయం సెట్టింగ్‌లు</translation>
 <translation id="8553395910833293175">ఇప్పటికే అన్ని డెస్క్‌లకు కేటాయింపు జరిగిపోయింది.</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 66b868e..2b94683 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">คุณจะเห็นคำแนะนำเพื่อให้ดำเนินการต่อจากจุดที่คุณค้างไว้ได้ โดยสามารถแตะค้างไว้หากต้องการนำคำแนะนำออก</translation>
 <translation id="2792498699870441125">Alt+ค้นหา</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">เปิดโฟลเดอร์</translation>
 <translation id="2805756323405976993">แอป</translation>
 <translation id="2814448776515246190">จับภาพบางส่วน</translation>
 <translation id="2819276065543622893">คุณจะออกจากระบบในตอนนี้</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 0b217a2..39041589 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Kaldığınız yerden devam edebilmeniz için öneriler gösterilir. Dokunup basılı tutarak önerileri kaldırabilirsiniz.</translation>
 <translation id="2792498699870441125">Alt+Arama</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Klasörü aç</translation>
 <translation id="2805756323405976993">Uygulamalar</translation>
 <translation id="2814448776515246190">Kısmi ekran görüntüsü alma</translation>
 <translation id="2819276065543622893">Şimdi çıkış yapacaksınız.</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 21e437a..b96970a3 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Ви побачите рекомендації, тож зможете продовжити з місця зупинки. Натисність і втримуйте, щоб видалити їх.</translation>
 <translation id="2792498699870441125">Alt+клавіша пошуку</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Відкрити папку</translation>
 <translation id="2805756323405976993">Додатки</translation>
 <translation id="2814448776515246190">Зйомка частини екрана</translation>
 <translation id="2819276065543622893">Зараз ви вийдете.</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index a1f4531a..d2b846d 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">آپ کو تجاویز نظر آئیں گی تاکہ آپ نے جہاں چھوڑا تھا وہاں سے جاری رکھ سکیں۔ آپ تجاویز کو ہٹانے کے لیے  ٹچ کر کے دبائے رکھ سکتے ہیں۔</translation>
 <translation id="2792498699870441125">‏Alt+تلاش</translation>
 <translation id="2797741504905337289">شیلف پارٹی</translation>
-<translation id="2803313416453193357">فولڈر کھولیں</translation>
 <translation id="2805756323405976993">اطلاقات</translation>
 <translation id="2814448776515246190">جزوی کیپچر</translation>
 <translation id="2819276065543622893">آپ اب سائن آؤٹ ہو جائیں گے۔</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">ایک ایپ مائیکروفون کا استعمال کرنا چاہتی ہے</translation>
 <translation id="5078796286268621944">‏غلط PIN</translation>
 <translation id="5083553833479578423">اسسٹنٹ کی مزید خصوصیات کو غیر مقفل کریں۔</translation>
+<translation id="509790653408515442">جب آپ اپنے فون کی ایپس کی سلسلہ بندی کریں گے تو وہ یہاں ظاہر ہوں گی</translation>
 <translation id="5107522548814527560">ویب</translation>
 <translation id="5117590920725113268">اگلا مہینہ دکھائیں</translation>
 <translation id="5136175204352732067">مختلف کی بورڈ منسلک کر دیا گیا</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">ایکسیسبیلٹی کی ترتیبات</translation>
 <translation id="5245201184978705914">ٹرانسکرپٹ کو تیار نہیں کیا جا سکتا</translation>
 <translation id="5253783950165989294"><ph name="DEVICE_NAME" /> نام والے آلے سے منسلک، <ph name="BATTERY_PERCENTAGE" /> فیصد بیٹری ہے</translation>
+<translation id="5258528442992323769">محفوظ کردہ کوئی ڈیسک نہیں ہے</translation>
 <translation id="5260676007519551770">ڈیسک 4</translation>
 <translation id="5283099933536931082"><ph name="APP_ITEM_TITLE" /> کو آپ کی توجہ درکار ہے۔</translation>
 <translation id="5283198616748585639">1 منٹ شامل کریں</translation>
@@ -1259,6 +1260,7 @@
 <translation id="851458219935658693">موجودہ ڈیسک سے ونڈوز دکھائیں، ریڈیو بٹن کا انتخاب کیا گیا</translation>
 <translation id="8517041960877371778">ہو سکتا ہے کہ آپ کا <ph name="DEVICE_TYPE" /> آن ہونے کی صورت میں چارج نہ ہو۔</translation>
 <translation id="8535393432370007982">رنگ کے لحاظ سے ترتیب کو کالعدم کریں</translation>
+<translation id="8542053257095774575">محفوظ کردہ کوئی ڈیسک یا تمثیل نہیں ہے</translation>
 <translation id="8546059259582788728">ترتیب کو کالعدم کرنا کامیاب</translation>
 <translation id="8551588720239073785">تاریخ اور وقت کی ترتیبات</translation>
 <translation id="8553395910833293175">پہلے ہی تمام ڈیسکس کو تفویض کر دیا گیا۔</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 941e0ce..4347bb1 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Siz uchun takliflar kelgan joyidan davom etadi. Takliflarni bosib turib olib tashlash mumkin.</translation>
 <translation id="2792498699870441125">Alt + Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Jildni ochish</translation>
 <translation id="2805756323405976993">Ilovalar</translation>
 <translation id="2814448776515246190">Qisman tasvirga olish</translation>
 <translation id="2819276065543622893">Seans yakunlandi.</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 7c42925..0e5ddd4 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Bạn sẽ thấy các đề xuất để có thể tiếp tục từ nơi mình chưa xong. Bạn có thể chạm và giữ để xoá đề xuất.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">Mở thư mục</translation>
 <translation id="2805756323405976993">Ứng dụng</translation>
 <translation id="2814448776515246190">Chụp một phần màn hình</translation>
 <translation id="2819276065543622893">Bạn sẽ bị đăng xuất bây giờ.</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 1034e16..9fc63eb 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">系统会显示建议项目,以便您继续使用上次打开的内容。您可以通过轻触并按住建议项目将其移除。</translation>
 <translation id="2792498699870441125">Alt + 搜索键</translation>
 <translation id="2797741504905337289">Shelf Party 模式</translation>
-<translation id="2803313416453193357">打开文件夹</translation>
 <translation id="2805756323405976993">应用</translation>
 <translation id="2814448776515246190">截取/录制局部屏幕</translation>
 <translation id="2819276065543622893">您将立即退出。</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index b53e7ba5..afed082 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -252,6 +252,7 @@
 <translation id="243878895369688216">昨天開啟過</translation>
 <translation id="2441427462554639370">儲存空間嚴重不足,因此已停止錄影</translation>
 <translation id="24452542372838207">展開通知</translation>
+<translation id="2449089818483227734">低電量</translation>
 <translation id="2450205753526923158">螢幕截圖模式</translation>
 <translation id="2456008742792828469">日曆,<ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="2473177541599297363">確認解像度</translation>
@@ -301,7 +302,6 @@
 <translation id="2791421900609674576">系統會顯示建議,讓您繼續使用上次開啟的內容。只要輕觸並按住建議即可移除。</translation>
 <translation id="2792498699870441125">Alt + 搜尋鍵</translation>
 <translation id="2797741504905337289">捷徑列群組</translation>
-<translation id="2803313416453193357">開啟資料夾</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2814448776515246190">局部擷取</translation>
 <translation id="2819276065543622893">現在即將登出。</translation>
@@ -413,11 +413,13 @@
 <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> 分鐘</translation>
 <translation id="3445925074670675829">USB-C 裝置</translation>
+<translation id="3455468639467374593">範本,<ph name="TEMPLATE_NAME" /></translation>
 <translation id="3465223694362104965">自您上次登入以來,有另一個鍵盤連接到此裝置。請在使用前確定您信任此鍵盤。</translation>
 <translation id="3465356146291925647">由管理員管理</translation>
 <translation id="3477079411857374384">Control + Shift + 空格鍵</translation>
 <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />,<ph name="CONNECTION_STATUS" />,訊號強度係 <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="348799646910989694">自動隱藏捷徑列</translation>
+<translation id="3505066820268455558">電池充電中</translation>
 <translation id="3509391053705095206">找不到手機。請確保手機的藍牙功能已開啟。</translation>
 <translation id="3510164367642747937">突顯滑鼠遊標</translation>
 <translation id="3513798432020909783">帳戶由 <ph name="MANAGER_EMAIL" /> 管理</translation>
@@ -458,6 +460,8 @@
 <translation id="3633097874324966332">開啟「藍牙設定」以配對裝置</translation>
 <translation id="3638400994746983214">切換私隱保護畫面。<ph name="STATE_TEXT" />。</translation>
 <translation id="3649505501900178324">更新已逾期</translation>
+<translation id="3659814201068740063">約餘下 <ph name="TIME_LEFT" /> (<ph name="PERCENTAGE" />%)。
+請將裝置接上電源。</translation>
 <translation id="366222428570480733">受管理嘅使用者:<ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="36813544980941320">您的手機和 <ph name="DEVICE_NAME" /> 將共用 Wi-Fi 網絡</translation>
 <translation id="3694122362646626770">網站</translation>
@@ -512,6 +516,7 @@
 <translation id="3962859241508114581">上一首曲目</translation>
 <translation id="3969043077941541451">關閉</translation>
 <translation id="397105322502079400">計算中…</translation>
+<translation id="397726367135689299">電池充電可能不可靠。</translation>
 <translation id="3977512764614765090">電量有 <ph name="PERCENTAGE" />%,宜家差緊電。</translation>
 <translation id="3986082989454912832">接聽</translation>
 <translation id="3995138139523574647">USB-C 裝置 (右側後方連接埠)</translation>
@@ -1037,6 +1042,7 @@
 <translation id="7130207228079676353">最常用到的應用程式</translation>
 <translation id="7131634465328662194">您將會自動登出。</translation>
 <translation id="7143207342074048698">正在連接</translation>
+<translation id="7144942256906679589">電池狀態</translation>
 <translation id="7165278925115064263">Alt + Shift + K 鍵</translation>
 <translation id="7168224885072002358">系統將在 <ph name="TIMEOUT_SECONDS" /> 秒後還原成原來的解像度</translation>
 <translation id="7180611975245234373">重新整理</translation>
@@ -1102,6 +1108,7 @@
 <translation id="7593891976182323525">搜尋鍵或 Shift 鍵</translation>
 <translation id="7600875258240007829">查看所有通知</translation>
 <translation id="7607002721634913082">已暫停</translation>
+<translation id="7609951632080598826">日曆檢視,<ph name="DATE" />,<ph name="TIME" /></translation>
 <translation id="7611213136657090146">攝錄機已經重新連線。</translation>
 <translation id="7624117708979618027">華氏 <ph name="TEMPERATURE_F" />°</translation>
 <translation id="7633755430369750696">顯示「咫尺共享」設定。</translation>
@@ -1227,6 +1234,7 @@
 <translation id="8345019317483336363">揀咗「<ph name="WINDOW_TITLE" />」視窗</translation>
 <translation id="8351131234907093545">建立筆記</translation>
 <translation id="8364673525741149932">切換「捷徑列群組」。<ph name="STATE_TEXT" /></translation>
+<translation id="8369166482916924789">儲存咗嘅桌面,<ph name="SAVE_AND_RECALL_DESK_NAME" /></translation>
 <translation id="8371779926711439835">往前一個字母</translation>
 <translation id="8371991222807690464">在訪客模式下,周邊裝置效能可能受到限制</translation>
 <translation id="8374601332003098278">㩒 Enter 掣就可以錄部分螢幕畫面</translation>
@@ -1338,6 +1346,7 @@
 <translation id="9000771174482730261">管理儲存空間</translation>
 <translation id="9017320285115481645">請輸入 Family Link 家長存取碼。</translation>
 <translation id="9024331582947483881">全螢幕</translation>
+<translation id="9029736946581028033">裝置即將關閉</translation>
 <translation id="9030319654231318877">關閉,直到日落</translation>
 <translation id="9034924485347205037">Linux 檔案</translation>
 <translation id="9047624247355796468">打開<ph name="NETWORK_NAME" />設定</translation>
@@ -1367,6 +1376,7 @@
 <translation id="9168436347345867845">稍後再說</translation>
 <translation id="9178475906033259337">顯示緊 1 個同「<ph name="QUERY" />」有關嘅結果</translation>
 <translation id="9179259655489829027">這項功能讓您可快速登入任何已登入的使用者帳戶,無需使用密碼。建議您只讓信任的帳戶使用此功能。</translation>
+<translation id="9180906851711123156">㩒一下 Ctrl+W 就可以閂咗佢</translation>
 <translation id="9183456764293710005">全螢幕放大鏡</translation>
 <translation id="9193626018745640770">正在投放到不明接收器</translation>
 <translation id="9194617393863864469">登入其他使用者…</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index c415d13..9fb5727 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -298,7 +298,6 @@
 <translation id="2791421900609674576">系統會顯示建議項目,以便你繼續使用上次開啟的內容。只要按住建議項目即可移除。</translation>
 <translation id="2792498699870441125">Alt + 搜尋鍵</translation>
 <translation id="2797741504905337289">Shelf Party</translation>
-<translation id="2803313416453193357">開啟資料夾</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2814448776515246190">局部擷取</translation>
 <translation id="2819276065543622893">現在即將登出。</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 38a4cbbd..1a2415b 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -301,7 +301,6 @@
 <translation id="2791421900609674576">Uzobona izincomo ukuze uqhubeke lapho ugcine khona.  Ungathinta uphinde ubambe ukuze ususe izincomo.</translation>
 <translation id="2792498699870441125">I-Alt+Search</translation>
 <translation id="2797741504905337289">Ishelufu Yeqembu</translation>
-<translation id="2803313416453193357">Vula ifolda</translation>
 <translation id="2805756323405976993">Izinhlelo zokusebenza</translation>
 <translation id="2814448776515246190">Ukuthatha okuyingxenye</translation>
 <translation id="2819276065543622893">Uzokhishwa ngemvume manje.</translation>
@@ -699,6 +698,7 @@
 <translation id="5071064518267176975">I-app ifuna ukusebenzisa imakrofoni</translation>
 <translation id="5078796286268621944">Iphinikhodi engalungile</translation>
 <translation id="5083553833479578423">Vula izici eziningi zomsizi.</translation>
+<translation id="509790653408515442">Uma usakaza ama-app efoni yakho, azovela lapha</translation>
 <translation id="5107522548814527560">Iwebhu</translation>
 <translation id="5117590920725113268">Bonisa inyanga elandelayo</translation>
 <translation id="5136175204352732067">Ikhibhodi ehlukile ixhunyiwe</translation>
@@ -721,6 +721,7 @@
 <translation id="523505283826916779">Izulungiselelo zokufinyelela</translation>
 <translation id="5245201184978705914">Ayikwazi ukukhiqiza okulotshiweyo</translation>
 <translation id="5253783950165989294">Ixhunywe kudivayisi ebizwa ngokuthi i-<ph name="DEVICE_NAME" />, <ph name="BATTERY_PERCENTAGE" />% ibhethri</translation>
+<translation id="5258528442992323769">Awekho amatafula alondoloziwe</translation>
 <translation id="5260676007519551770">Ifafula 4</translation>
 <translation id="5283099933536931082">I-<ph name="APP_ITEM_TITLE" /> icela ukunakwa kwakho.</translation>
 <translation id="5283198616748585639">Engeza iminithi elingu-1</translation>
@@ -1260,6 +1261,7 @@
 <translation id="851458219935658693">Bonisa amawindi kusuka kudeski lamanje, inkinobho yerediyo ikhethiwe</translation>
 <translation id="8517041960877371778">I-<ph name="DEVICE_TYPE" /> yakho ingahle ingashaji ngenkathi ivulekile.</translation>
 <translation id="8535393432370007982">Hlehlisa i-oda yokuhlunga ngombala</translation>
+<translation id="8542053257095774575">Awekho amatafula noma izifanekiso ezilondoloziwe</translation>
 <translation id="8546059259582788728">Ukuhlehlisa ukuhlunga kuphumelele</translation>
 <translation id="8551588720239073785">Amasethingi edethi nesikhathi</translation>
 <translation id="8553395910833293175">Sewusayinde kuwo wonke amatafula.</translation>
diff --git a/ash/system/time/calendar_event_list_item_view.cc b/ash/system/time/calendar_event_list_item_view.cc
index e433d5a..f368de5 100644
--- a/ash/system/time/calendar_event_list_item_view.cc
+++ b/ash/system/time/calendar_event_list_item_view.cc
@@ -184,8 +184,10 @@
 
   GURL finalized_url;
   bool opened_pwa = false;
+  DCHECK(calendar_view_controller_->selected_date().has_value());
   Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      event_url_, opened_pwa, finalized_url);
+      event_url_, calendar_view_controller_->selected_date().value(),
+      opened_pwa, finalized_url);
   return true;
 }
 
diff --git a/ash/system/time/calendar_event_list_view.cc b/ash/system/time/calendar_event_list_view.cc
index bdc3cf55..1e388f6 100644
--- a/ash/system/time/calendar_event_list_view.cc
+++ b/ash/system/time/calendar_event_list_view.cc
@@ -89,8 +89,10 @@
 
     GURL finalized_url;
     bool opened_pwa = false;
+    DCHECK(controller_->selected_date().has_value());
     Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-        absl::nullopt, opened_pwa, finalized_url);
+        absl::nullopt, controller_->selected_date().value(), opened_pwa,
+        finalized_url);
   }
 
  private:
diff --git a/ash/webui/os_feedback_ui/resources/file_attachment.html b/ash/webui/os_feedback_ui/resources/file_attachment.html
index ba0b37b..6a02729 100644
--- a/ash/webui/os_feedback_ui/resources/file_attachment.html
+++ b/ash/webui/os_feedback_ui/resources/file_attachment.html
@@ -1,21 +1,49 @@
 <style>
-  .button-content {
+  /* Special attribute to hide elements. */
+  [hidden] {
+    display: none !important;
+  }
+
+  :host {
     align-items: center;
-    background-color: white;
-    border: none;
-    box-sizing: border-box;
-    cursor: pointer;
     display: flex;
-    height: 48px;
-    padding-inline-end: 10px;
-    padding-inline-start: 12px;
+    flex-direction: column;
+  }
+
+  .file-input {
+    cursor: pointer;
+  }
+
+  #addFileContainer,
+  #replaceFileContainer {
+    width: 248px;
+  }
+
+  #replaceFileContainer {
+    display: flex;
+    flex-direction: row;
+  }
+
+  #selectFileDialog {
+    height: 0;
+    opacity: 0;
+    width: 0;
   }
 </style>
-<div>
-  <button class="button-content" title="Add file">
-    <span>
-      <iron-icon icon="attachment:add-file"></iron-icon>
-    </span>
-    <span id="AddFileLabel">Add file</span>
-  </button>
+<div id="addFileContainer" hidden="[[hasSelectedAFile_]]">
+  <label id="addFileLabel" class="file-input"
+      on-click="handleOpenFileInputClick_">
+    <iron-icon icon="attachment:add-file"></iron-icon>Add file
+  </label>
+</div>
+<input id="selectFileDialog" type="file" on-change="handleFileSelectChange_">
+<div id="replaceFileContainer" hidden="[[!hasSelectedAFile_]]">
+  <input type="checkbox" id="selectFileCheckbox">
+  <div>
+    <div id="selectedFileName"></div>
+    <label id="replaceFileLabel" class="file-input"
+        on-click="handleOpenFileInputClick_">
+      Replace
+    </label>
+  </div>
 </div>
diff --git a/ash/webui/os_feedback_ui/resources/file_attachment.js b/ash/webui/os_feedback_ui/resources/file_attachment.js
index 56c428f..6033b7f 100644
--- a/ash/webui/os_feedback_ui/resources/file_attachment.js
+++ b/ash/webui/os_feedback_ui/resources/file_attachment.js
@@ -21,6 +21,87 @@
   static get template() {
     return html`{__html_template__}`;
   }
+
+  static get properties() {
+    return {
+      hasSelectedAFile_: {
+        type: Boolean,
+        computed: 'computeHasSelectedAFile_(selectedFile)',
+      },
+
+      selectedFile: {
+        type: File,
+        notify: true,
+        readOnly: true,
+        reflectToAttribute: true,
+      },
+    };
+  }
+
+  constructor() {
+    super();
+
+    /**
+     * The file selected if any to be attached to the report.
+     * @type {?File}
+     */
+    this.selectedFile = null;
+
+    /**
+     * True when there is a file selected.
+     * @protected {boolean}
+     */
+    this.hasSelectedAFile_;
+  }
+
+  /**
+   * @returns {boolean}
+   * @private
+   */
+  computeHasSelectedAFile_() {
+    return !!this.selectedFile;
+  }
+
+  /**
+   * @param {string} selector
+   * @return {?Element}
+   * @private
+   */
+  getElement_(selector) {
+    return this.shadowRoot.querySelector(selector);
+  }
+
+  /**
+   * @param {!Event} e
+   * @protected
+   */
+  handleOpenFileInputClick_(e) {
+    const fileInput = this.getElement_('#selectFileDialog');
+    fileInput.click();
+  }
+
+  /**
+   * @param {!Event} e
+   * @protected
+   */
+  handleFileSelectChange_(e) {
+    const fileInput = /**@type {HTMLInputElement} */ (e.target);
+    // The feedback app takes maximum one attachment. And the file dialog is set
+    // to accept one file only.
+    if (fileInput.files.length > 0) {
+      const selectedFileName = this.getElement_('#selectedFileName');
+      selectedFileName.textContent = fileInput.files[0].name;
+      this.getElement_('#selectFileCheckbox').checked = true;
+      this.selectedFile = fileInput.files[0];
+    }
+  }
+
+  /**
+   * @param {!File} file
+   */
+  setSelectedFileForTesting(file) {
+    this.selectedFile = file;
+  }
 }
 
 customElements.define(FileAttachmentElement.is, FileAttachmentElement);
diff --git a/base/allocator/BUILD.gn b/base/allocator/BUILD.gn
index f0ea9848..1f4b506 100644
--- a/base/allocator/BUILD.gn
+++ b/base/allocator/BUILD.gn
@@ -13,6 +13,10 @@
   assert(use_allocator_shim || !_use_partition_alloc_as_malloc,
          "Partition alloc requires the allocator shim")
 
+  # Duplicates the setup Chromium uses to define `DCHECK_IS_ON()`,
+  # but avails it as a buildflag.
+  _dcheck_is_on = is_debug || dcheck_always_on
+
   # BackupRefPtr(BRP) build flags.
   _use_backup_ref_ptr = use_backup_ref_ptr && use_partition_alloc && !is_nacl
   _put_ref_count_in_previous_slot =
@@ -39,6 +43,8 @@
     "ENABLE_DANGLING_RAW_PTR_CHECKS=$_enable_dangling_raw_ptr_checks",
     "PUT_REF_COUNT_IN_PREVIOUS_SLOT=$_put_ref_count_in_previous_slot",
 
+    "PA_DCHECK_IS_ON=$_dcheck_is_on",
+
     # Not to be used directly - see `partition_alloc_config.h`.
     "USE_MTE_CHECKED_PTR=$_use_mte_checked_ptr",
 
diff --git a/base/allocator/partition_allocator/DEPS b/base/allocator/partition_allocator/DEPS
index 56a1d09..b7471a04 100644
--- a/base/allocator/partition_allocator/DEPS
+++ b/base/allocator/partition_allocator/DEPS
@@ -6,7 +6,6 @@
 include_rules = [
     "+base/allocator/buildflags.h",
     "+base/base_export.h",
-    "+base/dcheck_is_on.h",
     "+base/logging_buildflags.h",
     "+base/mac/foundation_util.h",
     "+base/mac/mac_util.h",
diff --git a/base/allocator/partition_allocator/address_pool_manager.cc b/base/allocator/partition_allocator/address_pool_manager.cc
index b6e05d946..bc55d250 100644
--- a/base/allocator/partition_allocator/address_pool_manager.cc
+++ b/base/allocator/partition_allocator/address_pool_manager.cc
@@ -116,7 +116,7 @@
   PA_CHECK(!(ptr & kSuperPageOffsetMask));
   PA_CHECK(!(length & kSuperPageOffsetMask));
   address_begin_ = ptr;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   address_end_ = ptr + length;
   PA_DCHECK(address_begin_ < address_end_);
 #endif
@@ -193,7 +193,7 @@
         bit_hint_ = end_bit;
       }
       uintptr_t address = address_begin_ + beg_bit * kSuperPageSize;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
       PA_DCHECK(address + requested_size <= address_end_);
 #endif
       return address;
@@ -234,7 +234,7 @@
   PA_DCHECK(!(free_size & kSuperPageOffsetMask));
 
   PA_DCHECK(address_begin_ <= address);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   PA_DCHECK(address + free_size <= address_end_);
 #endif
 
diff --git a/base/allocator/partition_allocator/address_pool_manager.h b/base/allocator/partition_allocator/address_pool_manager.h
index 3b38efc6..a11b00c7 100644
--- a/base/allocator/partition_allocator/address_pool_manager.h
+++ b/base/allocator/partition_allocator/address_pool_manager.h
@@ -8,6 +8,7 @@
 #include <bitset>
 #include <limits>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/address_pool_manager_bitmap.h"
 #include "base/allocator/partition_allocator/address_pool_manager_types.h"
 #include "base/allocator/partition_allocator/partition_address_space.h"
@@ -18,7 +19,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_constants.h"
 #include "base/allocator/partition_allocator/partition_lock.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace base {
@@ -147,7 +147,7 @@
 
     size_t total_bits_ = 0;
     uintptr_t address_begin_ = 0;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     uintptr_t address_end_ = 0;
 #endif
   };
diff --git a/base/allocator/partition_allocator/address_space_randomization_unittest.cc b/base/allocator/partition_allocator/address_space_randomization_unittest.cc
index 88d91d3..ee90dd5 100644
--- a/base/allocator/partition_allocator/address_space_randomization_unittest.cc
+++ b/base/allocator/partition_allocator/address_space_randomization_unittest.cc
@@ -7,10 +7,10 @@
 #include <cstdint>
 #include <vector>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/page_allocator.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
 #include "base/allocator/partition_allocator/random.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -137,12 +137,12 @@
   if ((mask & (1ULL << random_bit)) == 0)
     return;  // bit is always 0.
 
-#if DCHECK_IS_ON()
-  // Do fewer checks when DCHECK_IS_ON(). Exercized code only changes when the
-  // random number generator does, which should be almost never. However it's
-  // expensive to run all the tests. So keep iterations faster for local
-  // development builds, while having the stricter version run on official build
-  // testers.
+#if BUILDFLAG(PA_DCHECK_IS_ON)
+  // Do fewer checks when BUILDFLAG(PA_DCHECK_IS_ON). Exercized code only
+  // changes when the random number generator does, which should be almost
+  // never. However it's expensive to run all the tests. So keep iterations
+  // faster for local development builds, while having the stricter version run
+  // on official build testers.
   constexpr int kHistory = 2;
   constexpr int kRepeats = 1000;
 #else
diff --git a/base/allocator/partition_allocator/page_allocator_internals_posix.h b/base/allocator/partition_allocator/page_allocator_internals_posix.h
index 5f116f1..b7dc8bf 100644
--- a/base/allocator/partition_allocator/page_allocator_internals_posix.h
+++ b/base/allocator/partition_allocator/page_allocator_internals_posix.h
@@ -12,11 +12,11 @@
 
 #include <sys/mman.h>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/oom.h"
 #include "base/allocator/partition_allocator/page_allocator.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/posix/eintr_wrapper.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 #if BUILDFLAG(IS_APPLE)
@@ -256,13 +256,14 @@
 
   bool change_permissions =
       accessibility_disposition == PageAccessibilityDisposition::kRequireUpdate;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // This is not guaranteed, show that we're serious.
   //
   // More specifically, several callers have had issues with assuming that
   // memory is zeroed, this would hopefully make these bugs more visible.  We
   // don't memset() everything, because ranges can be very large, and doing it
-  // over the entire range could make Chrome unusable with DCHECK_IS_ON().
+  // over the entire range could make Chrome unusable with
+  // BUILDFLAG(PA_DCHECK_IS_ON).
   //
   // Only do it when we are about to change the permissions, since we don't know
   // the previous permissions, and cannot restore them.
diff --git a/base/allocator/partition_allocator/partition_alloc-inl.h b/base/allocator/partition_allocator/partition_alloc-inl.h
index 573690c3..1953caa 100644
--- a/base/allocator/partition_allocator/partition_alloc-inl.h
+++ b/base/allocator/partition_allocator/partition_alloc-inl.h
@@ -8,10 +8,10 @@
 #include <algorithm>
 #include <cstring>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_ref_count.h"
 #include "base/allocator/partition_allocator/random.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 // Prefetch *x into memory.
@@ -48,7 +48,7 @@
 // Returns true if we've hit the end of a random-length period. We don't want to
 // invoke `RandomValue` too often, because we call this function in a hot spot
 // (`Free`), and `RandomValue` incurs the cost of atomics.
-#if !DCHECK_IS_ON()
+#if !BUILDFLAG(PA_DCHECK_IS_ON)
 PA_ALWAYS_INLINE bool RandomPeriod() {
   static thread_local uint8_t counter = 0;
   if (PA_UNLIKELY(counter == 0)) {
@@ -59,7 +59,7 @@
   counter--;
   return counter == 0;
 }
-#endif  // !DCHECK_IS_ON()
+#endif  // !BUILDFLAG(PA_DCHECK_IS_ON)
 
 }  // namespace partition_alloc::internal
 
@@ -68,9 +68,9 @@
 // TODO(https://crbug.com/1288247): Remove these 'using' declarations once
 // the migration to the new namespaces gets done.
 using ::partition_alloc::internal::SecureMemset;
-#if !DCHECK_IS_ON()
+#if !BUILDFLAG(PA_DCHECK_IS_ON)
 using ::partition_alloc::internal::RandomPeriod;
-#endif  // !DCHECK_IS_ON()
+#endif  // !BUILDFLAG(PA_DCHECK_IS_ON)
 
 }  // namespace base::internal
 
diff --git a/base/allocator/partition_allocator/partition_alloc.cc b/base/allocator/partition_allocator/partition_alloc.cc
index 63acc0df..94995d0f 100644
--- a/base/allocator/partition_allocator/partition_alloc.cc
+++ b/base/allocator/partition_allocator/partition_alloc.cc
@@ -20,7 +20,6 @@
 #include "base/allocator/partition_allocator/partition_root.h"
 #include "base/allocator/partition_allocator/partition_stats.h"
 #include "base/allocator/partition_allocator/starscan/pcscan.h"
-#include "base/dcheck_is_on.h"
 
 namespace partition_alloc {
 
@@ -106,7 +105,8 @@
 template PartitionAllocator<internal::ThreadSafe>::~PartitionAllocator();
 template void PartitionAllocator<internal::ThreadSafe>::init(PartitionOptions);
 
-#if (DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)) && \
+#if (BUILDFLAG(PA_DCHECK_IS_ON) ||                    \
+     BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)) && \
     BUILDFLAG(USE_BACKUP_REF_PTR)
 void CheckThatSlotOffsetIsZero(uintptr_t address) {
   // Add kPartitionPastAllocationAdjustment, because
diff --git a/base/allocator/partition_allocator/partition_alloc_base/check.h b/base/allocator/partition_allocator/partition_alloc_base/check.h
index 101efd9..e066b26 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/check.h
+++ b/base/allocator/partition_allocator/partition_alloc_base/check.h
@@ -7,10 +7,10 @@
 
 #include <iosfwd>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/immediate_crash.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 
 // This header defines the CHECK, DCHECK, and DPCHECK macros.
 //
@@ -141,7 +141,7 @@
 
 #endif
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_BASE_DCHECK(condition)                               \
   PA_LAZY_CHECK_STREAM(                                         \
diff --git a/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging.h b/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging.h
index b8a3e31..7e6ec3c 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging.h
+++ b/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging.h
@@ -8,6 +8,7 @@
 #include <lib/fit/function.h>
 #include <zircon/types.h>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/logging.h"
 #include "base/base_export.h"
 #include "build/build_config.h"
@@ -52,17 +53,17 @@
 #define PA_ZX_DLOG(severity, zx_err) \
   PA_LAZY_STREAM(PA_ZX_LOG_STREAM(severity, zx_err), PA_DLOG_IS_ON(severity))
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 #define PA_ZX_DLOG_IF(severity, condition, zx_err)   \
   PA_LAZY_STREAM(PA_ZX_LOG_STREAM(severity, zx_err), \
                  PA_DLOG_IS_ON(severity) && (condition))
-#else  // DCHECK_IS_ON()
+#else  // BUILDFLAG(PA_DCHECK_IS_ON)
 #define PA_ZX_DLOG_IF(severity, condition, zx_err) PA_EAT_STREAM_PARAMETERS
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
-#define PA_ZX_DCHECK(condition, zx_err)            \
-  PA_LAZY_STREAM(PA_ZX_LOG_STREAM(DCHECK, zx_err), \
-                 DCHECK_IS_ON() && !(condition))   \
+#define PA_ZX_DCHECK(condition, zx_err)                      \
+  PA_LAZY_STREAM(PA_ZX_LOG_STREAM(DCHECK, zx_err),           \
+                 BUILDFLAG(PA_DCHECK_IS_ON) && !(condition)) \
       << "Check failed: " #condition << ". "
 
 #endif  // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_FUCHSIA_FUCHSIA_LOGGING_H_
diff --git a/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc b/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
index 188fe44..50f7f3f 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
+++ b/base/allocator/partition_allocator/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
@@ -8,6 +8,7 @@
 #include <lib/fidl/cpp/binding.h>
 #include <lib/sys/cpp/component_context.h>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/logging.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -26,14 +27,20 @@
 // Verifies the Fuchsia-specific PA_ZX_*() logging macros.
 TEST(FuchsiaLoggingTest, FuchsiaLogging) {
   MockLogSource mock_log_source;
+  constexpr int kTimes =
+#if BUILDFLAG(PA_DCHECK_IS_ON)
+      2;
+#else
+      1;
+#endif
   EXPECT_CALL(mock_log_source, Log())
-      .Times(DCHECK_IS_ON() ? 2 : 1)
+      .Times(kTimes)
       .WillRepeatedly(testing::Return("log message"));
 
   logging::SetMinLogLevel(logging::LOGGING_INFO);
 
   EXPECT_TRUE(PA_LOG_IS_ON(INFO));
-  EXPECT_EQ(DCHECK_IS_ON(), PA_DLOG_IS_ON(INFO));
+  EXPECT_EQ(BUILDFLAG(PA_DCHECK_IS_ON), PA_DLOG_IS_ON(INFO));
 
   PA_ZX_LOG(INFO, ZX_ERR_INTERNAL) << mock_log_source.Log();
   PA_ZX_DLOG(INFO, ZX_ERR_INTERNAL) << mock_log_source.Log();
diff --git a/base/allocator/partition_allocator/partition_alloc_base/logging.h b/base/allocator/partition_allocator/partition_alloc_base/logging.h
index 2699f2ed..effd044d 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/logging.h
+++ b/base/allocator/partition_allocator/partition_alloc_base/logging.h
@@ -12,11 +12,11 @@
 #include <sstream>
 #include <string>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/migration_adapter.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/scoped_clear_last_error.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 // TODO(1151236): Need to update the description, because logging for PA
@@ -177,7 +177,7 @@
 
 // LOGGING_DFATAL is LOGGING_FATAL in DCHECK-enabled builds, ERROR in normal
 // mode.
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 constexpr LogSeverity LOGGING_DFATAL = LOGGING_FATAL;
 #else
 constexpr LogSeverity LOGGING_DFATAL = LOGGING_ERROR;
@@ -361,7 +361,7 @@
 
 // Definitions for DLOG et al.
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_DLOG_IS_ON(severity) PA_LOG_IS_ON(severity)
 #define PA_DLOG_IF(severity, condition) PA_LOG_IF(severity, condition)
@@ -371,11 +371,12 @@
 #define PA_DVPLOG_IF(verboselevel, condition) \
   PA_VPLOG_IF(verboselevel, condition)
 
-#else  // DCHECK_IS_ON()
+#else  // BUILDFLAG(PA_DCHECK_IS_ON)
 
-// If !DCHECK_IS_ON(), we want to avoid emitting any references to |condition|
-// (which may reference a variable defined only if DCHECK_IS_ON()).
-// Contrast this with DCHECK et al., which has different behavior.
+// If !BUILDFLAG(PA_DCHECK_IS_ON), we want to avoid emitting any references to
+// |condition| (which may reference a variable defined only if
+// BUILDFLAG(PA_DCHECK_IS_ON)). Contrast this with DCHECK et al., which has
+// different behavior.
 
 #define PA_DLOG_IS_ON(severity) false
 #define PA_DLOG_IF(severity, condition) PA_EAT_STREAM_PARAMETERS
@@ -384,7 +385,7 @@
 #define PA_DVLOG_IF(verboselevel, condition) PA_EAT_STREAM_PARAMETERS
 #define PA_DVPLOG_IF(verboselevel, condition) PA_EAT_STREAM_PARAMETERS
 
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_DLOG(severity) \
   PA_LAZY_STREAM(PA_LOG_STREAM(severity), PA_DLOG_IS_ON(severity))
diff --git a/base/allocator/partition_allocator/partition_alloc_base/logging_pa_unittest.cc b/base/allocator/partition_allocator/partition_alloc_base/logging_pa_unittest.cc
index 7f872f3..104079c 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/logging_pa_unittest.cc
+++ b/base/allocator/partition_allocator/partition_alloc_base/logging_pa_unittest.cc
@@ -5,6 +5,7 @@
 #include <sstream>
 #include <string>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/logging.h"
 #include "build/build_config.h"
 
@@ -25,14 +26,20 @@
 
 TEST(PALoggingTest, BasicLogging) {
   MockLogSource mock_log_source;
+  constexpr int kTimes =
+#if BUILDFLAG(PA_DCHECK_IS_ON)
+      16;
+#else
+      8;
+#endif
   EXPECT_CALL(mock_log_source, Log())
-      .Times(DCHECK_IS_ON() ? 16 : 8)
+      .Times(kTimes)
       .WillRepeatedly(Return("log message"));
 
   SetMinLogLevel(LOGGING_INFO);
 
   EXPECT_TRUE(PA_LOG_IS_ON(INFO));
-  EXPECT_EQ(DCHECK_IS_ON(), PA_DLOG_IS_ON(INFO));
+  EXPECT_EQ(BUILDFLAG(PA_DCHECK_IS_ON), PA_DLOG_IS_ON(INFO));
   EXPECT_TRUE(PA_VLOG_IS_ON(0));
 
   PA_LOG(INFO) << mock_log_source.Log();
@@ -82,8 +89,8 @@
   EXPECT_FALSE(PA_LOG_IS_ON(ERROR));
   // PA_LOG_IS_ON(FATAL) should always be true.
   EXPECT_TRUE(PA_LOG_IS_ON(FATAL));
-  // If DCHECK_IS_ON() then DFATAL is FATAL.
-  EXPECT_EQ(DCHECK_IS_ON(), PA_LOG_IS_ON(DFATAL));
+  // If BUILDFLAG(PA_DCHECK_IS_ON) then DFATAL is FATAL.
+  EXPECT_EQ(BUILDFLAG(PA_DCHECK_IS_ON), PA_LOG_IS_ON(DFATAL));
 }
 
 TEST(PALoggingTest, LoggingIsLazyBySeverity) {
@@ -125,7 +132,7 @@
 }
 
 TEST(PALoggingTest, DebugLoggingReleaseBehavior) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   int debug_only_variable = 1;
 #endif
   // These should avoid emitting references to |debug_only_variable|
diff --git a/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc b/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc
index f68dcdf..b613d12 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc
+++ b/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc
@@ -8,6 +8,8 @@
 #include <ostream>
 #include <type_traits>
 
+#include "base/allocator/buildflags.h"
+
 namespace partition_alloc::internal::base::subtle {
 
 bool RefCountedThreadSafeBase::HasOneRef() const {
@@ -18,7 +20,7 @@
   return !ref_count_.IsZero();
 }
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 RefCountedThreadSafeBase::~RefCountedThreadSafeBase() {
   PA_DCHECK(in_dtor_) << "RefCountedThreadSafe object deleted without "
                          "calling Release()";
diff --git a/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.h b/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.h
index 7ff63087..51c59095 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.h
+++ b/base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.h
@@ -5,12 +5,12 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_MEMORY_REF_COUNTED_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_MEMORY_REF_COUNTED_H_
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/atomic_ref_count.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/memory/scoped_refptr.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc::internal::base {
@@ -28,12 +28,12 @@
   explicit constexpr RefCountedThreadSafeBase(StartRefCountFromZeroTag) {}
   explicit constexpr RefCountedThreadSafeBase(StartRefCountFromOneTag)
       : ref_count_(1) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     needs_adopt_ref_ = true;
 #endif
   }
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   ~RefCountedThreadSafeBase();
 #else
   ~RefCountedThreadSafeBase() = default;
@@ -59,14 +59,14 @@
   friend scoped_refptr<U> AdoptRef(U*);
 
   void Adopted() const {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     PA_DCHECK(needs_adopt_ref_);
     needs_adopt_ref_ = false;
 #endif
   }
 
   PA_ALWAYS_INLINE void AddRefImpl() const {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     PA_DCHECK(!in_dtor_);
     // This RefCounted object is created with non-zero reference count.
     // The first reference to such a object has to be made by AdoptRef or
@@ -77,7 +77,7 @@
   }
 
   PA_ALWAYS_INLINE void AddRefWithCheckImpl() const {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     PA_DCHECK(!in_dtor_);
     // This RefCounted object is created with non-zero reference count.
     // The first reference to such a object has to be made by AdoptRef or
@@ -88,12 +88,12 @@
   }
 
   PA_ALWAYS_INLINE bool ReleaseImpl() const {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     PA_DCHECK(!in_dtor_);
     PA_DCHECK(!ref_count_.IsZero());
 #endif
     if (!ref_count_.Decrement()) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
       in_dtor_ = true;
 #endif
       return true;
@@ -102,7 +102,7 @@
   }
 
   mutable AtomicRefCount ref_count_{0};
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   mutable bool needs_adopt_ref_ = false;
   mutable bool in_dtor_ = false;
 #endif
diff --git a/base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h b/base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h
index 65a606a..7beab2b2 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h
+++ b/base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h
@@ -37,7 +37,7 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_THREAD_ANNOTATIONS_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_THREAD_ANNOTATIONS_H_
 
-#include "base/dcheck_is_on.h"
+#include "base/allocator/buildflags.h"
 #include "build/build_config.h"
 
 #if defined(__clang__)
@@ -246,7 +246,7 @@
 
 // The above is imported as-is from abseil-cpp. The following Chromium-specific
 // synonyms are added for Chromium concepts (SequenceChecker/ThreadChecker).
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 
 // Equivalent to PA_GUARDED_BY for SequenceChecker/ThreadChecker. Currently,
 #define PA_GUARDED_BY_CONTEXT(name) PA_GUARDED_BY(name)
@@ -254,11 +254,11 @@
 // Equivalent to PA_EXCLUSIVE_LOCKS_REQUIRED for SequenceChecker/ThreadChecker.
 #define PA_VALID_CONTEXT_REQUIRED(name) PA_EXCLUSIVE_LOCKS_REQUIRED(name)
 
-#else  // DCHECK_IS_ON()
+#else  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_GUARDED_BY_CONTEXT(name)
 #define PA_VALID_CONTEXT_REQUIRED(name)
 
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #endif  // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_BASE_THREAD_ANNOTATIONS_H_
diff --git a/base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc b/base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc
index 1054217f..d47ac1e 100644
--- a/base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc
+++ b/base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc
@@ -12,6 +12,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/logging.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_internal_posix.h"
 #include "build/build_config.h"
@@ -93,7 +94,7 @@
       g_is_main_thread = false;
     }
   } else {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     if (g_thread_id != syscall(__NR_gettid)) {
       PA_RAW_LOG(
           FATAL,
diff --git a/base/allocator/partition_allocator/partition_alloc_check.h b/base/allocator/partition_allocator/partition_alloc_check.h
index 99748ac..b0f7c26 100644
--- a/base/allocator/partition_allocator/partition_alloc_check.h
+++ b/base/allocator/partition_allocator/partition_alloc_check.h
@@ -13,7 +13,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/debug/alias.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/immediate_crash.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 #define PA_STRINGIFY_IMPL(s) #s
@@ -46,11 +45,11 @@
   : PA_EAT_CHECK_STREAM_PARAMS()
 #endif  // defined(OFFICIAL_BUILD) && defined(NDEBUG)
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 #define PA_DCHECK(condition) PA_CHECK(condition)
 #else
 #define PA_DCHECK(condition) PA_EAT_CHECK_STREAM_PARAMS(!(condition))
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_PCHECK(condition)                                 \
   if (!(condition)) {                                        \
@@ -59,11 +58,11 @@
     PA_IMMEDIATE_CRASH();                                    \
   }
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 #define PA_DPCHECK(condition) PA_PCHECK(condition)
 #else
 #define PA_DPCHECK(condition) PA_EAT_CHECK_STREAM_PARAMS(!(condition))
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #else
 #define PA_CHECK(condition) PA_BASE_CHECK(condition)
@@ -75,7 +74,7 @@
 // Expensive dchecks that run within *Scan. These checks are only enabled in
 // debug builds with dchecks enabled.
 #if !defined(NDEBUG)
-#define PA_SCAN_DCHECK_IS_ON() DCHECK_IS_ON()
+#define PA_SCAN_DCHECK_IS_ON() BUILDFLAG(PA_DCHECK_IS_ON)
 #else
 #define PA_SCAN_DCHECK_IS_ON() 0
 #endif
diff --git a/base/allocator/partition_allocator/partition_alloc_config.h b/base/allocator/partition_allocator/partition_alloc_config.h
index e2806f13..ae4749f 100644
--- a/base/allocator/partition_allocator/partition_alloc_config.h
+++ b/base/allocator/partition_allocator/partition_alloc_config.h
@@ -6,7 +6,6 @@
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_CONFIG_H_
 
 #include "base/allocator/buildflags.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 // ARCH_CPU_64_BITS implies 64-bit instruction set, but not necessarily 64-bit
@@ -131,7 +130,7 @@
 #endif
 
 // Specifies whether allocation extras need to be added.
-#if DCHECK_IS_ON() || BUILDFLAG(USE_BACKUP_REF_PTR)
+#if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(USE_BACKUP_REF_PTR)
 #define PA_EXTRAS_REQUIRED
 #endif
 
@@ -163,10 +162,10 @@
 // calling malloc() again.
 //
 // Limitations:
-// - DCHECK_IS_ON() due to runtime cost
+// - BUILDFLAG(PA_DCHECK_IS_ON) due to runtime cost
 // - thread_local TLS to simplify the implementation
 // - Not on Android due to bot failures
-#if DCHECK_IS_ON() && BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \
+#if BUILDFLAG(PA_DCHECK_IS_ON) && BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \
     defined(PA_THREAD_LOCAL_TLS) && !BUILDFLAG(IS_ANDROID)
 #define PA_HAS_ALLOCATION_GUARD
 #endif
@@ -203,7 +202,8 @@
 // raw_ptr at the same time.
 #if !(BUILDFLAG(ENABLE_DANGLING_RAW_PTR_CHECKS) &&  \
       BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)) && \
-    (DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS))
+    (BUILDFLAG(PA_DCHECK_IS_ON) ||                  \
+     BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS))
 #define PA_REF_COUNT_CHECK_COOKIE
 #endif
 
diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h
index ea7ce72..119ea87 100644
--- a/base/allocator/partition_allocator/partition_alloc_forward.h
+++ b/base/allocator/partition_allocator/partition_alloc_forward.h
@@ -11,7 +11,6 @@
 #include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 
 namespace partition_alloc {
 
@@ -44,7 +43,8 @@
 template <bool thread_safe>
 struct SlotSpanMetadata;
 
-#if (DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)) && \
+#if (BUILDFLAG(PA_DCHECK_IS_ON) ||                    \
+     BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)) && \
     BUILDFLAG(USE_BACKUP_REF_PTR)
 BASE_EXPORT void CheckThatSlotOffsetIsZero(uintptr_t address);
 #endif
diff --git a/base/allocator/partition_allocator/partition_alloc_notreached.h b/base/allocator/partition_allocator/partition_alloc_notreached.h
index af55c54..d19b4282 100644
--- a/base/allocator/partition_allocator/partition_alloc_notreached.h
+++ b/base/allocator/partition_allocator/partition_alloc_notreached.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_NOTREACHED_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_NOTREACHED_H_
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
-#include "base/dcheck_is_on.h"
 #include "base/logging_buildflags.h"
 
 // When PartitionAlloc is used as the default allocator, we cannot use the
@@ -22,9 +22,9 @@
        : PA_EAT_CHECK_STREAM_PARAMS()
 
 #elif BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(OFFICIAL_BUILD) && \
-    defined(NDEBUG) && DCHECK_IS_ON()
+    defined(NDEBUG) && BUILDFLAG(PA_DCHECK_IS_ON)
 
-// PA_DCHECK(condition) is PA_CHECK(condition) if DCHECK_IS_ON().
+// PA_DCHECK(condition) is PA_CHECK(condition) if BUILDFLAG(PA_DCHECK_IS_ON).
 // When BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC), OFFICIAL_BUILD, NDEBUG are
 // defined, PA_CHECK(false) is IMMEDIATE_CRASH(). Since IMMEDIATE_CRASH()
 // hints __builtin_unreachable() to the compiler, the following code causes
diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc
index e27c775..457b610 100644
--- a/base/allocator/partition_allocator/partition_alloc_unittest.cc
+++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
@@ -223,7 +223,7 @@
 using SlotSpan = SlotSpanMetadata<ThreadSafe>;
 
 const size_t kTestAllocSize = 16;
-#if !DCHECK_IS_ON()
+#if !BUILDFLAG(PA_DCHECK_IS_ON)
 const size_t kPointerOffset = kPartitionRefCountOffsetAdjustment;
 const size_t kExtraAllocSize = kInSlotRefCountBufferSize;
 #else
@@ -1414,7 +1414,7 @@
   char_ptr2 = static_cast<char*>(ptr2);
   EXPECT_EQ('A', char_ptr2[0]);
   EXPECT_EQ('A', char_ptr2[size / 2 - 1]);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // For single-slot slot spans, the cookie is always placed immediately after
   // the allocation.
   EXPECT_EQ(kCookieValue[0], static_cast<unsigned char>(char_ptr2[size / 2]));
@@ -2069,8 +2069,8 @@
 // Performing them as death tests causes them to be forked into their own
 // process, so they won't pollute other tests.
 //
-// These tests are *very* slow when DCHECK_IS_ON(), because they memset() many
-// GiB of data (see crbug.com/1168168).
+// These tests are *very* slow when BUILDFLAG(PA_DCHECK_IS_ON), because they
+// memset() many GiB of data (see crbug.com/1168168).
 // TODO(lizeb): make these tests faster.
 TEST_P(PartitionAllocDeathTest, RepeatedAllocReturnNullDirect) {
   // A direct-mapped allocation size.
@@ -2289,8 +2289,8 @@
   uaf_data[0] = previous_uaf_data;
 }
 
-// With DCHECK_IS_ON(), cookie already handles off-by-one detection.
-#if !DCHECK_IS_ON()
+// With BUILDFLAG(PA_DCHECK_IS_ON), cookie already handles off-by-one detection.
+#if !BUILDFLAG(PA_DCHECK_IS_ON)
 TEST_P(PartitionAllocDeathTest, OffByOneDetection) {
   base::CPU cpu;
   const size_t alloc_size = 2 * sizeof(void*);
@@ -2332,7 +2332,7 @@
     array[2] = previous_value;
   }
 }
-#endif  // !DCHECK_IS_ON()
+#endif  // !BUILDFLAG(PA_DCHECK_IS_ON)
 
 #endif  // !BUILDFLAG(USE_BACKUP_REF_PTR) &&
         // defined(PA_HAS_FREELIST_SHADOW_ENTRY)
@@ -4076,7 +4076,7 @@
   // Freeing releases direct-map super pages.
   address_to_check =
       partition_alloc::internal::base::bits::AlignDown(address, kSuperPageSize);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Expect to DCHECK on unallocated region.
   EXPECT_DEATH_IF_SUPPORTED(IsReservationStart(address_to_check), "");
 #endif
@@ -4153,7 +4153,7 @@
 
 TEST_P(PartitionAllocDeathTest, CheckTriggered) {
   using ::testing::ContainsRegex;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   EXPECT_DEATH(PA_CHECK(5 == 7), ContainsRegex("Check failed.*5 == 7"));
 #endif
   EXPECT_DEATH(PA_CHECK(5 == 7), ContainsRegex("Check failed.*5 == 7"));
diff --git a/base/allocator/partition_allocator/partition_bucket.cc b/base/allocator/partition_allocator/partition_bucket.cc
index 6f6ad09..3f462186 100644
--- a/base/allocator/partition_allocator/partition_bucket.cc
+++ b/base/allocator/partition_allocator/partition_bucket.cc
@@ -246,7 +246,7 @@
     const size_t reservation_size =
         PartitionRoot<thread_safe>::GetDirectMapReservationSize(
             raw_size + padding_for_alignment);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     const size_t available_reservation_size =
         reservation_size - padding_for_alignment -
         PartitionRoot<thread_safe>::GetDirectMapMetadataAndGuardPagesSize();
@@ -649,7 +649,7 @@
                               PartitionTagPointer(root->next_partition_page)),
                           SystemPageSize());
   if (root->next_tag_bitmap_page < next_tag_bitmap_page) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     uintptr_t super_page =
         reinterpret_cast<uintptr_t>(slot_span) & kSuperPageBaseMask;
     uintptr_t tag_bitmap = super_page + PartitionPageSize();
@@ -913,12 +913,12 @@
     next_slot = next_slot_end;
     next_slot_end = next_slot + size;
     prev_entry = entry;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     free_list_entries_added++;
 #endif
   }
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // The only provisioned slot not added to the free list is the one being
   // returned.
   PA_DCHECK(slots_to_provision == free_list_entries_added + 1);
diff --git a/base/allocator/partition_allocator/partition_cookie.h b/base/allocator/partition_allocator/partition_cookie.h
index 177eea4..ed38f035 100644
--- a/base/allocator/partition_allocator/partition_cookie.h
+++ b/base/allocator/partition_allocator/partition_cookie.h
@@ -8,14 +8,13 @@
 #include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
-#include "base/dcheck_is_on.h"
 
 namespace partition_alloc::internal {
 
 static constexpr size_t kCookieSize = 16;
 
 // Cookie is enabled for debug builds.
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 
 static constexpr unsigned char kCookieValue[kCookieSize] = {
     0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xD0, 0x0D,
@@ -41,7 +40,7 @@
 
 PA_ALWAYS_INLINE void PartitionCookieWriteValue(unsigned char* cookie_ptr) {}
 
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 }  // namespace partition_alloc::internal
 
@@ -53,9 +52,9 @@
 using ::partition_alloc::internal::kPartitionCookieSizeAdjustment;
 using ::partition_alloc::internal::PartitionCookieCheckValue;
 using ::partition_alloc::internal::PartitionCookieWriteValue;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 using ::partition_alloc::internal::kCookieValue;
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 }  // namespace base::internal
 
diff --git a/base/allocator/partition_allocator/partition_freelist_entry.h b/base/allocator/partition_allocator/partition_freelist_entry.h
index b951697c..9be80ff 100644
--- a/base/allocator/partition_allocator/partition_freelist_entry.h
+++ b/base/allocator/partition_allocator/partition_freelist_entry.h
@@ -18,7 +18,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_config.h"
 #include "base/allocator/partition_allocator/partition_alloc_constants.h"
 #include "base/allocator/partition_allocator/partition_ref_count.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc::internal {
@@ -178,7 +177,7 @@
     // SetNext() is either called on the freelist head, when provisioning new
     // slots, or when GetNext() has been called before, no need to pass the
     // size.
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     // Regular freelists always point to an entry within the same super page.
     //
     // This is most likely a PartitionAlloc bug if this triggers.
@@ -188,7 +187,7 @@
                 (reinterpret_cast<uintptr_t>(ptr) & kSuperPageBaseMask))) {
       FreelistCorruptionDetected(0);
     }
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
     encoded_next_ = EncodedPartitionFreelistEntryPtr(ptr);
 #if defined(PA_HAS_FREELIST_SHADOW_ENTRY)
diff --git a/base/allocator/partition_allocator/partition_lock.h b/base/allocator/partition_allocator/partition_lock.h
index 6bd6251..cb5d685 100644
--- a/base/allocator/partition_allocator/partition_lock.h
+++ b/base/allocator/partition_allocator/partition_lock.h
@@ -15,7 +15,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
 #include "base/allocator/partition_allocator/spinning_mutex.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc::internal {
@@ -24,7 +23,7 @@
  public:
   inline constexpr Lock();
   void Acquire() PA_EXCLUSIVE_LOCK_FUNCTION() {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     // When PartitionAlloc is malloc(), it can easily become reentrant. For
     // instance, a DCHECK() triggers in external code (such as
     // base::Lock). DCHECK() error message formatting allocates, which triggers
@@ -61,7 +60,7 @@
   }
 
   void Release() PA_UNLOCK_FUNCTION() {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     owning_thread_ref_.store(base::PlatformThreadRef(),
                              std::memory_order_release);
 #endif
@@ -69,7 +68,7 @@
   }
   void AssertAcquired() const PA_ASSERT_EXCLUSIVE_LOCK() {
     lock_.AssertAcquired();
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     PA_DCHECK(owning_thread_ref_.load(std ::memory_order_acquire) ==
               base::PlatformThread::CurrentRef());
 #endif
@@ -77,7 +76,7 @@
 
   void Reinit() PA_UNLOCK_FUNCTION() {
     lock_.AssertAcquired();
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     owning_thread_ref_.store(base::PlatformThreadRef(),
                              std::memory_order_release);
 #endif
@@ -87,7 +86,7 @@
  private:
   SpinningMutex lock_;
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Should in theory be protected by |lock_|, but we need to read it to detect
   // recursive lock acquisition (and thus, the allocator becoming reentrant).
   std::atomic<base::PlatformThreadRef> owning_thread_ref_{};
diff --git a/base/allocator/partition_allocator/partition_lock_unittest.cc b/base/allocator/partition_allocator/partition_lock_unittest.cc
index c0e0a66c..a45d0d7 100644
--- a/base/allocator/partition_allocator/partition_lock_unittest.cc
+++ b/base/allocator/partition_allocator/partition_lock_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "base/allocator/partition_allocator/partition_lock.h"
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/migration_adapter.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_for_testing.h"
@@ -164,7 +165,7 @@
 }
 
 // AssertAcquired() is only enforced with DCHECK()s.
-#if defined(GTEST_HAS_DEATH_TEST) && DCHECK_IS_ON()
+#if defined(GTEST_HAS_DEATH_TEST) && BUILDFLAG(PA_DCHECK_IS_ON)
 
 TEST(PartitionAllocLockTest, AssertAcquiredDeathTest) {
   Lock lock;
@@ -235,6 +236,6 @@
 }
 #endif  // BUILDFLAG(IS_APPLE)
 
-#endif  // defined(GTEST_HAS_DEATH_TEST) && DCHECK_IS_ON()
+#endif  // defined(GTEST_HAS_DEATH_TEST) && BUILDFLAG(PA_DCHECK_IS_ON)
 
 }  // namespace partition_alloc::internal
diff --git a/base/allocator/partition_allocator/partition_page.cc b/base/allocator/partition_allocator/partition_page.cc
index ee73c76..4f1a72a 100644
--- a/base/allocator/partition_allocator/partition_page.cc
+++ b/base/allocator/partition_allocator/partition_page.cc
@@ -22,7 +22,6 @@
 #include "base/allocator/partition_allocator/partition_root.h"
 #include "base/allocator/partition_allocator/reservation_offset_table.h"
 #include "base/allocator/partition_allocator/tagging.h"
-#include "base/dcheck_is_on.h"
 
 namespace partition_alloc::internal {
 
@@ -151,7 +150,7 @@
 
 template <bool thread_safe>
 void SlotSpanMetadata<thread_safe>::FreeSlowPath(size_t number_of_freed) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   auto* root = PartitionRoot<thread_safe>::FromSlotSpan(this);
   root->lock_.AssertAcquired();
 #endif
@@ -189,7 +188,7 @@
       PartitionDirectUnmap(this);
       return;
     }
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     freelist_head->CheckFreeList(bucket->slot_size);
 #endif
     // If it's the current active slot span, change it. We bounce the slot span
@@ -304,7 +303,7 @@
               size_t reservation_size,
               pool_handle pool) {
   PA_DCHECK(reservation_start && reservation_size > 0);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // When USE_BACKUP_REF_PTR is off, BRP pool isn't used.
 #if BUILDFLAG(USE_BACKUP_REF_PTR)
   if (pool == GetBRPPool()) {
@@ -328,7 +327,7 @@
     PA_DCHECK(IsManagedByPartitionAllocRegularPool(reservation_start) ||
               IsManagedByPartitionAllocConfigurablePool(reservation_start));
   }
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
   PA_DCHECK((reservation_start & kSuperPageOffsetMask) == 0);
   uintptr_t reservation_end = reservation_start + reservation_size;
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h
index 86d15cc..9f6cdba5 100644
--- a/base/allocator/partition_allocator/partition_page.h
+++ b/base/allocator/partition_allocator/partition_page.h
@@ -27,7 +27,6 @@
 #include "base/allocator/partition_allocator/starscan/state_bitmap.h"
 #include "base/allocator/partition_allocator/tagging.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)
@@ -470,7 +469,7 @@
 template <bool thread_safe>
 PA_ALWAYS_INLINE void PartitionSuperPageExtentEntry<
     thread_safe>::IncrementNumberOfNonemptySlotSpans() {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   uintptr_t super_page = base::bits::AlignDown(
       reinterpret_cast<uintptr_t>(this), kSuperPageAlignment);
   PA_DCHECK((SuperPagePayloadSize(super_page, root->IsQuarantineAllowed()) /
@@ -522,7 +521,7 @@
 PartitionPage<thread_safe>::FromAddr(uintptr_t address) {
   uintptr_t super_page = address & kSuperPageBaseMask;
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   PA_DCHECK(IsReservationStart(super_page));
   auto* extent = PartitionSuperPageToExtent<thread_safe>(super_page);
   PA_DCHECK(IsWithinSuperPagePayload(address,
@@ -605,13 +604,13 @@
 PA_ALWAYS_INLINE SlotSpanMetadata<thread_safe>*
 SlotSpanMetadata<thread_safe>::FromSlotStart(uintptr_t slot_start) {
   auto* slot_span = FromAddr(slot_start);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Checks that the pointer is a multiple of slot size.
   uintptr_t slot_span_start = ToSlotSpanStart(slot_span);
   PA_DCHECK(!((::partition_alloc::internal::UnmaskPtr(slot_start) -
                ::partition_alloc::internal::UnmaskPtr(slot_span_start)) %
               slot_span->bucket->slot_size));
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   return slot_span;
 }
 
@@ -624,7 +623,7 @@
 SlotSpanMetadata<thread_safe>::FromObject(void* object) {
   uintptr_t object_addr = PartitionRoot<thread_safe>::ObjectPtr2Addr(object);
   auto* slot_span = FromAddr(object_addr);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Checks that the object is exactly |extras_offset| away from a multiple of
   // slot size (i.e. from a slot start).
   uintptr_t slot_span_start = ToSlotSpanStart(slot_span);
@@ -633,7 +632,7 @@
              ::partition_alloc::internal::UnmaskPtr(slot_span_start)) %
                 slot_span->bucket->slot_size ==
             root->flags.extras_offset);
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   return slot_span;
 }
 
@@ -646,7 +645,7 @@
 PA_ALWAYS_INLINE SlotSpanMetadata<thread_safe>*
 SlotSpanMetadata<thread_safe>::FromObjectInnerAddr(uintptr_t address) {
   auto* slot_span = FromAddr(address);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Checks that the address is within the expected object boundaries.
   uintptr_t slot_span_start = ToSlotSpanStart(slot_span);
   auto* root = PartitionRoot<thread_safe>::FromSlotSpan(slot_span);
@@ -656,7 +655,7 @@
   // Use <= to allow an address immediately past the object.
   PA_DCHECK(shift_from_slot_start <=
             root->flags.extras_offset + slot_span->GetUsableSize(root));
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   return slot_span;
 }
 template <bool thread_safe>
@@ -712,7 +711,7 @@
 PA_ALWAYS_INLINE void SlotSpanMetadata<thread_safe>::Free(uintptr_t slot_start)
     PA_EXCLUSIVE_LOCKS_REQUIRED(
         PartitionRoot<thread_safe>::FromSlotSpan(this)->lock_) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   auto* root = PartitionRoot<thread_safe>::FromSlotSpan(this);
   root->lock_.AssertAcquired();
 #endif
@@ -746,7 +745,7 @@
     size_t number_of_freed)
     PA_EXCLUSIVE_LOCKS_REQUIRED(
         PartitionRoot<thread_safe>::FromSlotSpan(this)->lock_) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   auto* root = PartitionRoot<thread_safe>::FromSlotSpan(this);
   root->lock_.AssertAcquired();
   PA_DCHECK(!tail->GetNext(bucket->slot_size));
@@ -857,7 +856,7 @@
 void IterateSlotSpans(uintptr_t super_page,
                       bool with_quarantine,
                       Callback callback) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   PA_DCHECK(!(super_page % kSuperPageAlignment));
   auto* extent_entry = PartitionSuperPageToExtent<thread_safe>(super_page);
   extent_entry->root->lock_.AssertAcquired();
diff --git a/base/allocator/partition_allocator/partition_ref_count.h b/base/allocator/partition_allocator/partition_ref_count.h
index 0daab679..73288a36 100644
--- a/base/allocator/partition_allocator/partition_ref_count.h
+++ b/base/allocator/partition_allocator/partition_ref_count.h
@@ -17,7 +17,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_forward.h"
 #include "base/allocator/partition_allocator/tagging.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 #if BUILDFLAG(ENABLE_DANGLING_RAW_PTR_CHECKS)
@@ -332,12 +331,12 @@
 PA_ALWAYS_INLINE PartitionRefCount* PartitionRefCountPointer(
     uintptr_t slot_start) {
   PA_DCHECK(slot_start == ::partition_alloc::internal::RemaskPtr(slot_start));
-#if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
+#if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
   CheckThatSlotOffsetIsZero(slot_start);
 #endif
   if (PA_LIKELY(slot_start & SystemPageOffsetMask())) {
     uintptr_t refcount_address = slot_start - sizeof(PartitionRefCount);
-#if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
+#if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
     PA_CHECK(refcount_address % alignof(PartitionRefCount) == 0);
 #endif
     return reinterpret_cast<PartitionRefCount*>(refcount_address);
@@ -346,7 +345,7 @@
         (slot_start & kSuperPageBaseMask) + SystemPageSize() * 2);
     size_t index = ((slot_start & kSuperPageOffsetMask) >> SystemPageShift()) *
                    kPartitionRefCountIndexMultiplier;
-#if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
+#if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
     PA_CHECK(sizeof(PartitionRefCount) * index <= SystemPageSize());
 #endif
     return bitmap_base + index;
@@ -367,7 +366,7 @@
 
 PA_ALWAYS_INLINE PartitionRefCount* PartitionRefCountPointer(
     uintptr_t slot_start) {
-#if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
+#if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
   CheckThatSlotOffsetIsZero(slot_start);
 #endif
   return reinterpret_cast<PartitionRefCount*>(slot_start);
diff --git a/base/allocator/partition_allocator/partition_root.cc b/base/allocator/partition_allocator/partition_root.cc
index 5875ec1f..c9a0c51 100644
--- a/base/allocator/partition_allocator/partition_root.cc
+++ b/base/allocator/partition_allocator/partition_root.cc
@@ -555,7 +555,7 @@
   }
 }
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 void DCheckIfManagedByPartitionAllocBRPPool(uintptr_t address) {
   PA_DCHECK(IsManagedByPartitionAllocBRPPool(address));
 }
@@ -869,7 +869,7 @@
   size_t available_reservation_size =
       current_reservation_size - extent->padding_for_alignment -
       PartitionRoot<thread_safe>::GetDirectMapMetadataAndGuardPagesSize();
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   uintptr_t reservation_start = slot_start & internal::kSuperPageBaseMask;
   PA_DCHECK(internal::IsReservationStart(reservation_start));
   PA_DCHECK(slot_start + available_reservation_size ==
@@ -899,7 +899,7 @@
     // entries in the reservation offset table (for entire reservation_size
     // region) have been already initialized.
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     memset(reinterpret_cast<void*>(slot_start + current_slot_size),
            internal::kUninitializedByte, recommit_slot_size_growth);
 #endif
@@ -916,7 +916,7 @@
   IncreaseTotalSizeOfAllocatedBytes(reinterpret_cast<uintptr_t>(slot_span),
                                     slot_span->bucket->slot_size, raw_size);
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Write a new trailing cookie.
   if (flags.allow_cookie) {
     auto* object =
@@ -948,23 +948,25 @@
   // memory as we're already using, so re-use the allocation after updating
   // statistics (and cookie, if present).
   if (slot_span->CanStoreRawSize()) {
-#if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && DCHECK_IS_ON()
+#if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && BUILDFLAG(PA_DCHECK_IS_ON)
     uintptr_t slot_start = ObjectToSlotStart(ptr);
     internal::PartitionRefCount* old_ref_count;
     if (brp_enabled()) {
       old_ref_count = internal::PartitionRefCountPointer(slot_start);
     }
-#endif  // BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && DCHECK_IS_ON()
+#endif  // BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) &&
+        // BUILDFLAG(PA_DCHECK_IS_ON)
     size_t new_raw_size = AdjustSizeForExtrasAdd(new_size);
     slot_span->SetRawSize(new_raw_size);
-#if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && DCHECK_IS_ON()
+#if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && BUILDFLAG(PA_DCHECK_IS_ON)
     if (brp_enabled()) {
       internal::PartitionRefCount* new_ref_count =
           internal::PartitionRefCountPointer(slot_start);
       PA_DCHECK(new_ref_count == old_ref_count);
     }
-#endif  // BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && DCHECK_IS_ON()
-#if DCHECK_IS_ON()
+#endif  // BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) &&
+        // BUILDFLAG(PA_DCHECK_IS_ON)
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     // Write a new trailing cookie only when it is possible to keep track
     // raw size (otherwise we wouldn't know where to look for it later).
     if (flags.allow_cookie) {
@@ -972,7 +974,7 @@
           reinterpret_cast<unsigned char*>(address) +
           slot_span->GetUsableSize(this));
     }
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   }
   return ptr;
 }
diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h
index 2fbb16f..0f9173d 100644
--- a/base/allocator/partition_allocator/partition_root.h
+++ b/base/allocator/partition_allocator/partition_root.h
@@ -67,7 +67,6 @@
 #include "base/allocator/partition_allocator/tagging.h"
 #include "base/allocator/partition_allocator/thread_cache.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "base/debug/debugging_buildflags.h"
 #include "build/build_config.h"
 #include "build/chromecast_buildflags.h"
@@ -106,7 +105,7 @@
 namespace internal {
 // Avoid including partition_address_space.h from this .h file, by moving the
 // call to IsManagedByPartitionAllocBRPPool into the .cc file.
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 BASE_EXPORT void DCheckIfManagedByPartitionAllocBRPPool(uintptr_t address);
 #else
 PA_ALWAYS_INLINE void DCheckIfManagedByPartitionAllocBRPPool(
@@ -893,7 +892,7 @@
   auto* slot_span = &page->slot_span_metadata;
   uintptr_t slot_start =
       SlotSpanMetadata<ThreadSafe>::ToSlotSpanStart(slot_span);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   auto* metadata =
       PartitionDirectMapMetadata<ThreadSafe>::FromSlotSpan(slot_span);
   size_t padding_for_alignment =
@@ -901,7 +900,7 @@
   PA_DCHECK(padding_for_alignment == (page - first_page) * PartitionPageSize());
   PA_DCHECK(slot_start ==
             reservation_start + PartitionPageSize() + padding_for_alignment);
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   return slot_start;
 }
 
@@ -1239,7 +1238,7 @@
   // For more context, see the other "Layout inside the slot" comment inside
   // AllocWithFlagsNoHooks().
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   if (flags.allow_cookie) {
     // Verify the cookie after the allocated region.
     // If this assert fires, you probably corrupted memory.
@@ -1737,7 +1736,7 @@
       // Keep it in sync!
       usable_size = AdjustSizeForExtrasSubtract(slot_size);
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
       // Make sure that the allocated pointer comes from the same place it would
       // for a non-thread cache allocation.
       SlotSpan* slot_span = SlotSpan::FromSlotStart(slot_start);
@@ -1780,7 +1779,7 @@
   //     (f) slot_size
   // Notes:
   // - Ref-count may or may not exist in the slot, depending on brp_enabled().
-  // - Cookie exists only in the DCHECK_IS_ON() case.
+  // - Cookie exists only in the BUILDFLAG(PA_DCHECK_IS_ON) case.
   // - Think of raw_size as the minimum size required internally to satisfy
   //   the allocation request (i.e. requested_size + extras)
   // - Note, at most one "empty" or "unused" space can occur at a time. It
@@ -1811,7 +1810,7 @@
 
   void* object = SlotStartToObject(slot_start);
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Add the cookie after the allocation.
   if (this->flags.allow_cookie) {
     internal::PartitionCookieWriteValue(static_cast<unsigned char*>(object) +
diff --git a/base/allocator/partition_allocator/partition_tag.h b/base/allocator/partition_allocator/partition_tag.h
index d8e3a5a..d8b5965 100644
--- a/base/allocator/partition_allocator/partition_tag.h
+++ b/base/allocator/partition_allocator/partition_tag.h
@@ -19,7 +19,6 @@
 #include "base/allocator/partition_allocator/partition_tag_bitmap.h"
 #include "base/allocator/partition_allocator/reservation_offset_table.h"
 #include "base/allocator/partition_allocator/tagging.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc {
@@ -95,7 +94,7 @@
   PartitionTag new_tag = tag;
   ++new_tag;
   new_tag += !new_tag;  // Avoid 0.
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // This verifies that tags for the entire slot have the same value and that
   // |size| doesn't exceed the slot size.
   size_t tag_count = size >> tag_bitmap::kBytesPerPartitionTagShift;
diff --git a/base/allocator/partition_allocator/reservation_offset_table.h b/base/allocator/partition_allocator/reservation_offset_table.h
index 2c614d4..0aee5f2 100644
--- a/base/allocator/partition_allocator/reservation_offset_table.h
+++ b/base/allocator/partition_allocator/reservation_offset_table.h
@@ -18,7 +18,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_constants.h"
 #include "base/allocator/partition_allocator/tagging.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc::internal {
@@ -166,20 +165,20 @@
 // If the given address doesn't point to direct-map allocated memory,
 // returns 0.
 PA_ALWAYS_INLINE uintptr_t GetDirectMapReservationStart(uintptr_t address) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   bool is_in_brp_pool = IsManagedByPartitionAllocBRPPool(address);
   bool is_in_regular_pool = IsManagedByPartitionAllocRegularPool(address);
   // When USE_BACKUP_REF_PTR is off, BRP pool isn't used.
 #if !BUILDFLAG(USE_BACKUP_REF_PTR)
   PA_DCHECK(!is_in_brp_pool);
 #endif
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
   uint16_t* offset_ptr = ReservationOffsetPointer(address);
   PA_DCHECK(*offset_ptr != kOffsetTagNotAllocated);
   if (*offset_ptr == kOffsetTagNormalBuckets)
     return 0;
   uintptr_t reservation_start = ComputeReservationStart(address, offset_ptr);
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   // Make sure the reservation start is in the same pool as |address|.
   // In the 32-bit mode, the beginning of a reservation may be excluded from the
   // BRP pool, so shift the pointer. The other pools don't have this logic.
@@ -194,7 +193,7 @@
   PA_DCHECK(is_in_regular_pool ==
             IsManagedByPartitionAllocRegularPool(reservation_start));
   PA_DCHECK(*ReservationOffsetPointer(reservation_start) == 0);
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
   return reservation_start;
 }
diff --git a/base/allocator/partition_allocator/thread_cache.cc b/base/allocator/partition_allocator/thread_cache.cc
index bc6e9cf9..8d0625d5 100644
--- a/base/allocator/partition_allocator/thread_cache.cc
+++ b/base/allocator/partition_allocator/thread_cache.cc
@@ -10,6 +10,7 @@
 #include <atomic>
 #include <cstdint>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/cxx17_backports.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/immediate_crash.h"
 #include "base/allocator/partition_allocator/partition_alloc_check.h"
@@ -17,7 +18,6 @@
 #include "base/allocator/partition_allocator/partition_alloc_constants.h"
 #include "base/allocator/partition_allocator/partition_root.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 namespace partition_alloc {
@@ -167,7 +167,7 @@
   internal::ScopedGuard scoped_locker(GetLock());
   ThreadCache* tcache = list_head_;
   while (tcache) {
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
     // Before fork(), locks are acquired in the parent process. This means that
     // a concurrent allocation in the parent which must be filled by the central
     // allocator (i.e. the thread cache bucket is empty) will block inside the
diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h
index 3ae585a..e7393fd6 100644
--- a/base/allocator/partition_allocator/thread_cache.h
+++ b/base/allocator/partition_allocator/thread_cache.h
@@ -10,6 +10,7 @@
 #include <limits>
 #include <memory>
 
+#include "base/allocator/buildflags.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/gtest_prod_util.h"
 #include "base/allocator/partition_allocator/partition_alloc_base/thread_annotations.h"
@@ -22,7 +23,6 @@
 #include "base/allocator/partition_allocator/partition_stats.h"
 #include "base/allocator/partition_allocator/partition_tls.h"
 #include "base/base_export.h"
-#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 
 #if defined(ARCH_CPU_X86_64) && defined(PA_HAS_64_BITS_POINTERS)
@@ -183,7 +183,7 @@
   } while (0)
 #endif  // defined(PA_THREAD_CACHE_ENABLE_STATISTICS)
 
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
 
 namespace internal {
 
@@ -205,13 +205,13 @@
 #define PA_REENTRANCY_GUARD(x) \
   internal::ReentrancyGuard guard { x }
 
-#else  // DCHECK_IS_ON()
+#else  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 #define PA_REENTRANCY_GUARD(x) \
   do {                         \
   } while (0)
 
-#endif  // DCHECK_IS_ON()
+#endif  // BUILDFLAG(PA_DCHECK_IS_ON)
 
 // Per-thread cache. *Not* threadsafe, must only be accessed from a single
 // thread.
@@ -422,7 +422,7 @@
   PartitionRoot<>* const root_;
 
   const internal::base::PlatformThreadId thread_id_;
-#if DCHECK_IS_ON()
+#if BUILDFLAG(PA_DCHECK_IS_ON)
   bool is_in_thread_cache_ = false;
 #endif
 
diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py
index 6fd132f..ad16a8a 100755
--- a/build/android/gyp/proguard.py
+++ b/build/android/gyp/proguard.py
@@ -464,6 +464,10 @@
         'com.google.common.flogger.backend.google.GooglePlatform',
         'com.google.common.flogger.backend.system.DefaultPlatform',
 
+        # trichrome_webview_google_bundle contains this missing reference.
+        # TODO(crbug.com/1142530): Fix this missing reference properly.
+        'org.chromium.build.NativeLibraries',
+
         # TODO(agrieve): Exclude these only when use_jacoco_coverage=true.
         'java.lang.instrument.ClassFileTransformer',
         'java.lang.instrument.IllegalClassFormatException',
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 6c119948..1a9b3736 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -2133,7 +2133,6 @@
   #     uncompressed in the APK. Must be unset or true if load_library_from_apk
   #     is set to true.
   #   uncompress_dex: Store final .dex files uncompressed in the apk.
-  #   omit_dex: If true, do not build or include classes.dex.
   #   strip_resource_names: True if resource names should be stripped from the
   #     resources.arsc file in the apk or module.
   #   strip_unused_resources: True if unused resources should be stripped from
@@ -2216,7 +2215,6 @@
           defined(invoker.is_base_module) && invoker.is_base_module
     }
 
-    _omit_dex = defined(invoker.omit_dex) && invoker.omit_dex
     _enable_multidex =
         !defined(invoker.enable_multidex) || invoker.enable_multidex
 
@@ -2360,13 +2358,12 @@
     _rebased_build_config = rebase_path(_build_config, root_build_dir)
     assert(_rebased_build_config != "")  # Mark as used.
 
-    _generate_buildconfig_java = !defined(invoker.apk_under_test) && !_omit_dex
+    _generate_buildconfig_java = !defined(invoker.apk_under_test)
     if (defined(invoker.generate_buildconfig_java)) {
       _generate_buildconfig_java = invoker.generate_buildconfig_java
     }
 
-    _generate_productconfig_java =
-        defined(invoker.product_config_java_packages) && !_omit_dex
+    _generate_productconfig_java = defined(invoker.product_config_java_packages)
 
     # JNI generation usually goes hand-in-hand with buildconfig generation.
     _generate_final_jni = _generate_buildconfig_java
@@ -2430,7 +2427,7 @@
       _incremental_apk_path = "${_final_apk_path_no_ext}_incremental.apk"
     }
 
-    if (!_incremental_apk && !_omit_dex) {
+    if (!_incremental_apk) {
       # Bundle modules don't build the dex here, but need to write this path
       # to their .build_config.json file.
       if (_proguard_enabled) {
@@ -2687,9 +2684,8 @@
     } else {
       _generate_native_libraries_java =
           (!_is_bundle_module || _is_base_module) &&
-          (_native_libs_deps != [] || _secondary_abi_native_libs_deps != [] ||
-           defined(invoker.static_library_provider)) &&
-          !_uses_static_library_synchronized_proguard && !_omit_dex
+          (_native_libs_deps != [] || _secondary_abi_native_libs_deps != []) &&
+          !_uses_static_library_synchronized_proguard
     }
     if (_generate_native_libraries_java) {
       write_native_libraries_java("${_template_name}__native_libraries") {
@@ -2698,17 +2694,7 @@
         # Do not add a dep on the generated_file target in order to avoid having
         # to build the native libraries before this target. The dependency is
         # instead captured via a depfile.
-        if (_uses_static_library) {
-          _prefix = get_label_info(invoker.static_library_provider,
-                                   "target_gen_dir") + "/" +
-                    get_label_info(invoker.static_library_provider, "name")
-          if (defined(invoker.static_library_provider_use_secondary_abi) &&
-              invoker.static_library_provider_use_secondary_abi) {
-            native_libraries_list_file = "${_prefix}.secondary_abi_native_libs"
-          } else {
-            native_libraries_list_file = "${_prefix}.native_libs"
-          }
-        } else if (_native_libs_deps != []) {
+        if (_native_libs_deps != []) {
           native_libraries_list_file = _shared_library_list_file
         } else {
           native_libraries_list_file = _secondary_abi_shared_library_list_file
@@ -2804,15 +2790,14 @@
                  ])
     }
 
+    _java_target = "${_template_name}__java"
+
     if (_is_bundle_module) {
       _add_view_trace_events =
           defined(invoker.add_view_trace_events) &&
           invoker.add_view_trace_events && enable_trace_event_bytecode_rewriting
     }
 
-    # We cannot skip this target when omit_dex = true because it writes the
-    # build_config.json.
-    _java_target = "${_template_name}__java"
     java_library_impl(_java_target) {
       forward_variables_from(invoker,
                              [
@@ -2944,7 +2929,7 @@
 
     if (_uses_static_library_synchronized_proguard) {
       _final_dex_target_dep = "${invoker.static_library_provider}__dexsplitter"
-    } else if ((_is_bundle_module && _proguard_enabled) || _omit_dex) {
+    } else if (_is_bundle_module && _proguard_enabled) {
       _final_deps += [ ":$_java_target" ]
     } else if (_incremental_apk) {
       if (defined(invoker.enable_proguard_checks)) {
@@ -3220,7 +3205,7 @@
         deps = _deps + [ ":$_build_config_target" ]
 
         if ((!_proguard_enabled || _incremental_apk) &&
-            enable_jdk_library_desugaring && !_omit_dex) {
+            enable_jdk_library_desugaring) {
           _all_jdk_libs = "//build/android:all_jdk_libs"
           deps += [ _all_jdk_libs ]
           jdk_libs_dex = get_label_info(_all_jdk_libs, "target_out_dir") +
@@ -3500,7 +3485,6 @@
                                "expected_libs_and_assets_base",
                                "generate_buildconfig_java",
                                "generate_final_jni",
-                               "generate_native_libraries_java",
                                "include_size_info",
                                "input_jars_paths",
                                "use_modern_linker",
@@ -3525,7 +3509,6 @@
                                "native_lib_placeholders",
                                "never_incremental",
                                "no_xml_namespaces",
-                               "omit_dex",
                                "png_to_webp",
                                "post_process_package_resources_script",
                                "processor_args_javac",
@@ -3550,7 +3533,6 @@
                                "srcjar_deps",
                                "static_library_dependent_targets",
                                "static_library_provider",
-                               "static_library_provider_use_secondary_abi",
                                "static_library_synchronized_proguard",
                                "target_sdk_version",
                                "testonly",
@@ -3650,7 +3632,6 @@
                                "load_library_from_apk",
                                "loadable_modules",
                                "product_config_java_packages",
-                               "main_component_library",
                                "manifest_package",
                                "max_sdk_version",
                                "min_sdk_version",
@@ -3679,7 +3660,6 @@
                                "short_resource_paths",
                                "srcjar_deps",
                                "static_library_provider",
-                               "static_library_provider_use_secondary_abi",
                                "static_library_synchronized_proguard",
                                "strip_resource_names",
                                "strip_unused_resources",
diff --git a/build/config/fuchsia/fuchsia_package_metadata.gni b/build/config/fuchsia/fuchsia_package_metadata.gni
new file mode 100644
index 0000000..f56ec90b
--- /dev/null
+++ b/build/config/fuchsia/fuchsia_package_metadata.gni
@@ -0,0 +1,38 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_fuchsia)
+
+# Generates a metadata file under root_gen_dir which provides information about
+# a Fuchsia package.
+# Parameters:
+#   package_deps: An array of package_paths which specify the location of all
+#                 .far files that the package depends on.
+template("fuchsia_package_metadata") {
+  _pkg_dir = "$root_out_dir/gen/" + get_label_info(invoker.package, "dir") +
+             "/" + target_name
+  _pkg_path = "$_pkg_dir/${target_name}.far"
+  pkg_dep_paths = [ rebase_path(_pkg_path, root_build_dir) ]
+  if (defined(invoker.package_deps)) {
+    foreach(package_dep, invoker.package_deps) {
+      _pkg_dep_target = package_dep[0]
+      _pkg_dep_name = package_dep[1]
+      pkg_dep_path =
+          rebase_path(get_label_info(_pkg_dep_target, "target_gen_dir") + "/" +
+                          _pkg_dep_name + "/" + _pkg_dep_name + ".far",
+                      root_build_dir)
+      pkg_dep_paths += [ pkg_dep_path ]
+    }
+  }
+
+  pkg_metadata = "${target_name}_script_meta"
+  generated_file(pkg_metadata) {
+    forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
+    contents = {
+      packages = pkg_dep_paths
+    }
+    output_conversion = "json"
+    outputs = [ "$root_gen_dir/package_metadata/${invoker.target_name}.meta" ]
+  }
+}
diff --git a/build/config/fuchsia/generate_runner_scripts.gni b/build/config/fuchsia/generate_runner_scripts.gni
index f2a4e0a..29cb498 100644
--- a/build/config/fuchsia/generate_runner_scripts.gni
+++ b/build/config/fuchsia/generate_runner_scripts.gni
@@ -6,6 +6,7 @@
 
 import("//build/config/chromecast_build.gni")
 import("//build/config/fuchsia/config.gni")
+import("//build/config/fuchsia/fuchsia_package_metadata.gni")
 import("//build/config/fuchsia/package.gni")
 import("//build/config/gclient_args.gni")
 import("//build/config/sysroot.gni")
@@ -87,12 +88,15 @@
                                  "executable_args",
                                  "data",
                                  "include_fuchsia_build_dir",
+                                 "metadata_deps",
                                  "target",
                                ])
 
     wrapper_script = _generated_script_path
-
     deps = [ invoker.package ]
+    if (defined(metadata_deps)) {
+      deps += metadata_deps
+    }
 
     if (!defined(data_deps)) {
       data_deps = []
@@ -100,6 +104,7 @@
     data_deps += [ "//build/config/fuchsia:deployment_resources" ]
 
     _combined_package_list = [ invoker.package ]
+
     if (defined(invoker.package_deps)) {
       foreach(package_dep, invoker.package_deps) {
         _combined_package_list += [ package_dep[0] ]
@@ -171,6 +176,21 @@
 # Generates a script which deploys a package to the TUF repo of a Fuchsia
 # build output directory.
 template("fuchsia_package_installer") {
+  if (defined(invoker.package_name)) {
+    pkg_shortname = invoker.package_name
+  } else {
+    pkg_shortname = get_label_info(invoker.package, "name")
+  }
+  fuchsia_package_metadata(pkg_shortname) {
+    forward_variables_from(invoker,
+                           TESTONLY_AND_VISIBILITY + [
+                                 "package",
+                                 "package_deps",
+                               ])
+  }
+  if (!defined(data_deps)) {
+    data_deps = []
+  }
   fuchsia_run_script_with_packages(target_name) {
     forward_variables_from(invoker,
                            "*",
@@ -182,6 +202,7 @@
     executable = rebase_path("//build/fuchsia/deploy_to_pkg_repo.py")
     output_name_format = "deploy_%package%"
     include_fuchsia_build_dir = true
+    metadata_deps = [ ":${pkg_shortname}_script_meta" ]
   }
 }
 
diff --git a/build/config/ios/ios_sdk.gni b/build/config/ios/ios_sdk.gni
index b33a07b0..f827744 100644
--- a/build/config/ios/ios_sdk.gni
+++ b/build/config/ios/ios_sdk.gni
@@ -46,7 +46,7 @@
   # Prefix for CFBundleIdentifier property of iOS bundles (correspond to the
   # "Organization Identifier" in Xcode). Code signing will fail if no mobile
   # provisioning for the selected code signing identify support that prefix.
-  ios_app_bundle_id_prefix = "org.chromium"
+  ios_app_bundle_id_prefix = "org.chromium.ost"
 
   # Paths to the mobileprovision files for the chosen code signing
   # identity description and app bundle id prefix.
diff --git a/build/config/ozone.gni b/build/config/ozone.gni
index ef8590d..836300a 100644
--- a/build/config/ozone.gni
+++ b/build/config/ozone.gni
@@ -61,9 +61,6 @@
   # Compile the 'wayland' platform.
   ozone_platform_wayland = false
 
-  # Compile the 'windows' platform.
-  ozone_platform_windows = false
-
   if (ozone_auto_platforms) {
     # Use headless as the default platform unless modified below.
     ozone_platform = "headless"
@@ -95,9 +92,6 @@
       ozone_platform = "x11"
       ozone_platform_wayland = true
       ozone_platform_x11 = true
-    } else if (is_win) {
-      ozone_platform = "windows"
-      ozone_platform_windows = true
     } else if (is_fuchsia) {
       ozone_platform = "scenic"
       ozone_platform_scenic = true
@@ -120,12 +114,11 @@
 ozone_external_platform_visibility = [ "$_ozone_extra_directory/*" ]
 
 if (is_a_target_toolchain) {
-  assert(
-      use_ozone || !(ozone_platform_cast || ozone_platform_drm ||
-                         ozone_platform_flatland || ozone_platform_headless ||
-                         ozone_platform_x11 || ozone_platform_wayland ||
-                         ozone_platform_windows || ozone_platform_scenic),
-      "Must set use_ozone to select ozone platforms")
+  assert(use_ozone || !(ozone_platform_cast || ozone_platform_drm ||
+                            ozone_platform_flatland ||
+                            ozone_platform_headless || ozone_platform_x11 ||
+                            ozone_platform_wayland || ozone_platform_scenic),
+         "Must set use_ozone to select ozone platforms")
 }
 
 # TODO(petermcneeley): Backwards compatiblity support for VM images.
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1
index 074f8b8..8fd6b4e 100644
--- a/build/fuchsia/linux_internal.sdk.sha1
+++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@
-8.20220526.4.1
+8.20220527.1.1
diff --git a/build/fuchsia/test/.style.yapf b/build/fuchsia/test/.style.yapf
new file mode 100644
index 0000000..557fa7b
--- /dev/null
+++ b/build/fuchsia/test/.style.yapf
@@ -0,0 +1,2 @@
+[style]
+based_on_style = pep8
diff --git a/build/fuchsia/test/PRESUBMIT.py b/build/fuchsia/test/PRESUBMIT.py
new file mode 100644
index 0000000..cba0965a
--- /dev/null
+++ b/build/fuchsia/test/PRESUBMIT.py
@@ -0,0 +1,27 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Top-level presubmit script for build/fuchsia/test.
+
+See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
+for more details about the presubmit API built into depot_tools.
+"""
+
+USE_PYTHON3 = True
+
+
+# pylint: disable=invalid-name,missing-function-docstring
+def CommonChecks(input_api, output_api):
+    pylint_checks = input_api.canned_checks.GetPylint(input_api,
+                                                      output_api,
+                                                      pylintrc='pylintrc',
+                                                      version='2.7')
+    return input_api.RunTests(pylint_checks)
+
+
+def CheckChangeOnUpload(input_api, output_api):
+    return CommonChecks(input_api, output_api)
+
+
+def CheckChangeOnCommit(input_api, output_api):
+    return CommonChecks(input_api, output_api)
diff --git a/build/fuchsia/test/common.py b/build/fuchsia/test/common.py
new file mode 100644
index 0000000..edb9bd2d
--- /dev/null
+++ b/build/fuchsia/test/common.py
@@ -0,0 +1,148 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Common methods and variables used by Cr-Fuchsia testing infrastructure."""
+
+import json
+import logging
+import os
+import platform
+import re
+import subprocess
+
+from argparse import ArgumentParser
+from typing import List, Optional
+
+DIR_SRC_ROOT = os.path.abspath(
+    os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir))
+REPO_ALIAS = 'chromium-test-package-server'
+SDK_ROOT = os.path.join(DIR_SRC_ROOT, 'third_party', 'fuchsia-sdk', 'sdk')
+
+
+def get_host_arch() -> str:
+    """Retrieve CPU architecture of the host machine. """
+    host_arch = platform.machine()
+    # platform.machine() returns AMD64 on 64-bit Windows.
+    if host_arch in ['x86_64', 'AMD64']:
+        return 'x64'
+    if host_arch == 'aarch64':
+        return 'arm64'
+    raise Exception('Unsupported host architecture: %s' % host_arch)
+
+
+SDK_TOOLS_DIR = os.path.join(SDK_ROOT, 'tools', get_host_arch())
+
+
+def _run_repair_command(output):
+    """Scans |output| for a self-repair command to run and, if found, runs it.
+
+    Returns:
+      True if a repair command was found and ran successfully. False otherwise.
+    """
+    # Check for a string along the lines of:
+    # "Run `ffx doctor --restart-daemon` for further diagnostics."
+    match = re.search('`ffx ([^`]+)`', output)
+    if not match or len(match.groups()) != 1:
+        return False  # No repair command found.
+    args = match.groups()[0].split()
+
+    try:
+        run_ffx_command(args, suppress_repair=True)
+    except subprocess.CalledProcessError:
+        return False  # Repair failed.
+    return True  # Repair succeeded.
+
+
+def run_ffx_command(cmd: List[str],
+                    check=True,
+                    suppress_repair=False,
+                    **kwargs) -> subprocess.CompletedProcess:
+    """Runs `ffx` with the given arguments, waiting for it to exit.
+
+    If `ffx` exits with a non-zero exit code, the output is scanned for a
+    recommended repair command (e.g., "Run `ffx doctor --restart-daemon` for
+    further diagnostics."). If such a command is found, it is run and then the
+    original command is retried. This behavior can be suppressed via the
+    `suppress_repair` argument.
+
+    Args:
+        cmd: A sequence of arguments to ffx.
+        check: If True, CalledProcessError is raised if ffx returns a non-zero
+            exit code.
+        suppress_repair: If True, do not attempt to find and run a repair
+            command.
+    Returns:
+        A CompletedProcess instance
+    Raises:
+        CalledProcessError if |check| is true.
+    """
+    _ffx_tool = os.path.join(SDK_TOOLS_DIR, 'ffx')
+    try:
+        proc = subprocess.run([_ffx_tool] + cmd, check=check, **kwargs)
+        if check and proc.returncode != 0:
+            raise subprocess.CalledProcessError(proc.returncode, cmd,
+                                                proc.stdout)
+        return proc
+    except subprocess.CalledProcessError as cpe:
+        if suppress_repair or not _run_repair_command(cpe.output):
+            raise
+        repair_succeeded = True
+        return run_ffx_command(cmd, suppress_repair=True, **kwargs)
+
+    # If the original command failed but a repair command was found and
+    # succeeded, try one more time with the original command.
+    if repair_succeeded:
+        return run_ffx_command(cmd, check, suppress_repair=True)
+
+
+def run_ffx_target_command(cmd: List[str], target: Optional[str] = None
+                           ) -> subprocess.CompletedProcess:
+    """Runs an ffx target command, optionally specifying the target to use."""
+    prefix = []
+    if target:
+        prefix.extend(['--target', target])
+    return run_ffx_command(prefix + ['target'] + cmd)
+
+
+def read_package_paths(out_dir: str, pkg_name: str) -> List[str]:
+    """
+    Returns:
+        A list of the absolute path to all FAR files the package depends on.
+    """
+    with open(os.path.join(DIR_SRC_ROOT, out_dir, 'gen',
+                           f'{pkg_name}.meta')) as meta_file:
+        data = json.load(meta_file)
+    packages = []
+    for package in data['packages']:
+        packages.append(os.path.join(DIR_SRC_ROOT, out_dir, package))
+    return packages
+
+
+def register_common_args(parser: ArgumentParser) -> None:
+    """Register commonly used arguments."""
+    common_args = parser.add_argument_group('common', 'common arguments')
+    common_args.add_argument(
+        '--out-dir',
+        '-C',
+        type=os.path.realpath,
+        help=('Path to the directory in which build files are located. '
+              'Defaults to current directory.'))
+
+
+def resolve_packages(packages: List[str]) -> None:
+    """Ensure that all |packages| are installed on a device."""
+    for package in packages:
+        # Try destroying the component to force an update.
+        try:
+            run_ffx_command(
+                ['component', 'destroy', f'/core/ffx-laboratory:{package}'],
+                check=False)
+        except subprocess.CalledProcessError:
+            logging.warning('Creating new component')
+
+        run_ffx_command([
+            'component', 'create', f'/core/ffx-laboratory:{package}',
+            f'fuchsia-pkg://{REPO_ALIAS}/{package}#meta/{package}.cm'
+        ])
+        run_ffx_command(
+            ['component', 'resolve', f'/core/ffx-laboratory:{package}'])
diff --git a/build/fuchsia/test/publish_package.py b/build/fuchsia/test/publish_package.py
new file mode 100755
index 0000000..d5cf012
--- /dev/null
+++ b/build/fuchsia/test/publish_package.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Implements commands for managing Fuchsia repos via the pm tool."""
+
+import argparse
+import os
+import subprocess
+import sys
+
+from common import SDK_TOOLS_DIR
+
+_pm_tool = os.path.join(SDK_TOOLS_DIR, 'pm')
+
+
+def publish_packages(packages, repo: str, new_repo: bool = False) -> None:
+    """Publish packages to a repo directory, initializing it if necessary."""
+    if new_repo:
+        subprocess.run([_pm_tool, 'newrepo', '-repo', repo], check=True)
+    for package in packages:
+        subprocess.run([_pm_tool, 'publish', '-a', '-r', repo, '-f', package],
+                       check=True)
+
+
+def register_package_args(parser: argparse.ArgumentParser,
+                          allow_temp_repo: bool = False) -> None:
+    """Register common arguments for package publishing."""
+    package_args = parser.add_argument_group(
+        'package', 'Arguments for package publishing.')
+    package_args.add_argument('--packages',
+                              action='append',
+                              help='Paths of the package archives to install')
+    package_args.add_argument('--repo',
+                              help='Directory packages will be published to.')
+    if allow_temp_repo:
+        package_args.add_argument(
+            '--no-repo-init',
+            action='store_true',
+            default=False,
+            help='Do not initialize the package repository.')
+
+
+def main():
+    """Stand-alone function for publishing packages."""
+    parser = argparse.ArgumentParser()
+    register_package_args(parser)
+    args = parser.parse_args()
+    publish_packages(args.packages, args.repo)
+
+
+if __name__ == '__main__':
+    sys.exit(main())
diff --git a/build/fuchsia/test/pylintrc b/build/fuchsia/test/pylintrc
new file mode 100644
index 0000000..3ff0b5c
--- /dev/null
+++ b/build/fuchsia/test/pylintrc
@@ -0,0 +1,8 @@
+[MESSAGES CONTROL]
+
+# Suppression for invalid-name error for PRESUBMIT.py file.
+good-names=f,PRESUBMIT
+
+[REPORTS]
+
+reports=no
\ No newline at end of file
diff --git a/build/fuchsia/test/run_blink_test.py b/build/fuchsia/test/run_blink_test.py
new file mode 100644
index 0000000..27809b3
--- /dev/null
+++ b/build/fuchsia/test/run_blink_test.py
@@ -0,0 +1,28 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Implements commands for running blink web tests."""
+
+import os
+import subprocess
+
+from common import DIR_SRC_ROOT, resolve_packages
+from test_runner import TestRunner
+
+_BLINK_TEST_SCRIPT = os.path.join(DIR_SRC_ROOT, 'third_party', 'blink',
+                                  'tools', 'run_web_tests.py')
+
+
+class BlinkTestRunner(TestRunner):
+    """Test runner for running blink web tests."""
+
+    def _get_packages(self):
+        return ['content_shell']
+
+    def run_test(self):
+        resolve_packages(self.packages)
+        test_cmd = [_BLINK_TEST_SCRIPT]
+        test_cmd.append('--platform=fuchsia')
+        if self._test_args:
+            test_cmd.extend(self._test_args)
+        return subprocess.run(test_cmd, check=True)
diff --git a/build/fuchsia/test/run_executable_test.py b/build/fuchsia/test/run_executable_test.py
new file mode 100755
index 0000000..92ecfac
--- /dev/null
+++ b/build/fuchsia/test/run_executable_test.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Implements commands for standalone CFv2 test executables."""
+
+import argparse
+import sys
+
+from typing import List
+
+from common import REPO_ALIAS, register_common_args, resolve_packages, \
+                   run_ffx_command
+from test_runner import TestRunner
+
+
+class ExecutableTestRunner(TestRunner):
+    """Test runner for running standalone test executables."""
+
+    def __init__(self, out_dir: str, test_args: List[str],
+                 test_name: str) -> None:
+        self._test_name = test_name
+        super().__init__(out_dir, test_args)
+
+    def _get_packages(self):
+        return [self._test_name]
+
+    def run_test(self):
+        resolve_packages(self.packages)
+        test_cmd = [
+            'test',
+            'run',
+            f'fuchsia-pkg://{REPO_ALIAS}/{self._test_name}#meta/' \
+            f'{self._test_name}.cm',
+        ]
+        if self._test_args:
+            test_cmd.append('--')
+            test_cmd.extend(self._test_args)
+        return run_ffx_command(test_cmd)
+
+
+def register_gtest_args(parser: argparse.ArgumentParser) -> None:
+    """Register common arguments for GtestRunner."""
+    test_args = parser.add_argument_group('test', 'arguments for test running')
+    test_args.add_argument('--test-name',
+                           help='Name of the test package (e.g. unit_tests).')
+
+
+def main():
+    """Stand-alone function for running gtests."""
+    parser = argparse.ArgumentParser()
+    register_gtest_args(parser)
+    register_common_args(parser)
+    runner_args, test_args = parser.parse_known_args()
+    runner = ExecutableTestRunner(runner_args.out_dir, runner_args.test_name,
+                                  test_args)
+    return runner.run_test()
+
+
+if __name__ == '__main__':
+    sys.exit(main())
diff --git a/build/fuchsia/test/run_test.py b/build/fuchsia/test/run_test.py
new file mode 100755
index 0000000..1162fba
--- /dev/null
+++ b/build/fuchsia/test/run_test.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Implements commands for running tests E2E on a Fuchsia device."""
+
+import argparse
+import atexit
+import shutil
+import sys
+import tempfile
+
+from typing import List
+
+import publish_package
+
+from common import register_common_args
+from run_blink_test import BlinkTestRunner
+from run_executable_test import ExecutableTestRunner
+from serve_repo import register_serve_args, run_serve_cmd
+from test_runner import TestRunner
+
+
+def get_test_runner(runner_args: argparse.Namespace,
+                    test_args: List[str]) -> TestRunner:
+    """Initialize a suitable TestRunner class."""
+    if runner_args.test_type == 'blink':
+        return BlinkTestRunner(runner_args.out_dir, test_args)
+    return ExecutableTestRunner(runner_args.out_dir, test_args,
+                                runner_args.test_type)
+
+
+def main():
+    """E2E method for installing packages and running a test."""
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        'test_type',
+        help='The type of test to run. Options include \'blink\''
+        'or in the case of gtests, the gtest name.')
+
+    # Register arguments
+    register_common_args(parser)
+    publish_package.register_package_args(parser, allow_temp_repo=True)
+    register_serve_args(parser)
+
+    # Treat unrecognized arguments as test specific arguments.
+    runner_args, test_args = parser.parse_known_args()
+
+    test_runner = get_test_runner(runner_args, test_args)
+    packages = test_runner.get_package_paths()
+
+    if not runner_args.repo:
+        # Create a directory that serves as a temporary repository.
+        tmpdir = tempfile.mkdtemp()
+        atexit.register(shutil.rmtree, tmpdir)
+        runner_args.repo = tmpdir
+
+    publish_package.publish_packages(packages, runner_args.repo,
+                                     not runner_args.no_repo_init)
+    try:
+        run_serve_cmd('start', runner_args)
+        return test_runner.run_test().returncode
+    finally:
+        run_serve_cmd('stop', runner_args)
+
+
+if __name__ == '__main__':
+    sys.exit(main())
diff --git a/build/fuchsia/test/serve_repo.py b/build/fuchsia/test/serve_repo.py
new file mode 100755
index 0000000..1f51e41
--- /dev/null
+++ b/build/fuchsia/test/serve_repo.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Implements commands for serving a TUF repository."""
+
+import argparse
+import json
+import logging
+import os
+import sys
+
+from common import REPO_ALIAS, run_ffx_command, run_ffx_target_command
+
+# Contains information about the active ephemeral repository.
+_REPO_CONFIG_FILE = os.path.join('/', 'tmp', 'fuchsia-repo-config')
+
+
+def _configure_ffx_serving():
+    """Configure ffx to allow serving a ffx-managed repository.
+
+        Returns:
+          True if configuration was updated, otherwise False.
+        """
+    config_updated = False
+    repo_cmd = run_ffx_command(['config', 'get', 'ffx_repository'],
+                               capture_output=True,
+                               encoding='utf-8')
+    if 'true' not in repo_cmd.stdout:
+        run_ffx_command(['config', 'set', 'ffx_repository', 'true'])
+        config_updated = True
+
+    server_cmd = run_ffx_command(['config', 'get', 'repository.server.mode'],
+                                 capture_output=True,
+                                 encoding='utf-8')
+    if 'ffx' not in server_cmd.stdout:
+        run_ffx_command(['config', 'set', 'repository.server.mode', 'ffx'])
+        config_updated = True
+    return config_updated
+
+
+def _stop_serving() -> None:
+    """Stop serving a repository configured in _REPO_CONFIG_FILE."""
+    if not os.path.exists(_REPO_CONFIG_FILE):
+        logging.warning('Could not find repository configuration.')
+        return
+
+    with open(_REPO_CONFIG_FILE, 'r') as file:
+        data = json.load(file)
+
+    run_ffx_target_command(
+        ['repository', 'deregister', '-r', data['repo_name']], data['target'])
+    run_ffx_command(['repository', 'remove', data['repo_name']])
+    run_ffx_command(['repository', 'server', 'stop'])
+    os.remove(_REPO_CONFIG_FILE)
+
+
+def _start_serving(repo_dir: str, repo_name: str, target: str) -> None:
+    """Start serving a repository.
+        Args:
+          repo_dir: directory the repository is served from.
+          repo_name: repository name.
+          target: Fuchsia device the repository is served to.
+        """
+
+    if os.path.exists(_REPO_CONFIG_FILE):
+        _stop_serving()
+
+    # Check ffx configs, restart daemon if necessary.
+    if _configure_ffx_serving():
+        run_ffx_command(['doctor', '--restart-daemon'])
+
+    data = {}
+    data['repo_name'] = repo_name
+    data['target'] = target
+    with open(_REPO_CONFIG_FILE, 'w') as file:
+        json.dump(data, file)
+    run_ffx_command(['repository', 'server', 'start'])
+    run_ffx_command(['repository', 'add-from-pm', repo_dir, '-r', repo_name])
+    run_ffx_target_command(
+        ['repository', 'register', '-r', repo_name, '--alias', REPO_ALIAS],
+        target)
+
+
+def register_serve_args(arg_parser: argparse.ArgumentParser) -> None:
+    """Register common arguments for repository serving."""
+    serve_args = arg_parser.add_argument_group('serve',
+                                               'repo serving arguments')
+    serve_args.add_argument('--serve-repo',
+                            dest='repo',
+                            help='Directory the repository is served from.')
+    serve_args.add_argument('--repo-name',
+                            default='test',
+                            help='Name of the repository.')
+    serve_args.add_argument('--serve-target',
+                            dest='target',
+                            help='Target the repository registers with.')
+
+
+def run_serve_cmd(cmd: str, args: argparse.Namespace) -> None:
+    """Helper for running serve commands."""
+    if cmd == 'start':
+        _start_serving(args.repo, args.repo_name, args.target)
+    else:
+        _stop_serving()
+
+
+def main():
+    """Stand-alone function for serving a repository."""
+    parser = argparse.ArgumentParser()
+    parser.add_argument('cmd',
+                        choices=['start', 'stop'],
+                        help='Choose to start|stop repository serving.')
+    register_serve_args(parser)
+    args = parser.parse_args()
+    run_serve_cmd(args.cmd, args)
+
+
+if __name__ == '__main__':
+    sys.exit(main())
diff --git a/build/fuchsia/test/test_runner.py b/build/fuchsia/test/test_runner.py
new file mode 100644
index 0000000..13b93ca0
--- /dev/null
+++ b/build/fuchsia/test/test_runner.py
@@ -0,0 +1,54 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Provides a base class for test running."""
+
+from abc import ABC, abstractmethod
+from argparse import Namespace
+from typing import List
+
+from common import read_package_paths
+
+
+class TestRunner(ABC):
+    """Base class that handles running a test."""
+
+    def __init__(self, out_dir: str, test_args: Namespace) -> None:
+        self._out_dir = out_dir
+        self._test_args = test_args
+        self._packages = self._get_packages()
+        self._package_paths = None
+
+    @property
+    def packages(self) -> List[str]:
+        """
+        Returns:
+            A list of package names needed for the test.
+        """
+        return self._packages
+
+    @abstractmethod
+    def _get_packages(self) -> List[str]:
+        """Retrieve the names of packages needed for the test."""
+
+    def get_package_paths(self) -> List[str]:
+        """Retrieve the path to the .far files for packages.
+
+        Returns:
+            A list of the path to all .far files that need to be updated on the
+            device.
+        """
+        if self._package_paths:
+            return self._package_paths
+        self._package_paths = []
+        for package in self._packages:
+            self._package_paths.extend(
+                read_package_paths(self._out_dir, package))
+        return self._package_paths
+
+    @abstractmethod
+    def run_test(self):
+        """
+        Returns:
+            A subprocess.CompletedProcess object from running the test command.
+        """
diff --git a/chrome/VERSION b/chrome/VERSION
index b0ccaed..0da2f65 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=104
 MINOR=0
-BUILD=5086
+BUILD=5087
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 693b89f..a19272e6 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -2925,6 +2925,12 @@
   }
 }
 
+# TODO(agrieve): Remove this once we switch to using bundle targets to
+# generate APK stubs.
+android_resources("trichrome_dummy_resources") {
+  sources = [ "trichrome/res_dummy/values/strings.xml" ]
+}
+
 chrome_public_unit_test_apk_manifest =
     "$root_gen_dir/chrome_public_unit_test_apk_manifest/AndroidManifest.xml"
 chrome_public_test_apk_manifest =
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
index 87220dc..6fb71709 100644
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -235,19 +235,6 @@
       use_chromium_linker = chromium_linker_supported
     }
 
-    if (_is_trichrome) {
-      static_library_provider_use_secondary_abi = _is_secondary_abi_primary
-
-      # http://crbug.com/1042107.
-      if (is_component_build) {
-        if (android_64bit_target_cpu && _is_64_bit_browser) {
-          main_component_library = "libmonochrome_64.cr.so"
-        } else {
-          main_component_library = "libmonochrome.cr.so"
-        }
-      }
-    }
-
     if (!_is_monochrome && !_is_trichrome) {
       deps += [
         "//chrome/android:chrome_public_v8_assets",
diff --git a/chrome/android/expectations/trichrome_library_apk.AndroidManifest.expected b/chrome/android/expectations/trichrome_library_apk.AndroidManifest.expected
index cb6d641c..fd2f714 100644
--- a/chrome/android/expectations/trichrome_library_apk.AndroidManifest.expected
+++ b/chrome/android/expectations/trichrome_library_apk.AndroidManifest.expected
@@ -10,7 +10,6 @@
   <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="31"/>
   <application
       android:extractNativeLibs="false"
-      android:hasCode="false"
       android:icon="@drawable/icon_webview"
       android:label="Trichrome Library"
       android:multiArch="true"
diff --git a/chrome/android/java/AndroidManifest_trichrome_library.xml b/chrome/android/java/AndroidManifest_trichrome_library.xml
index 070efc3..97e9ddd 100644
--- a/chrome/android/java/AndroidManifest_trichrome_library.xml
+++ b/chrome/android/java/AndroidManifest_trichrome_library.xml
@@ -18,7 +18,6 @@
 
     <!-- TODO(torne): we should specify an icon, roundIcon, and label from resources. -->
     <application
-        android:hasCode="false"
         android:label="{{ application_label|default('Trichrome Library') }}"
         android:icon="@drawable/icon_webview"
         android:multiArch="true"
diff --git a/chrome/android/proguard/trichrome.flags b/chrome/android/proguard/trichrome.flags
new file mode 100644
index 0000000..68fb39a
--- /dev/null
+++ b/chrome/android/proguard/trichrome.flags
@@ -0,0 +1,8 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# TODO(agrieve): Once this -keep is removed, add a @CheckDiscard to LibraryLoaderConfig.java.
+# Currently the Trichrome library just contains NativeLibraries, which we keep.
+# https://crbug.com/901465
+-keep class org.chromium.build.NativeLibraries { *; }
diff --git a/chrome/android/trichrome.gni b/chrome/android/trichrome.gni
index 1e2eec7..01b7f0b 100644
--- a/chrome/android/trichrome.gni
+++ b/chrome/android/trichrome.gni
@@ -114,7 +114,7 @@
       product_version_resources_dep =
           "//chrome/android:product_version_resources"
     } else {
-      omit_dex = true
+      generate_buildconfig_java = false
     }
 
     # TODO(torne): using icon_resources just to get a temporary icon
@@ -194,6 +194,37 @@
         }
       }
     }
+
+    # http://crbug.com/1042107.
+    if (is_component_build) {
+      if (android_64bit_target_cpu && invoker.is_64_bit_browser) {
+        main_component_library = "libmonochrome_64.cr.so"
+      } else {
+        main_component_library = "libmonochrome.cr.so"
+      }
+    }
+
+    if (!is_java_debug) {
+      proguard_enabled = true
+      proguard_configs = [
+        "//base/android/proguard/chromium_apk.flags",
+        "//base/android/proguard/chromium_code.flags",
+        "//chrome/android/proguard/trichrome.flags",
+      ]
+      if (trichrome_synchronized_proguard) {
+        proguard_configs += [
+          "//chrome/android/proguard/static_library_dex_reference_workarounds.flags",
+          "//base/android/proguard/enable_obfuscation.flags",
+        ]
+      } else {
+        # Disabling all obfuscation for the Trichrome library as a temporary
+        # workaround for crbug.com/1012842. There were naming conflicts between
+        # Library and Chrome, since each Proguard run doesn't know about the
+        # other, and thus handed out the first names (a, b, c) to both.
+        proguard_enable_obfuscation = false
+      }
+    }
+    deps += [ "//chrome/android:trichrome_dummy_resources" ]
   }
 }
 
diff --git a/chrome/android/trichrome/res_dummy/values/strings.xml b/chrome/android/trichrome/res_dummy/values/strings.xml
new file mode 100644
index 0000000..a0d71c24
--- /dev/null
+++ b/chrome/android/trichrome/res_dummy/values/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2019 The Chromium Authors. All rights reserved.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file. -->
+
+<!-- DO NOT ADD MORE RESOURCES HERE -->
+<resources>
+    <string name="dummy"></string>
+</resources>
\ No newline at end of file
diff --git a/chrome/android/trichrome/static_library_shared_java_code.md b/chrome/android/trichrome/static_library_shared_java_code.md
new file mode 100644
index 0000000..a288902
--- /dev/null
+++ b/chrome/android/trichrome/static_library_shared_java_code.md
@@ -0,0 +1,100 @@
+# Static Library Java code
+
+[TOC]
+
+## Overview
+
+This document describes how static library targets can be used to share common
+Java code between multiple APKs. More detail can be found at
+[go/proguarding-trichrome](goto.google.com/proguarding-trichrome).
+
+## TrichromeLibrary
+
+Currently (Jan 2020) trichrome library is the only target to make use of static
+shared library APKs and is used to share common code used by both Chrome and
+Webview.
+
+## Status
+
+Java code sharing is mostly implemented at this point but there is one remaining
+blocker related to how
+[native method resolution works in Webview](crbug.com/1025009).
+
+## How it works
+
+### Build variables
+
+For `android_apk_or_module` base templates:
+
+`static_library_provider`: Specifies that this target depends on a static shared
+library APK. When synchronized proguard is turned on, the
+`static_library_provider` becomes the target that provides the final dex file.
+
+`static_library_dependent_targets`: If set, generates final dex files for
+itself and for all targets in the `static_library_dependent_targets` list.
+
+`static_library_synchronized_proguard`: Turns on synchronized proguard for
+targets that also set `static_library_provider`.
+
+### .build_config
+
+`write_build_config.py` is responsible for figuring out where code and related
+artifacts for the `static_library_provider` and
+`static_library_dependent_targets` belongs. The main difference from regular
+`.build_configs` is the mapping recording which input jars belong to each final
+dex file. Ex:
+
+```
+"deps_info": {
+  ...
+  "static_library_dependent_classpath_configs": {
+      "gen/android_webview/trichrome_webview_apk.build_config.json": [
+        "obj/android_webview/trichrome_webview_apk/trichrome_webview_apk.jar",
+        ...
+      ],
+      "gen/chrome/android/trichrome_chrome_bundle.build_config.json": [
+        "lib.java/chrome/android/app_hooks_java.jar",
+        ...
+      "gen/chrome/android/trichrome_library_apk.build_config.json": [
+        "lib.java/base/base_java.jar",
+        ...
+      ]
+      ...
+  }
+}
+```
+
+### Synchronized ProGuard
+
+TrichromeChromeBundle (base module) and TrichromeWebview do not have a final
+`dex` or `proguard` step. Instead the library APK creates a "fat" dex from the
+`.build_config.json:deps_info:java_runtime_classpath`.
+
+Then, the mapping of `.build_config.json` -> owned input jars stored in the
+`.build_config.json` is used by `dexsplitter` to generate final .dex files for
+TrichromeLibrary, TrichromeChrome, and TrichromeWebview.
+
+### Resources
+
+For Java code to be shared between Chrome and Webview in [Trichrome][trichrome],
+we ensure that Chrome and Webview use the same resource IDs. This requires a
+few adjustments to how resources are created.
+
+1. Webview's resources are compiled first without any changes.
+2. Chrome's resources are compiled second, but use the same resource IDs as
+   Webview when possible.
+3. When synchronized proguarding is turned on, the `R.java` files generated in
+   the previous step are discarded. The shared static library APK target
+   (trichrome library) takes the output `R.txt` files from the previous steps
+   and includes those resources in its own `R.java` generation.
+
+[trichrome]: /chrome/android/trichrome/static_library_shared_java_code.md
+
+### Usage
+
+* Building trichrome_chrome_bundle or trichrome_webview_apk (and various arch
+  variants) will ensure the correct library target is also built.
+* Using the generated wrapper script from the main APK is sufficient (no need
+  to explicitly install the library).
+  * `bin/trichrome_chrome_bundle run` will ensure TrichromeChromeBundle and
+    TrichromeLibrary are installed before launching Chrome.
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb
index f589877..41e5b29 100644
--- a/chrome/app/resources/chromium_strings_af.xtb
+++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">Enige Chromium-data wat tydens die gebruik van hierdie profiel gegenereer word (soos die skepping van boekmerke, geskiedenis, wagwoorde, en ander instellings) kan deur die werkprofieladministrateur verwyder word. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">'n Bedryfstelselfout het voorgekom met installering. Laai Chromium asseblief weer af.</translation>
 <translation id="2661879430930417727">As jy 'n toestel deel, kan vriende en familie apart blaai en Chromium opstel net soos hulle dit wil hê</translation>
+<translation id="268602741124540128">Welkom by Chromium, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium-oortjie</translation>
 <translation id="2718390899429598676">Chromium sal jou data enkripteer vir bykomende sekuriteit.</translation>
 <translation id="2770231113462710648">Verander verstekblaaier na:</translation>
@@ -119,9 +120,11 @@
 <translation id="3830894615770080216">Chromium-bedryfstelsel</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation>
 <translation id="386822487697155367">Kry hulp met Chromium-bedryfstelsel</translation>
+<translation id="3871664619793219264">Kry jou Chromium-blaaiergoed van <ph name="ACCOUNT_EMAIL" /> af</translation>
 <translation id="388648406173476553">Pasmaak en beheer Chromium. Iets verg jou aandag – klik vir besonderhede.</translation>
 <translation id="3889543394854987837">Klik jou naam om Chromium oop te maak en te begin blaai.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> is reeds by hierdie Chromium-profiel aangemeld. Chromium kan jou eie profiel vir jou skep om jou blaaidata apart te hou.</translation>
+<translation id="391789666908693569">Jou rekening word bestuur deur <ph name="MANAGER_NAME" />. Jou administrateur kan hierdie Chromium-blaaierprofiel en sy data soos boekmerke, geskiedenis en wagwoorde sien en wysig.</translation>
 <translation id="3945058413678539331">Chromium probeer tans om wagwoorde te kopieer. Tik jou Windows-wagwoord in om dit toe te laat.</translation>
 <translation id="3962623956404948996">Chromium beveel aan dat hierdie lêer geskandeer word omdat dit gevaarlik kan wees</translation>
 <translation id="3997429360543082038">Meer oor Chromium-bedryfstelsel</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index a8b1fbed..c60c661d 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">এই প্রোফাইল ব্যবহার করার সময় জেনারেট হওয়া Chromium ডেটা (যেমন বুকমার্ক, ইতিহাস, পাসওয়ার্ড ও অন্যান্য সেটিংস) অফিস প্রোফাইল অ্যাডমিনিস্ট্রেটর মুছে দিতে পারেন। <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">ইনস্টলেশনের সময় একটি অপারেটিং সিস্টেম ত্রুটি ঘটেছে৷ অনুগ্রহ করে Chromium আবার ডাউনলোড করুন৷</translation>
 <translation id="2661879430930417727">যদি আপনি কোনও ডিভাইস শেয়ার করেন, তাহলে বন্ধু ও পরিবারের লোকজন পৃথকভাবে ব্রাউজ করতে পারবেন এবং তাদের পছন্দ অনুযায়ী Chromium সেট-আপ করতে পারবেন</translation>
+<translation id="268602741124540128">Chromium-এ স্বাগতম <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium ট্যাব</translation>
 <translation id="2718390899429598676">অতিরিক্ত নিরাপত্তার জন্য Chromium আপনার ডেটা এনক্রিপ্ট করবে।</translation>
 <translation id="2770231113462710648">ডিফল্ট ব্রাউজার এতে পরিবর্তন করুন:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">ChromiumOS সিস্টেম</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">ChromiumOS সম্পর্কে সহায়তা পান</translation>
+<translation id="3871664619793219264"><ph name="ACCOUNT_EMAIL" /> থেকে আপনার Chromium ব্রাউজারের আইটেম পান</translation>
 <translation id="388648406173476553">Chromium কাস্টমাইজ ও নিয়ন্ত্রণ করুন। একটি বিষয়ে আপনার নজর দেওয়া দরকার - বিস্তারিত বিবরণের জন্য ক্লিক করুন।</translation>
 <translation id="3889543394854987837">Chromium খোলার জন্য আপনার নামের উপরে ক্লিক করুন এবং ব্রাউজ করা শুরু করুন৷</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> আগে থেকেই এই Chromium প্রোফাইলে সাইন-ইন করে আছেন। আপনার ব্রাউজিং আলাদা করতে, Chromium আপনার জন্য প্রোফাইল তৈরি করে দিতে পারে।</translation>
+<translation id="391789666908693569"><ph name="MANAGER_NAME" /> আপনার অ্যাকাউন্ট ম্যানেজ করে। আপনার অ্যাডমিনিস্ট্রেটর এই Chromium ব্রাউজার প্রোফাইল ও বুকমার্ক, ইতিহাস এবং পাসওয়ার্ডের মতো ডেটা দেখতে ও ম্যানেজ করতে পারবেন।</translation>
 <translation id="3945058413678539331">Chromium পাসওয়ার্ড কপি করার চেষ্টা করছে। অনুমতি দিতে আপনার Windows পাসওয়ার্ড টাইপ করুন।</translation>
 <translation id="3962623956404948996">ফাইলটি বিপজ্জনক হতে পারে বলে Chromium এটি স্ক্যান করার সাজেশন দেয়</translation>
 <translation id="3997429360543082038">ChromiumOS সম্পর্কে</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index 5c91df7..9efa42e 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">A profil használata során generált összes Chromium-adatot (pl. könyvjelzőket, előzményeket, jelszavakat és egyéb beállításokat) eltávolíthatja a munkaprofil rendszergazdája. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">Az operációs rendszer hibát jelzett a telepítés során. Kérjük, töltse le újra a Chromiumot.</translation>
 <translation id="2661879430930417727">Ha megoszt egy eszközt, ismerősei és családtagjai külön fiókokban internetezve a saját kívánságaik szerint állíthatják be a Chromiumot.</translation>
+<translation id="268602741124540128">Üdvözli a Chromium, kedves <ph name="ACCOUNT_FIRST_NAME" />!</translation>
 <translation id="2711502716910134313">Chromium lap</translation>
 <translation id="2718390899429598676">A nagyobb biztonság érdekében a Chromium titkosítja az Ön adatait.</translation>
 <translation id="2770231113462710648">Alapértelmezett böngésző beállítása:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">ChromiumOS rendszer</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> -- Chromium</translation>
 <translation id="386822487697155367">Segítség a ChromiumOS használatával kapcsolatban</translation>
+<translation id="3871664619793219264">Szinkronizálhatja a Chromium böngészőhöz tartozó tartalmait a következő fiókból: <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="388648406173476553">Személyre szabhatja a Chromium működését. Figyelmet kell fordítania valamire – a részletekért kattintson.</translation>
 <translation id="3889543394854987837">Kattintson a nevére a Chromium megnyitásához és a böngészés megkezdéséhez.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> már be van jelentkezve ebbe a Chromium-profilba. Ha szeretné elkülöníteni böngészési tevékenységeit, a Chromium saját profilt hozhat létre Önnek.</translation>
+<translation id="391789666908693569">Az Ön fiókkezelője: <ph name="MANAGER_NAME" />. Rendszergazdája láthatja és szerkesztheti ezt a Chromium-böngészőprofilt és az adatait (például a könyvjelzőket, az előzményeket és a jelszavakat).</translation>
 <translation id="3945058413678539331">A Chromium megpróbálkozik a jelszavak másolásával. Ennek engedélyezéséhez írja be Windows-jelszavát.</translation>
 <translation id="3962623956404948996">A Chromium a fájl ellenőrzését javasolja, mert veszélyes lehet</translation>
 <translation id="3997429360543082038">A ChromiumOS névjegye</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 33db359e..51dc541 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">このプロファイルの使用中に生成された Chromium データ(ブックマーク、履歴、パスワード、他の設定など)は、仕事用プロファイルの管理者によって削除される場合があります。<ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">インストール中にオペレーティング システム エラーが発生しました。Chromium をダウンロードし直してください。</translation>
 <translation id="2661879430930417727">デバイスを共有している場合でも、友だちや家族はそれぞれ Chromium を自分専用のブラウザとして自分用の設定をして使うことができます</translation>
+<translation id="268602741124540128"><ph name="ACCOUNT_FIRST_NAME" /> さん、Chromium へようこそ</translation>
 <translation id="2711502716910134313">Chromium タブ</translation>
 <translation id="2718390899429598676">セキュリティ強化のため、Chromium ではデータが暗号化されます。</translation>
 <translation id="2770231113462710648">既定のブラウザを変更:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">Chromium OS システム</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">Chromium OS のヘルプを見る</translation>
+<translation id="3871664619793219264">Chromium ブラウザのアイテムを <ph name="ACCOUNT_EMAIL" /> から取得</translation>
 <translation id="388648406173476553">Chromium をカスタマイズ、制御します。確認の必要な項目があります。クリックして詳細をご覧ください。</translation>
 <translation id="3889543394854987837">Chromium を開いてブラウジングを始めるには、名前をクリックしてください。</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> さんはこの Chromium プロフィールにすでにログインしています。ブラウジング環境を分ける場合は、Chromium で自分用のプロフィールを作成できます。</translation>
+<translation id="391789666908693569">あなたのアカウントは <ph name="MANAGER_NAME" /> によって管理されています。管理者は、この Chromium ブラウザのプロフィールとそのデータ(ブックマーク、履歴、パスワードなど)を表示、編集できます。</translation>
 <translation id="3945058413678539331">Chromium がパスワードをコピーしようとしています。続行するには、Windows のパスワードを入力してください。</translation>
 <translation id="3962623956404948996">このファイルは危害を及ぼす可能性があるため、スキャンすることをおすすめします</translation>
 <translation id="3997429360543082038">Chromium OS について</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index f0393ae..a276327 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">ამ პროფილის გამოყენებისას შექმნილი Chromium მონაცემების (მაგ., შექმნილი სანიშნეების, ისტორიის, პაროლებისა და სხვა პარამეტრების) ამოშლა შეუძლია სამსახურის პროფილის ადმინისტრატორს. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">ინსტალაციის დროს ოპერაციული სისტემის შეცდომა მოხდა. ხელახლა ჩამოტვირთეთ Chromium.</translation>
 <translation id="2661879430930417727">თუ საზიარო მოწყობილობა გაქვთ, თქვენს მეგობრებსა და ოჯახის წევრებს შეუძლიათ ვების დამოუკიდებლად დათვალიერება და Chromium-ის საკუთარი შეხედულებისამებრ დაყენება</translation>
+<translation id="268602741124540128">მოგესალმებათ Chromium-ზე, <ph name="ACCOUNT_FIRST_NAME" />!</translation>
 <translation id="2711502716910134313">Chromium-ის ჩანართი</translation>
 <translation id="2718390899429598676">დამატებითი უსაფრთხოებისთვის, Chromium თქვენს მონაცემებს დაშიფრავს.</translation>
 <translation id="2770231113462710648">შეცვალეთ ნაგულისხმევი ბრაუზერი-ით:</translation>
@@ -119,9 +120,11 @@
 <translation id="3830894615770080216">ChromiumOS სისტემა</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">დახმარების მიღება ChromiumOS-თან დაკავშირებით</translation>
+<translation id="3871664619793219264">მიიღეთ Chromium ბრაუზერში შენახული თქვენი კონტენტი <ph name="ACCOUNT_EMAIL" />-დან</translation>
 <translation id="388648406173476553">მოირგეთ და გააკონტროლეთ Chromium. საჭიროა თქვენი ყურადღება — დააწკაპუნეთ დეტალური ინფორმაციისთვის.</translation>
 <translation id="3889543394854987837">Chromium ის გახსნისა და დათვალიერების დაწყებისათვის დააჭირეთ თქვენი სახელს.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> უკვე შესულია ამ Chromium პროფილში. თქვენი დათვალიერების მონაცემები რომ განაცალკევოთ, Chromium-ს შეუძლია თქვენთვის პერსონალური პროფილის შექმნა.</translation>
+<translation id="391789666908693569">თქვენს ანგარიშს მართავს <ph name="MANAGER_NAME" />. თქვენს ადმინისტრატორს შეუძლია ამ Chromium ბრაუზერის პროფილისა და მისი მონაცემების (მაგალითად, სანიშნეების, ისტორიისა და პაროლების) ნახვა და რედაქტირება.</translation>
 <translation id="3945058413678539331">Chromium ცდილობს პაროლების კოპირებას. აღნიშნულის დასაშვებად აკრიფეთ თქვენი Windows-ის პაროლი ამის დასაშვებად.</translation>
 <translation id="3962623956404948996">Chromium გირჩევთ, დაასკანიროთ ეს ფაილი, რადგან ის შეიძლება სახიფათო იყოს</translation>
 <translation id="3997429360543082038">ChromiumOS-ის შესახებ</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index ea0cbb5..94a352a2 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">ಈ ಪ್ರೊಫೈಲ್‌ನ ಬಳಕೆಯ ಸಮಯದಲ್ಲಿ ಉತ್ಪತ್ತಿಯಾಗುವ ಯಾವುದೇ Chromium ಡೇಟಾವನ್ನು (ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ರಚನೆಯಂತಹ) ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ನಿರ್ವಾಹಕರು ತೆಗೆದುಹಾಕಬಹುದು. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">ಸ್ಥಾಪಿಸುತ್ತಿರುವಾಗ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ದೋಷ ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಪುನಃ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.</translation>
 <translation id="2661879430930417727">ನೀವು ಸಾಧನವನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಅವರಿಗೆ ಬೇಕಾದಂತೆ ಸೆಟಪ್ ಮಾಡಬಹುದು</translation>
+<translation id="268602741124540128">Chromium ಗೆ ಸುಸ್ವಾಗತ <ph name="ACCOUNT_FIRST_NAME" /> ಅವರೇ</translation>
 <translation id="2711502716910134313">Chromium ಟ್ಯಾಬ್</translation>
 <translation id="2718390899429598676">ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗಾಗಿ, Chromium ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ.</translation>
 <translation id="2770231113462710648">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ಇದ್ಕಕೆ ಬದಲಿಸಿ:</translation>
@@ -115,9 +116,11 @@
 <translation id="3830894615770080216">ChromiumOS ಸಿಸ್ಟಂ</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">ChromiumOS ಕುರಿತಾಗಿ ಸಹಾಯ ಪಡೆಯಿರಿ</translation>
+<translation id="3871664619793219264"><ph name="ACCOUNT_EMAIL" /> ನಿಂದ ನಿಮ್ಮ Chromium ಬ್ರೌಸರ್‌ನ ವಿಷಯಗಳನ್ನು ಪಡೆಯಿರಿ</translation>
 <translation id="388648406173476553">Chromium ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ನೀವು ಕೆಲವು ಸಂಗತಿಗಳ ಕುರಿತು ಗಮನಹರಿಸಬೇಕಿದೆ - ವಿವರಗಳಿಗಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="3889543394854987837">Chromium ತೆರೆಯಲು ಮತ್ತು ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಿಮ್ಮ ಹೆಸರನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="390528597099634151">ಈ Chromium ಪ್ರೊಫೈಲ್‌ಗೆ ಈಗಾಗಲೇ <ph name="EXISTING_USER" /> ಅವರು ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು, Chromium ನಿಮಗಾಗಿ ನಿಮ್ಮ ಸ್ವಂತ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಬಹುದು.</translation>
+<translation id="391789666908693569">ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="MANAGER_NAME" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಈ Chromium ಬ್ರೌಸರ್ ಪ್ರೊಫೈಲ್ ಹಾಗೂ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್‌ಗಳಂತಹ ಅದರ ಡೇಟಾವನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಬಹುದು.</translation>
 <translation id="3945058413678539331">Chromium, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="3962623956404948996">ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಆದ್ದರಿಂದ ಇದನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಬೇಕೆಂದು Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ</translation>
 <translation id="3997429360543082038">ChromiumOS ಕುರಿತು</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index d1467284..4df080159b5 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">ഈ പ്രൊഫൈലിന്റെ ഉപയോഗത്തിനിടയിൽ ഉണ്ടായ ഏത് Chromium ഡാറ്റയും (ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവ സൃഷ്ടിക്കൽ പോലുള്ളവ) ഔദ്യോഗിക പ്രൊഫൈൽ അഡ്മിന് നീക്കം ചെയ്യാനാകും. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനിടെ ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പിശക് സംഭവിച്ചു. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation>
 <translation id="2661879430930417727">നിങ്ങളൊരു ഉപകരണം പങ്കിടുകയാണെങ്കിൽ, സുഹൃത്തുക്കൾക്കും കുടുബാംഗങ്ങൾക്കും വെവ്വേറെ ബ്രൗസ് ചെയ്യാനും അവർക്ക് താൽപ്പര്യമുള്ള തരത്തിൽ Chromium സജ്ജീകരിക്കാനുമാകും</translation>
+<translation id="268602741124540128">Chromium-ത്തിലേക്ക് സ്വാഗതം, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium ടാബ്</translation>
 <translation id="2718390899429598676">അധിക സുരക്ഷക്കായി, Chromium നിങ്ങളുടെ ഡാറ്റ എന്‍‌ക്രിപ്റ്റ് ചെയ്യും.</translation>
 <translation id="2770231113462710648">ഡിഫോൾട്ട് ബ്രൗസര്‍‌ ഇനിപ്പറയുന്നതിലേക്ക് മാറ്റുക:</translation>
@@ -119,9 +120,11 @@
 <translation id="3830894615770080216">ChromiumOS സിസ്റ്റം</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">ChromiumOS-മായി ബന്ധപ്പെട്ട് സഹായം തേടൂ</translation>
+<translation id="3871664619793219264"><ph name="ACCOUNT_EMAIL" /> -ൽ നിന്ന് നിങ്ങളുടെ Chromium ബ്രൗസർ ഉള്ളടക്കം നേടുക</translation>
 <translation id="388648406173476553">Chromium ഇഷ്‌ടാനുസൃതമാക്കുക, നിയന്ത്രിക്കുക. എന്തോ ഒന്നിന് നിങ്ങളുടെ ശ്രദ്ധ വേണം -വിശദാംശങ്ങൾക്ക് ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="3889543394854987837">Chromium തുറന്ന് ബ്രൗസിംഗ് ആരംഭിക്കാൻ നിങ്ങളുടെ പേരിൽ ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> ഇതിനകം ഈ Chromium പ്രൊഫൈലിലേക്ക് സൈൻ ഇൻ ചെയ്തിരിക്കുന്നു. നിങ്ങൾക്ക് ഒറ്റയ്ക്ക് ബ്രൗസ് ചെയ്യാൻ, Chromium-ന് നിങ്ങളുടെ സ്വന്തം പ്രൊഫൈൽ സൃഷ്‌ടിക്കാനാകും.</translation>
+<translation id="391789666908693569">നിങ്ങളുടെ അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="MANAGER_NAME" /> ആണ്. നിങ്ങളുടെ അഡ്‌മിന് ഈ Chromium ബ്രൗസർ പ്രൊഫൈലും ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവ പോലുള്ള അതിലെ ഡാറ്റയും കാണാനും എഡിറ്റ് ചെയ്യാനുമാകും.</translation>
 <translation id="3945058413678539331">പാസ്‌വേഡുകൾ പകർത്താൻ Chromium ശ്രമിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="3962623956404948996">ഈ ഫയൽ അപകടകരമാകാൻ സാധ്യതയുള്ളതിനാൽ ഇത് സ്‌കാൻ ചെയ്യാൻ Chromium നിർദ്ദേശിക്കുന്നു</translation>
 <translation id="3997429360543082038">ChromiumOS-നെ കുറിച്ച്</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index fdb3666c..77eb01e2 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">Энэ профайлыг ашиглах үед үүссэн Chromium-н аливаа өгөгдлийг (хавчуурга, түүх, нууц үг болон бусад тохиргоог үүсгэх зэрэг) ажлын профайлын админ хасах боломжтой. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">Суулгалтын явцад үйлдлийн системийн алдаа гарлаа. Chromium-ыг дахин татаж авна уу.</translation>
 <translation id="2661879430930417727">Хэрэв та төхөөрөмжийг дундаа ашигладаг бол найз нөхөд, гэр бүл тань хөтчөөр тусдаа үзэж, Chromium-г хүссэнээрээ тохируулах боломжтой</translation>
+<translation id="268602741124540128">Chromium-д тавтай морилно уу, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium таб</translation>
 <translation id="2718390899429598676">Таны аюулгүй байдлыг сайжруулахын тулд Chromium таны өгөгдлийг шифрлэх болно.</translation>
 <translation id="2770231113462710648">Стандарт веб хөтчийг дараах руу өөрчил:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">ChromiumOS систем</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">ChromiumOS-тэй холбоотой тусламж авах</translation>
+<translation id="3871664619793219264">Chromium хөтчийн зүйлсээ <ph name="ACCOUNT_EMAIL" />-с авна уу</translation>
 <translation id="388648406173476553">Chromium-г өөрчилж, хянана уу. Та ямар нэг зүйлд анхаарлаа хандуулах шаардлагатай байна. Дэлгэрэнгүй мэдээлэл авахын тулд товшино уу.</translation>
 <translation id="3889543394854987837">Chromium-г нээх мөн хөтөчийг ашиглаж эхлэхийн тулд өөрийн нэр дээр дарна уу.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> Chromium-н энэ профайлд аль хэдийн нэвтэрсэн байна. Таны хөтчийн үзэлтийг тусад нь байлгахын тулд Chromium танд өөрийн гэсэн профайл үүсгэж өгөх боломжтой.</translation>
+<translation id="391789666908693569">Таны бүртгэлийг <ph name="MANAGER_NAME" /> удирддаг. Танай администратор энэ Chromium хөтчийн профайл болон үүний хавчуурга, түүх, нууц үг зэрэг өгөгдлийг харах болон засах боломжтой.</translation>
 <translation id="3945058413678539331">Chromium нь нууц үгс хуулахыг оролдож байна. Үүнийг зөвшөөрөхийн тулд Windows-н нууц үгээ бичнэ үү.</translation>
 <translation id="3962623956404948996">Энэ файл аюултай байж магадгүй тул Chromium үүнийг скан хийхийг зөвлөж байна</translation>
 <translation id="3997429360543082038">ChromiumOS-н тухай</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index 9487ac6..d0c4246 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -60,6 +60,7 @@
 <translation id="2583187216237139145">या प्रोफाइलच्या वापरादरम्यान जनरेट केला गेलेला कोणताही Chromium डेटा (जसे की बुकमार्क, इतिहास, पासवर्ड आणि इतर सेटिंग्जची निर्मिती) कार्य प्रोफाइल अ‍ॅडमिनिस्ट्रेटरला हटवता येतो. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">स्‍थापनेदरम्‍यान ऑपरेटिंग सिस्टीम एरर आली. कृपया Chromium पुन्‍हा डाउनलोड करा.</translation>
 <translation id="2661879430930417727">तुम्ही डिव्हाइस शेअर केल्यास, मित्रमैत्रिणी आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना हवे तसे Chromium सेट करू शकतात</translation>
+<translation id="268602741124540128">Chromium वर स्‍वागत आहे, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium टॅब</translation>
 <translation id="2718390899429598676">अतिरिक्त सुरक्षिततेसाठी, Chromium तुमचा डेटा एंक्रिप्ट करेल.</translation>
 <translation id="2770231113462710648">डीफॉल्ट ब्राउझर यावर बदला:</translation>
@@ -118,9 +119,11 @@
 <translation id="3830894615770080216">ChromiumOS सिस्टीम</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">ChromiumOS शी संबंधित मदत मिळवा</translation>
+<translation id="3871664619793219264"><ph name="ACCOUNT_EMAIL" /> वरून तुमच्या Chromium ब्राउझरवरील गोष्टी मिळवा</translation>
 <translation id="388648406173476553">Chromium कस्टमाइझ करा आणि नियंत्रित करा. एका गोष्टीवर तुम्ही लक्ष द्यायला हवे - तपशिलांसाठी क्लिक करा.</translation>
 <translation id="3889543394854987837">Chromium उघडण्यासाठी तुमचे नाव क्लिक करा आणि ब्राउझिंग सुरू करा.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> यांनी आधीपासून या Chromium प्रोफाइलमध्ये साइन इन केलेले आहे. तुमचे ब्राउझिंग स्वतंत्र ठेवण्यासाठी, Chromium तुमच्याकरिता तुमची स्वतःची प्रोफाइल तयार करू शकते.</translation>
+<translation id="391789666908693569">तुमचे खाते <ph name="MANAGER_NAME" /> द्वारे व्यवस्थापित केले जाते. तुमचा अ‍ॅडमिनिस्ट्रेटर ही Chromium ब्राउझर प्रोफाइल आणि त्यातील डेटा, जसे की बुकमार्क, इतिहास आणि पासवर्ड पाहू व संपादित करू शकतो.</translation>
 <translation id="3945058413678539331">Chromium पासवर्ड कॉपी करण्याचा प्रयत्‍न करत आहे. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="3962623956404948996">Chromium हे ही फाइल स्कॅन करण्याच्या शिफारशी करते, कारण ती धोकादायक असू शकते</translation>
 <translation id="3997429360543082038">ChromiumOS बद्दल</translation>
@@ -204,7 +207,7 @@
 <translation id="608006075545470555">या ब्राउझरवर कार्य प्रोफाइल जोडा</translation>
 <translation id="6096348254544841612">Chromium कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation>
 <translation id="6120345080069858279">Chromium हा पासवर्ड तुमच्या Google खात्यामध्ये सेव्ह करेल. तुम्हाला पासवर्ड लक्षात ठेवावा लागणार नाही.</translation>
-<translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chromium ने ते अवरोधित केले आहे.</translation>
+<translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chromium ने ती ब्लॉक केली आहे.</translation>
 <translation id="6134968993075716475">सुरक्षित ब्राउझिंग बंद आहे. Chromium ते सुरू करण्याची शिफारस करते.</translation>
 <translation id="6145820983052037069">तुम्ही Chromium प्रोफाइलदरम्यान येथे स्विच करू शकता</translation>
 <translation id="6183079672144801177">तुम्ही तुमच्या <ph name="TARGET_DEVICE_NAME" /> वर Chromium मध्ये साइन इन केले असल्याची खात्री करा आणि त्यानंतर पुन्हा पाठवून पहा.</translation>
@@ -218,7 +221,7 @@
 <translation id="6273793429163604305">तयार रहा...</translation>
 <translation id="6281746429495226318">तुमची Chromium प्रोफाइल कस्टमाइझ करा</translation>
 <translation id="6290827346642914212">तुमच्या Chromium प्रोफाइलला नाव द्या</translation>
-<translation id="6295779123002464101"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chromium ने ते अवरोधित केले आहे.</translation>
+<translation id="6295779123002464101"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chromium ने ती ब्लॉक केली आहे.</translation>
 <translation id="6309712487085796862">Chromium तुमचा कॅमेरा वापरत आहे.</translation>
 <translation id="632355235628111698">ही फाइल धोकादायक असल्यामुळे, Chromium ने ती ब्लॉक केली आहे</translation>
 <translation id="6327105987658262776">कोणतेही अपडेट उपलब्ध नाही.</translation>
@@ -315,12 +318,12 @@
 <translation id="8105840573057009683">Chromium ला या साइटसाठी स्थानाशी संबंधित परवानगी आवश्यक आहे</translation>
 <translation id="8133124826068723441">तुमच्या डोमेनसाठी सिंक करणे उपलब्ध नसल्यामुळे, ChromiumOS ला तुमचा डेटा सिंक करता आला नाही.</translation>
 <translation id="813913629614996137">सुरू करत आहे…</translation>
-<translation id="81770708095080097">ही फाईल धोकादायक आहे, त्यामुळे Chromium ने अवरोधित केली आहे.</translation>
+<translation id="81770708095080097">ही फाइल धोकादायक आहे, त्यामुळे Chromium ने ब्लॉक केली आहे.</translation>
 <translation id="8213374284266571500">या प्रकारची फाइल धोकादायक असल्यामुळे Chromium ने ती ब्लॉक केली आहे</translation>
 <translation id="8248265253516264921">इमेजचे उपयोगी वर्णन नसल्यास, Chromium तुमच्यासाठी ते देण्याचा प्रयत्न करेल. वर्णने तयार करण्यासाठी, इमेज Google ला पाठवल्या जातात. तुम्ही हे सेटिंग्जमध्ये कधीही बंद करू शकता.</translation>
 <translation id="8266560134891435528">तुम्ही साइन इन केलेले नसल्यामुळे Chromium तुमचे पासवर्ड तपासू शकत नाही</translation>
 <translation id="8276522524898344151">Chromium पासवर्ड कॉपी करण्याचा प्रयत्न करत आहे.</translation>
-<translation id="8290862415967981663">ही फाईल कदाचित धोकादायक असू शकते, त्यामुळे Chromium ने ती अवरोधित केली आहे.</translation>
+<translation id="8290862415967981663">ही फाइल कदाचित धोकादायक असू शकते, त्यामुळे Chromium ने ती ब्लॉक केली आहे.</translation>
 <translation id="8330519371938183845">तुमच्या डिव्हाइसवर Chromium सिंक आणि पर्सनलाइझ करण्यासाठी साइन इन करा</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> पूर्वी Chromium वापरत होते</translation>
 <translation id="8357820681460164151">तुमच्या Chromium ब्राउझरवरील आशय तुमच्या सर्व डिव्हाइसवर अ‍ॅक्सेस करण्यासाठी साइन इन करा, त्यानंतर सिंक सुरू करा</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb
index 968bc1b..70cddb7 100644
--- a/chrome/app/resources/chromium_strings_ne.xtb
+++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">कार्य प्रोफाइलका एड्मिन यो प्रोफाइल चलाउँदा Chromium मा सिर्जना हुने (बुकमार्क, इतिहास, पासवर्ड र अन्य सेटिङलगायतका) सबै डेटा हटाउन सक्नुहुन्छ। <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">स्थापना अवधिमा अपरेटिङ सिस्टम त्रुटि भयो। कृपया पुन: क्रोमियम डाउनलोड गर्नुहोस्।</translation>
 <translation id="2661879430930417727">तपाईं आफ्ना परिवार र साथीभाइसँग मिलेर यन्त्र चलाउनुहुन्छ भने उनीहरू सबै जना सोही यन्त्रमा आ-आफ्नो खातामार्फत ब्राउज गर्न र आफूले चाहेअनुसार Chromium सेटअप गर्न सक्छन्</translation>
+<translation id="268602741124540128">Chromium मा स्वागत छ, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Chromium को ट्याब</translation>
 <translation id="2718390899429598676">थप गरिएको सुरक्षाका लागि क्रोमियमले तपाईँको डेटा इन्क्रिप्ट गर्ने छ।</translation>
 <translation id="2770231113462710648">डिफल्ट ब्राउजरलाई यसमा बदल्नुहोस्:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">ChromiumOS सिस्टम</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - क्रोमियम</translation>
 <translation id="386822487697155367">ChromiumOS का सम्बन्धमा मद्दत प्राप्त गर्नुहोस्</translation>
+<translation id="3871664619793219264"><ph name="ACCOUNT_EMAIL" /> मार्फत Chromium ब्राउजरमा भएका आफ्ना डेटा प्राप्त गर्नुहोस्</translation>
 <translation id="388648406173476553">Chromium लाई आफू अनुकूल पार्नुका साथै यसमाथि नियन्त्रण गर्नुहोस्। केही कुराका सम्बन्धमा तपाईंको कारबाही आवश्यक छ - विवरण हेर्न क्लिक गर्नुहोस्।</translation>
 <translation id="3889543394854987837">Chromium खोल्न र ब्राउज गर्न सुरु गर्नको लागि तपाइँको नाम क्लिक गर्नुहोस्।</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> अहिले यो Chromium प्रोफाइलमा साइन इन हुनुहुन्छ। तपाईंले ब्राउज गर्ने डेटा गोप्य राख्न Chromium ले तपाईंका निम्ति छुट्टै प्रोफाइल बनाइदिन सक्छ।</translation>
+<translation id="391789666908693569"><ph name="MANAGER_NAME" /> तपाईंको खाता व्यवस्थापन गर्नुहुन्छ। तपाईंका एड्मिन यो Chromium ब्राउजर प्रोफाइल र यसका बुकमार्क, इतिहास तथा पासवर्डलगायतका डेटा हेर्न तथा परिवर्तन गर्न सक्नुहुन्छ।</translation>
 <translation id="3945058413678539331">Chromium ले पासवर्ड प्रतिलिपि गर्ने प्रयास गरिरहेको छ। यसो गर्ने अनुमति दिन Windows को आफ्नो पासवर्ड टाइप गर्नुहोस्।</translation>
 <translation id="3962623956404948996">यो फाइल हानिकारक हुन सक्ने भएकाले Chromium ले यो फाइल स्क्यान गर्न सिफारिस गर्छ</translation>
 <translation id="3997429360543082038">ChromiumOS का बारेमा</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index b0ba0b6..c729a24 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">Toate datele Chromium generate în timpul folosirii acestui profil (precum marcajele create, istoricul, parolele și alte setări) pot fi eliminate de administratorul profilului de serviciu. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">S-a produs o eroare de sistem de operare în timpul instalării. Descărcați din nou Chromium.</translation>
 <translation id="2661879430930417727">Dacă permiți accesul la un dispozitiv, familia și prietenii pot să navigheze separat și să configureze Chromium cum doresc</translation>
+<translation id="268602741124540128">Bun venit la Chromium, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Fila Chromium</translation>
 <translation id="2718390899429598676">Pentru un plus de securitate, Chromium îți va cripta datele.</translation>
 <translation id="2770231113462710648">Schimbă browserul prestabilit la:</translation>
@@ -117,9 +118,11 @@
 <translation id="3830894615770080216">Sistemul de operare Chromium</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
 <translation id="386822487697155367">Solicită ajutor privind sistemul de operare Chromium</translation>
+<translation id="3871664619793219264">Obține datele din browserul Chromium din <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="388648406173476553">Personalizează și controlează Chromium. Ceva are nevoie de atenția ta – dă clic pentru detalii.</translation>
 <translation id="3889543394854987837">Dați clic pe numele dvs. pentru a deschide Chromium și a începe să navigați.</translation>
 <translation id="390528597099634151"><ph name="EXISTING_USER" /> s-a conectat deja la acest profil Chromium. Ca să separi navigarea, poți crea propriul profil în Chromium.</translation>
+<translation id="391789666908693569">Contul tău este gestionat de <ph name="MANAGER_NAME" />. Administratorul poate să vadă și să editeze acest profil și datele asociate din browserul Chromium, cum ar fi marcajele, istoricul și parolele.</translation>
 <translation id="3945058413678539331">Chromium încearcă să copieze parolele. Pentru a permite acest lucru, introdu parola pentru Windows.</translation>
 <translation id="3962623956404948996">Chromium îți recomandă să scanezi acest fișier, deoarece ar putea fi periculos</translation>
 <translation id="3997429360543082038">Despre sistemul de operare Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 69e43f36..9a41a65d 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -59,6 +59,7 @@
 <translation id="2583187216237139145">Администратор рабочего профиля может удалять любые данные, сохраненные в браузере Chromium при использовании этого профиля (например, добавленные закладки, историю, пароли и настройки). <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">В процессе установки произошла ошибка в операционной системе. Скачайте Chromium ещё раз.</translation>
 <translation id="2661879430930417727">Если кроме вас устройством пользуется кто-то ещё, например родные или друзья, они тоже смогут настроить Chromium на свой вкус.</translation>
+<translation id="268602741124540128"><ph name="ACCOUNT_FIRST_NAME" />, добро пожаловать в Chromium!</translation>
 <translation id="2711502716910134313">Вкладка Chromium</translation>
 <translation id="2718390899429598676">В целях повышения безопасности Chromium шифрует ваши данные.</translation>
 <translation id="2770231113462710648">Назначить браузером по умолчанию:</translation>
@@ -115,9 +116,11 @@
 <translation id="3830894615770080216">Chromium OS</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation>
 <translation id="386822487697155367">Подробнее о Chromium OS</translation>
+<translation id="3871664619793219264">Получите доступ к данным браузера Chromium, сохраненным в аккаунте <ph name="ACCOUNT_EMAIL" />.</translation>
 <translation id="388648406173476553">Настройка и управление Chromium Требуется ваше внимание. Нажмите, чтобы получить подробную информацию.</translation>
 <translation id="3889543394854987837">Нажмите на свое имя, чтобы войти в Chromium.</translation>
 <translation id="390528597099634151">Пользователь <ph name="EXISTING_USER" /> уже выполнил вход в профиль Chromium. Вы можете создать свой профиль, чтобы использовать Chromium отдельно.</translation>
+<translation id="391789666908693569">Вашим аккаунтом управляет <ph name="MANAGER_NAME" />. Администратор может просматривать и изменять этот профиль Chromium и данные в нем, включая закладки, историю и пароли.</translation>
 <translation id="3945058413678539331">Chromium пытается скопировать пароли. Чтобы разрешить это действие, введите свой пароль Windows.</translation>
 <translation id="3962623956404948996">Chromium рекомендует просканировать этот потенциально вредоносный файл.</translation>
 <translation id="3997429360543082038">О Chromium OS</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index c9d0f14..fd4efca 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -61,6 +61,7 @@
 <translation id="2583187216237139145">Všetky údaje prehliadača Chromium vygenerované počas používania tohto profilu (napríklad vytvorenie záložiek, histórie, hesiel a ďalších nastavení) môžu byť odstránené správcom pracovného profilu. <ph name="LEARN_MORE" /></translation>
 <translation id="2648074677641340862">V priebehu inštalácie sa vyskytla chyba operačného systému. Stiahnite prehliadač Chromium znova.</translation>
 <translation id="2661879430930417727">Ak zdieľate zariadenie s rodinou a priateľmi, môžu v prehliadači Chromium prehliadať samostatne a tiež si ho nastaviť podľa vlastných požiadaviek</translation>
+<translation id="268602741124540128">Vitajte v prehliadači Chromium, <ph name="ACCOUNT_FIRST_NAME" /></translation>
 <translation id="2711502716910134313">Karta Chromium</translation>
 <translation id="2718390899429598676">V záujme vyššej miery zabezpečenia budú dáta v prehliadači Chromium šifrované.</translation>
 <translation id="2770231113462710648">Zmeniť predvolený prehliadač na:</translation>
@@ -119,9 +120,11 @@
 <translation id="3830894615770080216">Systém Chromium OS</translation>
 <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation>
 <translation id="386822487697155367">Získať pomoc so systémom Chromium OS</translation>
+<translation id="3871664619793219264">Získajte údaje prehliadača Chromium z účtu <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="388648406173476553">Prispôsobte a ovládajte Chromium. Vyžaduje sa vaša pozornosť. Podrobnosti získate kliknutím.</translation>
 <translation id="3889543394854987837">Ak chcete otvoriť prehliadač Chromium a začať prehliadať, kliknite na svoje meno.</translation>
 <translation id="390528597099634151">Používateľ <ph name="EXISTING_USER" /> je už do tohto profilu prehliadača Chromium prihlásený. Ak chcete oddeliť svoje prehliadanie, Chromium vám môže vytvoriť vlastný profil.</translation>
+<translation id="391789666908693569">Váš účet spravuje <ph name="MANAGER_NAME" />. Váš správca si môže zobraziť a upraviť tento profil prehliadača Chromium vrátane jeho údajov, ako sú záložky, história a heslá.</translation>
 <translation id="3945058413678539331">Chromium sa pokúša kopírovať heslá. Ak to chcete povoliť, zadajte heslo systému Windows.</translation>
 <translation id="3962623956404948996">Chromium odporúča skontrolovať tento súbor, pretože môže byť nebezpečný</translation>
 <translation id="3997429360543082038">Chromium OS</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index ea15858..12c4cc6 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Kenmerke wat jou ligging nodig het, sal nie werk nie</translation>
 <translation id="1329191040029425999">Maak seker dat jou toestel bygewerk is, en probeer weer</translation>
 <translation id="1330145147221172764">Aktiveer opskerm-sleutelbord</translation>
-<translation id="1331625853030156663">Aktiveer "Wys sluitskerm wanneer dit uit slaap wakker word" om <ph name="APP_NAME" /> oop te maak</translation>
 <translation id="1331977651797684645">Dit was ek.</translation>
 <translation id="1333489022424033687">Sommige kenmerke op <ph name="ORIGIN" /> sal dalk nie werk voordat jy data uitgevee het wat ander werwe op jou toestel geberg het nie</translation>
 <translation id="1333965224356556482">Moenie werwe toelaat om jou ligging te sien nie</translation>
@@ -1019,6 +1018,7 @@
 <translation id="1944921356641260203">Opdatering gevind</translation>
 <translation id="1947136734041527201">Stel jou in staat om by webwerwe aan te meld met die rekening wat jy by ’n identiteitsdiens het</translation>
 <translation id="1949584741547056205">Kitsantwoorde</translation>
+<translation id="1949849604471335579">Personaliseer muurpapier, sluimerskerm, aksentkleure en meer</translation>
 <translation id="1951012854035635156">Assistent</translation>
 <translation id="1954597385941141174">Werwe kan vra om aan USB-toestelle te koppel</translation>
 <translation id="1954813140452229842">Kon nie deling monteer nie. Gaan asseblief jou eiebewyse na en probeer weer.</translation>
@@ -1050,6 +1050,7 @@
 <translation id="1981434377190976112">Lees al jou data op alle webwerwe</translation>
 <translation id="1984417487208496350">Geen beskerming nie (nie aanbeveel nie)</translation>
 <translation id="1987317783729300807">Rekeninge</translation>
+<translation id="1987574314042117472">Kies en installeer gewilde programme</translation>
 <translation id="1988259784461813694">Vereiste</translation>
 <translation id="1989112275319619282">Blaai deur</translation>
 <translation id="1989903373608997757">Gebruik altyd</translation>
@@ -1115,6 +1116,7 @@
 <translation id="2048554637254265991">Kon nie die houerbestuurder begin nie. Probeer weer.</translation>
 <translation id="2048653237708779538">Handeling is nie beskikbaar nie</translation>
 <translation id="2050339315714019657">Portret</translation>
+<translation id="2052572566310583903">Op jou ander toestelle geïnstalleer</translation>
 <translation id="2053312383184521053">Rustoestand-data</translation>
 <translation id="2054240652864153171">Vee werfdata uit vir <ph name="SITE_NAME" /> wat op <ph name="PARTITION_SITE_NAME" /> verdeel is?</translation>
 <translation id="2055585478631012616">Jy sal by hierdie werwe afgemeld word, insluitend in oop oortjies</translation>
@@ -1277,6 +1279,7 @@
 <translation id="2191754378957563929">Aan</translation>
 <translation id="2192505247865591433">Van:</translation>
 <translation id="2193365732679659387">Vertrou instellings</translation>
+<translation id="2194554416429452547">Chrome verken tydens proeflopies maniere om strooipos, bedrog, en deling tussen werwe te beperk. Chrome kan ook <ph name="ESTIMATE_INTERESTS_LINK" /> wat werwe kan gebruik om vir jou advertensies te wys. Jy kan jou belangstellings in Instellings bestuur.</translation>
 <translation id="2194856509914051091">Dinge om in ag te neem</translation>
 <translation id="2195331105963583686">Jy sal hierdie <ph name="DEVICE_TYPE" /> ná daardie tyd steeds kan gebruik, maar dit sal nie meer outomaties sagteware- en sekuriteitopdaterings kry nie</translation>
 <translation id="2195729137168608510">E-posbeskerming</translation>
@@ -1884,6 +1887,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Gaan grammatika saam met spelling na</translation>
 <translation id="2753677631968972007">Beheer werftoestemmings handmatig.</translation>
+<translation id="2754825024506485820">Kry die programme wat jy wil hê, van produktiwiteit tot vermaak, in die Google Play Winkel. Jy kan enige tyd programme installeer.</translation>
 <translation id="2755349111255270002">Stel hierdie <ph name="DEVICE_TYPE" /> terug</translation>
 <translation id="2755367719610958252">Bestuur toeganklikheidkenmerke</translation>
 <translation id="275662540872599901">skerm af</translation>
@@ -1960,6 +1964,7 @@
 <translation id="2815693974042551705">Boekmerkvouer</translation>
 <translation id="2816319641769218778">Skakel sinkronisering aan om wagwoorde in jou Google-rekening te stoor.</translation>
 <translation id="2816628817680324566">Laat hierdie werf toe om jou sekuriteitsleutel te identifiseer?</translation>
+<translation id="2817435998497102771">Stel jou muurpapier en styl</translation>
 <translation id="2818476747334107629">Drukkerbesonderhede</translation>
 <translation id="2819167288942847344">Gebruik voorafstellings vir foon of tablet, of vensters wat van grootte verander om wangedrag van die program te verhoed</translation>
 <translation id="2820957248982571256">Skandeer tans …</translation>
@@ -2853,6 +2858,7 @@
 <translation id="3727144509609414201">Beskikbare wi-fi-netwerke</translation>
 <translation id="3727187387656390258">Ondersoek opspringer</translation>
 <translation id="372722114124766626">Net een keer</translation>
+<translation id="3727332897090187514">Geen nota is bygevoeg nie</translation>
 <translation id="3727473233247516571">Terug-vorentoe-kasgeheue-subraam: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Weerspieël kennisgewings van jou foon af</translation>
 <translation id="3728681439294129328">Stel netwerkadres op</translation>
@@ -3188,6 +3194,7 @@
 <translation id="4031527940632463547">Sensors is geblokkeer</translation>
 <translation id="4033415645631238123">Aanmelding met Smart Lock is nie meer beskikbaar nie. Jy kan steeds met Smart Lock ontsluit.</translation>
 <translation id="4033471457476425443">Voeg nuwe vouer by</translation>
+<translation id="4033711848170683365">Dit sal blaaierdata op hierdie toestel permanent uitvee. Die Google-rekeninge in hierdie profiel kan deur ander programme op jou <ph name="DEVICE_TYPE" /> gebruik word. Jy kan hierdie rekeninge verwyder in <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">Veilige werwe kan dalk inhoud, soos prente en webrame wat nie veilig is nie, inbed</translation>
 <translation id="4034824040120875894">Drukker</translation>
 <translation id="4035758313003622889">Taakbestuurder</translation>
@@ -3466,6 +3473,7 @@
 <translation id="4314815835985389558">Bestuur sinkronisering</translation>
 <translation id="4315933848520197627">Ontkoppel rekening</translation>
 <translation id="4316850752623536204">Ontwikkelaarwebwerf</translation>
+<translation id="4317733381297736564">Inprogramaankope</translation>
 <translation id="4317820549299924617">Verifikasie was nie suksesvol nie</translation>
 <translation id="4320177379694898372">Geen internetverbinding nie</translation>
 <translation id="4322394346347055525">Maak ander oortjies toe</translation>
@@ -4049,6 +4057,7 @@
 <translation id="4893522937062257019">Op die sluitskerm</translation>
 <translation id="4897496410259333978">Kontak jou administrateur vir meer inligting.</translation>
 <translation id="4898011734382862273">Die sertifikaat "<ph name="CERTIFICATE_NAME" />" verteenwoordig 'n Sertifiseringoutoriteit</translation>
+<translation id="4899696330053002588">Bevat advertensies</translation>
 <translation id="489985760463306091">Herbegin jou rekenaar om verwydering van skadelike sagteware af te handel</translation>
 <translation id="4900392736118574277">Jou afskopbladsy is verander na <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz – deurweef</translation>
@@ -4422,6 +4431,7 @@
 <translation id="52912272896845572">Private sleutellêer is ongeldig.</translation>
 <translation id="5291739252352359682">Skep outomaties onderskrifte vir media in Chrome-blaaier (tans net in Engels beskikbaar). Oudio en onderskrifte word plaaslik verwerk en verlaat nooit die toestel nie.</translation>
 <translation id="529175790091471945">Formateer hierdie toestel</translation>
+<translation id="5292862864186939732">Laat "<ph name="EXTENSION_NAME" />" altyd toe om op <ph name="ORIGIN" /> te loop?</translation>
 <translation id="529296195492126134">Tydelike modus word nie gesteun nie. Kontak jou administrateur</translation>
 <translation id="5293170712604732402">Stel instellings terug na hul oorspronklike verstekwaardes</translation>
 <translation id="5294097441441645251">Moet met 'n kleinletter of onderstreep begin</translation>
@@ -5180,6 +5190,7 @@
 <translation id="6054961935262556546">Verander sigbaarheid</translation>
 <translation id="6055171183283175969">Die wagwoord wat jy ingevoer het, is verkeerd.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 met RSA-enkripsie</translation>
+<translation id="6055544610007596637">Installeer programme vir jou <ph name="DEVICE_TYPE" /> van die Google Play Winkel af</translation>
 <translation id="6056710589053485679">Normale herlaai</translation>
 <translation id="6057312498756061228">Hierdie lêer is te groot vir 'n sekuriteitkontrole. Jy kan lêers van tot 50 MB oopmaak.</translation>
 <translation id="6057381398996433816">Hierdie werf word verhinder om beweging- en ligsensors te gebruik.</translation>
@@ -6152,6 +6163,7 @@
 <translation id="7002055706763150362">Om Smart Lock vir Chromebook op te stel, moet Google seker maak dat dit jy is – voer jou wagwoord in om te begin.</translation>
 <translation id="7003339318920871147">Webdatabasisse</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} lêer}other{{COUNT} lêers}}</translation>
+<translation id="7003705861991657723">Alfa</translation>
 <translation id="7003723821785740825">Stel 'n vinniger manier op om jou toestel te ontsluit</translation>
 <translation id="7003844668372540529">Onbekende produk <ph name="PRODUCT_ID" /> vanaf <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">Werf kan MIDI gebruik</translation>
@@ -6168,6 +6180,7 @@
 <translation id="7008815993384338777">Swerf nie tans nie</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> gebruik tans jou kamera</translation>
 <translation id="701080569351381435">Bekyk bron</translation>
+<translation id="7011797924920577670">skat jou belangstellings</translation>
 <translation id="7014174261166285193">Kon nie installeer nie.</translation>
 <translation id="7014480873681694324">Verwyder kleurmerk</translation>
 <translation id="7017004637493394352">Sê weer "Ok Google"</translation>
@@ -6235,6 +6248,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> word deur jou administrateur bestuur</translation>
 <translation id="7085389578340536476">Laat Chrome toe om oudio op te neem?</translation>
 <translation id="708550780726587276">(nie opgestel nie)</translation>
+<translation id="7086531709814430567">Laat hierdie uitbreidings altyd toe om op <ph name="ORIGIN" /> te loop?</translation>
 <translation id="7086672505018440886">Sluit Chrome-loglêers in die argief in.</translation>
 <translation id="7088434364990739311">Opdateringkontrolering kon nie begin nie (foutkode <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">Hierdie toestel is deur die administrateur in 'n onvoorsienende toestand geplaas. Om dit vir inskrywing te aktiveer, laat jou administrateur die toestel asseblief in 'n hangende toestand plaas.</translation>
@@ -6333,7 +6347,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Verlaat bladsy}other{Verlaat bladsye}}</translation>
 <translation id="7207457272187520234">Stuur gebruik- en diagnostiese data. Hierdie toestel stuur tans diagnostiese, toestel- en programgebruikdata outomaties na Google toe. Dit sal met stelsel- en programstabiliteit en ander verbeteringe help. Sekere saamgestelde data sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help. Hierdie instelling word deur die eienaar toegepas. As jou bykomende Web- en Programaktiwiteit-instelling aangeskakel is, kan hierdie data in jou Google-rekening gestoor word.</translation>
 <translation id="7207631048330366454">Deursoek programme</translation>
-<translation id="720808544705441386">Kan nie app oopmaak nie</translation>
 <translation id="7210499381659830293">Uitbreidingdrukkers</translation>
 <translation id="7211783048245131419">Geen skakelaar is nog toegeken nie</translation>
 <translation id="7212097698621322584">Voer jou huidige PIN in om dit te verander. As jy nie jou PIN ken nie, moet jy die sekuriteitsleutel terugstel en dan 'n nuwe PIN skep.</translation>
@@ -8368,6 +8381,7 @@
 <translation id="9215742531438648683">Deïnstalleer Google Play Winkel</translation>
 <translation id="9218430445555521422">Stel as verstek</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (ongesteunde program)</translation>
+<translation id="9219582468404818260">Help ons om 'n beter web te bou</translation>
 <translation id="9220525904950070496">Verwyder rekening</translation>
 <translation id="9220820413868316583">Lig en probeer dan weer.</translation>
 <translation id="923467487918828349">Wys almal</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index bf8aac4..774995b 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">አካባቢዎን የሚፈልጉ ባህሪዎች አይሰሩም</translation>
 <translation id="1329191040029425999">መሣሪያዎ ወቅታዊ መሆኑን ያረጋግጡ እና እባክዎ እንደገና ይሞክሩ</translation>
 <translation id="1330145147221172764">የታይታ የቁልፍ ሰሌዳን አንቃ</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" />ን ለመክፈት «ከእንቅልፍ ሲነቁ ማያ ገጽ ቆልፍን አሳይ» የሚለውን ያንቁ</translation>
 <translation id="1331977651797684645">ይሄ እኔ ነበርኩ።</translation>
 <translation id="1333489022424033687">ሌሎች ጣቢያዎች በመሣሪያዎ ላይ ያከማቹት ውሂብ እስኪያጸዱ ድረስ በ<ph name="ORIGIN" /> ላይ ያሉ አንዳንድ ባህሪያት ላይሰሩ ይችላሉ</translation>
 <translation id="1333965224356556482">ጣቢያዎች አካባቢዎን እንዲያዩ አይፍቀዱ</translation>
@@ -6325,7 +6324,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ከገጽ ውጣ}one{ከገጾች ውጣ}other{ከገጾች ውጣ}}</translation>
 <translation id="7207457272187520234">የአጠቃቀም እና የምርመራ ውሂብ ይላኩ። ይህ መሣሪያ በአሁኑ ጊዜ በራስ-ሰር የምርመራ፣ የመሣሪያ እና የመተግበሪያ አጠቃቀም ውሂብ ወደ Google እየላከ ነው። ይህ የሥርዓት እና የመተግበሪያ እርጋታን እና ሌሎች ማሻሻያዎችን ያግዛል። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ። ይህ ቅንብር በባለቤቱ ተፈጻሚ ይደረጋል። የእርስዎ የተጨማሪ ድር እና መተግበሪያ እንቅስቃሴ ቅንብር በርቶ ከሆነ ይህ ውሂብ በGoogle መለያዎ ላይ ሊቀመጥ ይችላል።</translation>
 <translation id="7207631048330366454">መተግበሪያዎችን ይፈልጉ</translation>
-<translation id="720808544705441386">መተግበሪያን መክፈት አይቻልም</translation>
 <translation id="7210499381659830293">የቅጥያ አታሚዎች</translation>
 <translation id="7211783048245131419">ገና ምንም ማብሪያ/ማጥፊያ አልተመደበም</translation>
 <translation id="7212097698621322584">ለመለወጥ የእርስዎን አሁን ያለውን ፒን ያስገቡ። የእርስዎን ፒን የማያውቁት ከሆነ፣ የእርስዎን የደህንነት ቁልፍ ዳግም ማቀናበር እና በመቀጠል አዲስ ፒን መፍጠር ይኖርብዎታል።</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 907e50e..8c60c6d 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -337,7 +337,6 @@
 <translation id="1327794256477341646">لن تعمل الميزات التي تحتاج إلى موقعك الجغرافي.</translation>
 <translation id="1329191040029425999">تأكّد من أنّ جهازك مُحدَّث. بعد ذلك، يُرجى إعادة المحاولة.</translation>
 <translation id="1330145147221172764">تفعيل لوحة المفاتيح على الشاشة</translation>
-<translation id="1331625853030156663">لفتح تطبيق <ph name="APP_NAME" />، يُرجى تفعيل ميزة "عرض شاشة القفل عند التنشيط من وضع السكون".</translation>
 <translation id="1331977651797684645">كان هذا أنا.</translation>
 <translation id="1333489022424033687">قد لا تعمل بعض ميزات <ph name="ORIGIN" /> حتى تقوم بمحو البيانات التي خزّنتها المواقع الإلكترونية الأخرى على جهازك.</translation>
 <translation id="1333965224356556482">عدم السماح للمواقع الإلكترونية بالوصول إلى موقعك الجغرافي</translation>
@@ -6327,7 +6326,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{الخروج من الصفجة}zero{الخروج من صفحة}two{الخروج من الصفحتين}few{الخروج من صفحات}many{الخروج من صفحة}other{الخروج من صفحة}}</translation>
 <translation id="7207457272187520234">‏يمكنك إرسال بيانات الاستخدام والتشخيص. ويُرسل هذا الجهاز حاليًا بيانات استخدام التطبيق وبيانات التشخيص وبيانات الجهاز تلقائيًا إلى Google. وسيساعد ذلك في تعزيز استقرار النظام والتطبيقات وإجراء المزيد من التحسينات. وسيستفيد أيضًا مطوّرو التطبيقات والشركاء في Google، مثل مطوّري البرامج المتوافقة مع Android، من بعض البيانات المجمّعة. ويفرض المالك هذا الإعداد. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات"، قد يتم حفظ هذه البيانات في حسابك على Google.</translation>
 <translation id="7207631048330366454">البحث في التطبيقات</translation>
-<translation id="720808544705441386">يتعذّر فتح التطبيق</translation>
 <translation id="7210499381659830293">طابعات مُوصّلة</translation>
 <translation id="7211783048245131419">لم يتم تخصيص مفتاح تبديل بعد</translation>
 <translation id="7212097698621322584">يُرجى إدخال رقم التعريف الشخصي الحالي لتغييره. في حال كنت لا تعرف رقم التعريف الشخصي، عليك إعادة ضبط مفتاح الأمان، ثم إنشاء رقم تعريف شخصي جديد.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index e949d749..291ddb3 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">এটা অৱস্থান আৱশ্যক হোৱা সুবিধাসমূহে কাম নকৰিব</translation>
 <translation id="1329191040029425999">আপোনাৰ ডিভাইচটো আপ টু ডে’ট হৈ থকাটো নিশ্চিত কৰক আৰু অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক</translation>
 <translation id="1330145147221172764">অন স্ক্ৰীণ কীব’র্ড সক্ষম কৰক</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> খুলিবলৈ "নিষ্ক্ৰিয় হৈ থকাৰ পৰা সক্ৰিয় হওঁতে লক স্ক্ৰীন দেখুৱাওক"</translation>
 <translation id="1331977651797684645">এয়া ময়েই আছিলোঁ।</translation>
 <translation id="1333489022424033687">অন্য ছাইটসমূহে আপোনাৰ ডিভাইচত ষ্ট’ৰ কৰা ডেটা আপুনি নমচালৈকে <ph name="ORIGIN" />ত কিছুমান সুবিধাই কাম নকৰিবও পাৰে</translation>
 <translation id="1333965224356556482">ছাইটক আপোনাৰ অৱস্থান চোৱাৰ অনুমতি নিদিব</translation>
@@ -6345,7 +6344,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{পৃষ্ঠাৰ বাহিৰ হওক}one{পৃষ্ঠাসমূহৰ বাহিৰ হওক}other{পৃষ্ঠাসমূহৰ বাহিৰ হওক}}</translation>
 <translation id="7207457272187520234">ব্যৱহাৰ আৰু ডায়গনষ্টিক ডেটা পঠিয়াওক। এই ডিভাইচটোৱে বর্তমান স্বয়ংক্ৰিয়ভাৱে Googleলৈ ডায়গন’ষ্টিক, ডিভাইচ আৰু এপ্ ব্যৱহাৰৰ ডেটা পঠিয়াই আছে। এই কার্যটোৱে ছিষ্টেম আৰু এপৰ স্থিৰতা আৰু অন্য উন্নয়নত সহায় কৰিব। কিছুমান একত্ৰিত ডেটাই Google এপ্‌ আৰু Android বিকাশকৰ্তাৰ দৰে অংশীদাৰকো সহায় কৰিব। এই ছেটিংটো গৰাকীয়ে বলৱৎ কৰিছে। যদি আপোনাৰ অতিৰিক্ত ৱেব আৰু এপৰ কার্যকলাপৰ ছেটিংটো অন কৰা হয় তেন্তে এই ডেটাখিনি আপোনাৰ Google একাউণ্টত ছেভ কৰা হ’ব পাৰে।</translation>
 <translation id="7207631048330366454">এপসমূহ সন্ধান কৰক</translation>
-<translation id="720808544705441386">এপ্‌টো খুলিব পৰা নাই</translation>
 <translation id="7210499381659830293">এক্সটেনশ্বন প্ৰিণ্টাৰ</translation>
 <translation id="7211783048245131419">এই পৰ্যন্ত কোনো ছুইচ আবণ্টন কৰা হোৱা নাই</translation>
 <translation id="7212097698621322584">আপোনাৰ বৰ্তমানৰ পিনটো সলনি কৰিবলৈ সেইটো দিয়ক। আপুনি যদি নিজৰ পিনটো নাজানে, আপুনি সুৰক্ষা চাবিটো ৰিছেট কৰি এটা নতুন পিন সৃষ্টি কৰিব লাগিব।</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 79f8ca7..bff3af4b 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -331,7 +331,6 @@
 <translation id="1327794256477341646">Məkanınızı tələb edən xüsusiyyətlər işləməyəcək</translation>
 <translation id="1329191040029425999">Cihazınızın güncəl olduğuna əmin olun və yenidən cəhd edin</translation>
 <translation id="1330145147221172764">Ekranüstü klaviaturaları aktiv edin</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> tətbiqini açmaq üçün "Yuxudan oyanarkən kilid ekranını göstər" seçimini aktiv edin</translation>
 <translation id="1331977651797684645">Mən idim.</translation>
 <translation id="1333489022424033687">Digər saytların cihazınızda saxladığı datanı silməsəniz,<ph name="ORIGIN" /> üzərindəki bəzi xüsusiyyətlər işləməyə bilər</translation>
 <translation id="1333965224356556482">Saytlara məkanınıza baxmaq icazəsi verməyin</translation>
@@ -6310,7 +6309,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Səhifədən Çıxın}other{Səhifələrdən Çıxın}}</translation>
 <translation id="7207457272187520234">İstifadə və diaqnostika datasını göndərin. Bu cihaz hazırda diaqnostika, cihaz və tətbiqdən istifadə datasını avtomatik Google'a göndərir. Bu, sistem və tətbiq sabitliyi və digər təkmilləşdirmələrə kömək edəcək. Bəzi ümumiləşdirilmiş məlumatlar Google tətbiqlərinə və Android tərtibatçıları kimi partnyorlara da kömək edəcək. Bu ayar sahibi tərəfindən tətbiq edilir. Əlavə Veb və Tətbiq Fəaliyyəti ayarı aktiv edilərsə, bu data Google Hesabınızda yadda saxlanıla bilər.</translation>
 <translation id="7207631048330366454">Tətbiqlərdə axtarın</translation>
-<translation id="720808544705441386">Tətbiqi açmaq mümkün deyil</translation>
 <translation id="7210499381659830293">Artırma printerləri</translation>
 <translation id="7211783048245131419">Hələ heç bir düymə təyin edilməyib</translation>
 <translation id="7212097698621322584">Dəyişmək üçün cari PIN-i daxil edin. PIN-i bilmirsinizsə, güvənlik açarını sıfırlamalı, sonra isə yeni PIN yaratmalısınız.</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index e089253..fe16c5f 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Функцыі, якім патрэбна інфармацыя пра ваша месцазнаходжанне, не будуць працаваць</translation>
 <translation id="1329191040029425999">Упэўніцеся, што прылада абноўлена, і паўтарыце спробу</translation>
 <translation id="1330145147221172764">Уключыць экранную клавіятуру</translation>
-<translation id="1331625853030156663">Каб адкрыць праграму "<ph name="APP_NAME" />", уключыце параметр "Паказваць экран блакіроўкі пры абуджэнні ад сну"</translation>
 <translation id="1331977651797684645">Гэта я.</translation>
 <translation id="1333489022424033687">Некаторыя функцыі на сайце <ph name="ORIGIN" /> могуць не працаваць, пакуль вы не выдаліце даныя, захаваныя на прыладзе іншымі сайтамі</translation>
 <translation id="1333965224356556482">Не даваць сайтам доступ да інфармацыі пра ваша месцазнаходжанне</translation>
@@ -4323,6 +4322,7 @@
 <translation id="520568280985468584">Сотавая сетка дададзена. Яе актывацыя можа заняць некалькі хвілін.</translation>
 <translation id="5206215183583316675">Выдаліць "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Памылка імпарту сертыфіката</translation>
+<translation id="5206562235913517859">Ідэнтыфікатар крамы рознічнага гандлю ў фармаце ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Раскрыты пароль зменены. Застаўся яшчэ # раскрыты пароль. Chrome рэкамендуе праверыць гэты пароль зараз.}one{Раскрыты пароль зменены. Застаўся яшчэ # раскрыты пароль. Chrome рэкамендуе праверыць гэтыя паролі зараз.}few{Раскрыты пароль зменены. Засталіся яшчэ # раскрытыя паролі. Chrome рэкамендуе праверыць гэтыя паролі зараз.}many{Раскрыты пароль зменены. Засталіся яшчэ # раскрытых пароляў. Chrome рэкамендуе праверыць гэтыя паролі зараз.}other{Раскрыты пароль зменены. Засталіся яшчэ # раскрытага пароля. Chrome рэкамендуе праверыць гэтыя паролі зараз.}}</translation>
 <translation id="5207949376430453814">Указваць на курсор рэдагавання тэксту</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> запытвае дазвол праверыць, ці выкарыстоўваеце вы прыдатную прыладу Chrome OS.</translation>
@@ -4844,6 +4844,7 @@
 <translation id="5729712731028706266">&amp;Прагляд</translation>
 <translation id="5731247495086897348">Ус&amp;тавіць і перайсці</translation>
 <translation id="5732392974455271431">Разблакіраваць сайт для вас могуць бацькі</translation>
+<translation id="5733866499231170760">Няправільны ідэнтыфікатар. Прагледзьце атрыманыя інструкцыі і ўпэўніцеся, што ідэнтыфікатар, які вы ўводзіце, мае правільны фармат. Калі вырашыць гэту праблему не ўдаецца, пакіньце поле пустым і працягвайце ўсталяванне.</translation>
 <translation id="5734362860645681824">Размовы</translation>
 <translation id="5734697361979786483">Дадаць файлаабменнік</translation>
 <translation id="5736796278325406685">Увядзіце сапраўднае імя карыстальніка</translation>
@@ -6322,7 +6323,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Выйсці са старонкі}one{Выйсці са старонак}few{Выйсці са старонак}many{Выйсці са старонак}other{Выйсці са старонак}}</translation>
 <translation id="7207457272187520234">Адпраўка даных пра выкарыстанне і дыягностыку. Зараз прылада аўтаматычна адпраўляе ў Google даныя дыягностыкі і даныя пра выкарыстанне прылады і праграм. Яны будуць карысныя для паляпшэння стабільнасці сістэмы і праграм і для іншых удасканаленняў. Некаторыя згрупаваныя даныя таксама будуць карысныя для праграм і партнёраў Google, напрыклад распрацоўшчыкаў Android. Гэта налада ўключана ўладальнікам. Калі налада "Дадатковыя дзеянні ў інтэрнэце і праграмах" уключана, адпаведныя даныя могуць захоўвацца ва Уліковым запісе Google.</translation>
 <translation id="7207631048330366454">Пошук праграм</translation>
-<translation id="720808544705441386">Не ўдалося адкрыць праграму</translation>
 <translation id="7210499381659830293">Дабавачныя прынтары</translation>
 <translation id="7211783048245131419">Пераключальнік яшчэ не прызначаны</translation>
 <translation id="7212097698621322584">Каб змяніць бягучы PIN-код, увядзіце яго. Калі вы не ведаеце PIN-код, вам трэба будзе скінуць ключ бяспекі, а затым стварыць новы PIN-код.</translation>
@@ -6957,6 +6957,7 @@
 <translation id="7824864914877854148">Рэзервовае капіраванне не ўдалося завяршыць з-за памылкі</translation>
 <translation id="782590969421016895">Выкарыстоўваць бягучыя старонкі</translation>
 <translation id="7826174860695147464">Падтрымка браўзераў ранейшых версій – Унутраныя налады</translation>
+<translation id="7826190688224781865">Код ідэнтыфікатара крамы рознічнага гандлю</translation>
 <translation id="7826249772873145665">Адладка ADB выключана</translation>
 <translation id="7826254698725248775">Канфлікт ідэнтыфікатараў прылад.</translation>
 <translation id="7828731929332799387">Будуць выдалены ўсе файлы cookie і даныя сайтаў, даступныя ў старонніх кантэкстах. Працягнуць?</translation>
@@ -8425,6 +8426,7 @@
 <translation id="987897973846887088">Няма даступных відарысаў</translation>
 <translation id="988320949174893488">Часам відэа перарываецца</translation>
 <translation id="988978206646512040">Неабходна задаць фразу-пароль</translation>
+<translation id="991097196715779457">Код ідэнтыфікатара крамы рознічнага гандлю (неабавязкова)</translation>
 <translation id="992032470292211616">Пашырэнні, праграмы і тэмы могуць нашкодзіць вашай прыладзе. Вы сапраўды хочаце працягнуць?</translation>
 <translation id="992256792861109788">Ружовы</translation>
 <translation id="992592832486024913">Выключыць ChromeVox (галасавая зваротная сувязь)</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index bc1f207..e87bacd 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Функциите, които изискват достъп до местоположението ви, няма да работят</translation>
 <translation id="1329191040029425999">Проверете дали устройството ви е актуално и опитайте отново</translation>
 <translation id="1330145147221172764">Активиране на екранната клавиатура</translation>
-<translation id="1331625853030156663">За да отворите <ph name="APP_NAME" />, активирайте „Показване на заключения екран при излизане от спящ режим“</translation>
 <translation id="1331977651797684645">Това бях аз.</translation>
 <translation id="1333489022424033687">Някои функции на <ph name="ORIGIN" /> може да не работят, докато не изчистите данните, които другите сайтове са съхранили на устройството ви</translation>
 <translation id="1333965224356556482">Да не се разрешава на сайтовете да виждат местоположението ви</translation>
@@ -6330,7 +6329,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Изход от страницата}other{Изход от страниците}}</translation>
 <translation id="7207457272187520234">Изпращане на данни за употребата и диагностиката. Понастоящем това устройство автоматично изпраща до Google диагностична информация и данни за употребата на устройството и приложенията. Това ще послужи за подобряване на стабилността на системата и приложенията и др. Някои обобщени данни също така ще подпомогнат приложенията и партньорите на Google, напр. програмистите за Android. Тази настройка е наложена от собственика. Ако настройката „Допълнителна активност в мрежата и приложенията“ е включена за вас, тези данни може да се запазват в профила ви в Google.</translation>
 <translation id="7207631048330366454">Търсене в приложенията</translation>
-<translation id="720808544705441386">Отварянето на приложението не е възможно</translation>
 <translation id="7210499381659830293">Принтери, свързани чрез разширение</translation>
 <translation id="7211783048245131419">Не е зададен превключвател</translation>
 <translation id="7212097698621322584">Въведете текущия си ПИН код, за да го промените. Ако не го знаете, трябва да нулирате ключа за сигурност, след което да създадете нов ПИН код.</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 78fa391..a17c326d 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">যেসব ফিচার ব্যবহার করতে আপনার লোকেশন জানা দরকার সেগুলি কাজ করবে না</translation>
 <translation id="1329191040029425999">আপনার ডিভাইসটি আপ-টু-ডেট আছে দেখে নিয়ে আবার চেষ্টা করুন</translation>
 <translation id="1330145147221172764">অন-স্ক্রিন কীবোর্ড সক্ষম করুন</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> খোলার জন্য, "ঘুম থেকে জাগার সময় লক স্ক্রিন দেখান" বিকল্প চালু করুন</translation>
 <translation id="1331977651797684645">এটা আমিই।</translation>
 <translation id="1333489022424033687">অন্যান্য সাইটের যেসব ডেটা আপনার ডিভাইসে রয়েছে, সেগুলি মুছে না দেওয়া পর্যন্ত কিছু ফিচার <ph name="ORIGIN" />-এ হয়ত কাজ করবে না</translation>
 <translation id="1333965224356556482">সাইটগুলিকে আপনার লোকেশন দেখার অনুমতি দেয় না</translation>
@@ -1020,6 +1019,7 @@
 <translation id="1944921356641260203">আপডেট পাওয়া গেছে</translation>
 <translation id="1947136734041527201">কোনও পরিচিতি পরিষেবার সাথে যুক্ত আপনারই কোনও অ্য়াকাউন্ট ব্যবহার করে আপনাকে ওয়েবসাইটগুলিতে সাইন-ইন করতে দেয়</translation>
 <translation id="1949584741547056205">দ্রুত উত্তর</translation>
+<translation id="1949849604471335579">পছন্দ অনুযায়ী ওয়ালপেপার, স্ক্রিন সেভার অ্যাকসেন্টের রঙ ও আরও অনেক অভিজ্ঞতা পান</translation>
 <translation id="1951012854035635156">Assistant</translation>
 <translation id="1954597385941141174">USB ডিভাইসের সাথে কানেক্ট করতে, সাইট অনুমতি চাইতে পারে</translation>
 <translation id="1954813140452229842">মাউন্টিং শেয়ারে সমস্যা। অনুগ্রহ করে আপনার ক্রেডেনশিয়াল যাচাই করে আবার চেষ্টা করুন।</translation>
@@ -1051,6 +1051,7 @@
 <translation id="1981434377190976112">সমস্ত ওয়েবসাইটে আপনার ডেটা পড়তে পারে</translation>
 <translation id="1984417487208496350">সুরক্ষিত নয় (সাজেস্ট করা হচ্ছে না)</translation>
 <translation id="1987317783729300807">অ্যাকাউন্টসমূহ</translation>
+<translation id="1987574314042117472">জনপ্রিয় অ্যাপ বেছে নিয়ে ইনস্টল করুন</translation>
 <translation id="1988259784461813694">প্রয়োজন</translation>
 <translation id="1989112275319619282">ব্রাউজ করুন</translation>
 <translation id="1989903373608997757">সবসময় ব্যবহার করুন</translation>
@@ -1116,6 +1117,7 @@
 <translation id="2048554637254265991">কন্টেনার ম্যানেজার শুরু হওয়ার সময় কোনও সমস্যা হয়েছে। আবার চেষ্টা করুন।</translation>
 <translation id="2048653237708779538">অ্যাকশন উপলভ্য নেই</translation>
 <translation id="2050339315714019657">প্রতিকৃতি</translation>
+<translation id="2052572566310583903">আপনার অন্য ডিভাইসে ইনস্টল করা হয়েছে</translation>
 <translation id="2053312383184521053">নিষ্ক্রিয় অবস্থার ডেটা</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" />-এ বিভাজিত <ph name="SITE_NAME" />-এর জন্য সাইট ডেটা মুছুবেন?</translation>
 <translation id="2055585478631012616">যেকোনও খোলা ট্যাব ছাড়াও এই সব সাইটগুলি থেকে আপনি সাইন-আউট হয়ে যাবেন</translation>
@@ -1278,6 +1280,7 @@
 <translation id="2191754378957563929">চালু করা আছে</translation>
 <translation id="2192505247865591433">এর থেকে:</translation>
 <translation id="2193365732679659387">বিশ্বস্ততার সেটিংস</translation>
+<translation id="2194554416429452547">ট্রায়াল চলাকালীন, স্প্যাম, জালিয়াতি ও দুটি সাইটের মধ্যে শেয়ার সীমিত করার বিভিন্ন উপায় Chrome এক্সপ্লোর করছে। এছাড়া, Chrome <ph name="ESTIMATE_INTERESTS_LINK" /> লিঙ্কও দেখায় যা ব্যবহার করে সাইট আপনাকে বিজ্ঞাপন দেখাতে পারে। সেটিংস থেকে আপনার আগ্রহের বিষয় ম্যানেজ করতে পারবেন।</translation>
 <translation id="2194856509914051091">যা যা দেখে নেওয়া প্রয়োজন</translation>
 <translation id="2195331105963583686">সেই সময়ের পরে এখনও আপনি এই <ph name="DEVICE_TYPE" /> ব্যবহার করতে পারবেন, কিন্তু এখানে সফ্টওয়্যার এবং নিরাপত্তা সংক্রান্ত অটোমেটিক আপডেট আর পাবেন না</translation>
 <translation id="2195729137168608510">ইমেল আইডির সুরক্ষা</translation>
@@ -1884,6 +1887,7 @@
 <translation id="2749836841884031656">সিম (SIM)</translation>
 <translation id="2749881179542288782">বানান সহ ব্যাকরণ চেক করুন</translation>
 <translation id="2753677631968972007">কোন কোন সাইটে অনুমতি দেবেন তা ম্যানুয়ালি নিয়ন্ত্রন করুন।</translation>
+<translation id="2754825024506485820">Google Play Store-এ, প্রোডাক্টিভিটি থেকে বিনোদন, আপনার প্রয়োজনের বিভিন্ন অ্যাপ ডাউনলোড করুন। আপনি যেকোনও সময় অ্যাপ ইনস্টল করতে পারবেন।</translation>
 <translation id="2755349111255270002">এই <ph name="DEVICE_TYPE" /> রিসেট করুন</translation>
 <translation id="2755367719610958252">ব্যবহারযোগ্যতা বৈশিষ্ট্যগুলি পরিচালনা করুন</translation>
 <translation id="275662540872599901">স্ক্রিন বন্ধ</translation>
@@ -1960,6 +1964,7 @@
 <translation id="2815693974042551705">বুকমার্ক ফোল্ডার</translation>
 <translation id="2816319641769218778">আপনার Google অ্যাকাউন্টে পাসওয়ার্ড সেভ করতে, সিঙ্ক চালু করুন।</translation>
 <translation id="2816628817680324566">এই সাইটকে আপনার নিরাপত্তা কী দেখার অনুমতি দিতে চান?</translation>
+<translation id="2817435998497102771">'ওয়ালপেপার ও স্টাইল' ফিচার সেট করুন</translation>
 <translation id="2818476747334107629">প্রিন্টারের বিশদ বিবরণ</translation>
 <translation id="2819167288942847344">অ্যাপের উল্টোপাল্টা আচরণ আটকাতে ফোন, ট্যাবলেট অথবা ছোট বড় করা যায় এমন উইন্ডোয় প্রিসেট ব্যবহার করুন</translation>
 <translation id="2820957248982571256">স্ক্যান করা হচ্ছে…</translation>
@@ -2853,6 +2858,7 @@
 <translation id="3727144509609414201">উপলভ্য ওয়াই-ফাই নেটওয়ার্ক</translation>
 <translation id="3727187387656390258">পপআপ সংবীক্ষণ</translation>
 <translation id="372722114124766626">মাত্র একবার</translation>
+<translation id="3727332897090187514">কোনও নোট যোগ করা হয়নি</translation>
 <translation id="3727473233247516571">ব্যাক-ফরোয়ার্ড ক্যাশেতে স্টোর করা সাবফ্রেম: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">আপনার ফোনের মিরর বিজ্ঞপ্তি</translation>
 <translation id="3728681439294129328">নেটওয়ার্ক অ্যাড্রেস কনফিগার করুন</translation>
@@ -3187,6 +3193,7 @@
 <translation id="4031527940632463547">সেন্সরগুলি ব্লক করা হয়েছে</translation>
 <translation id="4033415645631238123">Smart Lock দিয়ে সাইন-ইন করার সুবিধা আর উপলভ্য নেই। আপনি এখনও Smart Lock দিয়ে আনলক করতে পারবেন।</translation>
 <translation id="4033471457476425443">নতুন ফোল্ডার যোগ করুন</translation>
+<translation id="4033711848170683365">এর ফলে এই ডিভাইস থেকে ব্রাউজ করা ডেটা স্থায়ীভাবে মুছে যাবে। আপনার <ph name="DEVICE_TYPE" />-এ এই প্রোফাইলের Google অ্যাকাউন্ট অন্যান্য অ্যাপ ব্যবহার করতে পারে। আপনি <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> বিকল্প থেকে এইসব অ্যাকাউন্ট সরিয়ে দিতে পারবেন।</translation>
 <translation id="4033963223187371752">নিরাপদ সাইট ছবি বা ওয়েব ফ্রেমের মতো এমন কন্টেন্ট এম্বেড করতে পারে যা নিরাপদ নয়</translation>
 <translation id="4034824040120875894">প্রিন্টার</translation>
 <translation id="4035758313003622889">&amp;কার্য পরিচালক</translation>
@@ -3466,6 +3473,7 @@
 <translation id="4314815835985389558">সিঙ্ক ম্যানেজ করুন</translation>
 <translation id="4315933848520197627">অ্যাকাউন্ট আনলিঙ্ক করুন</translation>
 <translation id="4316850752623536204">ডেভেলপার ওয়েবসাইট</translation>
+<translation id="4317733381297736564">অ্যাপ-মধ্যস্থ কেনাকাটা</translation>
 <translation id="4317820549299924617">যাচাইকরণ সম্পূর্ণ হয়নি</translation>
 <translation id="4320177379694898372">কোনো ইন্টারনেট সংযোগ নেই</translation>
 <translation id="4322394346347055525">অন্যান্য ট্যাব বন্ধ করুন</translation>
@@ -4050,6 +4058,7 @@
 <translation id="4893522937062257019">লক স্ক্রিনে</translation>
 <translation id="4897496410259333978">আরও তথ্যের জন্য অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" সার্টিফিকেটটি একটি শংসাকরণ কর্তৃপক্ষের প্রতিনিধিত্ব করে</translation>
+<translation id="4899696330053002588">বিজ্ঞাপন দেখানো হয়</translation>
 <translation id="489985760463306091">ক্ষতিকারক সফ্টওয়্যার সরানোর প্রক্রিয়া সম্পূর্ণ করতে কম্পিউটার বন্ধ করে আবার চালু করুন</translation>
 <translation id="4900392736118574277">আপনার শুরুর পৃষ্ঠা <ph name="URL" /> এ পরিবর্তন করা হয়েছে।</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> হার্জ - ইন্টারলেস করা</translation>
@@ -4423,6 +4432,7 @@
 <translation id="52912272896845572">ব্যক্তিগত কী ফাইলটি ভুল৷</translation>
 <translation id="5291739252352359682">এই ফিচারের সাহায্যে Chrome ব্রাউজারে চলা মিডিয়ার ক্ষেত্রে অটোমেটিক ক্যাপশন তৈরি হয় (বর্তমানে কেবলমাত্র ইংরেজিতে উপলভ্য)। সব অডিও ও ক্যাপশন অফলাইনে প্রসেস করা হয় এবং সেগুলি সর্বদা আপনার ডিভাইসেই স্টোর করা থাকবে।</translation>
 <translation id="529175790091471945">এই ডিভাইসটি ফর্ম্যাট করুন</translation>
+<translation id="5292862864186939732"><ph name="ORIGIN" />-এ রান করার জন্য সবসময় "<ph name="EXTENSION_NAME" />"-কে অনুমতি দেবেন?</translation>
 <translation id="529296195492126134">ক্ষণস্থায়ী মোড কাজ করে না। অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন</translation>
 <translation id="5293170712604732402">সেটিংসকে তাদের মূল ডিফল্টে পুনঃস্থাপন করুন</translation>
 <translation id="5294097441441645251">অবশ্যই একটি ছোট হাতের অক্ষর বা আন্ডারস্কোর দিয়ে শুরু করতে হবে</translation>
@@ -5181,6 +5191,7 @@
 <translation id="6054961935262556546">দৃশ্যমানতা পরিবর্তন করুন</translation>
 <translation id="6055171183283175969">আপনার লেখা পাসওয়ার্ডটি ভুল৷</translation>
 <translation id="6055392876709372977">RSA এনক্রিপশানের সাথে PKCS #1 SHA-256</translation>
+<translation id="6055544610007596637">Google Play Store থেকে <ph name="DEVICE_TYPE" />-এর জন্য অ্যাপ ইনস্টল করুন</translation>
 <translation id="6056710589053485679">সাধারণ রিলোড</translation>
 <translation id="6057312498756061228">এই ফাইল নিরাপত্তা পরীক্ষা করার পক্ষে খুব বড়। আপনি সর্বাধিক ৫০ এমবি সাইজের ফাইল খুলতে পারবেন।</translation>
 <translation id="6057381398996433816">মোশন এবং লাইট সেন্সর ব্যবহার করা থেকে এই সাইটটি ব্লক করা হয়েছে।</translation>
@@ -6156,6 +6167,7 @@
 <translation id="7002055706763150362">Chromebook এর জন্য Smart Lock সেট-আপ করার জন্য Google এর এটি নিশ্চিত হওয়া প্রয়োজন যে—শুরু করতে আপনিই আপনার পাসওয়ার্ড লিখেছেন।</translation>
 <translation id="7003339318920871147">ওয়েব ডেটাবেসসমূহ</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT}টি ফাইল}one{{COUNT}টি ফাইল}other{{COUNT}টি ফাইল}}</translation>
+<translation id="7003705861991657723">আলফা</translation>
 <translation id="7003723821785740825">আপনার ডিভাইস আনলক করার জন্য একটি দ্রুততর উপায় সেট-আপ করুন</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> এর থেকে অজানা পণ্য <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">সাইট MIDI ব্যবহার করতে পারে</translation>
@@ -6172,6 +6184,7 @@
 <translation id="7008815993384338777">বর্তমানে রোমিংয়ে নেই</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> আপনার ক্যামেরা ব্যবহার করছে</translation>
 <translation id="701080569351381435">উৎস দেখান</translation>
+<translation id="7011797924920577670">আপনার আগ্রহকে অনুমান করে</translation>
 <translation id="7014174261166285193">ইনস্টলেশান ব্যর্থ হয়েছে৷</translation>
 <translation id="7014480873681694324">হাইলাইট সরিয়ে দিন</translation>
 <translation id="7017004637493394352">আবার "Ok Google" বলুন</translation>
@@ -6239,6 +6252,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে</translation>
 <translation id="7085389578340536476">Chrome কে অডিও রেকর্ড করার অনুমতি দেবেন?</translation>
 <translation id="708550780726587276">(কনফিগার করা হয়নি)</translation>
+<translation id="7086531709814430567"><ph name="ORIGIN" />-এ রান করার জন্য সবসময় এইসব এক্সটেনশনকে অনুমতি দেবেন?</translation>
 <translation id="7086672505018440886">আর্কাইভে Chrome লগ ফাইল অন্তর্ভুক্ত করুন।</translation>
 <translation id="7088434364990739311">আপডেট চেক শুরু করা যায়নি (এরর কোড <ph name="ERROR" />)৷</translation>
 <translation id="7088674813905715446">প্রশাসকের দ্বারা এই ডিভাইসটি অ্যাক্সেসহীন অবস্থায় রাখা হয়েছে। নথীভুক্তের জন্য এটি সক্ষম করতে, দয়া করে একটি মুলতুবি স্থিতিতে আপনার প্রশাসককে ডিভাইসটি রাখতে দিন।</translation>
@@ -6337,7 +6351,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{পৃষ্ঠাটি ছেড়ে যান}one{পৃষ্ঠাগুলি ছেড়ে যান}other{পৃষ্ঠাগুলি ছেড়ে যান}}</translation>
 <translation id="7207457272187520234">ব্যবহার এবং ডায়াগনস্টিক বিষয়ক ডেটা পাঠান। বর্তমানে এই ডিভাইসটি অটোমেটিক Google-কে ডায়াগনস্টিক, ডিভাইস এবং অ্যাপ ব্যবহারের ডেটা পাঠাচ্ছে। এটি সিস্টেম ও অ্যাপের স্টেবিলিটি বাড়াতে এবং অন্যান্য উন্নতিতে সাহায্য করবে। কিছু একত্রিত করা ডেটা Android ডেভেলপারের মতো Google অ্যাপ এবং পার্টনারদেরও সাহায্য করবে। এই সেটিং মালিকের নিয়ন্ত্রণে রয়েছে। আপনার অতিরিক্ত 'ওয়েব ও অ্যাপ অ্যাক্টিভিটি' সেটিং চালু থাকলে, এই ডেটা আপনার Google অ্যাকাউন্টে সেভ করা হতে পারে।</translation>
 <translation id="7207631048330366454">অ্যাপ খুঁজুন</translation>
-<translation id="720808544705441386">অ্যাপ খোলা যাচ্ছে না</translation>
 <translation id="7210499381659830293">এক্সটেনশন প্রিন্টার</translation>
 <translation id="7211783048245131419">এখনও কোনও সুইচ অ্যাসাইন করা হয়নি</translation>
 <translation id="7212097698621322584">পরিবর্তন করার জন্য আপনি পিন লিখুন। আপনি যদি পিন না জানেন তাহলে আপনাকে নিরাপত্তা কী রিসেট করতে হবে, তারপর নতুন পিন তৈরি করুন।</translation>
@@ -8373,6 +8386,7 @@
 <translation id="9215742531438648683">Google Play Store আনইনস্টল করুন</translation>
 <translation id="9218430445555521422">ডিফল্ট হিসেবে সেট করুন</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (অ্যাপটি কাজ করবে না)</translation>
+<translation id="9219582468404818260">উন্নত ওয়েবসাইট তৈরিতে আমাদের সাহায্য করুন</translation>
 <translation id="9220525904950070496">অ্যাকাউন্ট সরান</translation>
 <translation id="9220820413868316583">তুলে নিন এবং আবার চেষ্টা করুন।</translation>
 <translation id="923467487918828349">সমস্ত দেখান</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 6dbec40..ea1216c 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -337,7 +337,6 @@
 <translation id="1327794256477341646">Funkcije za koje je potrebna vaša lokacija neće funkcionirati</translation>
 <translation id="1329191040029425999">Provjerite je li uređaj ažuriran i pokušajte ponovo</translation>
 <translation id="1330145147221172764">Omogući tastaturu na ekranu</translation>
-<translation id="1331625853030156663">Da otvorite aplikaciju <ph name="APP_NAME" />, omogućite opciju "Prikaži zaključani ekran prilikom vraćanja iz mirovanja"</translation>
 <translation id="1331977651797684645">To sam ja.</translation>
 <translation id="1333489022424033687">Neke funkcije web lokacije <ph name="ORIGIN" /> možda neće raditi dok ne obrišete podatke koje su druge web lokacije pohranile na vašem uređaju</translation>
 <translation id="1333965224356556482">Nemoj dozvoliti web lokacijama prikaz lokacije</translation>
@@ -849,6 +848,7 @@
 <translation id="1794051631868188691">Nikad ne prikazuj <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Šaljite nam povratne informacije kako bismo riješili ovaj problem.</translation>
 <translation id="1795214765651529549">Koristi klasičnu</translation>
+<translation id="1796105431091975902">Odaberite Ansible Playbook za dodavanje</translation>
 <translation id="1796588414813960292">Funkcije za koje je potreban zvuk neće funkcionirati</translation>
 <translation id="1800502858278951817">Nijedna ekstenzija nije zatražila da čita i mijenja <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">Uključi stanje mirovanje kada se zatvori poklopac</translation>
@@ -3053,6 +3053,7 @@
 <translation id="389901847090970821">Odaberite tastaturu</translation>
 <translation id="3900966090527141178">Izvezite lozinke</translation>
 <translation id="3903187154317825986">Ugrađena tastatura</translation>
+<translation id="3903191712482985591">Dodajte playbook</translation>
 <translation id="3904326018476041253">Usluge lokacije</translation>
 <translation id="3904849010307028014">Na osnovu vaše interakcije s web lokacijom, kao što je redovna prijava na račun, ta web lokacija može izdati token povjerenja vašem pregledniku. Kasnije, ako druga web lokacija koju ste posjetili provjeri i pronađe važeći token povjerenja, veća je vjerovatnoća da će vas tretirati kao stvarnu osobu, a ne kao bota.</translation>
 <translation id="3905761538810670789">Popravi aplikaciju</translation>
@@ -3664,6 +3665,7 @@
 <translation id="4510479820467554003">Lista roditeljskih računa</translation>
 <translation id="451102079304155829">kolica</translation>
 <translation id="4513872120116766993">Predvidljivo pisanje</translation>
+<translation id="4513909579793564731">Primijeni playbook</translation>
 <translation id="4513946894732546136">Povratne informacije</translation>
 <translation id="451407183922382411">Omogućuje <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Reproduciraj ili pauziraj videozapis</translation>
@@ -5497,6 +5499,7 @@
 <translation id="635609604405270300">Ne isključujte uređaj</translation>
 <translation id="63566973648609420">Vaše šifrirane podatke može čitati isključivo osoba koja ima vašu šifru za pristup. Šifra za pristup se ne šalje Googleu niti je Google pohranjuje. Ukoliko zaboravite šifru za pristup ili želite promijeniti ovu postavku, morat ćete <ph name="BEGIN_LINK" />poništiti sinhronizaciju<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Neki podržani linkovi će se i dalje otvarati u aplikaciji <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">Nijedno proširenje nema dopuštenje za čitanje i promjenu web-lokacije <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Zmaj</translation>
 <translation id="6361850914223837199">Detalji o grešci</translation>
 <translation id="6362853299801475928">&amp;Prijavi problem...</translation>
@@ -6349,7 +6352,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Napusti stranicu}one{Napusti stranice}few{Napusti stranice}other{Napusti stranice}}</translation>
 <translation id="7207457272187520234">Šaljite podatke o korištenju i dijagnostici. Ovaj uređaj trenutno automatski šalje Googleu podatke o dijagnostici, uređaju i korištenju aplikacija. To će pomoći stabilnosti sistema i aplikacija, kao i drugim poboljšanjima. Neki zbirni podaci će također pomoći Googleovim aplikacijama i partnerima, kao što su Androidovi programeri. Ovu postavku je nametnuo vlasnik. Ako vam je uključena postavka dodatna Aktivnost na webu i u aplikacijama, ti podaci će možda biti sačuvani na vašem Google računu.</translation>
 <translation id="7207631048330366454">Pretražite aplikacije</translation>
-<translation id="720808544705441386">Nije moguće otvoriti aplikaciju</translation>
 <translation id="7210499381659830293">Štampači ekstenzija</translation>
 <translation id="7211783048245131419">Još uvijek nije dodijeljen nijedan prekidač za pristup</translation>
 <translation id="7212097698621322584">Unesite sadašnji PIN da ga promijenite. Ako ne znate svoj PIN, moraćete poništiti sigurnosni ključ, a zatim kreirati novi PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 86e1a4d..2439b14 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Les funcions que necessiten la teva ubicació no funcionaran</translation>
 <translation id="1329191040029425999">Comprova que el dispositiu estigui actualitzat i torna-ho a provar</translation>
 <translation id="1330145147221172764">Activa el teclat en pantalla</translation>
-<translation id="1331625853030156663">Per obrir <ph name="APP_NAME" />, activa Mostra la pantalla de bloqueig en reactivar el dispositiu</translation>
 <translation id="1331977651797684645">Sí que era jo.</translation>
 <translation id="1333489022424033687">Pot ser que algunes funcions que inclou <ph name="ORIGIN" /> no es puguin executar fins que no esborris les dades que altres llocs web han emmagatzemat al teu dispositiu</translation>
 <translation id="1333965224356556482">No permetis que els llocs web vegin la teva ubicació</translation>
@@ -4320,6 +4319,7 @@
 <translation id="520568280985468584">La xarxa s'ha afegit correctament. La xarxa mòbil pot tardar uns quants minuts a estar activa.</translation>
 <translation id="5206215183583316675">Vols suprimir "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">S'ha produït un error en importar el certificat</translation>
+<translation id="5206562235913517859">L'identificador de la botiga té el format ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{La contrasenya en perill s'ha canviat correctament. Tens # contrasenya més en perill. Chrome et recomana que comprovis aquesta contrasenya ara.}other{La contrasenya en perill s'ha canviat correctament. Tens # contrasenyes més en perill. Chrome et recomana que comprovis aquestes contrasenyes ara.}}</translation>
 <translation id="5207949376430453814">Ressalta la marca d'inserció de text</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> vol comprovar si fas servir un dispositiu Chrome OS apte.</translation>
@@ -4841,6 +4841,7 @@
 <translation id="5729712731028706266">&amp;Lector</translation>
 <translation id="5731247495086897348">En&amp;ganxa i ves-hi</translation>
 <translation id="5732392974455271431">Els teus pares te'l poden desbloquejar</translation>
+<translation id="5733866499231170760">L'identificador no és vàlid. El format que has introduït no és correcte. Comprova les instruccions que has rebut per assegurar-te que el format de l'identificador és correcte. Si no pots resoldre aquest problema, deixa el camp en blanc i continua amb la instal·lació.</translation>
 <translation id="5734362860645681824">Comunicacions</translation>
 <translation id="5734697361979786483">Afegeix compartició de fitxers</translation>
 <translation id="5736796278325406685">Introdueix un nom d'usuari vàlid</translation>
@@ -6312,7 +6313,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Surt de la pàgina}other{Surt de les pàgines}}</translation>
 <translation id="7207457272187520234">Envia dades d'ús i de diagnòstic. En aquests moments aquest dispositiu envia automàticament a Google dades de diagnòstic, del dispositiu i d'ús d'aplicacions. Aquestes dades ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i per als partners de Google, com ara els desenvolupadors d'Android. El propietari ha aplicat aquesta opció de configuració. Si tens activada l'opció Activitat al web i en aplicacions addicional, és possible que aquestes dades es desin al teu Compte de Google.</translation>
 <translation id="7207631048330366454">Cerca aplicacions</translation>
-<translation id="720808544705441386">No es pot obrir l'aplicació</translation>
 <translation id="7210499381659830293">Impressores d'extensions</translation>
 <translation id="7211783048245131419">Encara no s'ha assignat cap interruptor</translation>
 <translation id="7212097698621322584">Introdueix el PIN actual per canviar-lo. Si no el saps, hauràs de restablir la clau de seguretat i, a continuació, crear un PIN nou.</translation>
@@ -6947,6 +6947,7 @@
 <translation id="7824864914877854148">La còpia de seguretat no s'ha pogut completar a causa d'un error</translation>
 <translation id="782590969421016895">Utilitza les pàgines actuals</translation>
 <translation id="7826174860695147464">Compatibilitat amb navegadors antics (LBS): configuració interna</translation>
+<translation id="7826190688224781865">Codi d'identificació de la botiga</translation>
 <translation id="7826249772873145665">S'ha desactivat la depuració d'ADB</translation>
 <translation id="7826254698725248775">L'identificador del dispositiu ja s'està utilitzant.</translation>
 <translation id="7828731929332799387">Se suprimiran totes les galetes i les dades de llocs web disponibles en contexts de tercers. Vols continuar?</translation>
@@ -8418,6 +8419,7 @@
 <translation id="987897973846887088">No hi ha cap imatge disponible</translation>
 <translation id="988320949174893488">S'entretalla de tant en tant</translation>
 <translation id="988978206646512040">No es permeten les frases de contrasenya buides</translation>
+<translation id="991097196715779457">Codi d'identificació de la botiga (opcional)</translation>
 <translation id="992032470292211616">Les extensions, les aplicacions i els temes poden malmetre el vostre dispositiu. Confirmeu que voleu continuar?</translation>
 <translation id="992256792861109788">Rosa</translation>
 <translation id="992592832486024913">Desactiva ChromeVox (avisos de veu)</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 32abb3c8..52c8f3be 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funkce vyžadující polohu nebudou k dispozici</translation>
 <translation id="1329191040029425999">Aktualizujte zařízení a zkuste to znovu</translation>
 <translation id="1330145147221172764">Povolit softwarovou klávesnici</translation>
-<translation id="1331625853030156663">Pokud chcete otevřít aplikaci <ph name="APP_NAME" />, povolte možnost Při probuzení z režimu spánku zobrazit obrazovku uzamčení</translation>
 <translation id="1331977651797684645">To jsem byl(a) já.</translation>
 <translation id="1333489022424033687">Některé funkce ze zdroje <ph name="ORIGIN" /> nemusí fungovat, dokud neuvolníte data uložená do zařízení z jiných webů</translation>
 <translation id="1333965224356556482">Nepovolovat webům přístup k poloze</translation>
@@ -6317,7 +6316,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Opustit stránku}few{Opustit stránky}many{Opustit stránky}other{Opustit stránky}}</translation>
 <translation id="7207457272187520234">Odesílat údaje o využití a diagnostice. Toto zařízení aktuálně automaticky odesílá do Googlu diagnostické údaje a údaje o zařízení a aplikacích a jejich využití. Tyto údaje nám pomohou se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Toto nastavení je vyžadováno vlastníkem. Pokud je zapnuto dodatečné nastavení Aktivita na webu a v aplikacích, mohou se tato data ukládat do vašeho účtu Google.</translation>
 <translation id="7207631048330366454">Hledat v aplikacích</translation>
-<translation id="720808544705441386">Aplikaci  nelze otevřít</translation>
 <translation id="7210499381659830293">Rozšíření pro tiskárny</translation>
 <translation id="7211783048245131419">Zatím nebyl přiřazen žádný přepínač</translation>
 <translation id="7212097698621322584">Chcete-li změnit PIN, zadejte aktuální PIN. Pokud svůj PIN neznáte, budete bezpečnostní klíč muset resetovat a poté vytvořit nový PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index 79e7ba4..f4227f17 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -339,7 +339,6 @@
 <translation id="1327794256477341646">Ni fydd nodweddion sydd angen eich lleoliad yn gweithio</translation>
 <translation id="1329191040029425999">Gwnewch yn siŵr bod eich dyfais yn gyfredol a rhowch gynnig arall arni</translation>
 <translation id="1330145147221172764">Galluogi'r bysellfwrdd ar y sgrîn</translation>
-<translation id="1331625853030156663">I agor <ph name="APP_NAME" />, galluogwch "Dangos clo sgrîn wrth ddeffro o gwsg"</translation>
 <translation id="1331977651797684645">Fi oedd hyn.</translation>
 <translation id="1333489022424033687">Mae'n bosib na fydd rhai nodweddion ar <ph name="ORIGIN" /> yn gweithio nes i chi glirio data y mae gwefannau eraill wedi'u storio ar eich dyfais</translation>
 <translation id="1333965224356556482">Peidio â chaniatáu i wefannau weld eich lleoliad</translation>
@@ -6343,7 +6342,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Gadael y dudalen}zero{Gadael y tudalennau}two{Gadael y tudalennau}few{Gadael y tudalennau}many{Gadael y tudalennau}other{Gadael y tudalennau}}</translation>
 <translation id="7207457272187520234">Anfon data defnydd a diagnostig. Ar hyn o bryd mae'r ddyfais hon yn anfon data diagnostig, dyfais ac ap yn awtomatig at Google. Bydd hyn yn helpu sefydlogrwydd system ac ap a gwelliannau eraill. Bydd rhywfaint o ddata cyfanredol hefyd yn helpu apiau a phartneriaid Google, megis datblygwyr Android. Gorfodir y gosodiad hwn gan y perchennog. Os caiff eich gosodiad Gweithgarwch ar y We ac Apiau ychwanegol ei droi ymlaen, gellir cadw'r data hyn i'ch Cyfrif Google.</translation>
 <translation id="7207631048330366454">Chwilio apiau</translation>
-<translation id="720808544705441386">Methu ag agor ap</translation>
 <translation id="7210499381659830293">Argraffwyr estyniad</translation>
 <translation id="7211783048245131419">Heb aseinio switsh eto</translation>
 <translation id="7212097698621322584">Rhowch eich PIN presennol i'w newid. Os nad ydych yn gwybod eich PIN, bydd angen i chi ailosod yr allwedd ddiogelwch a chreu PIN newydd.</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 75a43bb..c5048b7 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Funktioner, der skal bruge din lokation, fungerer ikke</translation>
 <translation id="1329191040029425999">Tjek, at din enhed er opdateret, og prøv igen</translation>
 <translation id="1330145147221172764">Aktivér skærmtastatur</translation>
-<translation id="1331625853030156663">Hvis du vil åbne <ph name="APP_NAME" />, skal du aktivere "Vis låseskærmen, når enheden vågner fra dvale"</translation>
 <translation id="1331977651797684645">Det var mig.</translation>
 <translation id="1333489022424033687">Visse funktioner på <ph name="ORIGIN" /> fungerer muligvis ikke, før du har ryddet data, som andre websites har gemt på enheden</translation>
 <translation id="1333965224356556482">Tillad ikke, at websites ser din lokation</translation>
@@ -6335,7 +6334,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Forlad side}one{Forlad side}other{Forlad sider}}</translation>
 <translation id="7207457272187520234">Send brugs- og diagnosticeringsdata. Denne enhed sender i øjeblikket automatisk diagnosticerings- og enhedsdata samt data om brug af apps til Google. Dataene bruges til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Denne indstilling håndhæves af ejeren. Hvis indstillingen for yderligere web- og appaktivitet er aktiveret, gemmes disse data muligvis på din Google-konto.</translation>
 <translation id="7207631048330366454">Søg efter apps</translation>
-<translation id="720808544705441386">Appen kan ikke åbnes</translation>
 <translation id="7210499381659830293">Udvidelsesprintere</translation>
 <translation id="7211783048245131419">Der er endnu ikke blevet tildelt nogen kontakt</translation>
 <translation id="7212097698621322584">Angiv din aktuelle pinkode for at ændre den. Hvis du ikke kender din pinkode, skal du nulstille sikkerhedsnøglen og derefter oprette en ny pinkode.</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index e62f000..ddf4212 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Funktionen, die deinen Standort benötigen, funktionieren dann nicht</translation>
 <translation id="1329191040029425999">Achte darauf, dass dein Gerät auf dem neuesten Stand ist, und versuche es noch einmal</translation>
 <translation id="1330145147221172764">Bildschirmtastatur aktivieren</translation>
-<translation id="1331625853030156663">Um <ph name="APP_NAME" /> zu öffnen, aktiviere „Sperrbildschirm anzeigen, wenn der Ruhemodus beendet wird“</translation>
 <translation id="1331977651797684645">Das war ich.</translation>
 <translation id="1333489022424033687">Einige Funkionen auf <ph name="ORIGIN" /> funktionieren möglicherweise erst, wenn du Daten löschst, die durch andere Websites auf deinem Gerät gespeichert wurden</translation>
 <translation id="1333965224356556482">Websites dürfen meinen Standort nicht sehen</translation>
@@ -4318,6 +4317,7 @@
 <translation id="520568280985468584">Das Netzwerk wurde hinzugefügt. Es kann einige Minuten dauern, bis das Mobilfunknetz aktiv wird.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" löschen?</translation>
 <translation id="520621735928254154">Fehler beim Importieren des Zertifikats</translation>
+<translation id="5206562235913517859">Geschäfts-ID des Händlers hat das Format „ABC-1234“</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Das gehackte Passwort wurde erfolgreich geändert. Du hast # weiteres gehacktes Passwort. Chrome empfiehlt, dieses Passwort jetzt zu prüfen.}other{Das gehackte Passwort wurde erfolgreich geändert. Du hast # weitere gehackte Passwörter. Chrome empfiehlt, diese Passwörter jetzt zu prüfen.}}</translation>
 <translation id="5207949376430453814">Textcursor hervorheben</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> möchte überprüfen, ob du ein unterstütztes Chrome OS-Gerät verwendest.</translation>
@@ -4837,6 +4837,7 @@
 <translation id="5729712731028706266">&amp;Ansicht</translation>
 <translation id="5731247495086897348">Einfügen und &amp;aufrufen</translation>
 <translation id="5732392974455271431">Deine Eltern können die Blockierung aufheben</translation>
+<translation id="5733866499231170760">Ungültige ID. Das verwendete Format ist falsch. Bitte orientiere dich an der Anleitung, die du erhalten hast, um die ID im korrekten Format einzugeben. Wenn du dieses Problem nicht beheben kannst, lasse das Feld leer und fahre mit der Installation fort.</translation>
 <translation id="5734362860645681824">Kommunikation</translation>
 <translation id="5734697361979786483">Dateifreigabe hinzufügen</translation>
 <translation id="5736796278325406685">Bitte gib einen gültigen Nutzernamen ein</translation>
@@ -6308,7 +6309,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Seite verlassen}other{Seiten verlassen}}</translation>
 <translation id="7207457272187520234">Du hast die Möglichkeit, Nutzungsdaten &amp; Fehlerberichte zu senden. Dieses Gerät sendet momentan automatisch Diagnose- und Gerätedaten sowie App-Nutzungsdaten an Google. Die Daten helfen unter anderem dabei, die Stabilität des Systems und der Apps zu verbessern. Einige aggregierte Daten sind auch für Apps und Partner von Google nützlich, beispielsweise Android-Entwickler. Diese Einstellung wird vom Inhaber erzwungen. Wenn die Einstellung "Zusätzliche Web- &amp; App-Aktivitäten" aktiviert ist, werden diese Daten möglicherweise in deinem Google-Konto gespeichert.</translation>
 <translation id="7207631048330366454">Apps finden</translation>
-<translation id="720808544705441386">App kann nicht geöffnet werden</translation>
 <translation id="7210499381659830293">Erweiterungsdrucker</translation>
 <translation id="7211783048245131419">Es wurde noch keine Schaltertaste zugewiesen</translation>
 <translation id="7212097698621322584">Gib deine aktuelle PIN ein, um sie zu ändern. Falls du deine PIN nicht kennst, musst du den Sicherheitsschlüssel zurücksetzen und dann eine neue PIN erstellen.</translation>
@@ -6943,6 +6943,7 @@
 <translation id="7824864914877854148">Sicherung konnte aufgrund eines Fehlers nicht abgeschlossen werden</translation>
 <translation id="782590969421016895">Aktuelle Seiten verwenden</translation>
 <translation id="7826174860695147464">Unterstützung älterer Browser – interne Elemente</translation>
+<translation id="7826190688224781865">Geschäfts-ID-Code des Händlers</translation>
 <translation id="7826249772873145665">ADB-Fehlerbehebung deaktiviert</translation>
 <translation id="7826254698725248775">In Konflikt stehende Gerätekennung.</translation>
 <translation id="7828731929332799387">Dadurch werden alle Cookies und Websitedaten von Drittanbietern gelöscht. Möchtest du fortfahren?</translation>
@@ -8412,6 +8413,7 @@
 <translation id="987897973846887088">Keine Bilder verfügbar</translation>
 <translation id="988320949174893488">Gelegentliches Stocken</translation>
 <translation id="988978206646512040">Eine leere Passphrase ist nicht zulässig</translation>
+<translation id="991097196715779457">Geschäfts-ID-Code des Händlers (optional)</translation>
 <translation id="992032470292211616">Erweiterungen, Apps und Designs können Schäden auf deinem Gerät verursachen. Möchtest du wirklich fortfahren?</translation>
 <translation id="992256792861109788">Rosa</translation>
 <translation id="992592832486024913">ChromeVox deaktivieren (gesprochenes Feedback)</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index faefd02..a7e1713 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Οι λειτουργίες που πρέπει να γνωρίζουν την τοποθεσία σας δεν θα είναι διαθέσιμες.</translation>
 <translation id="1329191040029425999">Βεβαιωθείτε ότι η συσκευή σας είναι ενημερωμένη και δοκιμάστε ξανά.</translation>
 <translation id="1330145147221172764">Ενεργοποίηση πληκτρολογίου οθόνης</translation>
-<translation id="1331625853030156663">Για άνοιγμα της εφαρμογής <ph name="APP_NAME" />, ενεργοποιήστε την επιλογή Εμφάνιση κλειδώματος οθόνης κατά την αφύπνιση από την αδράνεια.</translation>
 <translation id="1331977651797684645">Εγώ ήμουν.</translation>
 <translation id="1333489022424033687">Ορισμένες λειτουργίες στο <ph name="ORIGIN" /> ενδέχεται να μην λειτουργούν μέχρι να διαγράψετε τα δεδομένα που έχουν αποθηκευτεί στη συσκευή σας από άλλους ιστοτόπους.</translation>
 <translation id="1333965224356556482">Να μην επιτρέπεται στους ιστοτόπους να βλέπουν την τοποθεσία σας</translation>
@@ -6333,7 +6332,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Έξοδος από τη σελίδα}other{Έξοδος από τις σελίδες}}</translation>
 <translation id="7207457272187520234">Αποστολή δεδομένων χρήσης και διαγνωστικών. Επί του παρόντος, αυτή η συσκευή στέλνει αυτόματα διαγνωστικά δεδομένα, δεδομένα συσκευής και χρήσης εφαρμογών στην Google. Με αυτόν τον τρόπο βελτιώνεται η σταθερότητα του συστήματος και των εφαρμογών και παρέχονται επιπλέον βελτιώσεις. Επίσης, ορισμένα συγκεντρωτικά δεδομένα θα συμβάλλουν στη βελτίωση των εφαρμογών Google και θα χρησιμοποιηθούν από συνεργάτες της Google, όπως τους προγραμματιστές Android, προκειμένου να βελτιώσουν τις εφαρμογές και τα προϊόντα τους. Αυτή η ρύθμιση επιβάλλεται από τον κάτοχο. Εάν η ρύθμιση της πρόσθετης Δραστηριότητας ιστού και εφαρμογών είναι ενεργοποιημένη, αυτά τα δεδομένα μπορεί να αποθηκευτούν στον Λογαριασμό σας Google.</translation>
 <translation id="7207631048330366454">Αναζήτηση εφαρμογών</translation>
-<translation id="720808544705441386">Δεν είναι δυνατό το άνοιγμα της εφαρμογής</translation>
 <translation id="7210499381659830293">Εκτυπωτές επέκτασης</translation>
 <translation id="7211783048245131419">Προς το παρόν, δεν έχει γίνει ανάθεση κάποιου διακόπτη</translation>
 <translation id="7212097698621322584">Εισαγάγετε το τρέχον PIN για να το αλλάξετε. Εάν δεν γνωρίζετε το PIN, θα χρειαστεί να επαναφέρετε το κλειδί ασφαλείας και, στη συνέχεια, να δημιουργήσετε ένα νέο PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 44cc5b3..8edfeca 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Features that need your location won't work</translation>
 <translation id="1329191040029425999">Ensure that your device is up to date and please try again</translation>
 <translation id="1330145147221172764">Enable on-screen keyboard</translation>
-<translation id="1331625853030156663">To open <ph name="APP_NAME" />, enable ‘Show lock screen when waking from sleep’</translation>
 <translation id="1331977651797684645">This was me.</translation>
 <translation id="1333489022424033687">Some features on <ph name="ORIGIN" /> might not work until you clear data that other sites have stored on your device</translation>
 <translation id="1333965224356556482">Don't allow sites to see your location</translation>
@@ -850,6 +849,7 @@
 <translation id="1794051631868188691">Never show <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Send feedback to help us fix this issue.</translation>
 <translation id="1795214765651529549">Use Classic</translation>
+<translation id="1796105431091975902">Select an Ansible playbook to add</translation>
 <translation id="1796588414813960292">Features that need sound won't work</translation>
 <translation id="1800502858278951817">No extensions have requested to read and change <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">Sleep when cover is closed</translation>
@@ -3055,6 +3055,7 @@
 <translation id="389901847090970821">Select keyboard</translation>
 <translation id="3900966090527141178">Export passwords</translation>
 <translation id="3903187154317825986">Built-in keyboard</translation>
+<translation id="3903191712482985591">Add playbook</translation>
 <translation id="3904326018476041253">Location Services</translation>
 <translation id="3904849010307028014">Based on your interaction with a site, like regularly signing in to an account, that site can issue a trust token to your browser. Later, if other sites that you visit check for and find a valid trust token, they're more likely to treat you like a person and not a bot.</translation>
 <translation id="3905761538810670789">Repair app</translation>
@@ -3666,6 +3667,7 @@
 <translation id="4510479820467554003">Parent account list</translation>
 <translation id="451102079304155829">baskets</translation>
 <translation id="4513872120116766993">Predictive writing</translation>
+<translation id="4513909579793564731">Apply playbook</translation>
 <translation id="4513946894732546136">Feedback</translation>
 <translation id="451407183922382411">Powered by <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Toggle video to play or pause</translation>
@@ -5499,6 +5501,7 @@
 <translation id="635609604405270300">Keep device turned on</translation>
 <translation id="63566973648609420">Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase or want to change this setting, you'll need to <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Some supported links will still open in <ph name="APP_NAME" /> or <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">No extensions are allowed to read and change <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Dragon</translation>
 <translation id="6361850914223837199">Error details:</translation>
 <translation id="6362853299801475928">&amp;Report an issue...</translation>
@@ -6347,7 +6350,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Exit page}other{Exit pages}}</translation>
 <translation id="7207457272187520234">Send usage and diagnostic data. This device is currently automatically sending diagnostic, device and app usage data to Google. This will help system and app stability and other improvements. Some aggregate data will also help Google apps and partners, such as Android developers. This setting is enforced by the owner. If your additional Web &amp; App Activity setting is turned on, this data may be saved to your Google Account.</translation>
 <translation id="7207631048330366454">Search apps</translation>
-<translation id="720808544705441386">Can't open app</translation>
 <translation id="7210499381659830293">Extension printers</translation>
 <translation id="7211783048245131419">No switch has been assigned yet</translation>
 <translation id="7212097698621322584">Enter your current PIN to change it. If you don’t know your PIN, you’ll need to reset the security key, then create a new PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 6125304..50b9ae3 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">No se habilitarán las funciones que necesitan tu ubicación.</translation>
 <translation id="1329191040029425999">Asegúrate de que el dispositivo esté actualizado y vuelve a intentarlo</translation>
 <translation id="1330145147221172764">Habilitar el teclado en pantalla</translation>
-<translation id="1331625853030156663">Para abrir <ph name="APP_NAME" />, habilita "Mostrar la pantalla bloqueada al salir del modo de suspensión"</translation>
 <translation id="1331977651797684645">Era yo.</translation>
 <translation id="1333489022424033687">Es posible que algunas características de <ph name="ORIGIN" /> no funcionen hasta que borres los datos que almacenaron otros sitios en el dispositivo</translation>
 <translation id="1333965224356556482">No permitir que los sitios visualicen tu ubicación</translation>
@@ -6313,7 +6312,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Salir de la página}other{Salir de las páginas}}</translation>
 <translation id="7207457272187520234">Envía datos de uso y diagnóstico. De forma automática, este dispositivo está enviando a Google datos de diagnóstico y sobre el uso del dispositivo y las apps. Esta información ayudará a lograr la estabilidad de las apps y el sistema, entre otras mejoras. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android. El propietario controla esta configuración. Si habilitaste la Actividad de web y de aplicaciones adicional, es posible que se almacenen estos datos en tu Cuenta de Google.</translation>
 <translation id="7207631048330366454">Buscar apps</translation>
-<translation id="720808544705441386">No se puede abrir la app</translation>
 <translation id="7210499381659830293">Impresoras de extensiones</translation>
 <translation id="7211783048245131419">Aún no se asignaron interruptores</translation>
 <translation id="7212097698621322584">Ingresa tu PIN actual para cambiarlo. Si no sabes cuál es, deberás restablecer la llave de seguridad y, luego, crear uno nuevo.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 2b76196d..91e9397 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Las funciones que necesiten la ubicación no se podrán utilizar</translation>
 <translation id="1329191040029425999">Asegúrate de que tu dispositivo esté actualizado e inténtalo de nuevo</translation>
 <translation id="1330145147221172764">Habilitar teclado en pantalla</translation>
-<translation id="1331625853030156663">Para abrir <ph name="APP_NAME" />, habilita la opción "Mostrar la pantalla de bloqueo al activar el dispositivo"</translation>
 <translation id="1331977651797684645">Es mi perfil</translation>
 <translation id="1333489022424033687">Es posible que algunas funciones de <ph name="ORIGIN" /> no estén disponibles si no borras los datos que otros sitios han almacenado en tu dispositivo</translation>
 <translation id="1333965224356556482">No permitir que los sitios vean tu ubicación</translation>
@@ -6315,7 +6314,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Salir de la página}other{Salir de las páginas}}</translation>
 <translation id="7207457272187520234">Envía datos de uso y diagnóstico. Este dispositivo envía automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos servirán para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos agregados también ayudarán a las aplicaciones y a los partners de Google, como los desarrolladores de Android. El propietario ha aplicado este ajuste. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en tu cuenta de Google.</translation>
 <translation id="7207631048330366454">Buscar aplicaciones</translation>
-<translation id="720808544705441386">No se puede abrir la aplicación</translation>
 <translation id="7210499381659830293">Impresoras de extensiones</translation>
 <translation id="7211783048245131419">Aún no se ha asignado ningún interruptor</translation>
 <translation id="7212097698621322584">Introduce tu PIN actual para cambiarlo. Si no sabes cuál es tu PIN, tendrás que restablecer la llave de seguridad y crear un nuevo PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index ab7167e..70da22a9 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Teie asukohateavet vajavad funktsioonid ei tööta</translation>
 <translation id="1329191040029425999">Veenduge, et teie seade oleks ajakohane, ja proovige uuesti</translation>
 <translation id="1330145147221172764">Luba ekraanil kuvatav klaviatuur</translation>
-<translation id="1331625853030156663">Rakenduse <ph name="APP_NAME" /> avamiseks lubage seade „Kuva unerežiimist ärgates lukustuskuva“</translation>
 <translation id="1331977651797684645">See olin mina.</translation>
 <translation id="1333489022424033687">Mõni funktsioon saidil <ph name="ORIGIN" /> ei pruugi töötada enne, kui kustutate andmed, mille teised saidid on teie seadmesse salvestanud</translation>
 <translation id="1333965224356556482">Ära luba saitidel minu asukohta näha</translation>
@@ -4327,6 +4326,7 @@
 <translation id="520568280985468584">Võrgu lisamine õnnestus. Teie mobiilsidevõrgu aktiveerimine võib võtta mitu minutit.</translation>
 <translation id="5206215183583316675">Kas kustutada „<ph name="CERTIFICATE_NAME" />”?</translation>
 <translation id="520621735928254154">Viga sertifikaadi importimisel</translation>
+<translation id="5206562235913517859">Jaekaupluse ID on vormingus ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Ohustatud parooli muutmine õnnestus. Teil on veel # ohustatud parool. Chrome soovitab seda parooli kohe kontrollida.}other{Ohustatud parooli muutmine õnnestus. Teil on veel # ohustatud parooli. Chrome soovitab neid paroole kohe kontrollida.}}</translation>
 <translation id="5207949376430453814">Tekstisisestusmärgi esiletõstmine</translation>
 <translation id="520840839826327499">Teenus <ph name="SERVICE_NAME" /> soovib kontrollida, kas kasutate sobilikku Chrome OS-i seadet.</translation>
@@ -4848,6 +4848,7 @@
 <translation id="5729712731028706266">&amp;Kuva</translation>
 <translation id="5731247495086897348">Kl&amp;eebi ja mine</translation>
 <translation id="5732392974455271431">Vanemad saavad blokeeringu teie eest tühistada</translation>
+<translation id="5733866499231170760">Kehtetu ID. Teie sisestatud vorming on sobimatu. Kontrollige teile saadetud juhiseid ja veenduge, et sisestaksite ID õiges vormingus. Kui teil ei õnnestu seda probleemi lahendada, jätke see väli tühjaks ja jätkake installimisega.</translation>
 <translation id="5734362860645681824">Vestlusteenused</translation>
 <translation id="5734697361979786483">Lisa failide võrguhoidla</translation>
 <translation id="5736796278325406685">Sisestage kehtiv kasutajanimi</translation>
@@ -6320,7 +6321,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Välju lehelt}other{Välju lehtedelt}}</translation>
 <translation id="7207457272187520234">Kasutus- ja diagnostikaandmete saatmine. See seade saadab Google'ile praegu automaatselt seadme teavet ning rakenduse kasutus- ja diagnostikaandmeid. See aitab parandada süsteemi ja rakenduse stabiilsust ning muud. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele. Selle seade on jõustanud omanik. Kui täiendavad veebi- ja rakendustegevused on sisse lülitatud, võidakse need andmed salvestada teie Google'i kontole.</translation>
 <translation id="7207631048330366454">Otsi rakendusi</translation>
-<translation id="720808544705441386">Rakendust ei saa avada</translation>
 <translation id="7210499381659830293">Laienduse printerid</translation>
 <translation id="7211783048245131419">Ühtegi lülitit pole veel määratud</translation>
 <translation id="7212097698621322584">PIN-koodi muutmiseks sisestage see. Kui te oma PIN-koodi ei tea, peate lähtestama turvavõtme ja looma siis uue PIN-koodi.</translation>
@@ -6955,6 +6955,7 @@
 <translation id="7824864914877854148">Varundamist ei saanud vea tõttu lõpule viia</translation>
 <translation id="782590969421016895">Kasuta praegusi lehti</translation>
 <translation id="7826174860695147464">Pärandbrauserite tugi (LBS) – sisemised</translation>
+<translation id="7826190688224781865">Jaekaupluse ID-kood</translation>
 <translation id="7826249772873145665">ADB silumine on keelatud</translation>
 <translation id="7826254698725248775">Seadme identifikaatori vastuolu.</translation>
 <translation id="7828731929332799387">See kustutab kõik kolmanda osapoole pakutavad küpsisefailid ja saidi andmed. Kas soovite jätkata?</translation>
@@ -8425,6 +8426,7 @@
 <translation id="987897973846887088">Kujutisi pole saadaval</translation>
 <translation id="988320949174893488">Aeg-ajalt katkendlik</translation>
 <translation id="988978206646512040">Tühi parool ei ole lubatud</translation>
+<translation id="991097196715779457">Jaekaupluse ID-kood (valikuline)</translation>
 <translation id="992032470292211616">Laiendused, rakendused ja teemad võivad teie seadet kahjustada. Kas soovite kindlasti jätkata?</translation>
 <translation id="992256792861109788">Roosa</translation>
 <translation id="992592832486024913">Keela ChromeVox (kõnena esitatud tagasiside)</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index efd0e5f..c629304b 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Kokapenerako sarbidea behar duten eginbideek ez dute funtzionatuko</translation>
 <translation id="1329191040029425999">Ziurtatu gailua eguneratuta dagoela eta saiatu berriro</translation>
 <translation id="1330145147221172764">Gaitu pantailako teklatua</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> irekitzeko, gaitu "Inaktibo egoeratik irtetean, erakutsi pantaila blokeatua"</translation>
 <translation id="1331977651797684645">Ni izan naiz.</translation>
 <translation id="1333489022424033687">Baliteke <ph name="ORIGIN" /> webguneko eginbide batzuek ez funtzionatzea beste webgune batzuek zure gailuan gorde dituzten datuak garbitu arte</translation>
 <translation id="1333965224356556482">Ez eman kokapena ikusteko baimena webguneei</translation>
@@ -6312,7 +6311,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Irten orritik}other{Irten orrietatik}}</translation>
 <translation id="7207457272187520234">Bidali erabilera- eta diagnostiko-datuak. Gailu honek automatikoki bidaltzen dizkio Google-ri diagnostikoak eta gailu zein aplikazioen erabilera-datuak. Horri esker, sistemaren eta aplikazioen egonkortasuna hobetuko da, besteak beste. Gainera, multzokatutako datu batzuk oso baliagarriak izango dira Google-ren aplikazioak hobetzeko eta bazkideei laguntzeko (adibidez, Android-en garatzaileei). Jabeak konfiguratu du ezarpen hori. Sareko eta aplikazioetako jarduera gehigarriak ezarpena aktibatuta badago, baliteke datu horiek Google-ko kontuan gordetzea.</translation>
 <translation id="7207631048330366454">Bilatu aplikazioak</translation>
-<translation id="720808544705441386">Ezin da ireki aplikazioa</translation>
 <translation id="7210499381659830293">Luzapen bidezko inprimagailuak</translation>
 <translation id="7211783048245131419">Oraindik ez da esleitu erabilerraztasun-etengailurik</translation>
 <translation id="7212097698621322584">PINa aldatzeko, idatzi unekoa lehendabizi. Ez badakizu PINa zein den, segurtasun-giltza berrezarri beharko duzu, eta beste PIN bat sortu.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 996279a..fa067a7 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">ویژگی‌هایی که به مکان شما نیاز دارند کار نخواهند کرد</translation>
 <translation id="1329191040029425999">لطفاً مطمئن شوید دستگاهتان به‌روز باشد و دوباره امتحان کنید</translation>
 <translation id="1330145147221172764">فعال کردن صفحه‌کلید مجازی</translation>
-<translation id="1331625853030156663">برای باز کردن <ph name="APP_NAME" />، «نمایش صفحه قفل هنگام بیدار شدن از حالت خواب» را فعال کنید</translation>
 <translation id="1331977651797684645">من بودم.</translation>
 <translation id="1333489022424033687">تا وقتی داده‌هایی را که سایت‌های دیگر در دستگاهتان ذخیره کرده‌اند پاک نکنید، ممکن است برخی از ویژگی‌ها در <ph name="ORIGIN" /> کار نکند.</translation>
 <translation id="1333965224356556482">به سایت‌ها اجازه داده نشود مکان شما را ببینند</translation>
@@ -6331,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{خروج از صفحه}one{خروج از صفحه‌ها}other{خروج از صفحه‌ها}}</translation>
 <translation id="7207457272187520234">‏داده‌های استفاده و عیب‌یابی را ارسال کنید. این دستگاه درحال‌حاضر به‌صورت‌ خودکار داده‌های عیب‌یابی و داده‌های استفاده از دستگاه و برنامه را برای Google ارسال می‌کند. این داده‌ها به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی داده‌های انبوهشی نیز به برنامه‌ها و شرکای Google (مانند «برنامه‌نویس‌های Android») کمک می‌کند. این تنظیم را مالک اعمال می‌کند. اگر تنظیم «فعالیت وب و برنامه» تکمیلی روشن باشد، ممکن است این داده‌ها در «حساب Google» شما ذخیره شود.</translation>
 <translation id="7207631048330366454">جستجوی برنامه‌ها</translation>
-<translation id="720808544705441386">نمی‌توان برنامه را باز کرد</translation>
 <translation id="7210499381659830293">چاپگرهای افزونه</translation>
 <translation id="7211783048245131419">هنوز کلیدی تخصیص داده نشده است</translation>
 <translation id="7212097698621322584">پین کنونی‌تان را برای تغییر پین وارد کنید. اگر پین‌ خود را نمی‌دانید، باید کلید امنیتی را بازنشانی کنید و سپس پین جدیدی ایجاد کنید.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 6b8a4f2..a34cb98 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Sijaintia edellyttävät ominaisuudet eivät enää toimi</translation>
 <translation id="1329191040029425999">Varmista, että laite on ajan tasalla, ja yritä uudelleen</translation>
 <translation id="1330145147221172764">Ota näyttönäppäimistö käyttöön</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> voidaan avata, kun "Näytä lukitusnäyttö, kun laite poistuu virransäästötilasta" on käytössä</translation>
 <translation id="1331977651797684645">Käytä nykyistä profiilia.</translation>
 <translation id="1333489022424033687">Jotkin ominaisuudet osoitteessa <ph name="ORIGIN" /> eivät ehkä toimi, ennen kuin tyhjennät dataa, jota muut sivustot ovat tallentaneet laitteellesi</translation>
 <translation id="1333965224356556482">Älä salli sivustojen nähdä sijaintiasi</translation>
@@ -6328,7 +6327,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Sulje sivu}other{Sulje sivut}}</translation>
 <translation id="7207457272187520234">Lähetä käyttö- ja diagnostiikkadataa. Laite lähettää tällä hetkellä diagnostiikkadataa sekä laitteen ja sovellusten käyttödataa automaattisesti Googlelle. Datan avulla parannetaan esimerkiksi järjestelmän ja sovellusten vakautta. Kootusta datasta on hyötyä myös Googlen sovelluksille ja kumppaneille, kuten Android-kehittäjille. Omistaja on ottanut tämän asetuksen käyttöön. Jos olet laittanut päälle muun verkko- ja sovellustoiminnan asetuksen, tätä dataa voidaan tallentaa Google-tilillesi.</translation>
 <translation id="7207631048330366454">Hae sovelluksia</translation>
-<translation id="720808544705441386">Sovellusta ei voi avata</translation>
 <translation id="7210499381659830293">Laajennustulostimet</translation>
 <translation id="7211783048245131419">Kytkimiä ei ole vielä määritetty</translation>
 <translation id="7212097698621322584">Lisää nykyinen PIN-koodisi muuttaaksesi sen. Jos et tiedä PIN-koodiasi, sinun on nollattava suojausavaimesi ja luotava uusi PIN-koodi.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 7584091..c111d90 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Hindi gagana ang mga feature na nangangailangan ng iyong lokasyon</translation>
 <translation id="1329191040029425999">Tiyaking up to date ang iyong device at pakisubukan ulit</translation>
 <translation id="1330145147221172764">I-enable ang on-screen na keyboard</translation>
-<translation id="1331625853030156663">Para buksan ang <ph name="APP_NAME" />, i-enable ang "Ipakita ang lock screen kapag pinagana mula sa sleep"</translation>
 <translation id="1331977651797684645">Ako ito.</translation>
 <translation id="1333489022424033687">Posibleng hindi gumana ang ilang feature sa <ph name="ORIGIN" /> hanggang sa i-clear mo ang data na na-store ng iba pang site sa iyong device</translation>
 <translation id="1333965224356556482">Huwag payagan ang mga site na makita ang iyong lokasyon</translation>
@@ -4348,6 +4347,7 @@
 <translation id="520568280985468584">Naidagdag na ang network. Posibleng abutin nang ilang minuto para maging aktibo ang iyong celluar network.</translation>
 <translation id="5206215183583316675">I-delete ang "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Error sa Pag-import ng Certificate</translation>
+<translation id="5206562235913517859">Ang retailer-store ID ay nasa format na ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Napalitan ang nakompromisong password. May # ka pang nakompromisong password. Inirerekomenda ng Chrome na suriin ngayon ang password na ito.}one{Napalitan ang nakompromisong password. May # ka pang nakompromisong password. Inirerekomenda ng Chrome na suriin ngayon ang mga password na ito.}other{Napalitan ang nakompromisong password. May # ka pang nakompromisong password. Inirerekomenda ng Chrome na suriin ngayon ang mga password na ito.}}</translation>
 <translation id="5207949376430453814">I-highlight ang text caret</translation>
 <translation id="520840839826327499">Gustong suriin ng <ph name="SERVICE_NAME" /> kung gumagamit ka ng kwalipikadong ChromeOS device.</translation>
@@ -4870,6 +4870,7 @@
 <translation id="5729712731028706266">&amp;Tingnan</translation>
 <translation id="5731247495086897348">I-pa&amp;ste at Umalis</translation>
 <translation id="5732392974455271431">Maaari itong i-unblock ng iyong mga magulang para sa iyo</translation>
+<translation id="5733866499231170760">Invalid ang ID. Mali ang inilagay mong format. Pakitingnan ang mga tagubiling natanggap mo para matiyak na inilalagay mo ang ID sa tamang format. Kung hindi mo malutas ang isyu, iwang blangko ang field at magpatuloy sa pag-install.</translation>
 <translation id="5734362860645681824">Komunikasyon</translation>
 <translation id="5734697361979786483">Magdagdag ng file share</translation>
 <translation id="5736796278325406685">Mangyaring maglagay ng wastong username</translation>
@@ -6348,7 +6349,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Umalis sa Page}one{Umalis sa Mga Page}other{Umalis sa Mga Page}}</translation>
 <translation id="7207457272187520234">Magpadala ng data ng paggamit at diagnostic. Sa kasalukuyan, ang device na ito ay awtomatikong nagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Makakatulong ito sa stability ng system at ng app, at sa iba pang pagpapahusay. Makakatulong din ang ilang pinagsama-samang data sa mga app at partner ng Google, gaya ng mga developer ng Android. Ipinapatupad ng may-ari ang setting na ito. Kung naka-on ang iyong karagdagang setting ng Aktibidad sa Web at App, posibleng ma-save ang data na ito sa Google Account mo.</translation>
 <translation id="7207631048330366454">Maghanap ng mga app</translation>
-<translation id="720808544705441386">Hindi mabuksan ang app</translation>
 <translation id="7210499381659830293">Mga extension na printer</translation>
 <translation id="7211783048245131419">Wala pang switch na naitalaga</translation>
 <translation id="7212097698621322584">Ilagay ang kasalukuyan mong PIN para palitan ito. Kung hindi mo alam ang iyong PIN, kakailanganin mong i-reset ang security key, pagkatapos ay gumawa ng bagong PIN.</translation>
@@ -6983,6 +6983,7 @@
 <translation id="7824864914877854148">Hindi makumpleto ang pag-back up dahil sa error</translation>
 <translation id="782590969421016895">Gamitin ang mga kasalukuyang page</translation>
 <translation id="7826174860695147464">Legacy Browser Support (LBS) - Mga Internal</translation>
+<translation id="7826190688224781865">Retailer-store ID code</translation>
 <translation id="7826249772873145665">Na-disable ang pag-debug ng ADB</translation>
 <translation id="7826254698725248775">Hindi tumutugma ang pagkakakilanlan ng device</translation>
 <translation id="7828731929332799387">Ide-delete nito ang lahat ng cookies at data ng site na available sa mga konteksto ng third party. Gusto mo bang magpatuloy?</translation>
@@ -8457,6 +8458,7 @@
 <translation id="987897973846887088">Walang available na larawan</translation>
 <translation id="988320949174893488">Paminsan-minsang Putol</translation>
 <translation id="988978206646512040">Hindi pinapayagan ang passphrase na walang laman</translation>
+<translation id="991097196715779457">Retailer-store ID code (opsyonal)</translation>
 <translation id="992032470292211616">Maaaring mapinsala ng mga extension, apps at mga tema ang iyong device. Sigurado kang gusto mong magpatuloy?</translation>
 <translation id="992256792861109788">Pink</translation>
 <translation id="992592832486024913">I-disable ang ChromeVox (pasalitang feedback)</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 6605ab2c..748d5e80 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">Les fonctionnalités qui nécessitent l'accès à votre position ne seront pas accessibles</translation>
 <translation id="1329191040029425999">Veuillez vous assurer que votre appareil est à jour et réessayez</translation>
 <translation id="1330145147221172764">Activer le clavier à l'écran</translation>
-<translation id="1331625853030156663">Pour ouvrir <ph name="APP_NAME" />, activez « Afficher l'écran de verrouillage à l'activation »</translation>
 <translation id="1331977651797684645">C'était moi.</translation>
 <translation id="1333489022424033687">Certaines fonctionnalités de <ph name="ORIGIN" /> risquent de ne pas fonctionner si vous n'effacez pas les données que d'autres sites ont stockées sur votre appareil</translation>
 <translation id="1333965224356556482">Ne pas autoriser les sites à accéder à votre position</translation>
@@ -2656,7 +2655,7 @@
 <translation id="353316712352074340"><ph name="WINDOW_TITLE" /> - Audio désactivé</translation>
 <translation id="3537881477201137177">Vous pouvez modifier cela plus tard dans le menu Paramètres</translation>
 <translation id="3538066758857505094">Erreur lors de la désinstallation de Linux. Veuillez réessayer.</translation>
-<translation id="354060433403403521">Adaptateur c.a.</translation>
+<translation id="354060433403403521">Adaptateur CA</translation>
 <translation id="354068948465830244">Cette extension pourra lire et modifier les données du site</translation>
 <translation id="3541823293333232175">Attribué</translation>
 <translation id="3543393733900874979">Échec de la mise à jour (erreur : <ph name="ERROR_NUMBER" />)</translation>
@@ -4323,6 +4322,7 @@
 <translation id="520568280985468584">Le réseau a bien été ajouté. L'activation de votre réseau cellulaire peut prendre plusieurs minutes.</translation>
 <translation id="5206215183583316675">Supprimer « <ph name="CERTIFICATE_NAME" /> »?</translation>
 <translation id="520621735928254154">Erreur d'importation du certificat</translation>
+<translation id="5206562235913517859">L'identifiant du magasin-détaillant est au format ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Le mot de passe compromis a été changé. Vous avez # autre mot de passe compromis. Chrome recommande de vérifier ce mot de passe maintenant.}one{Le mot de passe compromis a été changé. Vous avez # autre mot de passe compromis. Chrome recommande de vérifier ce mot de passe maintenant.}other{Le mot de passe compromis a été changé. Vous avez # autres mots de passe compromis. Chrome recommande de vérifier ces mots de passe maintenant.}}</translation>
 <translation id="5207949376430453814">Mettre le point d'insertion de texte en surbrillance</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> veut vérifier si vous utilisez un appareil Chrome OS admissible.</translation>
@@ -4844,6 +4844,7 @@
 <translation id="5729712731028706266">&amp;Affichage</translation>
 <translation id="5731247495086897348">Co&amp;ller et rechercher</translation>
 <translation id="5732392974455271431">Tes parents peuvent le débloquer pour toi</translation>
+<translation id="5733866499231170760">Identifiant incorrect. Le format que vous avez entré est incorrect. Veuillez vérifier les instructions que vous avez reçues pour vous assurer d'entrer l'identifiant au format correct. Si vous ne parvenez pas à résoudre ce problème, veuillez laisser le champ vide et poursuivre l'installation.</translation>
 <translation id="5734362860645681824">Communications</translation>
 <translation id="5734697361979786483">Ajouter un partage de fichier</translation>
 <translation id="5736796278325406685">Veuillez entrer un nom d'utilisateur valide</translation>
@@ -6318,7 +6319,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Quitter la page}one{Quitter la page}other{Quitter les pages}}</translation>
 <translation id="7207457272187520234">Envoyer les données d'utilisation et de diagnostic. Actuellement, cet appareil envoie automatiquement à Google des données de diagnostic, de l'appareil et d'utilisation des applications. Cela nous permettra d'assurer la stabilité du système et des applications, et d'apporter d'autres améliorations. Certaines données collectées contribueront également à améliorer les applications Google et aideront nos partenaires, comme les développeurs Android. Ce paramètre est appliqué par le propriétaire du compte. Si le paramètre relatif aux autres activités sur le Web et dans les applications est activé, ces données peuvent être enregistrées dans votre compte Google.</translation>
 <translation id="7207631048330366454">Rechercher dans les applications</translation>
-<translation id="720808544705441386">Impossible d'ouvrir l'application</translation>
 <translation id="7210499381659830293">Imprimantes d'extension</translation>
 <translation id="7211783048245131419">Aucun commutateur n'a été attribué</translation>
 <translation id="7212097698621322584">Entrez votre NIP actuel pour le modifier. Si vous ne connaissez pas votre NIP, vous devrez réinitialiser la clé de sécurité, puis créer un nouveau NIP.</translation>
@@ -6953,6 +6953,7 @@
 <translation id="7824864914877854148">Une erreur s'est produite et la sauvegarde n'a pas pu être terminée</translation>
 <translation id="782590969421016895">Utilisez les pages actuelles</translation>
 <translation id="7826174860695147464">Prise en charge de navigateurs hérités (LBS) – paramètres internes</translation>
+<translation id="7826190688224781865">Code d'identification du magasin-détaillant</translation>
 <translation id="7826249772873145665">Le débogage PDA est désactivé</translation>
 <translation id="7826254698725248775">Identifiant d'appareil en conflit.</translation>
 <translation id="7828731929332799387">Cela supprimera tous les témoins et les données des sites proposés dans les contextes tiers. Voulez-vous continuer?</translation>
@@ -8423,6 +8424,7 @@
 <translation id="987897973846887088">Aucune image disponible</translation>
 <translation id="988320949174893488">Occasionnellement saccadée</translation>
 <translation id="988978206646512040">La phrase de passe est obligatoire</translation>
+<translation id="991097196715779457">Code d'identification du magasin-détaillant (facultatif)</translation>
 <translation id="992032470292211616">Les extensions, les applications et les thèmes peuvent nuire à votre appareil. Voulez-vous vraiment continuer?</translation>
 <translation id="992256792861109788">Rose</translation>
 <translation id="992592832486024913">Désactiver ChromeVox (commentaires audio)</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 96cda21..3853d448 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">Les fonctionnalités qui nécessitent l'accès à votre position ne seront pas disponibles</translation>
 <translation id="1329191040029425999">Assurez-vous que votre appareil est à jour et veuillez réessayer</translation>
 <translation id="1330145147221172764">Activer le clavier à l'écran</translation>
-<translation id="1331625853030156663">Pour ouvrir <ph name="APP_NAME" />, activez "Afficher l'écran de verrouillage en sortant du mode veille"</translation>
 <translation id="1331977651797684645">C'était moi.</translation>
 <translation id="1333489022424033687">Certaines fonctionnalités du site <ph name="ORIGIN" /> risquent de ne pas s'exécuter si vous n'effacez pas les données que d'autres sites ont stockées sur votre appareil</translation>
 <translation id="1333965224356556482">Ne pas autoriser les sites à accéder à votre position</translation>
@@ -4322,6 +4321,7 @@
 <translation id="520568280985468584">Le réseau a bien été ajouté. L'activation de votre réseau cellulaire peut prendre plusieurs minutes.</translation>
 <translation id="5206215183583316675">Supprimer "<ph name="CERTIFICATE_NAME" />" ?</translation>
 <translation id="520621735928254154">Erreur d'importation du certificat</translation>
+<translation id="5206562235913517859">L'ID du marchand-magasin est au format ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Le mot de passe compromis a bien été changé. Vous avez # mot de passe compromis supplémentaire. Chrome vous recommande de vérifier ce mot de passe maintenant.}one{Le mot de passe compromis a bien été changé. Vous avez # mot de passe compromis supplémentaire. Chrome vous recommande de vérifier ce mot de passe maintenant.}other{Le mot de passe compromis a bien été changé. Vous avez # mots de passe compromis supplémentaires. Chrome vous recommande de vérifier ces mots de passe maintenant.}}</translation>
 <translation id="5207949376430453814">Mettre le curseur de texte en surbrillance</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> veut vérifier si vous utilisez un appareil Chrome OS éligible.</translation>
@@ -4844,6 +4844,7 @@
 <translation id="5729712731028706266">&amp;Afficher</translation>
 <translation id="5731247495086897348">Coller l'URL et y a&amp;ccéder</translation>
 <translation id="5732392974455271431">Tes parents peuvent te le débloquer</translation>
+<translation id="5733866499231170760">ID incorrect. Le format que vous avez saisi est incorrect. Veuillez consulter les instructions que vous avez reçues pour vous assurer de saisir l'ID au format correct. Si vous ne parvenez pas à résoudre ce problème, veuillez laisser le champ vide et continuer l'installation.</translation>
 <translation id="5734362860645681824">Communications</translation>
 <translation id="5734697361979786483">Ajouter un partage de fichiers</translation>
 <translation id="5736796278325406685">Veuillez saisir un nom d'utilisateur valide</translation>
@@ -5534,7 +5535,7 @@
 <translation id="6419524191360800346">Une mise à niveau vers Debian 11 (Bullseye) est disponible</translation>
 <translation id="6419546358665792306">Charger l'extension non empaquetée</translation>
 <translation id="642469772702851743">Le propriétaire de cet appareil (n° de série : <ph name="SERIAL_NUMBER" />) l'a verrouillé.</translation>
-<translation id="6425556984042222041">Débit de la voix de la synthèse vocale</translation>
+<translation id="6425556984042222041">Débit de parole de la synthèse vocale</translation>
 <translation id="6426200009596957090">Ouvrir les paramètres ChromeVox</translation>
 <translation id="642729974267661262">Non autorisé à lire des sons</translation>
 <translation id="6429384232893414837">Erreur de mise à jour</translation>
@@ -6318,7 +6319,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Quitter la page}one{Quitter la page}other{Quitter les pages}}</translation>
 <translation id="7207457272187520234">Envoyer des données d'utilisation et de diagnostic. À l'heure actuelle, cet appareil envoie automatiquement à Google des données liées à son utilisation et à celle des applications, ainsi que des données de diagnostic. Ces informations nous aideront à améliorer, entre autres, la stabilité du système et des applications. Certaines données globales seront également utiles aux développeurs des applications Google et à nos partenaires tels que les développeurs Android. Ce paramètre est appliqué par le propriétaire. Si vous avez activé le paramètre "Activité supplémentaire sur le Web et les applications", ces données peuvent être enregistrées dans votre compte Google.</translation>
 <translation id="7207631048330366454">Rechercher dans les applications</translation>
-<translation id="720808544705441386">Impossible d'ouvrir l'appli</translation>
 <translation id="7210499381659830293">Imprimantes d'extension</translation>
 <translation id="7211783048245131419">Aucune action n'a encore été associée à un contacteur</translation>
 <translation id="7212097698621322584">Saisissez votre code actuel pour pouvoir le modifier. Si vous ne vous en souvenez plus, vous devez réinitialiser la clé de sécurité, puis créer un autre code.</translation>
@@ -6953,6 +6953,7 @@
 <translation id="7824864914877854148">Échec de la sauvegarde en raison d'une erreur</translation>
 <translation id="782590969421016895">Utiliser les pages actuelles</translation>
 <translation id="7826174860695147464">Legacy Browser Support (LBS) – Paramètres internes</translation>
+<translation id="7826190688224781865">Code de l'ID du marchand-magasin</translation>
 <translation id="7826249772873145665">Débogage ADB désactivé</translation>
 <translation id="7826254698725248775">Identifiant de l'appareil en conflit.</translation>
 <translation id="7828731929332799387">Cette action supprimera l'ensemble des cookies et données de sites disponibles dans des contextes tiers. Voulez-vous continuer ?</translation>
@@ -8424,6 +8425,7 @@
 <translation id="987897973846887088">Aucune image disponible</translation>
 <translation id="988320949174893488">Saccadée de façon occasionnelle</translation>
 <translation id="988978206646512040">Phrase secrète obligatoire</translation>
+<translation id="991097196715779457">Code de l'ID du marchand-magasin (facultatif)</translation>
 <translation id="992032470292211616">Les extensions, les applications et les thèmes peuvent endommager votre appareil. Voulez-vous vraiment continuer ?</translation>
 <translation id="992256792861109788">Rose</translation>
 <translation id="992592832486024913">Désactiver ChromeVox (commentaires audio)</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index f32505ae..532a179 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">As funcións que requiran a túa localización non estarán dispoñibles</translation>
 <translation id="1329191040029425999">Asegúrate de que o dispositivo estea actualizado e téntao de novo</translation>
 <translation id="1330145147221172764">Activar teclado en pantalla</translation>
-<translation id="1331625853030156663">Para abrir <ph name="APP_NAME" />, activa Mostrar pantalla de bloqueo ao reactivarse despois da suspensión</translation>
 <translation id="1331977651797684645">Era eu.</translation>
 <translation id="1333489022424033687">Algunhas funcións de <ph name="ORIGIN" /> poderían non funcionar ata que borres os datos que almacenasen no teu dispositivo outros sitios</translation>
 <translation id="1333965224356556482">Non permitir que os sitios vexan a túa localización</translation>
@@ -4319,6 +4318,7 @@
 <translation id="520568280985468584">Engadiuse a rede correctamente. Pode que a rede de telefonía móbil tarde varios minutos en activarse.</translation>
 <translation id="5206215183583316675">Queres eliminar "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Produciuse un erro ao importar o certificado</translation>
+<translation id="5206562235913517859">O código de identificación da tenda retallista ten o formato ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Cambiouse correctamente o contrasinal vulnerado. Quédache # máis. Chrome recomenda comprobar este contrasinal agora.}other{Cambiouse correctamente o contrasinal vulnerado. Quédanche # máis. Chrome recomenda comprobar estes contrasinais agora.}}</translation>
 <translation id="5207949376430453814">Destacar o cursor de texto</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> quere comprobar se usas un dispositivo Chrome OS compatible.</translation>
@@ -4838,6 +4838,7 @@
 <translation id="5729712731028706266">&amp;Ver</translation>
 <translation id="5731247495086897348">Pe&amp;gar e acceder</translation>
 <translation id="5732392974455271431">Os teus pais poden desbloquealo por ti</translation>
+<translation id="5733866499231170760">O código de identificación non é válido. O formato que utilizaches é incorrecto. Consulta as instrucións que recibiches para asegurarte de meter o código no formato axeitado. Se non dás solucionado este problema, deixa o campo en branco e continúa coa instalación.</translation>
 <translation id="5734362860645681824">Comunicacións</translation>
 <translation id="5734697361979786483">Engadir un sistema de ficheiros compartido</translation>
 <translation id="5736796278325406685">Introduce un nome de usuario válido</translation>
@@ -6309,7 +6310,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Páxina de saída}other{Páxinas de saída}}</translation>
 <translation id="7207457272187520234">Enviar datos de uso e diagnóstico. Este dispositivo envía automaticamente datos de diagnóstico e de uso do dispositivo e das aplicacións a Google. Esta información permitirá aumentar a estabilidade do sistema e das aplicacións, e realizar outras melloras. Algúns datos agregados tamén serán útiles para as aplicacións e os socios de Google, como os programadores de Android. Esta opción de configuración contrólaa o propietario. Se está activada a opción Actividade web e das aplicacións adicional, estes datos pódense gardar na túa Conta de Google.</translation>
 <translation id="7207631048330366454">Buscar aplicacións</translation>
-<translation id="720808544705441386">Non se puido abrir a aplicación</translation>
 <translation id="7210499381659830293">Impresoras da extensión</translation>
 <translation id="7211783048245131419">Aínda non se asignou ningún interruptor</translation>
 <translation id="7212097698621322584">Introduce o teu PIN actual para cambialo. Se non sabes cal é, deberás restablecer a chave de seguranza e, despois, crear un novo.</translation>
@@ -6944,6 +6944,7 @@
 <translation id="7824864914877854148">Non se puido completar a copia de seguranza debido a un erro</translation>
 <translation id="782590969421016895">Usar páxinas actuais</translation>
 <translation id="7826174860695147464">Compatibilidade con navegadores antigos: elementos internos</translation>
+<translation id="7826190688224781865">Código de identificación da tenda retallista</translation>
 <translation id="7826249772873145665">Desactivouse a depuración de ADB</translation>
 <translation id="7826254698725248775">Identificador de dispositivos en conflito.</translation>
 <translation id="7828731929332799387">Ao realizar esta acción, eliminaranse todas as cookies e os datos dos sitios de terceiros. Queres continuar?</translation>
@@ -8412,6 +8413,7 @@
 <translation id="987897973846887088">Non hai imaxes dispoñibles</translation>
 <translation id="988320949174893488">Pestanexo ocasional</translation>
 <translation id="988978206646512040">A frase de acceso non pode estar baleira</translation>
+<translation id="991097196715779457">Código de identificación da tenda retallista (opcional)</translation>
 <translation id="992032470292211616">As extensións, as aplicacións e os temas poden danar o teu dispositivo. Seguro que queres continuar?</translation>
 <translation id="992256792861109788">Rosa</translation>
 <translation id="992592832486024913">Desactivar ChromeVox (comentarios orais)</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 00105ee..6487486 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">તમારા સ્થાનની આવશ્યકતા હોય તેવી સુવિધાઓ કાર્ય નહીં કરે</translation>
 <translation id="1329191040029425999">ખાતરી કરો કે તમારું ડિવાઇસ અપ ટૂ ડેટ છે અને કૃપા કરીને ફરી પ્રયાસ કરો</translation>
 <translation id="1330145147221172764">ઑન-સ્ક્રીન કીબોર્ડ ચાલુ કરો</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ખોલવા માટે, "નિષ્ક્રિયતામાંથી સક્રિય થવા પર લૉક સ્ક્રીન બતાવો" ચાલુ કરો</translation>
 <translation id="1331977651797684645">આ હું હતો/હતી.</translation>
 <translation id="1333489022424033687">તમારા ડિવાઇસ પર અન્ય સાઇટે સ્ટોર કરેલો ડેટા જ્યાં સુધી સાફ કરવામાં ન આવે ત્યાં સુધી <ph name="ORIGIN" /> પરની કેટલીક સુવિધાઓ કામ ન પણ કરે</translation>
 <translation id="1333965224356556482">સાઇટને તમારું સ્થાન જોવાની મંજૂરી આપશો નહીં</translation>
@@ -6333,7 +6332,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{પેજમાંથી બહાર નીકળો}one{પેજમાંથી બહાર નીકળો}other{પેજમાંથી બહાર નીકળો}}</translation>
 <translation id="7207457272187520234">વપરાશ અને નિદાનનો ડેટા મોકલો. આ ડિવાઇસ હાલમાં Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલી રહ્યું છે. આ સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્ર કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારો, જેમ કે Android ડેવલપરને પણ સહાય કરશે. આ સેટિંગ માલિક દ્વારા લાગુ કરવામાં આવ્યું છે. જો તમારી વધારાની વેબ અને ઍપ પ્રવૃત્તિનું સેટિંગ ચાલુ હોય, તો આ ડેટા તમારા Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે.</translation>
 <translation id="7207631048330366454">ઍપ શોધો</translation>
-<translation id="720808544705441386">ઍપ ખોલી શકાતી નથી</translation>
 <translation id="7210499381659830293">એક્સ્ટેંશન પ્રિન્ટર</translation>
 <translation id="7211783048245131419">હજી સુધી કોઈ સ્વિચની સોંપણી કરવામાં આવી નથી</translation>
 <translation id="7212097698621322584">પિન બદલવા માટે તમારો વર્તમાન પિન દાખલ કરો. જો તમને તમારો પિન યાદ ન હોય, તો તમારે સુરક્ષા કોડ રીસેટ કરવો પડશે, અને પછી નવો પિન બનાવવો પડશે.</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 22cb9df9..7ab2076 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">जिन सुविधाओं के लिए जगह की जानकारी की ज़रूरत होती है वे काम नहीं करेंगी</translation>
 <translation id="1329191040029425999">पक्का करें कि आपका डिवाइस अप-टू-डेट हो और कृपया फिर से कोशिश करें</translation>
 <translation id="1330145147221172764">ऑन-स्क्रीन कीबोर्ड चालू करें</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> खोलने के लिए, "स्लीप मोड से बाहर आने पर लॉक स्क्रीन दिखाएं" चालू करें</translation>
 <translation id="1331977651797684645">यह मैं ही था/थी.</translation>
 <translation id="1333489022424033687"><ph name="ORIGIN" /> पर मौजूद कुछ सुविधाएं तब तक काम नहीं करेंगी, जब तक आप उस डेटा को नहीं मिटाते जिसे दूसरी साइटों ने आपके डिवाइस पर सेव किया हुआ है</translation>
 <translation id="1333965224356556482">साइटों को आपकी जगह की जानकारी देखने की अनुमति न दें</translation>
@@ -6333,7 +6332,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{पेज से बाहर निकलें}one{पेज से बाहर निकलें}other{पेज से बाहर निकलें}}</translation>
 <translation id="7207457272187520234">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेज रहा है. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. इकट्ठा किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. यह सेटिंग, डिवाइस के मालिक ने लागू की है. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation>
 <translation id="7207631048330366454">ऐप्लिकेशन खोजें</translation>
-<translation id="720808544705441386">ऐप्लिकेशन नहीं खोला जा सका</translation>
 <translation id="7210499381659830293">एक्सटेंशन प्रिंटर</translation>
 <translation id="7211783048245131419">अभी तक कोई भी स्विच असाइन नहीं किया गया</translation>
 <translation id="7212097698621322584">अपना मौजूदा पिन डालकर उसे बदलें. अगर आप पिन नहीं जानते हैं, तो आपको सुरक्षा कुंजी रीसेट करनी होगी, फिर एक नया पिन बनाना होगा.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index f4e6437..9e71379 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Značajke kojima je potrebna vaša lokacija neće raditi</translation>
 <translation id="1329191040029425999">Provjerite je li vaš uređaj ažuriran i pokušajte ponovo</translation>
 <translation id="1330145147221172764">Omogući tipkovnicu na zaslonu</translation>
-<translation id="1331625853030156663">Da biste otvorili aplikaciju <ph name="APP_NAME" />, omogućite opciju "Prikaži zaključan zaslon prilikom vraćanja iz mirovanja"</translation>
 <translation id="1331977651797684645">To sam bio ja.</translation>
 <translation id="1333489022424033687">Neke značajke na web-lokaciji <ph name="ORIGIN" /> možda neće raditi dok ne izbrišete podatke koje su druge web-lokacije pohranile na vašem uređaju</translation>
 <translation id="1333965224356556482">Ne dopuštaj web-lokacijama prikazivanje vaše lokacije</translation>
@@ -841,6 +840,7 @@
 <translation id="1794051631868188691">Nikad nemoj prikazivati trgovca <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Pošaljite povratne informacije da biste nam pomogli riješiti taj problem.</translation>
 <translation id="1795214765651529549">Koristi klasičnu</translation>
+<translation id="1796105431091975902">Odaberite Ansible Playbook za dodavanje</translation>
 <translation id="1796588414813960292">Značajke kojima je potreban zvuk neće funkcionirati</translation>
 <translation id="1800502858278951817">Nijedno proširenje nije zatražilo da čita i miijenja <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">U mirovanje kada se zatvori poklopac.</translation>
@@ -3043,6 +3043,7 @@
 <translation id="389901847090970821">Odaberite tipkovnicu</translation>
 <translation id="3900966090527141178">Izvoz zaporki</translation>
 <translation id="3903187154317825986">Ugrađena tipkovnica</translation>
+<translation id="3903191712482985591">Dodajte playbook</translation>
 <translation id="3904326018476041253">Usluge lokacije</translation>
 <translation id="3904849010307028014">Na temelju vaše interakcije s određenom web-lokacijom, kao što je redovito prijavljivanje na račun, ta web-lokacija može vašem pregledniku izdati oznaku povjerenja. Ako druge web-lokacije koje poslije posjetite provjere postoji li važeća oznaka povjerenja i pronađu je, vjerojatnije je da će vas tretirati kao osobu, a ne bot.</translation>
 <translation id="3905761538810670789">Popravi aplikaciju</translation>
@@ -3653,6 +3654,7 @@
 <translation id="4510479820467554003">Popis roditeljskih računa</translation>
 <translation id="451102079304155829">košarice</translation>
 <translation id="4513872120116766993">Prediktivno pisanje</translation>
+<translation id="4513909579793564731">Primijeni playbook</translation>
 <translation id="4513946894732546136">Povratne informacije</translation>
 <translation id="451407183922382411">Omogućuje <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Reproduciraj ili pauziraj videozapis</translation>
@@ -5483,6 +5485,7 @@
 <translation id="635609604405270300">Neka uređaj ostane uključen</translation>
 <translation id="63566973648609420">Samo osoba koja ima vašu šifru može čitati vaše kriptirane podatke. Šifra se ne šalje Googleu i ne pohranjuje na njemu. Ako zaboravite šifru ili želite promijeniti tu postavku, morat ćete <ph name="BEGIN_LINK" />poništiti sinkronizaciju<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Neke podržane veze i dalje će se otvarati u aplikacijama <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">Nijedno proširenje nema dopuštenje za čitanje i promjenu web-lokacije <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Zmaj</translation>
 <translation id="6361850914223837199">Detalji pogreške:</translation>
 <translation id="6362853299801475928">&amp;Prijavljivanje problema...</translation>
@@ -6335,7 +6338,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Zatvori stranicu}one{Zatvori stranicu}few{Zatvori stranice}other{Zatvori stranica}}</translation>
 <translation id="7207457272187520234">Slanje podataka o upotrebi i dijagnostici. Ovaj uređaj trenutačno Googleu automatski šalje dijagnostičke podatke te podatke o upotrebi uređaja i aplikacija. Ti podaci pomoći će poboljšati stabilnost sustava, aplikacija i drugo. Neki skupni podaci pomoći će i Googleovim aplikacijama i partnerima, na primjer razvojnim programerima za Android. Tu postavku zadao je vlasnik. Ako je uključena dodatna aktivnost na webu i u aplikacijama, ti se podaci mogu spremati na vaš Google račun.</translation>
 <translation id="7207631048330366454">Pretraži aplikacije</translation>
-<translation id="720808544705441386">Aplikacija se ne može otvoriti</translation>
 <translation id="7210499381659830293">Pisači povezani putem proširenja</translation>
 <translation id="7211783048245131419">Još nije dodijeljen nijedan prekidač</translation>
 <translation id="7212097698621322584">Unesite svoj trenutačni PIN da biste ga promijenili. Ako ne znate PIN, vratite sigurnosni ključ na zadano, a zatim izradite novi PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 4f5430a..0547b13 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">A helyadatokat igénylő funkciók nem működnek</translation>
 <translation id="1329191040029425999">Győződjön meg arról, hogy eszköze naprakész, majd próbálkozzon újra</translation>
 <translation id="1330145147221172764">Képernyő-billentyűzet engedélyezése</translation>
-<translation id="1331625853030156663">A(z) <ph name="APP_NAME" /> megnyitáshoz engedélyezze a „Lezárási képernyő megjelenítése, az alvó módból történő felébresztéskor” beállítást</translation>
 <translation id="1331977651797684645">Én voltam.</translation>
 <translation id="1333489022424033687">Lehetséges, hogy néhány funkció nem működik a(z) <ph name="ORIGIN" /> helyen, amíg nem törli a más webhelyek által az Ön eszközén tárolt adatokat.</translation>
 <translation id="1333965224356556482">A webhelyek nem tekinthetik meg az Ön tartózkodási helyét</translation>
@@ -1018,6 +1017,7 @@
 <translation id="1944921356641260203">A rendszer frissítést talált</translation>
 <translation id="1947136734041527201">Lehetővé teszi, hogy identitásszolgáltató által biztosított fiókkal jelentkezzen be a webhelyekre</translation>
 <translation id="1949584741547056205">Gyors válaszok</translation>
+<translation id="1949849604471335579">Háttérkép, képernyőkímélő, kiemelési színek és egyebek személyre szabása</translation>
 <translation id="1951012854035635156">Segéd</translation>
 <translation id="1954597385941141174">A webhelyek engedélyt kérhetnek az USB-eszközökhöz való csatlakozásra</translation>
 <translation id="1954813140452229842">Hiba történt a megosztott tároló csatlakoztatása során. Ellenőrizze hitelesítő adatait, majd próbálkozzon újra.</translation>
@@ -1049,6 +1049,7 @@
 <translation id="1981434377190976112">Az Ön összes adatának olvasása az összes webhelyen</translation>
 <translation id="1984417487208496350">Nincs védelem (nem javasolt)</translation>
 <translation id="1987317783729300807">Fiókok</translation>
+<translation id="1987574314042117472">Népszerű alkalmazások kiválasztása és telepítése</translation>
 <translation id="1988259784461813694">Követelmény</translation>
 <translation id="1989112275319619282">Böngészés</translation>
 <translation id="1989903373608997757">Mindig ezt használja</translation>
@@ -1114,6 +1115,7 @@
 <translation id="2048554637254265991">Hiba történt a tárolókezelő indításakor. Próbálja újra.</translation>
 <translation id="2048653237708779538">A művelet nem végezhető el</translation>
 <translation id="2050339315714019657">Álló</translation>
+<translation id="2052572566310583903">Más eszközökön telepítve</translation>
 <translation id="2053312383184521053">Tétlen állapot adatai</translation>
 <translation id="2054240652864153171">Törli a(z) <ph name="SITE_NAME" /> webhelyadatait (particionálva itt: <ph name="PARTITION_SITE_NAME" />)?</translation>
 <translation id="2055585478631012616">A rendszer kijelentkezteti ezekről a webhelyekről (a megnyitott lapok esetében is)</translation>
@@ -1276,6 +1278,7 @@
 <translation id="2191754378957563929">Be</translation>
 <translation id="2192505247865591433">Innen:</translation>
 <translation id="2193365732679659387">Bizalmi beállítások</translation>
+<translation id="2194554416429452547">A próbaidőszakok során a Chrome a spam, a csalás és a webhelyek közötti megosztás korlátozására szolgáló módszereket próbál ki. A Chrome emellett olyan <ph name="ESTIMATE_INTERESTS_LINK" />, amelyeket más webhelyek arra használhatnak fel, hogy hirdetéseket jelenítsenek meg Önnek. Érdeklődési köreit a beállításokban kezelheti.</translation>
 <translation id="2194856509914051091">Megfontolandó szempontok</translation>
 <translation id="2195331105963583686"><ph name="DEVICE_TYPE" /> eszközét ezt követően is tudja majd használni, de többé nem kap automatikus biztonsági és szoftverfrissítéseket</translation>
 <translation id="2195729137168608510">E-mail védelem</translation>
@@ -1882,6 +1885,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Nyelvhelyesség és helyesírás ellenőrzése</translation>
 <translation id="2753677631968972007">A webhelyengedélyek manuális kezelése.</translation>
+<translation id="2754825024506485820">A Google Play Áruházban megtalálhatja kívánt alkalmazásokat, legyen szó irodai alkalmazásokról vagy akár szórakozásról. Bármikor telepíthet alkalmazást.</translation>
 <translation id="2755349111255270002"><ph name="DEVICE_TYPE" /> alaphelyzetbe állítása</translation>
 <translation id="2755367719610958252">Kisegítő lehetőségek kezelése</translation>
 <translation id="275662540872599901">képernyő kikapcsolva</translation>
@@ -1958,6 +1962,7 @@
 <translation id="2815693974042551705">Könyvjelzőmappa</translation>
 <translation id="2816319641769218778">Ha szeretné jelszavait Google-fiókjába menteni, kapcsolja be a szinkronizálást.</translation>
 <translation id="2816628817680324566">Engedélyezi a webhelynek, hogy azonosíthassa a biztonsági kulcsát?</translation>
+<translation id="2817435998497102771">Háttérkép és stílus beállítása</translation>
 <translation id="2818476747334107629">Nyomtató részletei</translation>
 <translation id="2819167288942847344">Az alkalmazás hibás működésének elkerülése érdekében használjon előre beállított értékeket a telefonon, a táblagépen vagy az átméretezhető ablakokon</translation>
 <translation id="2820957248982571256">Keresés…</translation>
@@ -2851,6 +2856,7 @@
 <translation id="3727144509609414201">Hozzáférhető WiFi-hálózatok</translation>
 <translation id="3727187387656390258">Előugró ablak vizsgálata</translation>
 <translation id="372722114124766626">Csak egyszer</translation>
+<translation id="3727332897090187514">Nincs megadva megjegyzés</translation>
 <translation id="3727473233247516571">Előre-vissza gyorsítótárazott alkeret: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Értesítéseket tükrözhet a telefonról</translation>
 <translation id="3728681439294129328">Hálózati cím konfigurálása</translation>
@@ -3185,6 +3191,7 @@
 <translation id="4031527940632463547">Érzékelők letiltva</translation>
 <translation id="4033415645631238123">A Smart Lock használatával való bejelentkezés már nem áll rendelkezésre. Zárolás feloldására viszont továbbra is használhatja a Smart Lock funkciót.</translation>
 <translation id="4033471457476425443">Új mappa hozzáadása</translation>
+<translation id="4033711848170683365">Ezzel az eszközön lévő összes böngészési adat véglegesen törlődik. A profilhoz tartozó Google-fiókokat más alkalmazások is használhatják az Ön <ph name="DEVICE_TYPE" /> eszközén. Lehetősége van e fiókok eltávolítására, amit itt tehet meg: <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">A biztonságos webhelyek beágyazhatnak olyan tartalmakat (pl. képeket vagy webes kereteket), amelyek nem biztonságosak</translation>
 <translation id="4034824040120875894">Nyomtató</translation>
 <translation id="4035758313003622889">&amp;Feladatkezelő</translation>
@@ -3463,6 +3470,7 @@
 <translation id="4314815835985389558">Szinkronizálás kezelése</translation>
 <translation id="4315933848520197627">Fiók leválasztása</translation>
 <translation id="4316850752623536204">Fejlesztő webhelye</translation>
+<translation id="4317733381297736564">Alkalmazáson belüli vásárlások</translation>
 <translation id="4317820549299924617">Az igazolás nem sikerült</translation>
 <translation id="4320177379694898372">Nincs internetkapcsolat</translation>
 <translation id="4322394346347055525">Egyéb lapok bezárása</translation>
@@ -4046,6 +4054,7 @@
 <translation id="4893522937062257019">A lezárási képernyőn</translation>
 <translation id="4897496410259333978">További információért lépjen kapcsolatba a rendszergazdával.</translation>
 <translation id="4898011734382862273">A(z) „<ph name="CERTIFICATE_NAME" />” tanúsítvány tanúsítványkibocsátót képvisel</translation>
+<translation id="4899696330053002588">Hirdetéseket tartalmaz</translation>
 <translation id="489985760463306091">Indítsa újra a számítógépet a kártékony szoftver eltávolításának befejezéséhez</translation>
 <translation id="4900392736118574277">Kezdőoldala a következőre módosult: <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz – váltottsoros</translation>
@@ -4420,6 +4429,7 @@
 <translation id="52912272896845572">A privátkulcs-fájl érvénytelen.</translation>
 <translation id="5291739252352359682">Automatikusan készít feliratot a médiatartalmakhoz a Chrome böngészőben (a funkció jelenleg csak angol nyelven áll rendelkezésre). A hanganyagokat és feliratokat csak az adott helyen kezeljük, és mindig csak az Ön eszközén tároljuk őket.</translation>
 <translation id="529175790091471945">Az eszköz formázása</translation>
+<translation id="5292862864186939732">Mindig engedélyezi a(z) „<ph name="EXTENSION_NAME" />” bővítmény futtatását a következőn: <ph name="ORIGIN" />?</translation>
 <translation id="529296195492126134">Az átmeneti mód nem támogatott. Forduljon a rendszergazdához.</translation>
 <translation id="5293170712604732402">Beállítások visszaállítása alapértelmezettre</translation>
 <translation id="5294097441441645251">Kisbetűvel vagy aláhúzásjellel kell kezdődnie</translation>
@@ -5178,6 +5188,7 @@
 <translation id="6054961935262556546">Láthatóság módosítása</translation>
 <translation id="6055171183283175969">A megadott jelszó helytelen.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 RSA titkosítással</translation>
+<translation id="6055544610007596637">Alkalmazások telepítése <ph name="DEVICE_TYPE" /> eszközére a Google Play Áruházból</translation>
 <translation id="6056710589053485679">Normál újratöltés</translation>
 <translation id="6057312498756061228">Ez a fájl túl nagy ahhoz, hogy biztonsági ellenőrzést lehessen végrehajtani rajta. Legfeljebb 50 MB méretű fájlok nyithatók meg.</translation>
 <translation id="6057381398996433816">Ennél a webhelynél le van tiltva a mozgás- és fényérzékelők használata.</translation>
@@ -6150,6 +6161,7 @@
 <translation id="7002055706763150362">A Smart Lock Chromebookhoz rendszer beállításához a Google-nak meg kell bizonyosodnia arról, hogy Ön akarja ezt végrehajtani: a kezdéshez írja be jelszavát.</translation>
 <translation id="7003339318920871147">Internetes adatbázisok</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} fájl}other{{COUNT} fájl}}</translation>
+<translation id="7003705861991657723">Alfa</translation>
 <translation id="7003723821785740825">Gyorsabb megoldás beállítása az eszköz feloldásához</translation>
 <translation id="7003844668372540529">Ismeretlen termék (<ph name="PRODUCT_ID" />) a következő forgalmazótól: <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">A webhely MIDI-eszközöket használhat</translation>
@@ -6166,6 +6178,7 @@
 <translation id="7008815993384338777">Jelenleg nem aktív a roaming</translation>
 <translation id="7009709314043432820">A(z) <ph name="APP_NAME" /> használja a kamerát</translation>
 <translation id="701080569351381435">Forráskód megtekintése</translation>
+<translation id="7011797924920577670">érdeklődési köröket határoz meg</translation>
 <translation id="7014174261166285193">A telepítés nem sikerült.</translation>
 <translation id="7014480873681694324">Kiemelés eltávolítása</translation>
 <translation id="7017004637493394352">Mondja ki az „Ok Google” szavakat újra.</translation>
@@ -6233,6 +6246,7 @@
 <translation id="7082568314107259011">A(z) <ph name="NETWORK_NAME" /> hálózatot az Ön rendszergazdája kezeli</translation>
 <translation id="7085389578340536476">Engedélyezi a Chrome-nak hangfelvételek készítését?</translation>
 <translation id="708550780726587276">(nincs konfigurálva)</translation>
+<translation id="7086531709814430567">Mindig engedélyezi ezeknek a bővítményeknek a futtatását a következőn: <ph name="ORIGIN" />?</translation>
 <translation id="7086672505018440886">A Chrome naplófájljai is kerüljenek be az archívumba.</translation>
 <translation id="7088434364990739311">A frissítés ellenőrzésének elindítása sikertelen (hibakód: <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">Az eszközt a rendszergazda eltávolított állapotba helyezte. Ahhoz, hogy regisztrálhassa az eszközt, helyeztesse azt a rendszergazdával függő állapotba.</translation>
@@ -6331,7 +6345,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Oldal elhagyása}other{Oldalak elhagyása}}</translation>
 <translation id="7207457272187520234">Használati és diagnosztikai adatok küldése. Ez az eszköz jelenleg automatikusan küld diagnosztikai, eszköz- és alkalmazáshasználati adatokat a Google-nak. Az adatok a rendszer- és alkalmazásstabilitás javításában, valamint más fejlesztésekben segítenek. Bizonyos összesített adatok a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek is segítenek. Ezt a beállítást kötelezővé tette az eszköz tulajdonosa. Ha az Internetes és alkalmazástevékenységek beállítás is be van kapcsolva, akkor a rendszer ezeket az adatokat az Ön Google-fiókjába is mentheti.</translation>
 <translation id="7207631048330366454">Alkalmazások keresése</translation>
-<translation id="720808544705441386">Nem nyitható meg az alkalmazás</translation>
 <translation id="7210499381659830293">Bővítményalapú nyomtatók</translation>
 <translation id="7211783048245131419">Még nem lett hozzárendelve kapcsoló</translation>
 <translation id="7212097698621322584">A módosításhoz adja meg jelenlegi PIN-kódját. Ha nem tudja a PIN-kódot, vissza kell állítania a biztonsági hardverkulcsot, majd új PIN-kódot kell létrehoznia.</translation>
@@ -8366,6 +8379,7 @@
 <translation id="9215742531438648683">A Google Play Áruház eltávolítása</translation>
 <translation id="9218430445555521422">Beállítás alapértelmezettként</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (nem támogatott alkalmazás)</translation>
+<translation id="9219582468404818260">Segítsen nekünk a jobb internet kialakításában</translation>
 <translation id="9220525904950070496">Fiók eltávolítása</translation>
 <translation id="9220820413868316583">Emelje fel ujját, majd próbálja újra.</translation>
 <translation id="923467487918828349">Összes megjelenítése</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index bbdecd8a..b282e01 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Գործառույթները, որոնց համար պահանջվում է տեղորոշում, չեն աշխատի</translation>
 <translation id="1329191040029425999">Թարմացրեք սարքի օպերացիոն համակարգը ու նորից փորձեք։</translation>
 <translation id="1330145147221172764">Միացնել էկրանի ստեղնաշարը</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> հավելվածը բացելու համար միացրեք «Ցույց տալ կողպէկրանը քնի ռեժիմից դուրս գալիս» պարամետրը։</translation>
 <translation id="1331977651797684645">Սա ես եմ։</translation>
 <translation id="1333489022424033687"><ph name="ORIGIN" /> կայքում որոշ գործառույթներ կարող են չաշխատել, մինչև չհեռացնեք ձեր սարքում այլ կայքերի պահած տվյալները։</translation>
 <translation id="1333965224356556482">Թույլ չտալ կայքերին տեսնել ձեր տեղադրությունը</translation>
@@ -6317,7 +6316,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Փակել էջը}one{Փակել էջը}other{Փակել էջը}}</translation>
 <translation id="7207457272187520234">Օգտագործման և դիագնոստիկ տվյալների ուղարկում։ Այս սարքը Google-ին ավտոմատ ուղարկում է ախտորոշման, ինչպես նաև սարքի և հավելվածի օգտագործման մասին տվյալներ։ Դա կօգնի բարելավել համակարգի ու հավելվածների աշխատանքի կայունությունը։ Հավաքված տեղեկությունների մի մասը օգտակար կլինի մեր գործընկերների, օրինակ, Android ծրագրավորողների համար։ Այս կարգավորումը պարտադրված է սեփականատիրոջ կողմից։ Եթե միացնեք Վեբ որոնման և հավելվածների լրացուցիչ պատմությունը, այս տվյալները կպահվեն ձեր Google հաշվում։</translation>
 <translation id="7207631048330366454">Որոնել հավելվածներ</translation>
-<translation id="720808544705441386">Չհաջողվեց բացել հավելվածը</translation>
 <translation id="7210499381659830293">Ընդլայնում-տպիչներ</translation>
 <translation id="7211783048245131419">Նշանակված փոխանջատիչներ չկան</translation>
 <translation id="7212097698621322584">Մուտքագրեք ձեր ընթացիկ PIN կոդը՝ այն փոխելու համար: Եթե չգիտեք ձեր PIN կոդը, զրոյացրեք անվտանգության բանալու կարգավորումները և նշեք նոր PIN կոդ։</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 85e2cc5..0407221 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Fitur yang memerlukan lokasi Anda tidak akan berfungsi</translation>
 <translation id="1329191040029425999">Pastikan perangkat sudah diupdate dan coba lagi</translation>
 <translation id="1330145147221172764">Aktifkan keyboard di layar</translation>
-<translation id="1331625853030156663">Untuk membuka <ph name="APP_NAME" />, aktifkan "Tampilkan layar kunci saat keluar dari mode tidur"</translation>
 <translation id="1331977651797684645">Ini saya.</translation>
 <translation id="1333489022424033687">Beberapa fitur di <ph name="ORIGIN" /> mungkin tidak berfungsi kecuali Anda menghapus data yang telah disimpan di perangkat Anda oleh situs lain</translation>
 <translation id="1333965224356556482">Jangan izinkan situs melihat lokasi Anda</translation>
@@ -6332,7 +6331,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Keluar dari halaman}other{Keluar dari halaman}}</translation>
 <translation id="7207457272187520234">Kirimkan data penggunaan dan diagnostik. Perangkat ini saat ini otomatis mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Jika setelan Aktivitas Web &amp; Aplikasi tambahan Anda diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda.</translation>
 <translation id="7207631048330366454">Telusuri aplikasi</translation>
-<translation id="720808544705441386">Tidak dapat membuka aplikasi</translation>
 <translation id="7210499381659830293">Printer ekstensi</translation>
 <translation id="7211783048245131419">Belum ada kunci tombol akses yang ditetapkan</translation>
 <translation id="7212097698621322584">Masukkan PIN saat ini untuk mengubahnya. Jika tidak mengetahui PIN Anda, reset kunci keamanan, lalu buat PIN baru.</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index d2675a2..fc02dfce 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Eiginleikar sem þurfa staðsetningu þína munu ekki virka</translation>
 <translation id="1329191040029425999">Gakktu úr skugga um að tækið sé uppfært og reyndu aftur</translation>
 <translation id="1330145147221172764">Kveikja á skjályklaborði</translation>
-<translation id="1331625853030156663">Til að opna <ph name="APP_NAME" /> skaltu opna „Sýna lásskjá þegar komið er úr hvíldarstillingu“</translation>
 <translation id="1331977651797684645">Þetta var ég.</translation>
 <translation id="1333489022424033687">Sumir eiginleikar á <ph name="ORIGIN" /> virka hugsanlega ekki þar til þú hreinsar gögn sem önnur vefsvæði hafa vistað í tækinu þínu</translation>
 <translation id="1333965224356556482">Ekki leyfa vefsvæðum að sjá staðsetninguna þína</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">Netkerfi var bætt við. Nokkrar mínútur gætu liðið áður en farsímakerfið virkjast.</translation>
 <translation id="5206215183583316675">Eyða „<ph name="CERTIFICATE_NAME" />“?</translation>
 <translation id="520621735928254154">Villa við innflutning á vottorði</translation>
+<translation id="5206562235913517859">Verslunarauðkenni söluaðila er á sniðinu ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Aðgangsorði í hættu var breytt. # aðgangsorð í viðbót er í hættu. Chrome mælir með að þú athugir þetta aðgangsorð núna.}one{Aðgangsorði í hættu var breytt. # aðgangsorð í viðbót er í hættu. Chrome mælir með að þú athugir þessi aðgangsorð núna.}other{Aðgangsorði í hættu var breytt. # aðgangsorð í viðbót eru í hættu. Chrome mælir með að þú athugir þessi aðgangsorð núna.}}</translation>
 <translation id="5207949376430453814">Auðkenna textainnskotsmerki</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> vill kanna hvort þú sért að nota gjaldgengt ChromeOS tæki.</translation>
@@ -4858,6 +4858,7 @@
 <translation id="5729712731028706266">Skoða</translation>
 <translation id="5731247495086897348">Líma og opna</translation>
 <translation id="5732392974455271431">Foreldrar þínir geta opnað fyrir þetta</translation>
+<translation id="5733866499231170760">Ógilt auðkenni. Sniðið sem þú færðir inn er rangt. Skoðaðu leiðbeiningarnar sem þú fékkst til að ganga úr skugga um að þú hafir fært inn auðkenni á réttu sniði. Ef þér tekst ekki að leysa úr vandamálinu skaltu skilja reitinn eftir auðan og halda áfram með uppsetninguna.</translation>
 <translation id="5734362860645681824">Samskipti</translation>
 <translation id="5734697361979786483">Bæta samnýttri skráageymslu við</translation>
 <translation id="5736796278325406685">Sláðu inn gilt notendanafn</translation>
@@ -6332,7 +6333,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Loka síðu}one{Loka síðum}other{Loka síðum}}</translation>
 <translation id="7207457272187520234">Senda notkunar- og greiningargögn. Þetta tæki sendir núna sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta mun stuðla að stöðugleika kerfa og forrita og öðrum endurbótum. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Eigandi valdi þessa stillingu. Ef kveikt er á ítarlegri vef- og forritavirkni geta þessi gögn verið vistuð á Google reikningnum þínum.</translation>
 <translation id="7207631048330366454">Leita í forritum</translation>
-<translation id="720808544705441386">Ekki er hægt að opna forritið</translation>
 <translation id="7210499381659830293">Prentaraviðbætur</translation>
 <translation id="7211783048245131419">Ekki er búið að úthluta neinum rofa</translation>
 <translation id="7212097698621322584">Sláðu inn núverandi PIN-númer til að breyta því. Ef þú veist ekki PIN-númerið þitt þarftu að endurstilla öryggislykilinn og búa svo til nýtt PIN-númer.</translation>
@@ -6967,6 +6967,7 @@
 <translation id="7824864914877854148">Villa kom í veg fyrir að hægt væri að ljúka afritun</translation>
 <translation id="782590969421016895">Nota núverandi síður</translation>
 <translation id="7826174860695147464">Stuðningur við eldri vafra – innri stillingar</translation>
+<translation id="7826190688224781865">Auðkenniskóði verslunar söluaðila</translation>
 <translation id="7826249772873145665">Slökkt á ADB-villuleit</translation>
 <translation id="7826254698725248775">Ósamræmi í auðkenni tækis.</translation>
 <translation id="7828731929332799387">Þetta mun eyða öllum fótsporum og vefsvæðisgögnum frá þriðju aðilum. Ertu viss um að þú viljir halda áfram?</translation>
@@ -8437,6 +8438,7 @@
 <translation id="987897973846887088">Engar myndir til staðar</translation>
 <translation id="988320949174893488">Einstaka hökt</translation>
 <translation id="988978206646512040">Ekki er leyft að hafa autt aðgangsorð</translation>
+<translation id="991097196715779457">Auðkenniskóði verslunar söluaðila (valfrjáls)</translation>
 <translation id="992032470292211616">Viðbætur, forrit og þemu geta skaðað tækið þitt. Ertu viss um að þú viljir halda áfram?</translation>
 <translation id="992256792861109788">Bleikur</translation>
 <translation id="992592832486024913">Gera ChromeVox (raddsvörun) óvirkt</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 902692d..550c453 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Le funzionalità che richiedono la tua posizione non funzioneranno</translation>
 <translation id="1329191040029425999">Assicurati che il dispositivo sia aggiornato e riprova</translation>
 <translation id="1330145147221172764">Attiva tastiera sullo schermo</translation>
-<translation id="1331625853030156663">Per aprire l'app <ph name="APP_NAME" /> devi attivare l'opzione "Mostra la schermata di blocco quando il dispositivo viene riattivato dopo la sospensione"</translation>
 <translation id="1331977651797684645">Ero io.</translation>
 <translation id="1333489022424033687">Alcune funzionalità sul sito <ph name="ORIGIN" /> potrebbero non funzionare se non cancelli i dati memorizzati da altri siti sul dispositivo</translation>
 <translation id="1333965224356556482">Non consentire ai siti di vedere la tua posizione</translation>
@@ -6313,7 +6312,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Esci dalla pagina}other{Esci dalle pagine}}</translation>
 <translation id="7207457272187520234">Invia dati diagnostici e sull'utilizzo. Attualmente, questo dispositivo invia a Google dati diagnostici e sull'utilizzo delle app e del dispositivo. Tali dati contribuiranno alla stabilità delle app e del sistema, nonché ad altri miglioramenti. Alcuni dati aggregati saranno utili anche alle app e ai partner di Google, come ad esempio agli sviluppatori Android. Questa impostazione è applicata dal proprietario. Se hai attivato l'impostazione Attività web e app aggiuntiva, queste informazioni potrebbero essere salvate nel tuo Account Google.</translation>
 <translation id="7207631048330366454">Cerca nelle app</translation>
-<translation id="720808544705441386">Impossibile aprire l'app</translation>
 <translation id="7210499381659830293">Stampanti estensione</translation>
 <translation id="7211783048245131419">Nessun sensore assegnato per il momento</translation>
 <translation id="7212097698621322584">Inserisci il PIN attuale per modificarlo. Se non conosci il PIN, devi reimpostare il token di sicurezza, quindi creare un nuovo PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index e83de624..a3aa3fcdc 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -337,7 +337,6 @@
 <translation id="1327794256477341646">תכונות שצריכות גישה למיקום לא יפעלו</translation>
 <translation id="1329191040029425999">צריך לוודא שהמכשיר מעודכן ולנסות שוב</translation>
 <translation id="1330145147221172764">הפעלת מקלדת על המסך</translation>
-<translation id="1331625853030156663">כדי לפתוח את <ph name="APP_NAME" />, צריך להפעיל את האפשרות 'הצגת מסך הנעילה ביציאה ממצב שינה'</translation>
 <translation id="1331977651797684645">זה הייתי אני.</translation>
 <translation id="1333489022424033687">ייתכן שתכונות מסוימות ב-<ph name="ORIGIN" /> לא יפעלו עד שיוסרו נתונים שאתרים אחרים אחסנו במכשיר שלך</translation>
 <translation id="1333965224356556482">לא לאפשר לאתרים לראות את המיקום שלך</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">הרשת נוספה בהצלחה. ייתכן שיחלפו מספר דקות עד שהרשת הסלולרית תהיה פעילה.</translation>
 <translation id="5206215183583316675">האם למחוק את "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">שגיאה בייבוא האישור</translation>
+<translation id="5206562235913517859">‏הפורמט של מזהה החנות הקמעונאית הוא ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{‏הסיסמה שנחשפה הוחלפה בהצלחה. נותרה עוד סיסמה אחת שנחשפה. ההמלצה של Chrome היא לבדוק את הסיסמה הזו עכשיו.}two{‏הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}many{‏הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}other{‏הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}}</translation>
 <translation id="5207949376430453814">הדגשה של סמן הטקסט</translation>
 <translation id="520840839826327499">‏<ph name="SERVICE_NAME" /> רוצה לוודא שמכשיר ה-ChromeOS שלך כשיר.</translation>
@@ -4858,6 +4858,7 @@
 <translation id="5729712731028706266">&amp;הצגה</translation>
 <translation id="5731247495086897348">הד&amp;בקה ומעבר אל</translation>
 <translation id="5732392974455271431">ההורים שלך יכולים לבטל בשבילך את החסימה</translation>
+<translation id="5733866499231170760">מזהה לא תקין. הפורמט שהזנת שגוי. יש לקרוא את ההוראות שקיבלת ולוודא שהמזהה מוזן בפורמט הנכון. אם לא הצלחת לפתור את הבעיה, אפשר להשאיר את השדה ריק ולהמשיך בהתקנה.</translation>
 <translation id="5734362860645681824">תקשורת</translation>
 <translation id="5734697361979786483">הוספת התקן רשת לשיתוף קבצים</translation>
 <translation id="5736796278325406685">יש להזין שם משתמש חוקי</translation>
@@ -6334,7 +6335,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{יציאה מהדף}two{יציאה מהדפים}many{יציאה מהדפים}other{יציאה מהדפים}}</translation>
 <translation id="7207457272187520234">‏שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון, נתוני מכשיר ונתוני שימוש באפליקציות. הנתונים האלה יעזרו לשמור על היציבות של המערכת ושל האפליקציות ולבצע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android. ההגדרה הזו נאכפת על-ידי הבעלים. אם הופעלה ההגדרה 'פעילות באפליקציות ובאתרי אינטרנט נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך.</translation>
 <translation id="7207631048330366454">חיפוש אפליקציות</translation>
-<translation id="720808544705441386">לא ניתן לפתוח את האפליקציה</translation>
 <translation id="7210499381659830293">מדפסות בתוסף</translation>
 <translation id="7211783048245131419">עוד לא הוקצו מתגים.</translation>
 <translation id="7212097698621322584">צריך להזין את קוד האימות הנוכחי כדי לשנות אותו. אם קוד האימות לא ידוע לך, צריך לאפס את מפתח האבטחה ולאחר מכן ליצור קוד אימות חדש.</translation>
@@ -6968,6 +6968,7 @@
 <translation id="7824864914877854148">אירעה שגיאה ולא ניתן להשלים את הגיבוי</translation>
 <translation id="782590969421016895">שימוש בדפים הנוכחיים</translation>
 <translation id="7826174860695147464">‏תמיכה בדפדפן מדור קודם (LBS) – הגדרות פנימיות</translation>
+<translation id="7826190688224781865">קוד מזהה החנות הקמעונאית</translation>
 <translation id="7826249772873145665">‏ניפוי באגים באמצעות ADB מושבת</translation>
 <translation id="7826254698725248775">מזהה מכשיר מתנגש.</translation>
 <translation id="7828731929332799387">‏הפעולה הזו תמחק את כל קובצי ה-cookie ונתוני האתרים הזמינים בהקשרים של צד שלישי. להמשיך?</translation>
@@ -8442,6 +8443,7 @@
 <translation id="987897973846887088">אין תמונות זמינות</translation>
 <translation id="988320949174893488">לא יציב</translation>
 <translation id="988978206646512040">השדה של ביטוי הסיסמה לא יכול להישאר ריק</translation>
+<translation id="991097196715779457">קוד מזהה החנות הקמעונאית (אופציונלי)</translation>
 <translation id="992032470292211616">תוספים, אפליקציות ועיצובים יכולים לפגוע במכשיר שלך. ברצונך להמשיך?</translation>
 <translation id="992256792861109788">ורוד</translation>
 <translation id="992592832486024913">‏השבתה של ChromeVox (משוב קולי)</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index ef9cdb2b..e87b549 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">位置情報を必要とする機能は動作しなくなります</translation>
 <translation id="1329191040029425999">デバイスが最新の状態になっていることを確認してから、もう一度お試しください</translation>
 <translation id="1330145147221172764">画面キーボードを有効にする</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> を開くには、[スリープから復帰するときにロック画面を表示する] を有効にしてください</translation>
 <translation id="1331977651797684645">これは私です。</translation>
 <translation id="1333489022424033687">容量不足のため、<ph name="ORIGIN" /> の一部の機能が動作しない可能性があります。デバイスに保存された他のサイトのデータを削除してください</translation>
 <translation id="1333965224356556482">サイトに位置情報へのアクセスを許可しない</translation>
@@ -838,6 +837,7 @@
 <translation id="1794051631868188691"><ph name="MERCHANT" /> を今後表示しない</translation>
 <translation id="1794791083288629568">フィードバックを送信して問題解決に協力する。</translation>
 <translation id="1795214765651529549">クラシックを使用</translation>
+<translation id="1796105431091975902">追加する Ansible Playbook を選択してください</translation>
 <translation id="1796588414813960292">音を使用する機能は動作しなくなります</translation>
 <translation id="1800502858278951817"><ph name="SITE_NAME" /> の読み取りと変更を要求している拡張機能はありません</translation>
 <translation id="1802624026913571222">ディスプレイを閉じたときにスリープ状態にする</translation>
@@ -1004,6 +1004,7 @@
 <translation id="1944921356641260203">アップデートが見つかりました</translation>
 <translation id="1947136734041527201">ID サービスで使用しているアカウントでウェブサイトにログインできます</translation>
 <translation id="1949584741547056205">クイック アンサー</translation>
+<translation id="1949849604471335579">壁紙、スクリーン セーバー、アクセント カラーなどをパーソナライズ</translation>
 <translation id="1951012854035635156">アシスタント</translation>
 <translation id="1954597385941141174">サイトが USB デバイスへの接続を要求できるようにする</translation>
 <translation id="1954813140452229842">共有フォルダのマウントエラー。認証情報を確認してもう一度お試しください。</translation>
@@ -1035,6 +1036,7 @@
 <translation id="1981434377190976112">すべてのウェブサイト上にある自分の全データの読み取り</translation>
 <translation id="1984417487208496350">保護なし(推奨されません)</translation>
 <translation id="1987317783729300807">アカウント</translation>
+<translation id="1987574314042117472">人気のアプリを選択してインストール</translation>
 <translation id="1988259784461813694">要件</translation>
 <translation id="1989112275319619282">閲覧</translation>
 <translation id="1989903373608997757">常に使用</translation>
@@ -1100,6 +1102,7 @@
 <translation id="2048554637254265991">コンテナ マネージャーの起動中にエラーが発生しました。もう一度お試しください。</translation>
 <translation id="2048653237708779538">操作できません</translation>
 <translation id="2050339315714019657">縦</translation>
+<translation id="2052572566310583903">他のデバイスにインストール済み</translation>
 <translation id="2053312383184521053">アイドル状態のデータ</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" /> で分割された <ph name="SITE_NAME" /> のサイトデータを削除しますか?</translation>
 <translation id="2055585478631012616">開いているすべてのタブで、これらのサイトからログアウトします</translation>
@@ -1262,6 +1265,7 @@
 <translation id="2191754378957563929">オン</translation>
 <translation id="2192505247865591433">取得先:</translation>
 <translation id="2193365732679659387">信頼の設定</translation>
+<translation id="2194554416429452547">トライアル期間中、Chrome はスパムや不正行為、サイト間の共有を制限する方法を検証します。また、<ph name="ESTIMATE_INTERESTS_LINK" />して、サイトでの広告表示に使用できるようにします。興味 / 関心は設定で管理できます。</translation>
 <translation id="2194856509914051091">留意事項</translation>
 <translation id="2195331105963583686">この期限を過ぎても <ph name="DEVICE_TYPE" /> は使用できますが、ソフトウェアとセキュリティは自動更新されなくなります。</translation>
 <translation id="2195729137168608510">電子メールの保護</translation>
@@ -1863,6 +1867,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">スペルと一緒に文法をチェック</translation>
 <translation id="2753677631968972007">サイトの権限を手動で管理します。</translation>
+<translation id="2754825024506485820">仕事効率化からエンタメまで、Google Play ストアで必要なアプリを探しましょう。アプリはいつでもインストールできます。</translation>
 <translation id="2755349111255270002">この <ph name="DEVICE_TYPE" /> をリセットします</translation>
 <translation id="2755367719610958252">ユーザー補助機能の管理</translation>
 <translation id="275662540872599901">画面オフ</translation>
@@ -1939,6 +1944,7 @@
 <translation id="2815693974042551705">ブックマーク フォルダ</translation>
 <translation id="2816319641769218778">パスワードを Google アカウントに保存するには、同期を有効にします。</translation>
 <translation id="2816628817680324566">このサイトによるセキュリティ キーの読み取りを許可しますか?</translation>
+<translation id="2817435998497102771">壁紙とスタイルを設定</translation>
 <translation id="2818476747334107629">プリンタの詳細</translation>
 <translation id="2819167288942847344">アプリが誤動作しないように、スマートフォンやタブレットのウィンドウ、サイズ変更可能なウィンドウにプリセットのサイズを使用します</translation>
 <translation id="2820957248982571256">スキャンしています…</translation>
@@ -2831,6 +2837,7 @@
 <translation id="3727144509609414201">利用可能な Wi-Fi ネットワーク</translation>
 <translation id="3727187387656390258">ポップアップを検証</translation>
 <translation id="372722114124766626">今回のみ</translation>
+<translation id="3727332897090187514">メモは追加されていません</translation>
 <translation id="3727473233247516571">バックフォワード キャッシュのサブフレーム: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">スマートフォンから通知をミラーリング</translation>
 <translation id="3728681439294129328">ネットワーク アドレスの設定</translation>
@@ -3026,6 +3033,7 @@
 <translation id="389901847090970821">キーボードを選択</translation>
 <translation id="3900966090527141178">パスワードのエクスポート</translation>
 <translation id="3903187154317825986">デバイス内蔵キーボード</translation>
+<translation id="3903191712482985591">Playbook を追加</translation>
 <translation id="3904326018476041253">位置情報サービス</translation>
 <translation id="3904849010307028014">アカウントへの定期的なログインなど、そのサイトとのやり取りに基づき、サイトはブラウザにトラスト トークンを発行できます。その後、アクセスした他のサイトが有効なトラスト トークンを確認して検出した場合、そのサイトはユーザーを bot ではなく人間と同じように扱う可能性が高くなります。</translation>
 <translation id="3905761538810670789">アプリを修復</translation>
@@ -3164,6 +3172,7 @@
 <translation id="4031527940632463547">センサーがブロックされました</translation>
 <translation id="4033415645631238123">Smart Lock を使用したログインはできなくなりました。Smart Lock を使用してロックを解除することは引き続き可能です。</translation>
 <translation id="4033471457476425443">新しいフォルダを追加</translation>
+<translation id="4033711848170683365">このデバイスから閲覧データを完全に削除します。このプロフィールの Google アカウントは、<ph name="DEVICE_TYPE" /> の他のアプリで使用されている可能性があります。これらのアカウントは、<ph name="BEGIN_LINK" />[<ph name="SETTING_SECTION" />] &gt; [<ph name="ACCOUNTS_SECTION" />]<ph name="END_LINK" /> で削除できます。</translation>
 <translation id="4033963223187371752">セキュリティで保護されたサイトに、セキュリティで保護されていない画像やウェブフレームなどのコンテンツが埋め込まれている場合があります</translation>
 <translation id="4034824040120875894">プリンタ</translation>
 <translation id="4035758313003622889">タスク マネージャ(&amp;T)</translation>
@@ -3440,6 +3449,7 @@
 <translation id="4314815835985389558">同期の管理</translation>
 <translation id="4315933848520197627">アカウントのリンク解除</translation>
 <translation id="4316850752623536204">デベロッパーのウェブサイト</translation>
+<translation id="4317733381297736564">アプリ内購入</translation>
 <translation id="4317820549299924617">確認が失敗しました</translation>
 <translation id="4320177379694898372">インターネットに接続されていません</translation>
 <translation id="4322394346347055525">他のタブをすべて閉じる</translation>
@@ -3630,6 +3640,7 @@
 <translation id="4510479820467554003">保護者のアカウント リスト</translation>
 <translation id="451102079304155829">カート</translation>
 <translation id="4513872120116766993">予測入力</translation>
+<translation id="4513909579793564731">Playbook を適用</translation>
 <translation id="4513946894732546136">フィードバック</translation>
 <translation id="451407183922382411">Powered by <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">動画の再生と一時停止を切り替え</translation>
@@ -4021,6 +4032,7 @@
 <translation id="4893522937062257019">ロック画面</translation>
 <translation id="4897496410259333978">詳しくは、管理者にお問い合わせください。</translation>
 <translation id="4898011734382862273">証明書にある「<ph name="CERTIFICATE_NAME" />」は認証局を表しています</translation>
+<translation id="4899696330053002588">広告が表示されます</translation>
 <translation id="489985760463306091">有害なソフトウェアの削除を完了するには、パソコンを再起動してください</translation>
 <translation id="4900392736118574277">起動ページが <ph name="URL" /> に変更されました。</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz - インターレース</translation>
@@ -4393,6 +4405,7 @@
 <translation id="52912272896845572">秘密鍵ファイルが無効です。</translation>
 <translation id="5291739252352359682">Chrome ブラウザで再生するメディアの字幕を自動的に作成します(現在のところ英語に対応)音声と字幕はローカルで処理され、デバイスの外部へ送信されることはありません。</translation>
 <translation id="529175790091471945">このデバイスをフォーマット</translation>
+<translation id="5292862864186939732"><ph name="ORIGIN" /> で「<ph name="EXTENSION_NAME" />」の実行を常に許可しますか?</translation>
 <translation id="529296195492126134">一時的ログインモードはサポートされていません。管理者にお問い合わせください</translation>
 <translation id="5293170712604732402">設定を元の既定値に戻す</translation>
 <translation id="5294097441441645251">先頭は英小文字かアンダースコアにしてください</translation>
@@ -5146,6 +5159,7 @@
 <translation id="6054961935262556546">公開設定を変更</translation>
 <translation id="6055171183283175969">入力したパスワードが正しくありません。</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 with RSA 暗号化</translation>
+<translation id="6055544610007596637">Google Play ストアから <ph name="DEVICE_TYPE" /> のアプリをインストール</translation>
 <translation id="6056710589053485679">通常の再読み込み</translation>
 <translation id="6057312498756061228">このファイルはセキュリティ チェックには大きすぎます。開けるファイルは 50 MB までです。</translation>
 <translation id="6057381398996433816">このサイトではモーション センサーと光センサーの使用がブロックされています。</translation>
@@ -5454,6 +5468,7 @@
 <translation id="635609604405270300">デバイスの電源を切らないでください</translation>
 <translation id="63566973648609420">パスフレーズを知っているユーザーだけが暗号化データを読み取ることができます。パスフレーズが Google に送信されたり Google で保存されたりすることはありません。パスフレーズを忘れた場合や、この設定を変更する場合は、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />する必要があります。</translation>
 <translation id="6357305427698525450">サポートされているリンクの一部は、引き続き <ph name="APP_NAME" /> または <ph name="APP_NAME_2" /> で開かれます。</translation>
+<translation id="6357794994761110294"><ph name="SITE_NAME" /> の読み取りと変更が許可されている拡張機能はありません</translation>
 <translation id="6358884629796491903">ドラゴン</translation>
 <translation id="6361850914223837199">エラーの詳細:</translation>
 <translation id="6362853299801475928">問題の報告(&amp;R)...</translation>
@@ -6116,6 +6131,7 @@
 <translation id="7002055706763150362">Smart Lock for Chromebook を設定するには、Google に対する本人確認が必要です。開始するにはパスワードを入力してください。</translation>
 <translation id="7003339318920871147">ウェブ データベース</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} 件のファイル}other{{COUNT} 件のファイル}}</translation>
+<translation id="7003705861991657723">アルファ版</translation>
 <translation id="7003723821785740825">デバイスのロックをすばやく解除する方法を設定できます</translation>
 <translation id="7003844668372540529">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_NAME" />)</translation>
 <translation id="7004402701596653846">サイトに MIDI の使用が許可されています</translation>
@@ -6132,6 +6148,7 @@
 <translation id="7008815993384338777">現在ローミングなし</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> がカメラを使用しています</translation>
 <translation id="701080569351381435">ソースを表示</translation>
+<translation id="7011797924920577670">興味 / 関心を推定</translation>
 <translation id="7014174261166285193">インストールできませんでした。</translation>
 <translation id="7014480873681694324">テキストの選択を解除</translation>
 <translation id="7017004637493394352">もう一度「OK Google」と言ってください</translation>
@@ -6199,6 +6216,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> は管理者によって管理されています</translation>
 <translation id="7085389578340536476">Chrome に録音を許可しますか?</translation>
 <translation id="708550780726587276">(設定されていません)</translation>
+<translation id="7086531709814430567"><ph name="ORIGIN" /> でこれらの拡張機能の実行を常に許可しますか?</translation>
 <translation id="7086672505018440886">アーカイブに Chrome ログファイルを含める。</translation>
 <translation id="7088434364990739311">更新チェックを起動できませんでした(エラー コード <ph name="ERROR" />)。</translation>
 <translation id="7088674813905715446">このデバイスは、管理者によりプロビジョニングを解除されている状態です。このデバイスを登録できるようにするには、デバイスを待機状態にするよう管理者に依頼してください。</translation>
@@ -6297,7 +6315,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ページを離れる}other{ページを離れる}}</translation>
 <translation id="7207457272187520234">使用状況データや診断データを送信します。このデバイスは現在、診断データやデバイスとアプリの使用状況データを Google に自動送信するように設定されています。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。この設定は所有者によって管理されています。[その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータは Google アカウントに保存されます。</translation>
 <translation id="7207631048330366454">アプリを検索</translation>
-<translation id="720808544705441386">アプリを開けません</translation>
 <translation id="7210499381659830293">拡張プリンタ</translation>
 <translation id="7211783048245131419">割り当てられたスイッチはありません</translation>
 <translation id="7212097698621322584">PIN を変更するには、現在の PIN を入力してください。PIN がわからない場合は、セキュリティ キーをリセットしたうえで新しい PIN を作成する必要があります。</translation>
@@ -8330,6 +8347,7 @@
 <translation id="9215742531438648683">Google Play ストアのアンインストール</translation>
 <translation id="9218430445555521422">デフォルトとして設定</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" />(サポートされていないアプリ)</translation>
+<translation id="9219582468404818260">ウェブの改善にご協力ください</translation>
 <translation id="9220525904950070496">アカウントを削除</translation>
 <translation id="9220820413868316583">いったん指を放してもう一度お試しください。</translation>
 <translation id="923467487918828349">すべて表示</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 4d06e07..30aebaac 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">ფუნქციები, რომლებიც თქვენს მდებარეობას საჭიროებს, არ იმუშავებს</translation>
 <translation id="1329191040029425999">დარწმუნდით, რომ თქვენი მოწყობილობა განახლებულია და ცადეთ ხელახლა</translation>
 <translation id="1330145147221172764">ეკრანული კლავიატურის ჩართვა</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> რომ გახსნათ, ჩართეთ „ძილიდან გამოღვიძებისას ჩაკეტილი ეკრანის ჩვენება“</translation>
 <translation id="1331977651797684645">ეს მე ვიყავი.</translation>
 <translation id="1333489022424033687"><ph name="ORIGIN" />-ის ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს, სანამ თქვენს მოწყობილობაში სხვა საიტების მიერ შენახულ მონაცემებს არ გაასუფთავებთ</translation>
 <translation id="1333965224356556482">საიტებისთვის თქვენი მდებარეობის ნახვის აკრძალვა</translation>
@@ -1007,6 +1006,7 @@
 <translation id="1944921356641260203">ნაპოვნია განახლება</translation>
 <translation id="1947136734041527201">საშუალებას გაძლევთ, შეხვიდეთ ვებსაიტებში პირადობის მონაცემების სერვისში არსებული ანგარიშით</translation>
 <translation id="1949584741547056205">სწრაფი პასუხები</translation>
+<translation id="1949849604471335579">იზრუნეთ ფონის, ეკრანმზოგის, აქცენტის ფერებისა და სხვა ელემენტების პერსონალიზებაზე</translation>
 <translation id="1951012854035635156">ასისტენტი</translation>
 <translation id="1954597385941141174">საიტებს შეუძლია USB მოწყობილობებთან დაკავშირების თხოვნა</translation>
 <translation id="1954813140452229842">გაზიარების მიერთებისას მოხდა შეცდომა. შეამოწმეთ თქვენი ავტორიზაციის მონაცემები და ცადეთ ხელახლა.</translation>
@@ -1038,6 +1038,7 @@
 <translation id="1981434377190976112">თქვენი ყველა მონაცემის წაკითხვა ყველა ვებსაიტზე</translation>
 <translation id="1984417487208496350">დაცვის გარეშე (არარეკომენდებული)</translation>
 <translation id="1987317783729300807">ანგარიშები</translation>
+<translation id="1987574314042117472">აირჩიეთ და დააინსტალირეთ პოპულარული აპები</translation>
 <translation id="1988259784461813694">მოთხოვნა</translation>
 <translation id="1989112275319619282">დათვალიერება</translation>
 <translation id="1989903373608997757">ყოველთვის გამოყენება</translation>
@@ -1103,6 +1104,7 @@
 <translation id="2048554637254265991">კონტეინერების მმართველის გაშვება ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="2048653237708779538">ქმედება მიუწვდომელია</translation>
 <translation id="2050339315714019657">პორტრეტი</translation>
+<translation id="2052572566310583903">თქვენს სხვა მოწყობილობებზე დაინსტალირებული</translation>
 <translation id="2053312383184521053">უმოქმედო მდგომარეობის მონაცემები</translation>
 <translation id="2054240652864153171">გსურთ, გაასუფთაოთ საიტის მონაცემები <ph name="SITE_NAME" />-ისთვის, რომელიც დაყოფილია <ph name="PARTITION_SITE_NAME" />-ზე?</translation>
 <translation id="2055585478631012616">თქვენ გამოხვალთ ამ საიტებიდან, მათ შორის, გახსნილ ჩანართებზე</translation>
@@ -1265,6 +1267,7 @@
 <translation id="2191754378957563929">ჩართული</translation>
 <translation id="2192505247865591433">საიდან:</translation>
 <translation id="2193365732679659387">ნდობის პარამეტრები</translation>
+<translation id="2194554416429452547">საცდელი პერიოდის განმავლობაში, Chrome ცდილობს გაარკვიოს, თუ როგორ შეიძლება სპამის, თაღლითობისა და საიტებს შორის კონტენტის გაზიარების შეზღუდვა. Chrome-ში, ასევე, არის <ph name="ESTIMATE_INTERESTS_LINK" />, რომლის გამოყენებაც საიტებს შეუძლიათ რეკლამების საჩვენებლად. თქვენი ინტერესების მართვა შეგიძლიათ პარამეტრებიდან.</translation>
 <translation id="2194856509914051091">გასათვალისწინებელი საკითხები</translation>
 <translation id="2195331105963583686"><ph name="DEVICE_TYPE" /> ჩვეულებრივად შეგიძლიათ გამოიყენოთ აღნიშნული დროის შემდეგ, თუმცა ის აღარ მიიღებს პროგრამული უზრუნველყოფისა და უსაფრთხოების ავტომატურ განახლებებს</translation>
 <translation id="2195729137168608510">ელფოსტის დაცვა</translation>
@@ -1869,6 +1872,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">გრამატიკისა და მართლწერის შემოწმება</translation>
 <translation id="2753677631968972007">საიტების ნებართვების ხელით მართვა.</translation>
+<translation id="2754825024506485820">მოძებნეთ, მაგალითად, სამუშაოსთან ან გართობასთან დაკავშირებული, თქვენთვის საჭირო აპები Google Play Store-ში. აპების დაინსტალირება ნებისმიერ დროს შეგიძლიათ.</translation>
 <translation id="2755349111255270002">გადააყენეთ ეს <ph name="DEVICE_TYPE" /></translation>
 <translation id="2755367719610958252">მარტივი წვდომის ფუნქციების მართვა</translation>
 <translation id="275662540872599901">ეკრანი გამორთულია</translation>
@@ -1945,6 +1949,7 @@
 <translation id="2815693974042551705">მონიშნულების საქაღალდე</translation>
 <translation id="2816319641769218778">თქვენს Google ანგარიშში პაროლების შესანახად ჩართეთ სინქრონიზაცია.</translation>
 <translation id="2816628817680324566">გსურთ, ამ საიტმა თქვენი უსაფრთხოების გასაღების იდენტიფიცირება მოახდინოს?</translation>
+<translation id="2817435998497102771">დააყენეთ თქვენი ფონი და სტილი</translation>
 <translation id="2818476747334107629">პრინტერის დეტალები</translation>
 <translation id="2819167288942847344">წინასწარ დაყენებული პარამეტრების გამოყენება ტელეფონის, ტაბლეტის ან ზომაცვლადი ფანჯრებისთვის, რათა აღიკვეთოს აპის მიერ წესების დარღვევა</translation>
 <translation id="2820957248982571256">მიმდინარეობს სკანირება...</translation>
@@ -2838,6 +2843,7 @@
 <translation id="3727144509609414201">ხელმისაწვდომი Wi-Fi ქსელები</translation>
 <translation id="3727187387656390258">კონტექსტური ფანჯრის შემოწმება</translation>
 <translation id="372722114124766626">მხოლოდ ერთხელ</translation>
+<translation id="3727332897090187514">არცერთი შენიშვნა არ არის დამატებული</translation>
 <translation id="3727473233247516571">ქეშირებული ქვეფრეიმი უკან-წინ გადასვლის შესაძლებლობით: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">შეტყობინებების არეკვლა ტელეფონიდან</translation>
 <translation id="3728681439294129328">ქსელის მისამართის კონფიგურაცია</translation>
@@ -3173,6 +3179,7 @@
 <translation id="4031527940632463547">სენსორების გამოყენება აკრძალულია</translation>
 <translation id="4033415645631238123">Smart Lock-ით შესვლა აღარ არის ხელმისაწვდომი. Smart Lock-ით განბლოკვა კვლავ შესაძლებელია.</translation>
 <translation id="4033471457476425443">ახალი საქაღალდის დამატება</translation>
+<translation id="4033711848170683365">ეს მოქმედება სამუდამოდ წაშლის დათვალიერების მონაცემებს ამ მოწყობილობიდან. ამ პროფილში არსებული Google ანგარიშები შეიძლება გამოიყენებოდეს სხვა აპების მიერ თქვენს <ph name="DEVICE_TYPE" />-ზე. ამ ანგარიშების ამოსაშლელად გადადით აქ: <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">დაცულ საიტებს შეუძლია ისეთი კონტენტის ჩაშენება, როგორიცაა დაუცველი სურათები თუ ვებ-ფრეიმები</translation>
 <translation id="4034824040120875894">პრინტერი</translation>
 <translation id="4035758313003622889">&amp;ამოცანების მმართველი</translation>
@@ -3451,6 +3458,7 @@
 <translation id="4314815835985389558">სინქრონიზაციის მართვა</translation>
 <translation id="4315933848520197627">ანგარიშის ბმის გაუქმება</translation>
 <translation id="4316850752623536204">დეველოპერის საიტი</translation>
+<translation id="4317733381297736564">აპს-შიდა შესყიდვები</translation>
 <translation id="4317820549299924617">დადასტურება ვერ მოხერხდა</translation>
 <translation id="4320177379694898372">ინტერნეტთან კავშირი არ არის</translation>
 <translation id="4322394346347055525">სხვა ჩანართების დახურვა</translation>
@@ -4033,6 +4041,7 @@
 <translation id="4893522937062257019">ჩაკეტილ ეკრანზე</translation>
 <translation id="4897496410259333978">დამატებითი ინფორმაციისთვის დაუკავშირდით თქვენს ადმინისტრატორს.</translation>
 <translation id="4898011734382862273">სერთიფიკატი „<ph name="CERTIFICATE_NAME" />“ წარმოადგენს სერტიფიცირების ცენტრს</translation>
+<translation id="4899696330053002588">შეიცავს რეკლამებს</translation>
 <translation id="489985760463306091">საზიანო პროგრამული უზრუნველყოფის ამოშლის დასასრულებლად გადატვირთეთ თქვენი კომპიუტერი</translation>
 <translation id="4900392736118574277">თქვენი გაშვების გვერდი გახდა <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> ჰც — ინტერლეისით</translation>
@@ -4406,6 +4415,7 @@
 <translation id="52912272896845572">პერსონალური გასაღების ფაილი არასწორია.</translation>
 <translation id="5291739252352359682">ავტომატურად ქმნის სუბტიტრებს მედიაფაილებისთვის Chrome ბრაუზერში (ამჟამად ხელმისაწვდომია მხოლოდ ინგლისურ ენაზე). აუდიო და სუბტიტრები მუშავდება ადგილობრივად და ყოველთვის თქვენს მოწყობილობაზე დარჩება.</translation>
 <translation id="529175790091471945">ამ მოწყობილობის დაფორმატება</translation>
+<translation id="5292862864186939732">გსურთ საიტზე (<ph name="ORIGIN" />) გაფართოების „<ph name="EXTENSION_NAME" />“ ყოველთვის დაშვება?</translation>
 <translation id="529296195492126134">ეფემერული რეჟიმი მხარდაუჭერელია. მიმართეთ თქვენს ადმინისტრატორს</translation>
 <translation id="5293170712604732402">პარამეტრების დაბრუნება თავდაპირველ ნაგულისხმევ მნიშვნელობებზე</translation>
 <translation id="5294097441441645251">უნდა იწყებოდეს არამთავრული სიმბოლოთი ან ქვედახაზით</translation>
@@ -5163,6 +5173,7 @@
 <translation id="6054961935262556546">ხილვადობის შეცვლა</translation>
 <translation id="6055171183283175969">თქვენ მიერ შეყვანილი პაროლი არასწორია.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 თან ერთად RSA დაშიფვრა</translation>
+<translation id="6055544610007596637">დააინსტალირეთ აპები თქვენი <ph name="DEVICE_TYPE" />-ისთვის Google Play Store-იდან</translation>
 <translation id="6056710589053485679">ნორმალური გადატვირთვა</translation>
 <translation id="6057312498756061228">ეს ფაილი ზედმეტად დიდია უსაფრთხოების შემოწმებისთვის. შეგიძლიათ 50 მბაიტამდე ზომის ფაილების გახსნა.</translation>
 <translation id="6057381398996433816">ამ საიტს აეკრძალა მოძრაობისა და განათების სენსორების გამოყენება.</translation>
@@ -6135,6 +6146,7 @@
 <translation id="7002055706763150362">ფუნქციის „Smart Lock Chromebook-ისთვის“ დასაყენებლად, Google უნდა დარწმუნდეს, რომ ეს ნამდვილად თქვენ ხართ — დასაწყებად, აკრიფეთ პაროლი.</translation>
 <translation id="7003339318920871147">ვებ მონაცემთა ბაზები</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} ფაილი}other{{COUNT} ფაილი}}</translation>
+<translation id="7003705861991657723">ალფა</translation>
 <translation id="7003723821785740825">დააყენეთ თქვენი მოწყობილობის უფრო სწრაფად განბლოკვის ხერხი</translation>
 <translation id="7003844668372540529">უცნობი პროდუქტი – <ph name="PRODUCT_ID" /> მომწოდებლისგან: <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">საიტს შეუძლია MIDI-ს გამოყენება</translation>
@@ -6151,6 +6163,7 @@
 <translation id="7008815993384338777">როუმინგი ამჟამად არ გამოიყენება</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> იყენებს თქვენს კამერას</translation>
 <translation id="701080569351381435">წყაროს ნახვა</translation>
+<translation id="7011797924920577670">შეესაბამება თქვენს ინტერესებს</translation>
 <translation id="7014174261166285193">ინსტალაცია ვერ მოხერხდა.</translation>
 <translation id="7014480873681694324">გამოყოფის ამოშლა</translation>
 <translation id="7017004637493394352">კიდევ ერთხელ წარმოთქვით „Ok Google“</translation>
@@ -6218,6 +6231,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> იმართება თქვენი ადმინისტრატორის მიერ</translation>
 <translation id="7085389578340536476">გსურთ Chrome-ისთვის აუდიოს ჩაწერის დაშვება?</translation>
 <translation id="708550780726587276">(არ არის კონფიგურირებული)</translation>
+<translation id="7086531709814430567">გსურთ საიტზე (<ph name="ORIGIN" />) ამ გაფართოებების ყოველთვის დაშვება?</translation>
 <translation id="7086672505018440886">არქივში შენახული Chrome-ის ჟურნალების ფაილების დართვა.</translation>
 <translation id="7088434364990739311">განახლების შემოწმების გაშვება ვერ მოხერხდა (შეცდომის კოდი <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">ეს მოწყობილობა გადაყვანილია დეინიციალიზაციის მდგომარეობაში ამინისტრატორის მიერ. იმისათვის, რომ ჩართოთ ის სიაში, სთხოვეთ ადმინისტრატორს, გადაიყვანოს მოწყობილობა მომლოდინე მდგომარეობაში.</translation>
@@ -6316,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{გვერდიდან გასვლა}other{გვერდებიდან გასვლა}}</translation>
 <translation id="7207457272187520234">გამოყენებისა და დიაგნოსტიკის მონაცემების გაგზავნა. ეს მოწყობილობა ამჟამად ავტომატურად უგზავნის Google-ს დიაგნოსტიკისა და მოწყობილობის/აპების გამოყენების მონაცემებს. აღნიშნული მონაცემები დაგვეხმარება სისტემის/აპების სტაბილურობისა და სხვა ფუნქციების გაუმჯობესებაში. გარდა ამისა, გაერთიანებული მონაცემების ნაწილი ხელს შეუწყობს Google აპებსა და პარტნიორებს, მაგალითად, Android-ის დეველოპერებს. ეს პარამეტრი არის იძულებით გააქტიურებული მფლობელის მიერ. თუ ჩართული გაქვთ ვებსა და აპებში დამატებითი აქტივობის პარამეტრი, აღნიშნული მონაცემები შესაძლოა შეინახოს თქვენს Google ანგარიშში.</translation>
 <translation id="7207631048330366454">აპებში ძიება</translation>
-<translation id="720808544705441386">აპის გახსნა ვერ ხერხდება</translation>
 <translation id="7210499381659830293">გაფართოების პრინტერები</translation>
 <translation id="7211783048245131419">გადამრთველი ჯერ არ მინიჭებულა</translation>
 <translation id="7212097698621322584">შესაცვლელად შეიყვანეთ თქვენი ამჟამინდელი PIN-კოდი. თუ PIN-კოდი არ იცით, საჭირო იქნება უსაფრთხოების გასაღების გადაყენება და ახალი PIN-კოდის შექმნა.</translation>
@@ -8350,6 +8363,7 @@
 <translation id="9215742531438648683">Google Play Store-ის დეინსტალაცია</translation>
 <translation id="9218430445555521422">ნაგულისხმევის დაყენება</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (მხარდაუჭერელი აპი)</translation>
+<translation id="9219582468404818260">დაგვეხმარეთ ვების გაუმჯობესებაში</translation>
 <translation id="9220525904950070496">ანგარიშის წაშლა</translation>
 <translation id="9220820413868316583">ასწიეთ და ცადეთ ხელახლა.</translation>
 <translation id="923467487918828349">ყველას ჩვენება</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 1d363c8..fae7a66 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Геодерегіңізді қажет ететін функциялар жұмыс істемейді.</translation>
 <translation id="1329191040029425999">Құрылғыңыз жаңартылғанына көз жеткізіп, әрекетті қайталаңыз.</translation>
 <translation id="1330145147221172764">Экрандағы пернетақтаны қосу</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> сайтын ашу үшін "Ұйқы режимінен шығарғанда құлып экранын көрсету" параметрін қосыңыз.</translation>
 <translation id="1331977651797684645">Бұл мен едім.</translation>
 <translation id="1333489022424033687">Құрылғыңызға басқа сайттар сақтаған деректер жойылмайынша, <ph name="ORIGIN" /> сайтындағы кейбір функциялар жұмыс істемейді.</translation>
 <translation id="1333965224356556482">Сайттардың геодерегіңізді көруіне рұқсат бермеу</translation>
@@ -4317,6 +4316,7 @@
 <translation id="520568280985468584">Желі қосылды. Ұялы желі белсенді болуы үшін бірнеше минут керек.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" сертификатын жою керек пе?</translation>
 <translation id="520621735928254154">Сертификатты импорттау қатесі</translation>
+<translation id="5206562235913517859">Бөлшек сатушы дүкенінің идентификаторы (ABC-1234 форматында)</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Ұрланған құпия сөз өзгертілді. Тағы # құпия сөзіңіз ұрланған. Chrome осы құпия сөзді қазір тексеруге кеңес береді.}other{Ұрланған құпия сөз өзгертілді. Тағы # құпия сөзіңіз ұрланған. Chrome осы құпия сөздерді қазір тексеруге кеңес береді.}}</translation>
 <translation id="5207949376430453814">Мәтін курсорын бөлектеу</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> жарамды ChromeOS құрылғысын пайдаланып жатқаныңызды тексергісі келеді.</translation>
@@ -4836,6 +4836,7 @@
 <translation id="5729712731028706266">&amp;Көру</translation>
 <translation id="5731247495086897348">Қо&amp;ю және өту</translation>
 <translation id="5732392974455271431">Ата-анаңыз оны сіз үшін бөгеуден шығара алады</translation>
+<translation id="5733866499231170760">Идентификатор жарамсыз. Енгізілген формат дұрыс емес. Форматы дұрыс идентификатор енгізілгеніне көз жеткізу үшін алынған нұсқаулықтарды қараңыз. Бұл мәселені шеше алмасаңыз, өрісті бос қалдырып, орнатуды жалғастырыңыз.</translation>
 <translation id="5734362860645681824">Байланыстар</translation>
 <translation id="5734697361979786483">Файл бөлісу функциясын қосу</translation>
 <translation id="5736796278325406685">Жарамды пайдаланушы атын енгізіңіз</translation>
@@ -6307,7 +6308,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Беттен шығу}other{Беттерден шығу}}</translation>
 <translation id="7207457272187520234">Пайдалану және диагностика туралы деректерді жіберу. Бұл құрылғыдан Google-ға диагностика, құрылғы мен қолданбаны пайдалану деректері автоматты түрде жіберіліп тұрады. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Бұл параметрді иесі орнатқан. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер сіздің Google аккаунтыңызға сақталуы мүмкін.</translation>
 <translation id="7207631048330366454">Қолданбалар іздеу</translation>
-<translation id="720808544705441386">Қолданба ашылмайды</translation>
 <translation id="7210499381659830293">Кеңейтім қолданатын принтерлер</translation>
 <translation id="7211783048245131419">Әлі ешқандай ауыстырғыш тағайындалмады.</translation>
 <translation id="7212097698621322584">Қолданыстағы PIN кодын өзгерту үшін оны енгізіңіз. PIN кодыңызды білмесеңіз, оны бастапқы күйге қайтарып, жаңа PIN кодын жасаңыз.</translation>
@@ -6942,6 +6942,7 @@
 <translation id="7824864914877854148">Сақтық көшірме жасалмады. Қате шықты.</translation>
 <translation id="782590969421016895">Ағымдағы беттерді пайдалану</translation>
 <translation id="7826174860695147464">Бұрынғы браузерді қолдау (LBS) – ішкі параметрлер</translation>
+<translation id="7826190688224781865">Бөлшек сатушы дүкенінің идентификатор коды</translation>
 <translation id="7826249772873145665">ADB түзетуі өшірілді</translation>
 <translation id="7826254698725248775">Құрылғы идентификаторы сәйкес келмейді.</translation>
 <translation id="7828731929332799387">Бөгде сайттардағы cookie файлдары мен сайт деректерінің барлығы жойылады. Жалғастырғыңыз келе ме?</translation>
@@ -8410,6 +8411,7 @@
 <translation id="987897973846887088">Суреттер қолжетімді емес</translation>
 <translation id="988320949174893488">Кейде кідіріп қалады</translation>
 <translation id="988978206646512040">Құпия фраза бос болмауы керек</translation>
+<translation id="991097196715779457">Бөлшек сатушы дүкенінің идентификатор коды (міндетті емес)</translation>
 <translation id="992032470292211616">Кеңейтімдер, қолданбалар және тақырыптар құрылғыңызды зақымдауы мүмкін. Жалғастыру қажет пе?</translation>
 <translation id="992256792861109788">Қызғылт</translation>
 <translation id="992592832486024913">ChromeVox өшіру (дыбыстық көмек)</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index c49738a..fc0a8df 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">មុខងារដែលត្រូវការទីតាំងរបស់អ្នកនឹងមិនដំណើរការទេ</translation>
 <translation id="1329191040029425999">ត្រូវប្រាកដថា ឧបករណ៍របស់អ្នកមានបច្ចុប្បន្នភាព ហើយសូមព្យាយាមម្ដងទៀត</translation>
 <translation id="1330145147221172764">បើកដំណើរការក្តារចុចលើអេក្រង់</translation>
-<translation id="1331625853030156663">ដើម្បីបើក <ph name="APP_NAME" /> សូមបើកដំណើរការ "បង្ហាញ​អេក្រង់​ចាក់សោ​នៅពេល​ដាស់​ពី​ដេក"</translation>
 <translation id="1331977651797684645">នេះ​គឺ​ជា​ខ្ញុំ។</translation>
 <translation id="1333489022424033687">មុខងារ​មួយចំនួន​នៅលើ <ph name="ORIGIN" /> ប្រហែលជា​មិនដំណើរការទេ រហូតទាល់តែ​អ្នក​សម្អាតទិន្នន័យ​ដែល​គេហទំព័រ​ផ្សេងទៀត​បានរក្សាទុក​នៅលើ​ឧបករណ៍​របស់អ្នក</translation>
 <translation id="1333965224356556482">មិនអនុញ្ញាតឱ្យ​គេហទំព័រ​មើលឃើញ​ទីតាំងរបស់អ្នកទេ</translation>
@@ -6333,7 +6332,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ចាកចេញ​ពី​ទំព័រ}other{ចាកចេញ​ពី​ទំព័រ}}</translation>
 <translation id="7207457272187520234">បញ្ជូន​ទិន្នន័យនៃការ​ប្រើប្រាស់ និង​ការវិភាគ។ បច្ចុប្បន្ននេះ ឧបករណ៍នេះ​កំពុងបញ្ជូន​ទិន្នន័យនៃការ​វិភាគ ឧបករណ៍ និងការ​ប្រើប្រាស់​កម្មវិធី​ទៅ Google ដោយស្វ័យប្រវត្តិ។ ការធ្វើ​បែបនេះ​នឹងជួយ​ដល់ស្ថិរភាព​កម្មវិធី និង​ប្រព័ន្ធ ព្រមទាំង​ការកែលម្អ​ផ្សេងទៀត។ ទិន្នន័យ​ប្រមូលបាន​មួយចំនួន​ក៏នឹង​ជួយដល់​កម្មវិធី និង​ដៃគូ Google ដូចជា​អ្នកអភិវឌ្ឍន៍ Android ផងដែរ។ ការកំណត់នេះត្រូវបាន​អនុវត្ត​ដោយម្ចាស់។ ប្រសិនបើ​ការកំណត់​សកម្មភាព​កម្មវិធី និង​គេហទំព័រ​បន្ថែម​របស់អ្នក​ត្រូវបាន​បើក នោះទិន្នន័យនេះ​អាចត្រូវ​បានរក្សាទុក​ទៅក្នុង​គណនី Google របស់អ្នក។</translation>
 <translation id="7207631048330366454">ស្វែងរក​កម្មវិធី</translation>
-<translation id="720808544705441386">មិន​អាច​បើក​កម្មវិធី​បានទេ</translation>
 <translation id="7210499381659830293">ម៉ាស៊ីនបោះពុម្ព​​កម្មវិធីបន្ថែម</translation>
 <translation id="7211783048245131419">មិនមាន​ប៊ូតុងបិទបើក​ដែលត្រូវបានកំណត់នៅឡើយទេ</translation>
 <translation id="7212097698621322584">បញ្ចូលកូដ PIN បច្ចុប្បន្ន​របស់អ្នក ដើម្បីផ្លាស់ប្ដូរវា។ ប្រសិនបើអ្នក​មិនស្គាល់កូដ PIN របស់អ្នក អ្នកត្រូវ​កំណត់សោសុវត្ថិភាព​ឡើងវិញ រួចបង្កើតកូដ PIN ថ្មី។</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 8692648..1c4fc48 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">ನಿಮ್ಮ ಸ್ಥಳಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಫೀಚರ್‌ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ</translation>
 <translation id="1329191040029425999">ನಿಮ್ಮ ಸಾಧನವು ಅಪ್‌ ಟು ಡೇಟ್‌‌ ಆಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="1330145147221172764">ಆನ್‌-ಸ್ಕ್ರೀನ್‌ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯಗೊಳಿಸು</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ಅನ್ನು ತೆರೆಯಲು, enable "ನಿದ್ರಾವಸ್ಥೆಯಿಂದ ಎಚ್ಚರಗೊಳಿಸುವಾಗ ಲಾಕ್ ಸ್ಕ್ರೀನ್ ತೋರಿಸಿ"</translation>
 <translation id="1331977651797684645">ಇದು ನಾನು.</translation>
 <translation id="1333489022424033687">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಇತರ ಸೈಟ್‌ಗಳ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸದ ಹೊರತು <ph name="ORIGIN" /> ನಲ್ಲಿನ ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ</translation>
 <translation id="1333965224356556482">ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ನೋಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಬೇಡಿ</translation>
@@ -1012,6 +1011,7 @@
 <translation id="1944921356641260203">ಅಪ್‌ಡೇಟ್‌‌ ಕಂಡುಬಂದಿದೆ</translation>
 <translation id="1947136734041527201">ಗುರುತಿನ ಸೇವೆಯ ಜೊತೆಗೆ ನೀವು ಹೊಂದಿರುವ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ</translation>
 <translation id="1949584741547056205">ತ್ವರಿತ ಉತ್ತರಗಳು</translation>
+<translation id="1949849604471335579">ವಾಲ್‌ಪೇಪರ್, ಸ್ಕ್ರೀನ್ ಸೇವರ್, ವರ್ಣ ವರ್ಗಗಳು ಹಾಗೂ ಇನ್ನಷ್ಟನ್ನು ವೈಯಕ್ತೀಕರಿಸಿ</translation>
 <translation id="1951012854035635156">Assistant</translation>
 <translation id="1954597385941141174">ಸೈಟ್‌ಗಳು USB ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಕೇಳಬಹುದು</translation>
 <translation id="1954813140452229842">ಹಂಚಿಕೆಯನ್ನು ಅಳವಡಿಸುವುದರಲ್ಲಿ ದೋಷವಿದೆ. ನಿಮ್ಮ ರುಜುವಾತುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -1043,6 +1043,7 @@
 <translation id="1981434377190976112">ಎಲ್ಲಾ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಓದಿ</translation>
 <translation id="1984417487208496350">ಸುರಕ್ಷತೆ ಇಲ್ಲ (ಇದನ್ನು ನಾವು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ)</translation>
 <translation id="1987317783729300807">ಖಾತೆಗಳು</translation>
+<translation id="1987574314042117472">ಜನಪ್ರಿಯ ಆ್ಯಪ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="1988259784461813694">ಅವಶ್ಯಕತೆ</translation>
 <translation id="1989112275319619282">ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="1989903373608997757">ಯಾವಾಗಲೂ ಬಳಸಿ</translation>
@@ -1108,6 +1109,7 @@
 <translation id="2048554637254265991">ಕಂಟೇನರ್ ನಿರ್ವಾಹಕರನ್ನು ಪ್ರಾರಂಭಿಸುವಾಗ ದೋಷ ಎದುರಾಗಿದೆ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2048653237708779538">ಯಾವುದೇ ಕ್ರಿಯೆ ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="2050339315714019657">ಪೋರ್ಟ್ರೇಟ್</translation>
+<translation id="2052572566310583903">ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="2053312383184521053">ತಟಸ್ಥ ಸ್ಥಿತಿಯ ಡೇಟಾ</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" /> ನಲ್ಲಿ ವಿಭಜಿಸಲಾದ <ph name="SITE_NAME" /> ನ ಸೈಟ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಬೇಕೆ?</translation>
 <translation id="2055585478631012616">ತೆರೆದ ಟ್ಯಾಬ್‌ಗಳಲ್ಲೂ ಸೇರಿದಂತೆ, ಈ ಸೈಟ್‌ಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ</translation>
@@ -1270,6 +1272,7 @@
 <translation id="2191754378957563929">ಆನ್</translation>
 <translation id="2192505247865591433">ಇವರಿಂದ:</translation>
 <translation id="2193365732679659387">ವಿಶ್ವಾಸಾರ್ಹ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
+<translation id="2194554416429452547">ಟ್ರಯಲ್‌ಗಳ ಅವಧಿಯಲ್ಲಿ, ಸ್ಪ್ಯಾಮ್, ವಂಚನೆ ಮತ್ತು ಸೈಟ್‌ಗಳ ನಡುವೆ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಮಿತಿಗೊಳಿಸುವ ವಿದಾನಗಳನ್ನು Chrome ಅನ್ವೇಷಿಸುತ್ತಿದೆ. ನಿಮಗೆ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸಲು ಸೈಟ್‌ಗಳು ಬಳಸಬಹುದಾದ Chrome ಸಹ <ph name="ESTIMATE_INTERESTS_LINK" />. ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ನೀವು ನಿರ್ವಹಿಸಬಹುದು.</translation>
 <translation id="2194856509914051091">ಪರಿಗಣಿಸಬೇಕಾದ ಸಂಗತಿಗಳು</translation>
 <translation id="2195331105963583686">ಆ ಸಮಯದ ಬಳಿಕ ನೀವು ಈಗಲೂ ಈ <ph name="DEVICE_TYPE" /> ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಆದರೆ ಅದು ಸ್ವಯಂಚಾಲಿತ ಸಾಫ್ಟ್‌ವೇರ್ ಮತ್ತು ಭದ್ರತೆ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ</translation>
 <translation id="2195729137168608510">ಇಮೇಲ್ ಭದ್ರತೆ</translation>
@@ -1876,6 +1879,7 @@
 <translation id="2749836841884031656">ಸಿಮ್</translation>
 <translation id="2749881179542288782">ವ್ಯಾಕರಣವನ್ನು ಕಾಗುಣಿತದೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="2753677631968972007">ಸೈಟ್ ಅನುಮತಿಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿಯಂತ್ರಿಸಿ.</translation>
+<translation id="2754825024506485820">Google Play Store ನಲ್ಲಿ ಉತ್ಪಾದಕತೆಯಿಂದ ಹಿಡಿದು ಮನರಂಜನೆಯವರೆಗೆ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಹುಡುಕಿ. ನೀವು ಯಾವಾಗ ಬೇಕಾದರೂ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬಹುದು.</translation>
 <translation id="2755349111255270002">ಇದನ್ನು <ph name="DEVICE_TYPE" /> ಮರುಹೊಂದಿಸಿ</translation>
 <translation id="2755367719610958252">ಪ್ರವೇಶಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="275662540872599901">ಸ್ಕ್ರೀನ್ ಆಫ್</translation>
@@ -1952,6 +1956,7 @@
 <translation id="2815693974042551705">ಬುಕ್‌ಮಾರ್ಕ್ ಫೋಲ್ಡರ್</translation>
 <translation id="2816319641769218778">ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಲು, ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation>
 <translation id="2816628817680324566">ನಿಮ್ಮ ಭದ್ರತೆ ಕೀ ಅನ್ನು ಗುರುತಿಸಲು ಈ ಸೈಟ್‌ಗೆ ಅನುಮತಿಸಬೇಕೆ?</translation>
+<translation id="2817435998497102771">ನಿಮ್ಮ ವಾಲ್‌ಪೇಪರ್ ಮತ್ತು ಸ್ಟೈಲ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="2818476747334107629">ಪ್ರಿಂಟರ್ ವಿವರಗಳು</translation>
 <translation id="2819167288942847344">ಆ್ಯಪ್‌ ಅಸಮರ್ಪಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ತಡೆಯಲು, ಫೋನ್, ಟ್ಯಾಬ್ಲೆಟ್ ಅಥವಾ ಮರುಗಾತ್ರಗೊಳಿಸುವ ವಿಂಡೋಗಳಿಗಾಗಿ ಪೂರ್ವನಿಗದಿಗಳನ್ನು ಬಳಸಿ.</translation>
 <translation id="2820957248982571256">ಸ್ಕ್ಯಾನ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…</translation>
@@ -2846,6 +2851,7 @@
 <translation id="3727144509609414201">ಲಭ್ಯವಿರುವ ವೈಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳು</translation>
 <translation id="3727187387656390258">ಪಾಪ್‌ಅಪ್ ಪರೀಕ್ಷಿಸಿ</translation>
 <translation id="372722114124766626">ಒಮ್ಮೆ ಮಾತ್ರ</translation>
+<translation id="3727332897090187514">ಯಾವುದೇ ಟಿಪ್ಪಣಿಯನ್ನು ಸೇರಿಸಲಾಗಿಲ್ಲ</translation>
 <translation id="3727473233247516571">ಬ್ಯಾಕ್-ಫಾರ್ವರ್ಡ್ ಕ್ಯಾಷ್ ಮಾಡಿದ ಸಬ್-ಫ್ರೇಮ್: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">ನಿಮ್ಮ ಫೋನ್‌ನಿಂದ ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ</translation>
 <translation id="3728681439294129328">ನೆಟ್‌ವರ್ಕ್ ವಿಳಾಸವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
@@ -3181,6 +3187,7 @@
 <translation id="4031527940632463547">ಸೆನ್ಸರ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="4033415645631238123">Smart Lock ಬಳಸಿಕೊಂಡು ಸೈನ್ ಇನ್ ಮಾಡುವುದು ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿರುವುದಿಲ್ಲ. ನೀವು ಈಗಲೂ Smart Lock ಬಳಸಿಕೊಂಡು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು.</translation>
 <translation id="4033471457476425443">ಹೊಸ ಫೋಲ್ಡರ್ ಸೇರಿಸಿ</translation>
+<translation id="4033711848170683365">ಇದು ಈ ಸಾಧನದಲ್ಲಿರುವ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸುತ್ತದೆ. ಈ ಪ್ರೊಫೈಲ್‌ನಲ್ಲಿರುವ Google ಖಾತೆಗಳನ್ನು ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿರುವ ಇತರ ಆ್ಯಪ್‌ಗಳು ಬಳಸಬಹುದು. ಈ ಖಾತೆಗಳನ್ನು ನೀವು <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> ನಲ್ಲಿ ತೆಗೆದುಹಾಕಬಹುದು.</translation>
 <translation id="4033963223187371752">ಸುರಕ್ಷಿತವಲ್ಲದ ಚಿತ್ರಗಳು ಅಥವಾ ವೆಬ್ ಫ್ರೇಮ್‌ಗಳಂತಹ ಕಂಟೆಂಟ್ ಅನ್ನು ಸುರಕ್ಷಿತ ಸೈಟ್‌ಗಳು ಎಂಬೆಡ್ ಮಾಡಬಹುದು</translation>
 <translation id="4034824040120875894">ಪ್ರಿಂಟರ್</translation>
 <translation id="4035758313003622889">&amp;ಕಾರ್ಯ ನಿರ್ವಾಹಕ</translation>
@@ -3459,6 +3466,7 @@
 <translation id="4314815835985389558">ಸಿಂಕ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="4315933848520197627">ಖಾತೆ ಲಿಂಕ್ ರದ್ದುಮಾಡಿ</translation>
 <translation id="4316850752623536204">ಡೆವಲಪರ್ ವೆಬ್‌ಸೈಟ್</translation>
+<translation id="4317733381297736564">ಆ್ಯಪ್‌ನಲ್ಲಿನ ಖರೀದಿಗಳು</translation>
 <translation id="4317820549299924617">ದೃಢೀಕಣವು ಯಶಸ್ವಿಯಾಗಿಲ್ಲ</translation>
 <translation id="4320177379694898372">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ</translation>
 <translation id="4322394346347055525">ಇತರ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ</translation>
@@ -4042,6 +4050,7 @@
 <translation id="4893522937062257019">ಲಾಕ್ ಪರದೆಯಲ್ಲಿ</translation>
 <translation id="4897496410259333978">ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" ಪ್ರಮಾಣಪತ್ರವು ಪ್ರಮಾಣೀಕರಣದ ಪ್ರಾಧಿಕಾರವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ</translation>
+<translation id="4899696330053002588">ಜಾಹೀರಾತುಗಳಿವೆ</translation>
 <translation id="489985760463306091">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್‍ ತೆಗೆದುಹಾಕುವುದನ್ನು ಪೂರ್ತಿಗೊಳಿಸಲು, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="4900392736118574277">ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟವನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz - ಇಂಟರ್‌ಲೇಸ್ ಆಗಿದೆ</translation>
@@ -4330,6 +4339,7 @@
 <translation id="520568280985468584">ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸೇರಿಸಲಾಗಿದೆ. ಸೆಲ್ಯುಲಾರ್ ನೆಟ್‌ವರ್ಕ್ ಸಕ್ರಿಯವಾಗಲು ಕೆಲವು ನಿಮಿಷಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" ಅಳಿಸುವುದೇ?</translation>
 <translation id="520621735928254154">ಪ್ರಮಾಣಪತ್ರದ ಆಮದು ದೋಷ</translation>
+<translation id="5206562235913517859">ರಿಟೇಲರ್ ಸ್ಟೋರ್‌ನ ID ABC-1234 ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿದೆ</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನೀವು ಇನ್ನೂ # ಅಪಾಯಕ್ಕೀಡಾಗಿದ ಪಾಸ್‌ವರ್ಡ್‌ ಹೊಂದಿರುವಿರಿ. ಈಗಲೇ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.}one{ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನೀವು ಇನ್ನೂ # ಅಪಾಯಕ್ಕೀಡಾಗಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು‌ ಹೊಂದಿರುವಿರಿ. ಈಗಲೇ ಈ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.}other{ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನೀವು ಇನ್ನೂ # ಅಪಾಯಕ್ಕೀಡಾಗಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು‌ ಹೊಂದಿರುವಿರಿ. ಈಗಲೇ ಈ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.}}</translation>
 <translation id="5207949376430453814">ಪಠ್ಯದಲ್ಲಿ ಕೆರೆಟ್ ಅನ್ನು ಎದ್ದುಗಾಣಿಸಿ</translation>
 <translation id="520840839826327499">ನೀವು ಅರ್ಹವಾದ ChromeOS ಸಾಧನವನ್ನು ಬಳಸುತ್ತಿರುವಿರಾ ಎಂಬುದನ್ನು <ph name="SERVICE_NAME" /> ಪರಿಶೀಲಿಸಲು ಬಯಸುತ್ತದೆ.</translation>
@@ -4414,6 +4424,7 @@
 <translation id="52912272896845572">ಖಾಸಗಿ ಕೀಲಿ ಫೈಲ್ ಅಮಾನ್ಯವಾಗಿದೆ.</translation>
 <translation id="5291739252352359682">Chrome ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಮೀಡಿಯಾಗಾಗಿ ಶೀರ್ಷಿಕೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸುತ್ತದೆ (ಪ್ರಸ್ತುತವಾಗಿ ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿದೆ). ಆಡಿಯೋ ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಾಧನದಲ್ಲಿಯೇ ಉಳಿಯುತ್ತದೆ.</translation>
 <translation id="529175790091471945">ಈ ಸಾಧನವನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ</translation>
+<translation id="5292862864186939732"><ph name="ORIGIN" /> ನಲ್ಲಿ ರನ್ ಮಾಡಲು ಯಾವಾಗಲೂ "<ph name="EXTENSION_NAME" />" ಅನ್ನು ಅನುಮತಿಸಬೇಕೇ?</translation>
 <translation id="529296195492126134">ಎಫೆಮೆರಲ್ ಮೋಡ್ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="5293170712604732402">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸಿ</translation>
 <translation id="5294097441441645251">ಸಣ್ಣಕ್ಷರ ಅಥವಾ ಅಂಡರ್‌ಸ್ಕೋರ್ ಮೂಲಕ ಪ್ರಾರಂಭವಾಗಬೇಕು</translation>
@@ -4852,6 +4863,7 @@
 <translation id="5729712731028706266">&amp;ವೀಕ್ಷಣೆ</translation>
 <translation id="5731247495086897348">ಅಂ&amp;ಟಿಸಿ ಮತ್ತು ಹೋಗಿ</translation>
 <translation id="5732392974455271431">ನಿಮ್ಮ ಪೋಷಕರು ನಿಮಗಾಗಿ ಅದನ್ನು ಅನಿರ್ಬಂಧಿಸಬಹುದಾಗಿದೆ</translation>
+<translation id="5733866499231170760">ಅಮಾನ್ಯ ID. ನೀವು ನಮೂದಿಸಿದ ಫಾರ್ಮ್ಯಾಟ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ID ಯನ್ನು ಸರಿಯಾದ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ನಮೂದಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನೀವು ಸ್ವೀಕರಿಸಿದ ಸೂಚನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ನಿಮಗೆ ಈ ಸಮಸ್ಯೆಯನ್ನು ಬಗೆಹರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಫೀಲ್ಡ್ ಅನ್ನು ಖಾಲಿ ಬಿಡಿ ಮತ್ತು ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಮುಂದುವರಿಸಿ.</translation>
 <translation id="5734362860645681824">ಸಂವಹನಗಳು</translation>
 <translation id="5734697361979786483">ಫೈಲ್‌ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="5736796278325406685">ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ನಮೂದಿಸಿ</translation>
@@ -5171,6 +5183,7 @@
 <translation id="6054961935262556546">ಗೋಚರತೆಯನ್ನು ಬದಲಾಯಿಸಿ</translation>
 <translation id="6055171183283175969">ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ತಪ್ಪಾಗಿದೆ.</translation>
 <translation id="6055392876709372977">RSA ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ನೊಂದಿಗೆ PKCS #1 SHA-256</translation>
+<translation id="6055544610007596637">Google Play Store ನಿಂದ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಗಾಗಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="6056710589053485679">ಸಾಮಾನ್ಯ ಮರುಲೋಡ್</translation>
 <translation id="6057312498756061228">ಭದ್ರತೆ ಪರಿಶೀಲನೆಗಾಗಿ ಈ ಫೈಲ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ. ನೀವು 50 MB ವರೆಗಿನ ಫೈಲ್‌ಗಳನ್ನು ತೆರೆಯಬಹುದು.</translation>
 <translation id="6057381398996433816">ಈ ಸೈಟ್ ಅನ್ನು ಚಲನೆ ಅಥವಾ ಲೈಟ್ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಬಳಸದಂತೆ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
@@ -6145,6 +6158,7 @@
 <translation id="7002055706763150362">Chromebook ಗೆ Smart Lock ಹೊಂದಿಸಲು, ಇದು ನೀವೇ ಎಂಬುದನ್ನು Google ಗೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕಾದ ಅಗತ್ಯವಿದೆ  - ಪ್ರಾರಂಭಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ.</translation>
 <translation id="7003339318920871147">ವೆಬ್ ಡೇಟಾಬೇಸ್‌ಗಳು</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} ಫೈಲ್}one{{COUNT} ಫೈಲ್‌ಗಳು}other{{COUNT} ಫೈಲ್‌ಗಳು}}</translation>
+<translation id="7003705861991657723">ಆಲ್ಫಾ</translation>
 <translation id="7003723821785740825">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ತ್ವರಿತವಾದ ದಾರಿಯನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> ಅವರಿಂದ <ph name="PRODUCT_ID" /> ಅಪರಿಚಿತ ಉತ್ಪನ್ನ</translation>
 <translation id="7004402701596653846">ಸೈಟ್, MIDI ಅನ್ನು ಬಳಸಬಹುದು</translation>
@@ -6161,6 +6175,7 @@
 <translation id="7008815993384338777">ಪ್ರಸ್ತುತ ರೋಮಿಂಗ್‌ನಲ್ಲಿ ಇಲ್ಲ</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತಿದೆ</translation>
 <translation id="701080569351381435">ಮೂಲ ವೀಕ್ಷಿಸಿ</translation>
+<translation id="7011797924920577670">ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಅಂದಾಜು ಮಾಡುತ್ತದೆ</translation>
 <translation id="7014174261166285193">ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="7014480873681694324">ಹೈಲೈಟ್ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="7017004637493394352">"Ok Google" ಎಂದು ಮತ್ತೊಮ್ಮೆ ಹೇಳಿ</translation>
@@ -6229,6 +6244,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> ಅನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ</translation>
 <translation id="7085389578340536476">ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಲು Chrome ಗೆ ಅನುಮತಿಸಬೇಕೆ?</translation>
 <translation id="708550780726587276">(ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿಲ್ಲ)</translation>
+<translation id="7086531709814430567"><ph name="ORIGIN" /> ನಲ್ಲಿ ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ರನ್ ಮಾಡಲು ಯಾವಾಗಲೂ ಅನುಮತಿಸಬೇಕೇ?</translation>
 <translation id="7086672505018440886">ಆರ್ಕೈವ್‌ನಲ್ಲಿರುವ Chrome ಲಾಗ್ ಫೈಲ್‌ಗಳನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="7088434364990739311">ಅಪ್‌ಡೇಟ್‌‌ ಪರಿಶೀಲನೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ (ದೋಷ ಕೋಡ್ <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">ನಿರ್ವಾಹಕರಿಂದ ಈ ಸಾಧನವನ್ನು ಆದ್ಯತೆ ಇಲ್ಲದ ಸ್ಥಿತಿಯಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ. ನೋಂದಣಿಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಾಧನವನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಾಕಿ ಸ್ಥಿತಿಯಲ್ಲಿರಿಸುವಂತೆ ತಿಳಿಸಿ.</translation>
@@ -6327,7 +6343,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ನಿರ್ಗಮನ ಪುಟ}one{ನಿರ್ಗಮನ ಪುಟಗಳು}other{ನಿರ್ಗಮನ ಪುಟಗಳು}}</translation>
 <translation id="7207457272187520234">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಪ್ರಸ್ತುತ, ಈ ಸಾಧನವು ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ Google ಗೆ ಕಳುಹಿಸುತ್ತಿದೆ. ಇದು ಸಿಸ್ಟಂ ಮತ್ತು ಆ್ಯಪ್‌ನ ಸ್ಥಿರತೆ ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಒಟ್ಟುಗೂಡಿಸಲಾದ ಕೆಲವೊಂದು ಡೇಟಾ, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು Android ಡೆವಲಪರ್‌ಗಳಂತಹ ಪಾಲುದಾರರಿಗೂ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಮಾಲೀಕರು ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಆನ್‌ ಆಗಿದ್ದರೆ, ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಬಹುದು.</translation>
 <translation id="7207631048330366454">ಆ್ಯಪ್‌ಗಳನ್ನು ಹುಡುಕಿ</translation>
-<translation id="720808544705441386">ಆ್ಯಪ್ ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="7210499381659830293">ವಿಸ್ತರಣೆ ಪ್ರಿಂಟರ್‌ಗಳು</translation>
 <translation id="7211783048245131419">ಇನ್ನೂ ಯಾವುದೇ ಸ್ವಿಚ್ ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ</translation>
 <translation id="7212097698621322584">ಪಿನ್ ಬದಲಾಯಿಸಲು, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಪಿನ್ ಅನ್ನು ನಮೂದಿಸಿ. ನಿಮ್ಮ ಪಿನ್ ನಿಮಗೆ ಗೊತ್ತಿಲ್ಲದಿದ್ದರೆ, ನೀವು ಭದ್ರತೆ ಕೀ ಅನ್ನು ಮರುಹೊಂದಿಸಿ, ಆಮೇಲೆ ಹೊಸ ಪಿನ್ ಅನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ.</translation>
@@ -6961,6 +6976,7 @@
 <translation id="7824864914877854148">ದೋಷದ ಕಾರಣದಿಂದಾಗಿ ಬ್ಯಾಕಪ್ ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ</translation>
 <translation id="782590969421016895">ಪ್ರಸ್ತುತ ಪುಟಗಳನ್ನು ಬಳಸಿ</translation>
 <translation id="7826174860695147464">ಪಾರಂಪರಿಕ ಬ್ರೌಸರ್ ಬೆಂಬಲ (LBS) - ಇಂಟರ್ನಲ್‌ಗಳು</translation>
+<translation id="7826190688224781865">ರಿಟೇಲರ್ ಸ್ಟೋರ್ ID ಕೋಡ್</translation>
 <translation id="7826249772873145665">ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="7826254698725248775">ಸಾಧನದ ಗುರುತಿನಲ್ಲಿ ಸಂಘರ್ಷವಿದೆ.</translation>
 <translation id="7828731929332799387">ಇದು ಮೂರನೇ-ವ್ಯಕ್ತಿ ಸಂದರ್ಭಗಳಲ್ಲಿ ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುತ್ತೀರಾ?</translation>
@@ -8360,6 +8376,7 @@
 <translation id="9215742531438648683">Google Play Store ‌‌ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="9218430445555521422">ಡಿಫಾಲ್ಟ್ ಆಗಿ ಹೊಂದಿಸಿ</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (ಬೆಂಬಲಿಸದ ಆ್ಯಪ್)</translation>
+<translation id="9219582468404818260">ಉತ್ತಮ ವೆಬ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="9220525904950070496">ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="9220820413868316583">ಬೆರಳನ್ನು ಸರಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="923467487918828349">ಎಲ್ಲಾ ತೋರಿಸಿ</translation>
@@ -8430,6 +8447,7 @@
 <translation id="987897973846887088">ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="988320949174893488">ಸಾಂದರ್ಭಿಕವಾಗಿ ಸ್ಥಗಿತಗೊಳ್ಳುವುದು</translation>
 <translation id="988978206646512040">ಖಾಲಿ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ</translation>
+<translation id="991097196715779457">ರಿಟೇಲರ್ ಸ್ಟೋರ್ ID ಕೋಡ್ (ಐಚ್ಛಿಕ)</translation>
 <translation id="992032470292211616">ವಿಸ್ತರಣೆಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಥೀಮ್‌ಗಳು ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಹಾನಿಯುಂಟು ಮಾಡಬಹುದು. ಮುಂದುವರಿಯಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation>
 <translation id="992256792861109788">ಗುಲಾಬಿ ಬಣ್ಣ</translation>
 <translation id="992592832486024913">ChromeVox ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು (ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆ)</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 907d05e..16bf29a4 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">위치가 필요한 기능이 작동하지 않음</translation>
 <translation id="1329191040029425999">기기가 최신 상태인지 확인하고 다시 시도해 보세요</translation>
 <translation id="1330145147221172764">터치 키보드 사용</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> 앱을 열려면 ‘절전 모드 해제 시 잠금 화면 표시’를 사용 설정하세요.</translation>
 <translation id="1331977651797684645">본인이 맞습니다.</translation>
 <translation id="1333489022424033687">기기에 저장된 다른 사이트의 데이터를 삭제할 때까지 <ph name="ORIGIN" />의 일부 기능을 사용하지 못할 수 있습니다.</translation>
 <translation id="1333965224356556482">사이트에서 내 위치를 확인하도록 허용하지 않음</translation>
@@ -6331,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{페이지 나가기}other{페이지 나가기}}</translation>
 <translation id="7207457272187520234">사용 및 진단 데이터를 보냅니다. 이 기기는 현재 진단, 기기 및 앱 사용 데이터를 Google에 자동으로 보내고 있습니다. 데이터는 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 설정은 소유자가 지정합니다. 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 Google 계정에 저장될 수 있습니다.</translation>
 <translation id="7207631048330366454">앱 검색</translation>
-<translation id="720808544705441386">앱을 열 수 없음</translation>
 <translation id="7210499381659830293">확장 프로그램 프린터</translation>
 <translation id="7211783048245131419">아직 할당된 스위치가 없음</translation>
 <translation id="7212097698621322584">PIN을 변경하려면 현재 PIN을 입력하세요. PIN을 모르는 경우 보안 키를 재설정한 다음 새 PIN을 만들어야 합니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index c6a934d..c016ed9a 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Жайгашкан жериңизди колдонгон функциялар иштебейт</translation>
 <translation id="1329191040029425999">Түзмөгүңүздү жаңыртып, кайра аракет кылыңыз</translation>
 <translation id="1330145147221172764">Экрандагы баскычтопту иштетүү</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> колдонмосун ачуу үчүн "Уйкудан ойгонгондо, кулпуланган экранды көрсөтүү" параметрин иштетиңиз</translation>
 <translation id="1331977651797684645">Ал мен болчумун.</translation>
 <translation id="1333489022424033687">Башка сайттар түзмөгүңүзгө сактаган дайын-даректер өчүрүлмөйүнчө <ph name="ORIGIN" /> сайтынын айрым функциялары иштебеши мүмкүн</translation>
 <translation id="1333965224356556482">Сайттар жайгашкан жеримди көрө албасын</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">Тармак кошулду. Мобилдик тармак бир нече мүнөттө активдүү болот.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" жок кылынсынбы?</translation>
 <translation id="520621735928254154">Тастыктаманы импорттоодогу ката</translation>
+<translation id="5206562235913517859">Чекене сатуучу дүкөндүн идентификатору ABC-1234 форматында</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Уурдалган сырсөз ийгиликтүү өзгөртүлдү. Дагы # уурдалган сырсөз бар. Chrome бул сырсөздү азыр текшерүүнү сунуштайт.}other{Уурдалган сырсөз ийгиликтүү өзгөртүлдү. Дагы # уурдалган сырсөз бар. Chrome бул сырсөздөрдү азыр текшерүүнү сунуштайт.}}</translation>
 <translation id="5207949376430453814">Текст киргизүү учурунда курсор баса белгиленсин</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> кызматы ылайыктуу ChromeOS түзмөгүн колдонуп жатканыңызды текшериши керек.</translation>
@@ -4858,6 +4858,7 @@
 <translation id="5729712731028706266">&amp;Көрүнүш</translation>
 <translation id="5731247495086897348">Ча&amp;птап туруп өтүү</translation>
 <translation id="5732392974455271431">Аны ата-энеңиз ачып бере алат</translation>
+<translation id="5733866499231170760">Жараксыз идентификатор. Сиз киргизген формат туура эмес. Идентификаторду туура форматта киргизип жатканыңызды тактоо үчүн келген нускамаларды караңыз. Бул көйгөйдү чече албасаңыз, талааны бош калтырып, орното бериңиз.</translation>
 <translation id="5734362860645681824">Байланыштар</translation>
 <translation id="5734697361979786483">Файлды бөлүшүү жөндөөсүн кошуу</translation>
 <translation id="5736796278325406685">Жарактуу колдонуучунун атын киргизиңиз</translation>
@@ -6330,7 +6331,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Барактан чыгуу}other{Барактардан чыгуу}}</translation>
 <translation id="7207457272187520234">Колдонуу жана мүчүлүштүктөрдү аныктоо маалыматын жөнөтүү. Учурда бул түзмөк мүчүлүштүктөрдү аныктоо маалыматын, түзмөктүн жана колдонмонун иштетилиши жөнүндө маалыматты Google'га автоматтык түрдө жөнөтүп жатат. Бул маалымат тутум менен колдонмонун кыйла туруктуу иштешин камсыз кылууга жана башка нерселерди жакшыртууга көмөктөшөт. Айрым маалыматтар тобу Google колдонмолоруна жана Android'дин иштеп чыгуучулары сыяктуу өнөктөштөрүнө да жардам берет. Бул жөндөөнү түзмөктүн ээси иштетет. Эгер кошумча Колдонмолор жана Интернеттеги аракеттериңиздин таржымалынын жөндөөлөрү күйгүзүлгөн болсо, бул маалымат Google аккаунтуңузга сакталышы мүмкүн.</translation>
 <translation id="7207631048330366454">Колдонмолорду издөө</translation>
-<translation id="720808544705441386">Колдонмо ачылбай жатат</translation>
 <translation id="7210499381659830293">Кеңейтүү аркылуу иштеген принтерлер</translation>
 <translation id="7211783048245131419">Азырынча бир да которгуч дайындала элек</translation>
 <translation id="7212097698621322584">Аны өзгөртүү үчүн учурдагы PIN кодуңузду киргизиңиз. Эгер PIN кодду билбесеңиз, коопсуздук ачкычын баштапкы абалга келтирип, анан жаңы PIN код түзүшүңүз керек.</translation>
@@ -6965,6 +6965,7 @@
 <translation id="7824864914877854148">Катадан улам камдык көчүрмөсү сакталган жок</translation>
 <translation id="782590969421016895">Учурдагы беттерди колдонуу</translation>
 <translation id="7826174860695147464">Эскирген серепчи менен иштөө (LBS) — Ички</translation>
+<translation id="7826190688224781865">Чекене сатуучу дүкөндүн идентификатор коду</translation>
 <translation id="7826249772873145665">ADB аркылуу мүчүлүштүктөрдү оңдоо өчүрүлдү</translation>
 <translation id="7826254698725248775">Түзмөктүн идентификаторлору дал келбей калууда.</translation>
 <translation id="7828731929332799387">Бул аракет үчүнчү тараптын булактарындагы бардык cookie файлдарын жана сайттын дайындарын өчүрөт. Улантасызбы?</translation>
@@ -8434,6 +8435,7 @@
 <translation id="987897973846887088">Сүрөттөр жок</translation>
 <translation id="988320949174893488">Анда-санда токтоп калуу</translation>
 <translation id="988978206646512040">Купуя сөз айкашын бош калтырууга болбойт</translation>
+<translation id="991097196715779457">Чекене сатуучу дүкөндүн идентификатор коду (милдеттүү эмес)</translation>
 <translation id="992032470292211616">Кеңейтүүлөр, колдонмолор жана темалар түзмөгүңүзгө зыян келтирип коюшу мүмкүн. Баары бир уланта бересизби?</translation>
 <translation id="992256792861109788">Кызгылтым</translation>
 <translation id="992592832486024913">ChromeVox'ту өчүрүү (айтылган жооп пикир)</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 30df844f..0a06a76d 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">ຄຸນສົມບັດທີ່ຕ້ອງການໃຊ້ສະຖານທີ່ຈະໃຊ້ບໍ່ໄດ້</translation>
 <translation id="1329191040029425999">ກະລຸນາກວດສອບວ່າອຸປະກອນຂອງທ່ານອັບເດດແລ້ວ ແລະ ລອງໃໝ່ອີກເທື່ອໜຶ່ງ</translation>
 <translation id="1330145147221172764">ເປີດໃຊ້ງານຄີບອດເທິງຫນ້າ​ຈໍ​</translation>
-<translation id="1331625853030156663">ເພື່ອເປີດ <ph name="APP_NAME" />, ໃຫ້ເປີດການນຳໃຊ້ "ສະແດງໜ້າຈໍລັອກໃນເວລາຕື່ນຈາກການນອນ"</translation>
 <translation id="1331977651797684645">ນີ້ແມ່ນຂ້ອຍ.</translation>
 <translation id="1333489022424033687">ບາງຄຸນສົມບັດໃນ <ph name="ORIGIN" /> ອາດຈະບໍ່ເຮັດວຽກຈົນກວ່າວ່າທ່ານລຶບຂໍ້ມູນທີ່ເວັບໄຊອື່ນເກັບໄວ້ໃນອຸປະກອນຂອງທ່ານ</translation>
 <translation id="1333965224356556482">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊເຫັນສະຖານທີ່ຂອງທ່ານ</translation>
@@ -6330,7 +6329,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ອອກຈາກໜ້າ}other{ອອກຈາກໜ້າ}}</translation>
 <translation id="7207457272187520234">ສົ່ງຂໍ້ມູນການນຳໃຊ້ ແລະ ການວິເຄາະ. ອຸປະກອນນີ້ກຳລັງສົ່ງຂໍ້ມູນການວິເຄາະ, ຂໍ້ມູນອຸປະກອນ ແລະ ການໃຊ້ແອັບໃຫ້ Google ໂດຍອັດຕະໂນມັດໃນຂະນະນີ້. ນີ້ຈະຊ່ວຍປັບປຸງຄວາມສະຖຽນຂອງລະບົບ ແລະ ແອັບ ແລະ ການປັບປຸງອື່ນໆ. ບາງຂໍ້ມູນແບບຮວມກັນຍັງຈະຊ່ວຍແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ນຳອີກ ເຊັ່ນ: ຜູ້ພັດທະນາ Android. ເຈົ້າຂອງບັງຄັບໃຊ້ການຕັ້ງຄ່ານີ້. ຖ້າເປີດການຕັ້ງຄ່າການເຄື່ອນໄຫວເວັບ ແລະ ແອັບເພີ່ມເຕີມຂອງທ່ານ, ລະບົບອາດຈະບັນທຶກຂໍ້ມູນນີ້ໄວ້ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="7207631048330366454">ຊອກ​ຫາ​ແອັບ</translation>
-<translation id="720808544705441386">ບໍ່ສາມາດເປີດແອັບໄດ້</translation>
 <translation id="7210499381659830293">ເຄື່ອງພິມຂອງສ່ວນຂະຫຍາຍ</translation>
 <translation id="7211783048245131419">ບໍ່ທັນກຳນົດປຸ່ມໃດເທື່ອ</translation>
 <translation id="7212097698621322584">ປ້ອນ PIN ປັດຈຸບັນຂອງທ່ານເພື່ອປ່ຽນມັນ. ຖ້າທ່ານບໍ່ຮູ້ຈັກ PIN ຂອງທ່ານ, ທ່ານຈະຈໍາເປັນຕ້ອງຣີເຊັດກະແຈຄວາມປອດໄພ, ແລ້ວສ້າງ PIN ໃໝ່.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 94cbe04..2f83d70 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -338,7 +338,6 @@
 <translation id="1327794256477341646">Funkcijos, kurioms reikalinga jūsų vietovės informacija, neveiks</translation>
 <translation id="1329191040029425999">Įsitikinkite, kad įrenginys atnaujintas, ir bandykite dar kartą</translation>
 <translation id="1330145147221172764">Įgalinti ekrano klaviatūrą</translation>
-<translation id="1331625853030156663">Jei norite atidaryti „<ph name="APP_NAME" />“, įgalinkite parinktį „Rodyti užrakto ekraną pažadinant iš miego būsenos“.</translation>
 <translation id="1331977651797684645">Tai buvau aš.</translation>
 <translation id="1333489022424033687">Kai kurios svetainės <ph name="ORIGIN" /> funkcijos gali neveikti, iki kol išvalysite duomenis, kuriuos kitos svetainės išsaugojo jūsų įrenginyje</translation>
 <translation id="1333965224356556482">Neleisti svetainėms peržiūrėti vietovės informacijos</translation>
@@ -4340,6 +4339,7 @@
 <translation id="520568280985468584">Tinklas pridėtas sėkmingai. Gali užtrukti kelias minutes, kol mobiliojo ryšio tinklas taps aktyvus.</translation>
 <translation id="5206215183583316675">Ištrinti „<ph name="CERTIFICATE_NAME" />“?</translation>
 <translation id="520621735928254154">Sertifikato importavimo klaida</translation>
+<translation id="5206562235913517859">Mažmenininko parduotuvės ID ABC-1234 formatu</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Pažeistas slaptažodis sėkmingai pakeistas. Turite dar # pažeistą slaptažodį. „Chrome“ rekomenduoja patikrinti šį slaptažodį dabar.}one{Pažeistas slaptažodis sėkmingai pakeistas. Turite dar # pažeistą slaptažodį. „Chrome“ rekomenduoja patikrinti šiuos slaptažodžius dabar.}few{Pažeistas slaptažodis sėkmingai pakeistas. Turite dar # pažeistus slaptažodžius. „Chrome“ rekomenduoja patikrinti šiuos slaptažodžius dabar.}many{Pažeistas slaptažodis sėkmingai pakeistas. Turite dar # pažeisto slaptažodžio. „Chrome“ rekomenduoja patikrinti šiuos slaptažodžius dabar.}other{Pažeistas slaptažodis sėkmingai pakeistas. Turite dar # pažeistų slaptažodžių. „Chrome“ rekomenduoja patikrinti šiuos slaptažodžius dabar.}}</translation>
 <translation id="5207949376430453814">Paryškinti teksto žymeklį</translation>
 <translation id="520840839826327499">„<ph name="SERVICE_NAME" />“ nori patikrinti, ar naudojate tinkamą „Chrome“ OS įrenginį.</translation>
@@ -4862,6 +4862,7 @@
 <translation id="5729712731028706266">Žiūrėti</translation>
 <translation id="5731247495086897348">Įk&amp;lijuoti ir pradėti</translation>
 <translation id="5732392974455271431">Jūsų tėvai gali atblokuoti ją už jus</translation>
+<translation id="5733866499231170760">Netinkamas ID. Įvestas netinkamas formatas. Įsitikinkite, kad ID pateikiate tinkamu formatu, peržiūrėję gautas instrukcijas. Jei nepavyksta išspręsti šios problemos, palikite lauką tuščią ir toliau vykdykite diegimo procesą.</translation>
 <translation id="5734362860645681824">Ryšiai</translation>
 <translation id="5734697361979786483">Pridėti failų bendrinimo įrenginį</translation>
 <translation id="5736796278325406685">Įveskite tinkamą naudotojo vardą</translation>
@@ -6340,7 +6341,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Išeiti iš puslapio}one{Išeiti iš puslapių}few{Išeiti iš puslapių}many{Išeiti iš puslapių}other{Išeiti iš puslapių}}</translation>
 <translation id="7207457272187520234">Siųskite naudojimo ir diagnostikos duomenis. Šiuo metu šis įrenginys automatiškai siunčia „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Šį nustatymą taiko savininkas. Jei papildomas Žiniatinklio ir programų veiklos nustatymas įjungtas, šie duomenys gali būti išsaugoti „Google“ paskyroje.</translation>
 <translation id="7207631048330366454">Ieškoti programų</translation>
-<translation id="720808544705441386">Nepavyko atidaryti programos</translation>
 <translation id="7210499381659830293">Plėtinio spausdintuvai</translation>
 <translation id="7211783048245131419">Dar nepriskirtas joks jungiklis</translation>
 <translation id="7212097698621322584">Įveskite dabartinį PIN kodą, jei norite jį pakeisti. Jei dabartinio PIN kodo nežinote, turėsite nustatyti saugos raktą iš naujo ir sukurti naują PIN kodą.</translation>
@@ -6975,6 +6975,7 @@
 <translation id="7824864914877854148">Nepavyko sukurti atsarginės kopijos dėl klaidos</translation>
 <translation id="782590969421016895">Naudoti esamus puslapius</translation>
 <translation id="7826174860695147464">Pasenusių naršyklių palaikymas – vidinė struktūra</translation>
+<translation id="7826190688224781865">Mažmenininko parduotuvės ID kodas</translation>
 <translation id="7826249772873145665">ADB derinimas išjungtas</translation>
 <translation id="7826254698725248775">Nesuderinamas įrenginio identifikatorius.</translation>
 <translation id="7828731929332799387">Bus ištrinti visi su trečiosiomis šalimis susiję slapukai ir svetainių duomenys. Ar norite tęsti?</translation>
@@ -8448,6 +8449,7 @@
 <translation id="987897973846887088">Nėra pasiekiamų vaizdų</translation>
 <translation id="988320949174893488">Kartais stringa</translation>
 <translation id="988978206646512040">Neleidžiama naudoti tuščio slaptafrazės lauko</translation>
+<translation id="991097196715779457">Mažmenininko parduotuvės ID kodas (pasirenkama)</translation>
 <translation id="992032470292211616">Plėtiniai, programos ir temos gali pakenkti įrenginiui. Tikrai norite tęsti?</translation>
 <translation id="992256792861109788">Rožinė</translation>
 <translation id="992592832486024913">Išjungti „ChromeVox“ (ekrano skaitymą balsu)</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index ddb025fc..4fb8064 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funkcijas, kurām nepieciešama piekļuve atrašanās vietas datiem, nedarbosies</translation>
 <translation id="1329191040029425999">Gādājiet, lai ierīce būtu atjaunināta, un mēģiniet vēlreiz</translation>
 <translation id="1330145147221172764">Iespējot ekrāna tastatūru</translation>
-<translation id="1331625853030156663">Lai atvērtu lietotni <ph name="APP_NAME" />, iespējojiet opciju “Rādīt bloķēšanas ekrānu, kad tiek izslēgts miega režīms”.</translation>
 <translation id="1331977651797684645">Tas biju es.</translation>
 <translation id="1333489022424033687">Noteiktas funkcijas vietnē <ph name="ORIGIN" />, iespējams, nedarbosies, kamēr nenotīrīsiet datus, ko citas vietnes ir saglabājušas jūsu ierīcē.</translation>
 <translation id="1333965224356556482">Neļaut vietnēm piekļūt jūsu atrašanās vietas informācijai</translation>
@@ -4323,6 +4322,7 @@
 <translation id="520568280985468584">Tīkls ir sekmīgi pievienots. Mobilā tīkla aktivizēšana var ilgt vairākas minūtes.</translation>
 <translation id="5206215183583316675">Vai dzēst “<ph name="CERTIFICATE_NAME" />”?</translation>
 <translation id="520621735928254154">Sertifikāta importēšanas kļūda</translation>
+<translation id="5206562235913517859">Mazumtirdzniecības veikala ID ir šādā formātā: ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Uzlauztā parole tika sekmīgi nomainīta. Jums ir vēl # uzlauzta parole. Chrome ieteikums: nekavējoties pārbaudiet šo paroli.}zero{Uzlauztā parole tika sekmīgi nomainīta. Jums ir vēl # uzlauztu paroļu. Chrome ieteikums: nekavējoties pārbaudiet šīs paroles.}one{Uzlauztā parole tika sekmīgi nomainīta. Jums ir vēl # uzlauzta parole. Chrome ieteikums: nekavējoties pārbaudiet šīs paroles.}other{Uzlauztā parole tika sekmīgi nomainīta. Jums ir vēl # uzlauztas paroles. Chrome ieteikums: nekavējoties pārbaudiet šīs paroles.}}</translation>
 <translation id="5207949376430453814">Izcelt teksta ievietošanas punktu</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> vēlas pārbaudīt, vai izmantojat piemērotu Chrome OS ierīci.</translation>
@@ -4842,6 +4842,7 @@
 <translation id="5729712731028706266">&amp;Skatīt</translation>
 <translation id="5731247495086897348">Ielīmēt un dotie&amp;s</translation>
 <translation id="5732392974455271431">Lai atbloķētu, vērsieties pie vecākiem</translation>
+<translation id="5733866499231170760">Nederīgs ID. Jūsu ievadītais formāts nav pareizs. Lūdzu, skatiet saņemtos norādījumus, lai ievadītu ID pareizajā formātā. Ja nevarat novērst šo problēmu, atstājiet lauku tukšu un turpiniet ar instalēšanu.</translation>
 <translation id="5734362860645681824">Saziņa</translation>
 <translation id="5734697361979786483">Pievienot failu kopīgošanu</translation>
 <translation id="5736796278325406685">Lūdzu, ievadiet derīgu lietotājvārdu.</translation>
@@ -6317,7 +6318,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Iziet no lapas}zero{Iziet no lapām}one{Iziet no lapām}other{Iziet no lapām}}</translation>
 <translation id="7207457272187520234">Lietojuma un diagnostikas datu sūtīšana. Pašlaik dati par šo ierīci un ierīces diagnostikas un lietotņu lietojuma dati tiek automātiski sūtīti uzņēmumam Google. Šī informācija palīdzēs uzlabot sistēmas un lietotņu stabilitāti un daudz ko citu. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji. Šo iestatījumu ir noteicis īpašnieks. Ja ir ieslēgts iestatījums “papildu darbības tīmeklī un lietotnēs”, šie dati var tikt saglabāti jūsu Google kontā.</translation>
 <translation id="7207631048330366454">Meklēt lietotnes</translation>
-<translation id="720808544705441386">Nevar atvērt lietotni</translation>
 <translation id="7210499381659830293">Paplašinājuma printeri</translation>
 <translation id="7211783048245131419">Vēl nav piešķirts neviens slēdzis</translation>
 <translation id="7212097698621322584">Ievadiet pašreizējo PIN, lai to mainītu. Ja nezināt savu PIN, būs jāatiestata drošības atslēga un pēc tam jāizveido jauns PIN.</translation>
@@ -6951,6 +6951,7 @@
 <translation id="7824864914877854148">Kļūdas dēļ neizdevās pabeigt dublēšanu</translation>
 <translation id="782590969421016895">Izmantot esošās lapas</translation>
 <translation id="7826174860695147464">Mantoto pārlūku atbalsts — iekšējie iestatījumi</translation>
+<translation id="7826190688224781865">Mazumtirdzniecības veikala ID kods</translation>
 <translation id="7826249772873145665">ADB atkļūdošanas atspējošana</translation>
 <translation id="7826254698725248775">Ierīces identifikators rada konfliktu.</translation>
 <translation id="7828731929332799387">Tiks dzēsti visi sīkfaili un vietņu dati, kas pieejami trešo pušu kontekstā. Vai vēlaties turpināt?</translation>
@@ -8423,6 +8424,7 @@
 <translation id="987897973846887088">Nav pieejams neviens attēls</translation>
 <translation id="988320949174893488">Neregulāra raustīšanās</translation>
 <translation id="988978206646512040">Nav atļauta tukša ieejas frāze.</translation>
+<translation id="991097196715779457">Mazumtirdzniecības veikala ID kods (neobligāti)</translation>
 <translation id="992032470292211616">Paplašinājumi, lietotnes un motīvi var kaitēt jūsu ierīcei. Vai tiešām vēlaties turpināt?</translation>
 <translation id="992256792861109788">Rozā</translation>
 <translation id="992592832486024913">Atspējot ChromeVox (balss komentārus)</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index be5730e..67a912a 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Функциите на коишто им треба локацијата нема да работат</translation>
 <translation id="1329191040029425999">Проверете дали уредот е ажуриран и обидете се повторно</translation>
 <translation id="1330145147221172764">Овозможи тастатура на екран</translation>
-<translation id="1331625853030156663">За да ја отворите <ph name="APP_NAME" />, овозможете „Прикажи заклучен екран при будење од режим на мирување“</translation>
 <translation id="1331977651797684645">Јас бев.</translation>
 <translation id="1333489022424033687">Некои функции на <ph name="ORIGIN" /> можеби нема да работат додека не ги избришете податоците што другите сајтови ги складирале на вашиот уред</translation>
 <translation id="1333965224356556482">Не им дозволувај на сајтовите да ја гледаат локацијата</translation>
@@ -851,6 +850,7 @@
 <translation id="1794051631868188691">Никогаш не прикажувај ја кошничката на <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Испратете повратни информации за да ни помогнете да го решиме проблемов.</translation>
 <translation id="1795214765651529549">Користи „Класичен“</translation>
+<translation id="1796105431091975902">Изберете Ansible Playbook за да се додаде</translation>
 <translation id="1796588414813960292">Функциите на коишто им требаат звуци нема да работат</translation>
 <translation id="1800502858278951817">Ниту една екстензија не побарала да го чита или измени <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">Режим во мирување кога капакот е затворен</translation>
@@ -3049,6 +3049,7 @@
 <translation id="389901847090970821">Изберете тастатура</translation>
 <translation id="3900966090527141178">Извезување лозинки</translation>
 <translation id="3903187154317825986">Вградена тастатура</translation>
+<translation id="3903191712482985591">Додајте Playbook</translation>
 <translation id="3904326018476041253">Услуги според локација</translation>
 <translation id="3904849010307028014">Според вашата интеракција со некој сајт, како што е редовното најавување на сметка, тој сајт може да му издаде токен за доверба на вашиот прелистувач. Подоцна, ако другите сајтови што ги посетувате проверат и пронајдат важечки токен за доверба, поверојатно е дека ќе ве третираат како човек, а не како бот.</translation>
 <translation id="3905761538810670789">Поправи ја апликацијата</translation>
@@ -3658,6 +3659,7 @@
 <translation id="4510479820467554003">Список со сметки на родители</translation>
 <translation id="451102079304155829">кошнички</translation>
 <translation id="4513872120116766993">Предвидливо пишување</translation>
+<translation id="4513909579793564731">Примени Playbook</translation>
 <translation id="4513946894732546136">Повратни информации</translation>
 <translation id="451407183922382411">Овозможено од <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Копче за пуштање или паузирање видео</translation>
@@ -4338,6 +4340,7 @@
 <translation id="520568280985468584">Мрежата е успешно додадена. Може да поминат неколку минути пред мобилната мрежа да стане активна.</translation>
 <translation id="5206215183583316675">Да се избрише „<ph name="CERTIFICATE_NAME" />“?</translation>
 <translation id="520621735928254154">Грешка при увезување сертификат</translation>
+<translation id="5206562235913517859">ID на малопродажната продавница е во формат ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Успешно ја променивте компромитираната лозинка. Имате уште # компромитирана лозинка. Chrome препорачува веднаш да ја проверите лозинкава.}one{Успешно ја променивте компромитираната лозинка. Имате уште # компромитирана лозинка. Chrome препорачува веднаш да ги проверите лозинкиве.}other{Успешно ја променивте компромитираната лозинка. Имате уште # компромитирани лозинки. Chrome препорачува веднаш да ги проверите лозинкиве.}}</translation>
 <translation id="5207949376430453814">Нагласи го каретот за текст</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> сака да провери дали користите уред со Chrome OS што ги исполнува условите.</translation>
@@ -4859,6 +4862,7 @@
 <translation id="5729712731028706266">&amp;Приказ</translation>
 <translation id="5731247495086897348">За&amp;лепи и оди</translation>
 <translation id="5732392974455271431">Родителите може да го одблокираат</translation>
+<translation id="5733866499231170760">Неважечки ID. Форматот што го внесовте е погрешен. Проверете ги упатствата што ги добивте за да се уверите дека го внесувате ID во точниот формат. Ако не можете да го решите проблемов, оставете го полево празно и продолжете со инсталацијата.</translation>
 <translation id="5734362860645681824">Комуникации</translation>
 <translation id="5734697361979786483">Додајте споделување датотеки</translation>
 <translation id="5736796278325406685">Внесете важечко корисничко име</translation>
@@ -5486,6 +5490,7 @@
 <translation id="635609604405270300">Чувајте го уредот вклучен</translation>
 <translation id="63566973648609420">Само лицата што ја знаат вашата лозинка може да ги прочитаат шифрираните податоци. Лозинката не се испраќа до Google ниту пак се складира. Ако ја заборавите, ќе треба да ја <ph name="BEGIN_LINK" />ресетирате синхронизацијата<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Некои поддржани линкови сѐ уште ќе се отвораат во <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">Ниту една екстензија нема дозвола за читање и менување на <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Змеј</translation>
 <translation id="6361850914223837199">Детали за грешка:</translation>
 <translation id="6362853299801475928">&amp;Пријави проблем…</translation>
@@ -6333,7 +6338,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Излези од страницата}one{Излези од страниците}other{Излези од страниците}}</translation>
 <translation id="7207457272187520234">Испраќајте податоци за користење и дијагностика. Уредов во моментов автоматски испраќа дијагностички и податоци за користењето на уредот и апликациите до Google. Податоциве ќе ни помогнат околу стабилноста на системот и апликациите и за други подобрувања. Некои збирни податоци ќе им помогнат на апликациите и партнерите на Google, како што се програмерите на Android. Поставкава е наметната од сопственикот. Ако сте ја вклучиле дополнителната поставка „Активност на интернет и апликации“, податоциве може да се зачувуваат во вашата сметка на Google.</translation>
 <translation id="7207631048330366454">Пребарувајте апликации</translation>
-<translation id="720808544705441386">Не се отвора апликацијата</translation>
 <translation id="7210499381659830293">Печатачи за екстензии</translation>
 <translation id="7211783048245131419">Сѐ уште не е назначен прекинувач</translation>
 <translation id="7212097698621322584">Внесете го тековниот PIN за да го промените. Ако не го знаете PIN-кодот, ќе треба да го ресетирате безбедносниот клуч, а потоа да создадете нов PIN.</translation>
@@ -6968,6 +6972,7 @@
 <translation id="7824864914877854148">Бекапот не може да се заврши поради грешка</translation>
 <translation id="782590969421016895">Користи тековни страници</translation>
 <translation id="7826174860695147464">Поддршка за застарени прелистувачи (LBS) - Внатрешни функции</translation>
+<translation id="7826190688224781865">ID-број на малопродажната продавница</translation>
 <translation id="7826249772873145665">Отстранувањето грешки на ADB е оневозможено</translation>
 <translation id="7826254698725248775">Конфликтен идентификатор на уред.</translation>
 <translation id="7828731929332799387">Ова ќе ги избрише сите колачиња и податоците за сајтовите што се достапни во контексти на трета страна. Дали сакате да продолжите?</translation>
@@ -8441,6 +8446,7 @@
 <translation id="987897973846887088">Нема слики на располагање</translation>
 <translation id="988320949174893488">Повремени пречки</translation>
 <translation id="988978206646512040">Не е дозволена празна лозинка</translation>
+<translation id="991097196715779457">ID-број на малопродажната продавница (изборно)</translation>
 <translation id="992032470292211616">Наставки, апликации и теми може да му наштетат на вашиот уред. Дали сте сигурни дека сакате да продолжите?</translation>
 <translation id="992256792861109788">Розова</translation>
 <translation id="992592832486024913">Оневозможи ChromeVox (говорни повратни информации)</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 0f802e0..d313cb8 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">നിങ്ങളുടെ ലൊക്കേഷൻ ആവശ്യമുള്ള ഫീച്ചറുകൾ പ്രവർത്തിക്കില്ല</translation>
 <translation id="1329191040029425999">നിങ്ങളുടെ ഉപകരണം അപ് ടു ഡേറ്റാണെന്ന് ഉറപ്പാക്കി വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="1330145147221172764">ഓൺ-സ്‌ക്രീൻ കീബോർഡ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> തുറക്കാൻ, "ഉറക്കത്തിൽ നിന്നുണരുമ്പോൾ ലോക്ക് സ്ക്രീൻ കാണിക്കുക" പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="1331977651797684645">ഇത് എന്റെ പ്രൊഫൈലായിരുന്നു.</translation>
 <translation id="1333489022424033687">മറ്റ് സൈറ്റുകൾ നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റ മായ്ക്കുന്നത് വരെ <ph name="ORIGIN" /> എന്നതിലെ ചില ഫീച്ചറുകൾ പ്രവർത്തിച്ചേക്കില്ല.</translation>
 <translation id="1333965224356556482">നിങ്ങളുടെ ലൊക്കേഷൻ കാണാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation>
@@ -838,6 +837,7 @@
 <translation id="1794051631868188691"><ph name="MERCHANT" /> ഒരിക്കലും കാണിക്കരുത്</translation>
 <translation id="1794791083288629568">ഈ പ്രശ്‌നം പരിഹരിക്കാൻ ഞങ്ങളെ സഹായിക്കുന്നതിന് ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക.</translation>
 <translation id="1795214765651529549">ക്ലാസിക് ഉപയോഗിക്കുക</translation>
+<translation id="1796105431091975902">ചേർക്കാൻ Ansible പ്ലേബുക്ക് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="1796588414813960292">ശബ്ദം ആവശ്യമായ ഫീച്ചറുകൾ പ്രവർത്തിക്കില്ല</translation>
 <translation id="1800502858278951817"><ph name="SITE_NAME" /> വായിക്കാനും അതിൽ മാറ്റം വരുത്താനും ഒരു വിപുലീകരണവും അഭ്യർത്ഥിച്ചിട്ടില്ല</translation>
 <translation id="1802624026913571222">കവർ അടയ്‌ക്കുമ്പോൾ ഉറക്ക മോഡിലേക്ക് മാറുന്നു</translation>
@@ -1006,6 +1006,7 @@
 <translation id="1944921356641260203">അപ്‌ഡേറ്റ് കണ്ടെത്തി</translation>
 <translation id="1947136734041527201">സമാനമായ സേവനത്തിൽ നിങ്ങൾക്കുള്ള അക്കൗണ്ട് ഉപയോഗിച്ച് വെബ്സൈറ്റുകളിൽ സൈൻ ഇൻ ചെയ്യാൻ അനുവദിക്കുന്നു</translation>
 <translation id="1949584741547056205">ദ്രുത ഉത്തരങ്ങൾ</translation>
+<translation id="1949849604471335579">വാൾപേപ്പർ, സ്ക്രീൻ സേവർ, ആക്‌സന്റ് നിറങ്ങൾ എന്നിവയും മറ്റും വ്യക്തിപരമാക്കുക</translation>
 <translation id="1951012854035635156">Assistant</translation>
 <translation id="1954597385941141174">USB ഉപകരണങ്ങൾ കണക്റ്റ് ചെയ്യാൻ സൈറ്റുകൾക്ക് അനുവാദം ചോദിക്കാം</translation>
 <translation id="1954813140452229842">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. ക്രെഡൻഷ്യലുകൾ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -1037,6 +1038,7 @@
 <translation id="1981434377190976112">എല്ലാ വെബ്സൈറ്റുകളിലെയും നിങ്ങളുടെ എല്ലാ ഡാറ്റയും വായിക്കുക</translation>
 <translation id="1984417487208496350">പരിരക്ഷയില്ല (ശുപാർശ ചെയ്യുന്നില്ല)</translation>
 <translation id="1987317783729300807">അക്കൗണ്ടുകൾ</translation>
+<translation id="1987574314042117472">ജനപ്രിയ ആപ്പുകൾ തിരഞ്ഞെടുത്ത് ഇൻസ്റ്റാൾ ചെയ്യുക</translation>
 <translation id="1988259784461813694">ആവശ്യകത</translation>
 <translation id="1989112275319619282">ബ്രൗസ് ചെയ്യുക</translation>
 <translation id="1989903373608997757">എല്ലായ്‌പ്പോഴും ഉപയോഗിക്കുക</translation>
@@ -1102,6 +1104,7 @@
 <translation id="2048554637254265991">കണ്ടെയ്‌നർ മാനേജർ ആരംഭിക്കുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2048653237708779538">പ്രവർത്തനം ലഭ്യമല്ല</translation>
 <translation id="2050339315714019657">പോർട്രെയ്റ്റ്</translation>
+<translation id="2052572566310583903">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ ഇൻസ്‌റ്റാൾ ചെയ്‌തു</translation>
 <translation id="2053312383184521053">നിഷക്രിയ നില ഡാറ്റ</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" /> എന്നതിൽ വിഭജിച്ച <ph name="SITE_NAME" /> എന്ന സൈറ്റിനുള്ള സൈറ്റ് ഡാറ്റ മായ്ക്കണോ?</translation>
 <translation id="2055585478631012616">തുറന്നിരിക്കുന്ന ടാബുകളിൽ നിന്ന് ഉൾപ്പെടെ, ഈ സൈറ്റുകളിൽ നിന്ന് നിങ്ങൾ സൈൻ ഔട്ട് ചെയ്യപ്പെടും.</translation>
@@ -1264,6 +1267,7 @@
 <translation id="2191754378957563929">ഓണാണ്</translation>
 <translation id="2192505247865591433">പ്രേഷിതാവ്:</translation>
 <translation id="2193365732679659387">വിശ്വസ്ഥത ക്രമീകരണം</translation>
+<translation id="2194554416429452547">ട്രയലുകൾ നടക്കുമ്പോൾ, സ്പാം, വഞ്ചന, സൈറ്റുകൾക്കിടയിൽ പങ്കിടൽ എന്നിവ പരിമിതപ്പെടുത്താനുള്ള വഴികൾ കണ്ടെത്താൻ Chrome ശ്രമിക്കുന്നു. Chrome, നിങ്ങൾക്ക് പരസ്യങ്ങൾ കാണിക്കാൻ സൈറ്റുകൾക്ക് ഉപയോഗിക്കാനാകുന്ന <ph name="ESTIMATE_INTERESTS_LINK" />. ക്രമീകരണത്തിൽ നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ മാനേജ് ചെയ്യാം.</translation>
 <translation id="2194856509914051091">പരിഗണിക്കേണ്ട കാര്യങ്ങൾ</translation>
 <translation id="2195331105963583686">ആ സമയത്തിന് ശേഷവും നിങ്ങൾക്ക് <ph name="DEVICE_TYPE" /> ഉപയോഗിക്കാനാവും, എന്നാൽ തുടർന്നങ്ങോട്ട് സ്വയമേവയുള്ള സോഫ്‌റ്റ്‌വെയർ, സുരക്ഷാ അപ്ഡേറ്റുകൾ ലഭിക്കില്ല</translation>
 <translation id="2195729137168608510">ഇമെയില്‍‌ പരിരക്ഷണം</translation>
@@ -1868,6 +1872,7 @@
 <translation id="2749836841884031656">സിം</translation>
 <translation id="2749881179542288782">സ്‌പെല്ലിംഗിനൊപ്പം വ്യാകരണവും പരിശോധിക്കുക</translation>
 <translation id="2753677631968972007">സൈറ്റ് അനുമതികൾ നേരിട്ട് നിയന്ത്രിക്കുക.</translation>
+<translation id="2754825024506485820">ഉൽപ്പാദനക്ഷമത മുതൽ വിനോദം വരെ, നിങ്ങൾക്ക് ആവശ്യമുള്ള ആപ്പുകൾ Google Play Store-ൽ നിന്ന് കണ്ടെത്തുക. നിങ്ങൾക്ക് ഏതുസമയത്തും ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യാം.</translation>
 <translation id="2755349111255270002">ഈ <ph name="DEVICE_TYPE" /> റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="2755367719610958252">ഉപയോഗസഹായി ഫീച്ചറുകൾ മാനേജ് ചെയ്യുക</translation>
 <translation id="275662540872599901">സ്‌ക്രീൻ ഓഫാണ്</translation>
@@ -1944,6 +1949,7 @@
 <translation id="2815693974042551705">ഫോൾഡർ ബുക്ക്‌മാർക്ക് ചെയ്യുക</translation>
 <translation id="2816319641769218778">നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് പാസ്‍വേഡുകൾ സംരക്ഷിക്കാൻ, സമന്വയിപ്പിക്കൽ ഓണാക്കുക.</translation>
 <translation id="2816628817680324566">നിങ്ങളുടെ സുരക്ഷാ കീ തിരിച്ചറിയാൻ ഈ സൈറ്റിനെ അനുവദിക്കണോ?</translation>
+<translation id="2817435998497102771">നിങ്ങളുടെ വാൾപേപ്പറും സ്റ്റൈലും സജ്ജീകരിക്കുക</translation>
 <translation id="2818476747334107629">പ്രിന്റർ വിശദാംശങ്ങൾ</translation>
 <translation id="2819167288942847344">ആപ്പ് അസ്വാഭാവികമായി പ്രവർത്തിക്കുന്നത് തടയാൻ ഫോണിനും ടാബ്‌ലെറ്റിനും വലുപ്പം മാറ്റാവുന്ന വിൻഡോകൾക്കുമുള്ള പ്രീസെറ്റുകൾ ഉപയോഗിക്കുക</translation>
 <translation id="2820957248982571256">സ്‌കാൻ ചെയ്യുന്നു...</translation>
@@ -2837,6 +2843,7 @@
 <translation id="3727144509609414201">ലഭ്യമായ വൈഫൈ നെറ്റ്‍വർക്കുകൾ</translation>
 <translation id="3727187387656390258">പോപ്പ്‌അപ്പ് പരിശോധിക്കുക</translation>
 <translation id="372722114124766626">ഒരിക്കൽ മാത്രം</translation>
+<translation id="3727332897090187514">കുറിപ്പൊന്നും ചേർത്തിട്ടില്ല</translation>
 <translation id="3727473233247516571">ബാക്ക്-ഫോർവേഡ് കാഷെ സബ്ഫ്രെയിം: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">നിങ്ങളുടെ ഫോണിൽ നിന്നുള്ള അറിയിപ്പുകൾ മിറർ ചെയ്യാൻ</translation>
 <translation id="3728681439294129328">നെറ്റ്‌വർക്ക് വിലാസം കോൺഫിഗർ ചെയ്യുക</translation>
@@ -3032,6 +3039,7 @@
 <translation id="389901847090970821">കീബോർഡ് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="3900966090527141178">പാസ്‌വേഡുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക</translation>
 <translation id="3903187154317825986">ബിൽറ്റ് ഇൻ കീബോർഡ്</translation>
+<translation id="3903191712482985591">പ്ലേബുക്ക് ചേർക്കുക</translation>
 <translation id="3904326018476041253">ലൊക്കേഷൻ സേവനങ്ങൾ</translation>
 <translation id="3904849010307028014">ഒരു അക്കൗണ്ടിലേക്ക് പതിവായി സൈൻ ഇൻ ചെയ്യുന്നത് പോലെ സൈറ്റുമായുള്ള നിങ്ങളുടെ ഇടപഴകലിനെ അടിസ്ഥാനമാക്കി, നിങ്ങളുടെ ബ്രൗസറിന് ഒരു ട്രസ്റ്റ് ടോക്കൺ നൽകാൻ ആ സൈറ്റിനാകും. പിന്നീട്, നിങ്ങൾ സന്ദർശിക്കുന്ന മറ്റ് സൈറ്റുകൾ ഒരു സാധുവായ ട്രസ്റ്റ് ടോക്കണിനായി പരിശോധിക്കുകയും അത് കണ്ടെത്തുകയും ചെയ്താൽ, അവ നിങ്ങളെ ഒരു ബോട്ടായി കരുതാതെ ഒരു വ്യക്തിയായി പരിഗണിക്കാനാണ് കൂടുതൽ സാധ്യത.</translation>
 <translation id="3905761538810670789">ആപ്പ് റിപ്പയർ ചെയ്യുക</translation>
@@ -3171,6 +3179,7 @@
 <translation id="4031527940632463547">സെൻസറുകൾ ബ്ലോക്ക് ചെയ്‌തു</translation>
 <translation id="4033415645631238123">Smart Lock ഉപയോഗിച്ചുള്ള സൈൻ ഇൻ ചെയ്യൽ ഇനി ലഭ്യമല്ല. Smart Lock ഉപയോഗിച്ച് തുടർന്നും അൺലോക്ക് ചെയ്യാനാകും.</translation>
 <translation id="4033471457476425443">പുതിയ ഫോൾഡർ ചേർക്കുക</translation>
+<translation id="4033711848170683365">ഇത് ഈ ഉപകരണത്തിൽ നിന്ന് ബ്രൗസിംഗ് ഡാറ്റ ശാശ്വതമായി ഇല്ലാതാക്കും. ഈ പ്രൊഫൈലിലെ Google അക്കൗണ്ടുകൾ നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിലെ മറ്റ് ആപ്പുകൾ ഉപയോഗിക്കുന്നുണ്ടാകാം. <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> എന്നതിൽ നിങ്ങൾക്ക് ഈ അക്കൗണ്ടുകൾ നീക്കം ചെയ്യാം.</translation>
 <translation id="4033963223187371752">സുരക്ഷിത സൈറ്റുകൾ, സുരക്ഷിതമല്ലാത്ത ചിത്രങ്ങളോ വെബ് ഫ്രെയിമുകളോ പോലുള്ള ഉള്ളടക്കം ഉൾച്ചേർത്തേക്കാം</translation>
 <translation id="4034824040120875894">പ്രിന്റർ</translation>
 <translation id="4035758313003622889">&amp;ടാസ്ക് മാനേജര്‍</translation>
@@ -3449,6 +3458,7 @@
 <translation id="4314815835985389558">സമന്വയിപ്പിക്കൽ മാനേജ് ചെയ്യുക</translation>
 <translation id="4315933848520197627">അക്കൗണ്ട് അൺലിങ്ക് ചെയ്യുക</translation>
 <translation id="4316850752623536204">ഡെവലപ്പർ വെബ്‌സൈറ്റ്</translation>
+<translation id="4317733381297736564">ആപ്പ് വഴി വാങ്ങൽ</translation>
 <translation id="4317820549299924617">പരിശോധിച്ചുറപ്പിക്കാനായില്ല</translation>
 <translation id="4320177379694898372">ഇന്റർനെറ്റ് കണക്ഷനൊന്നുമില്ല</translation>
 <translation id="4322394346347055525">മറ്റ് ടാബുകള്‍ അടയ്‌ക്കുക</translation>
@@ -3639,6 +3649,7 @@
 <translation id="4510479820467554003">രക്ഷാകർതൃ അക്കൗണ്ടിന്റെ ലിസ്‌റ്റ്</translation>
 <translation id="451102079304155829">കാർട്ടുകൾ</translation>
 <translation id="4513872120116766993">എഴുത്ത് പ്രവചിക്കൽ</translation>
+<translation id="4513909579793564731">പ്ലേബുക്ക് ബാധകമാക്കുക</translation>
 <translation id="4513946894732546136">ഫീഡ്ബാക്ക്</translation>
 <translation id="451407183922382411"><ph name="COMPANY_NAME" /> നൽകുന്നത്</translation>
 <translation id="4514610446763173167">പ്ലേ ചെയ്യാനോ താൽക്കാലികമായി നിർത്താനോ വീഡിയോ മാറ്റുക</translation>
@@ -4031,6 +4042,7 @@
 <translation id="4893522937062257019">ലോക്ക് സ്ക്രീനിൽ</translation>
 <translation id="4897496410259333978">കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" സർട്ടിഫിക്കറ്റ് ഒരു സർട്ടിഫിക്കേഷൻ അതോറിറ്റിയെ പ്രതിനിധീകരിക്കുന്നു</translation>
+<translation id="4899696330053002588">പരസ്യങ്ങൾ ഉണ്ട്</translation>
 <translation id="489985760463306091">ദോഷകരമായ സോഫ്‌റ്റ്‌വയർ നീക്കംചെയ്യുന്നത് പൂർത്തിയാക്കാൻ, നിങ്ങളുടെ കമ്പ്യൂട്ടർ പുനരാരംഭിക്കുക</translation>
 <translation id="4900392736118574277">നിങ്ങളുടെ ആരംഭ പേജിനെ <ph name="URL" /> എന്നതിലേക്ക് മാറ്റിയിരിക്കുന്നു.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz - മിശ്രമാക്കിയത്</translation>
@@ -4404,6 +4416,7 @@
 <translation id="52912272896845572">സ്വകാര്യ കീ ഫയല്‍‌ അസാധുവാണ്.</translation>
 <translation id="5291739252352359682">Chrome ബ്രൗസറിൽ മീഡിയയ്‌ക്ക് അടിക്കുറിപ്പുകൾ സ്വയമേവ സൃഷ്‌ടിക്കുന്നു (നിലവിൽ ഇംഗ്ലീഷിൽ ലഭ്യം) ഓഡിയോയും അടിക്കുറിപ്പുകളും ലോക്കലായി പ്രോസസ് ചെയ്യുന്നു, അവ ഒരിക്കലും നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്ത് പോകില്ല.</translation>
 <translation id="529175790091471945">ഈ ഉപകരണം ഫോർമാറ്റ് ചെയ്യുക</translation>
+<translation id="5292862864186939732"><ph name="ORIGIN" /> -ൽ റൺ ചെയ്യാൻ "<ph name="EXTENSION_NAME" />" എന്നതിനെ എപ്പോഴും അനുവദിക്കണോ?</translation>
 <translation id="529296195492126134">ക്ഷണിക മോഡിന് പിന്തുണയില്ല. നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക</translation>
 <translation id="5293170712604732402">ക്രമീകരണത്തെ അവയുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കുക</translation>
 <translation id="5294097441441645251">ചെറിയക്ഷരം അല്ലെങ്കിൽ അണ്ടർസ്കോർ ഉപയോഗിച്ച് ആരംഭിക്കണം</translation>
@@ -5162,6 +5175,7 @@
 <translation id="6054961935262556546">ദൃശ്യപരത മാറ്റുക</translation>
 <translation id="6055171183283175969">നിങ്ങൾ നൽകിയ പാസ്‌വേഡ് തെറ്റാണ്.</translation>
 <translation id="6055392876709372977">RSA എന്‍‌ക്രിപ്‌ഷനോടുകൂടിയ PKCS #1 SHA-256</translation>
+<translation id="6055544610007596637">Google Play Store-ൽ നിന്ന് നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിനായി ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക</translation>
 <translation id="6056710589053485679">സാധാരണ രീതിയിലുള്ള വീണ്ടും ലോഡ് ചെയ്യൽ</translation>
 <translation id="6057312498756061228">ഈ ഫയൽ സുരക്ഷാപരിശോധനയ്ക്ക് വളരെ വലുതാണ്. 50 MB വരെയുള്ള ഫയലുകൾ നിങ്ങൾക്ക് തുറക്കാം.</translation>
 <translation id="6057381398996433816">ചലന, വെളിച്ച സെൻസറുകൾ ഉപയോഗിക്കുന്നതിൽ നിന്ന് സൈറ്റിനെ ബ്ലോക്ക് ചെയ്‌തു.</translation>
@@ -5471,6 +5485,7 @@
 <translation id="635609604405270300">ഉപകരണം ഓഫാക്കരുത്</translation>
 <translation id="63566973648609420">നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സുള്ള ഒരാൾക്ക് മാത്രമേ എൻക്രിപ്‌റ്റ് ചെയ്‌ത ഡാറ്റ വായിക്കാനാവൂ. Google-ലേക്ക് പാസ്‌ഫ്രെയ്‌സ് അയയ്‌ക്കുകയോ Google അത് സൂക്ഷിക്കുകയോ ചെയ്യില്ല. പാസ്‌ഫ്രെയ്‌സ് മറന്നുപോയെങ്കിലോ ഈ ക്രമീകരണം മാറ്റണമെങ്കിലോ നിങ്ങൾ <ph name="BEGIN_LINK" />സമന്വയിപ്പിക്കൽ റീസെറ്റ് ചെയ്യേണ്ടതുണ്ട്<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450"><ph name="APP_NAME" />, <ph name="APP_NAME_2" /> എന്നിവയിൽ ചില പിന്തുണാ ലിങ്കുകൾ തുടർന്നും തുറക്കാനാകും.</translation>
+<translation id="6357794994761110294"><ph name="SITE_NAME" /> വായിക്കാനും മാറ്റാനും വിപുലീകരണങ്ങൾക്കൊന്നും അനുമതിയില്ല</translation>
 <translation id="6358884629796491903">ഡ്രാഗൺ</translation>
 <translation id="6361850914223837199">പിശക് വിശദാംശങ്ങൾ‌:</translation>
 <translation id="6362853299801475928">&amp;ഒരു പ്രശ്നം റിപ്പോര്‍ട്ടുചെയ്യുക...</translation>
@@ -6135,6 +6150,7 @@
 <translation id="7002055706763150362">Chromebook-നുള്ള Smart Lock സജ്ജീകരിക്കുന്നതിന്, ഇത് നിങ്ങളാണെന്ന് Google-ന് തീർച്ചപ്പെടുത്തേണ്ടതുണ്ട്—ആരംഭിക്കാൻ പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="7003339318920871147">വെബ് ഡാറ്റാബേസുകള്‍‌</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} ഫയൽ}other{{COUNT} ഫയലുകൾ}}</translation>
+<translation id="7003705861991657723">ആൽഫ</translation>
 <translation id="7003723821785740825">നിങ്ങളുടെ ഉപകരണം അൺലോക്ക് ചെയ്യാൻ ഒരു വേഗതയേറിയ മാർഗ്ഗം സജ്ജമാക്കുക</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള അജ്ഞാത ഉൽപ്പന്നം <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">സൈറ്റിന് MIDI ഉപയോഗിക്കാനാകും</translation>
@@ -6151,6 +6167,7 @@
 <translation id="7008815993384338777">നിലവിൽ റോമിംഗിൽ അല്ല</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കുന്നു</translation>
 <translation id="701080569351381435">ഉറവിടം കാണുക</translation>
+<translation id="7011797924920577670">നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ നിർണ്ണയിക്കുന്നു</translation>
 <translation id="7014174261166285193">ഇന്‍സ്റ്റാളേഷന്‍ പരാജയപ്പെട്ടു.</translation>
 <translation id="7014480873681694324">ഹൈലൈറ്റ് നീക്കം ചെയ്യുക</translation>
 <translation id="7017004637493394352">വീണ്ടും "Ok Google" പറയുക</translation>
@@ -6218,6 +6235,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്ന നെറ്റ്‌വർക്കാണ്</translation>
 <translation id="7085389578340536476">ഓഡിയോ റെക്കോർഡ് ചെയ്യാൻ Chrome-നെ അനുവദിക്കണോ?</translation>
 <translation id="708550780726587276">(കോണ്‍ഫിഗര്‍ ചെയ്തിട്ടില്ല)</translation>
+<translation id="7086531709814430567"><ph name="ORIGIN" /> -ൽ റൺ ചെയ്യാൻ ഈ വിപുലീകരണങ്ങളെ എപ്പോഴും അനുവദിക്കണോ?</translation>
 <translation id="7086672505018440886">ശേഖരത്തിൽ Chrome ലോഗ് ഫയലുകൾ ഉൾപ്പെടുത്തുക.</translation>
 <translation id="7088434364990739311">അപ്‌ഡേറ്റ് പരിശോധന ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു (പിശക് കോഡ് <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">അഡ്‌മിനിസ്‌ട്രേറ്റർ ഈ ഉപകരണം ഡിപ്രൊവിഷൻ ചെയ്‌ത നിലയിലാക്കിയിരിക്കുന്നു. എൻറോൾമെന്റിനായി ഇത് പ്രവർത്തനക്ഷമമാക്കാൻ, അഡ്‌മിനിസ്‌ട്രേറ്റർ ഈ ഉപകരണത്തെ തീർപ്പുകൽപ്പിക്കാത്ത നിലയിലാക്കേണ്ടതുണ്ട്.</translation>
@@ -6316,7 +6334,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{പേജിൽ നിന്ന് പുറത്തുകടക്കുക}other{പേജുകളിൽ നിന്ന് പുറത്തുകടക്കുക}}</translation>
 <translation id="7207457272187520234">ഉപയോഗവും പ്രശ്‌നനിർണ്ണയവുമായി ബന്ധപ്പെട്ട ഡാറ്റ അയയ്ക്കുക. പ്രശ്‌നനിർണ്ണയം, ഉപകരണം, ആപ്പ് ഉപയോഗം എന്നിവയുമായി ബന്ധപ്പെട്ട ഡാറ്റ, ഈ ഉപകരണം നിലവിൽ സ്വയമേവ Google-ന് അയയ്ക്കുന്നുണ്ട്. സിസ്‌റ്റം, ആപ്പ് സ്ഥിരത, മറ്റ് മെച്ചപ്പെടുത്തലുകൾ എന്നിവയ്ക്ക് ഇത് സഹായിക്കും. ചില സംഗ്രഹ ഡാറ്റ, Google ആപ്പുകളെയും Android ഡെവലപ്പർമാരെപ്പോലുള്ള പങ്കാളികളെയും സഹായിക്കുകയും ചെയ്യും. ഈ ക്രമീകരണം നടപ്പിലാക്കിയിരിക്കുന്നത് ഉടമയാണ്. നിങ്ങളുടെ അധിക വെബ്, ആപ്പ് ആക്റ്റിവിറ്റി ക്രമീകരണം ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, ഈ ഡാറ്റ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കപ്പെട്ടേക്കാം.</translation>
 <translation id="7207631048330366454">ആപ്പുകൾ തിരയുക</translation>
-<translation id="720808544705441386">ആപ്പ് തുറക്കാനാകുന്നില്ല</translation>
 <translation id="7210499381659830293">വിപുലീകരണ പ്രിന്ററുകള്‍</translation>
 <translation id="7211783048245131419">ഇതുവരെ സ്വിച്ച് അസൈൻ ചെയ്തിട്ടില്ല</translation>
 <translation id="7212097698621322584">പിൻ മാറ്റാൻ നിലവിലെ പിൻ നൽകുക. നിങ്ങളുടെ പിൻ അറിയില്ലെങ്കിൽ, സുരക്ഷാ കീ പുനഃസജ്ജീകരിച്ച് പുതിയ പിൻ സൃഷ്‌ടിക്കേണ്ടി വരും.</translation>
@@ -8350,6 +8367,7 @@
 <translation id="9215742531438648683">Google Play Store അൺഇൻസ്റ്റാൾ ചെയ്യുക</translation>
 <translation id="9218430445555521422">ഡിഫോൾട്ട് ആയി സജ്ജീകരിക്കുക</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (പിന്തുണയില്ലാത്ത ആപ്പ്)</translation>
+<translation id="9219582468404818260">മെച്ചപ്പെട്ട വെബ് നിർമ്മിക്കാൻ ഞങ്ങളെ സഹായിക്കൂ</translation>
 <translation id="9220525904950070496">അക്കൗണ്ട് നീക്കംചെയ്യൽ</translation>
 <translation id="9220820413868316583">വിരൽ ഉയർത്തി വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="923467487918828349">എല്ലാം കാണിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 0a3fb76..5482a23 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Таны байршил шаардлагатай онцлогууд ажиллахгүй</translation>
 <translation id="1329191040029425999">Таны төхөөрөмж хамгийн шинэ эсэхийг шалгаад, дахин оролдоно уу</translation>
 <translation id="1330145147221172764">Дэлгэц дээрх гарыг идэвхжүүлэх</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" />-г нээхийн тулд "Идэвхгүй байдлаас сэрэх үед түгжигдсэн дэлгэц харуулах"-ыг идэвхжүүлнэ үү</translation>
 <translation id="1331977651797684645">Би байсан.</translation>
 <translation id="1333489022424033687">Таны төхөөрөмж дээр бусад сайтын хадгалсан өгөгдлийг та устгах хүртэл <ph name="ORIGIN" /> дээрх зарим онцлог ажиллахгүй байж болзошгүй</translation>
 <translation id="1333965224356556482">Сайтуудад таны байршлыг харахыг бүү зөвшөөр</translation>
@@ -1015,6 +1014,7 @@
 <translation id="1944921356641260203">Шинэчлэлт хийх тухай мэдээлэл олдлоо</translation>
 <translation id="1947136734041527201">Таныг таниулбарын үйлчилгээтэй бүртгэлээ ашиглан вебсайтуудад нэвтрэх боломжийг олгоно</translation>
 <translation id="1949584741547056205">Шуурхай хариулт</translation>
+<translation id="1949849604471335579">Дэлгэцийн зураг, дэлгэц амраагч, өргөлтийн өнгө болон бусад зүйлийг хувийн болгоно уу</translation>
 <translation id="1951012854035635156">Туслах</translation>
 <translation id="1954597385941141174">Сайтууд USB төхөөрөмжүүдэд холбогдохыг хүсэх боломжтой</translation>
 <translation id="1954813140452229842">Хуваалцлыг залгаж чадсангүй. Мандат үнэмлэхээ шалгаад дахин оролдоно уу.</translation>
@@ -1046,6 +1046,7 @@
 <translation id="1981434377190976112">Таны бүх вебсайт дээрх бүх өгөгдлийг унших</translation>
 <translation id="1984417487208496350">Хамгаалалт байхгүй (зөвлөдөггүй)</translation>
 <translation id="1987317783729300807">Хаяг</translation>
+<translation id="1987574314042117472">Түгээмэл аппуудыг сонгож, суулгах</translation>
 <translation id="1988259784461813694">Шаардлага</translation>
 <translation id="1989112275319619282">Хөтлөх</translation>
 <translation id="1989903373608997757">Үргэлж ашиглах</translation>
@@ -1111,6 +1112,7 @@
 <translation id="2048554637254265991">Контейнерын менежерийг эхлүүлэхэд алдаа гарлаа. Дахин оролдоно уу.</translation>
 <translation id="2048653237708779538">Үйлдэл боломжгүй байна</translation>
 <translation id="2050339315714019657">Хөрөг зураг</translation>
+<translation id="2052572566310583903">Таны бусад төхөөрөмж дээр суулгасан</translation>
 <translation id="2053312383184521053">Идэвхгүй хэлбэрийн өгөгдөл</translation>
 <translation id="2054240652864153171"><ph name="SITE_NAME" /> дээр хуваагдсан <ph name="PARTITION_SITE_NAME" /> сайтын өгөгдлийг арилгах уу?</translation>
 <translation id="2055585478631012616">Та эдгээр сайтаас гарах бөгөөд үүнд нээлттэй табын сайтууд мөн багтана</translation>
@@ -1273,6 +1275,7 @@
 <translation id="2191754378957563929">Асаалттай</translation>
 <translation id="2192505247865591433">Хэнээс:</translation>
 <translation id="2193365732679659387">Итгэмжлэх тохиргоо</translation>
+<translation id="2194554416429452547">Туршилтын хугацааны үеэр Chrome спам, залилан болон сайтууд хооронд хуваалцахыг хязгаарлах аргуудыг судалж байна. Chrome мөн сайтуудын танд зар харуулахын тулд ашиглаж болох <ph name="ESTIMATE_INTERESTS_LINK" />. Та сонирхлуудаа тохиргоо хэсэгт удирдах боломжтой.</translation>
 <translation id="2194856509914051091">Анхаарч үзэх зүйлс</translation>
 <translation id="2195331105963583686">Та энэ <ph name="DEVICE_TYPE" />-г ийм хугацааны дараа ашиглах боломжтой хэвээр байх боловч энэ нь программ хангамж болон аюулгүй байдлын автомат шинэчлэлтийг авах боломжгүй байна.</translation>
 <translation id="2195729137168608510">И-мэйл хамгаалалт</translation>
@@ -1880,6 +1883,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Зөв бичих дүрмийн алдааг шалгах</translation>
 <translation id="2753677631968972007">Сайтын зөвшөөрлийг гар аргаар хянана уу.</translation>
+<translation id="2754825024506485820">Бүтээмжээс эхлээд энтертэйнмент хүртэлх хэрэгтэй аппуудаа Google Play Дэлгүүрээс олоорой. Та аппуудыг хүссэн үедээ суулгах боломжтой.</translation>
 <translation id="2755349111255270002">Энэ <ph name="DEVICE_TYPE" />-г шинэчлэх</translation>
 <translation id="2755367719610958252">Хандалтын онцлогийг удирдах</translation>
 <translation id="275662540872599901">дэлгэц унтраалттай</translation>
@@ -1956,6 +1960,7 @@
 <translation id="2815693974042551705">Хадгалагдсан хуудсын хавтас</translation>
 <translation id="2816319641769218778">Google Бүртгэлдээ нууц үг хадгалахын тулд синк хийхийг асаана уу.</translation>
 <translation id="2816628817680324566">Энэ сайтад таны аюулгүй байдлын түлхүүрийг тодорхойлохыг зөвшөөрөх үү?</translation>
+<translation id="2817435998497102771">Өөрийн дэлгэцийн зураг ба загварыг тохируулах</translation>
 <translation id="2818476747334107629">Принтерийн мэдээлэл</translation>
 <translation id="2819167288942847344">Аппыг буруу ажиллахаас сэргийлэхийн тулд утас, таблетад урьдчилсан тохируулгууд эсвэл хэмжээг өөрчлөх боломжтой цонх ашиглаарай</translation>
 <translation id="2820957248982571256">Шалгаж байна...</translation>
@@ -2849,6 +2854,7 @@
 <translation id="3727144509609414201">Боломжтой Wi-Fi сүлжээ</translation>
 <translation id="3727187387656390258">Зар сурталчилгааг шалгах</translation>
 <translation id="372722114124766626">Нэг удаа</translation>
+<translation id="3727332897090187514">Тэмдэглэл нэмээгүй</translation>
 <translation id="3727473233247516571">Back/Forward Cache хийсэн дэд хүрээ: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Утаснаасаа мэдэгдэл тусгах</translation>
 <translation id="3728681439294129328">Сүлжээний хаягийг тохируулах</translation>
@@ -3183,6 +3189,7 @@
 <translation id="4031527940632463547">Мэдрэгчийг хориглосон</translation>
 <translation id="4033415645631238123">Цаашид Ухаалаг түгжээгээр нэвтрэх боломжгүй. Та Ухаалаг түгжээгээр түгжээг тайлах боломжтой хэвээр байна.</translation>
 <translation id="4033471457476425443">Шинэ фолдер нэмэх</translation>
+<translation id="4033711848170683365">Энэ нь уг төхөөрөмжөөс интернэтээр үзсэн өгөгдлийг бүрмөсөн устгана. Энэ профайл дахь Google Бүртгэлүүдийг таны <ph name="DEVICE_TYPE" /> дээрх бусад апп ашиглаж магадгүй. Та эдгээр бүртгэлийг <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />-с хасах боломжтой.</translation>
 <translation id="4033963223187371752">Аюулгүй сайтууд аюултай зураг эсвэл вебийн фрейм зэрэг контентыг оруулж магадгүй</translation>
 <translation id="4034824040120875894">Хэвлэгч</translation>
 <translation id="4035758313003622889">&amp; Асуудлын менежер</translation>
@@ -3461,6 +3468,7 @@
 <translation id="4314815835985389558">Синк хийхийг удирдах</translation>
 <translation id="4315933848520197627">Бүртгэл салгах</translation>
 <translation id="4316850752623536204">Хөгжүүлэгчийн вебсайт</translation>
+<translation id="4317733381297736564">Аппын худалдан авалт</translation>
 <translation id="4317820549299924617">Баталгаажуулалт амжилтгүй боллоо</translation>
 <translation id="4320177379694898372">Интернетийн холболтгүй байна</translation>
 <translation id="4322394346347055525">Бусад цонхуудаг хаах</translation>
@@ -4044,6 +4052,7 @@
 <translation id="4893522937062257019">Түгжигдсэн дэлгэцэд</translation>
 <translation id="4897496410259333978">Нэмэлт мэдээлэл авахын тулд администратортайгаа холбогдоно уу.</translation>
 <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" гэрчилгээ нь Гэрчилгээний бүрэн эрхийг төлөөлж байна</translation>
+<translation id="4899696330053002588">Зар агуулсан</translation>
 <translation id="489985760463306091">Аюултай программыг устгаж дуусгахын тулд компьютерээ дахин эхлүүлнэ үү</translation>
 <translation id="4900392736118574277">Таны эхлүүлэх хуудсыг <ph name="URL" /> болгож өөрчилсөн.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Гц - сүлжилдсэн</translation>
@@ -4417,6 +4426,7 @@
 <translation id="52912272896845572">Хувийн түлхүүр бүхий файл хүчин төгөлдөр бус байна.</translation>
 <translation id="5291739252352359682">Chrome хөтөч дээр медиад зориулж хадмал автоматаар үүсгэдэг (одоохондоо англи хэлээр боломжтой). Аудио болон тайлбарыг дотоодод боловсруулах бөгөөд төхөөрөмжөөс хэзээ ч гардаггүй.</translation>
 <translation id="529175790091471945">Төхөөрөмжийг форматлах</translation>
+<translation id="5292862864186939732">"<ph name="EXTENSION_NAME" />"-г <ph name="ORIGIN" /> дээр ажиллуулахыг үргэлж зөвшөөрөх үү?</translation>
 <translation id="529296195492126134">Түр горимыг дэмждэггүй. Администратортайгаа холбогдоно уу</translation>
 <translation id="5293170712604732402">Тохиргоог анхны өгөгдмөлөөр сэргээх</translation>
 <translation id="5294097441441645251">Жижиг тэмдэгт эсвэл доогуур зураасаар эхлэх ёстой</translation>
@@ -5174,6 +5184,7 @@
 <translation id="6054961935262556546">Харагдцыг өөрчлөх</translation>
 <translation id="6055171183283175969">Таны оруулсан нууц үг буруу байна.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 With RSA Encryption</translation>
+<translation id="6055544610007596637">Google Play Дэлгүүрээс өөрийн <ph name="DEVICE_TYPE" />-д аппууд суулгаарай</translation>
 <translation id="6056710589053485679">Ердийн дахин ачаалах ажиллагаа</translation>
 <translation id="6057312498756061228">Энэ файл аюулгүй байдлын шалгалт хийхэд хэт том байна. Та 50 МБ хүртэлх хэмжээтэй файлуудыг нээх боломжтой.</translation>
 <translation id="6057381398996433816">Энэ сайтад хөдөлгөөн болон гэрлийн мэдрэгч ашиглахыг хориглосон байна.</translation>
@@ -6146,6 +6157,7 @@
 <translation id="7002055706763150362">Chromebook-д зориулсан Smart Lock-ийг тохируулахын тулд Google та мөн гэдгийг батлах хэрэгтэй. Эхлэхийн тулд нууц үгээ бичнэ үү.</translation>
 <translation id="7003339318920871147">Веб өгөгдлийн сан</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} файл}other{{COUNT} файл}}</translation>
+<translation id="7003705861991657723">Альфа</translation>
 <translation id="7003723821785740825">Төхөөрөмжийнхөө түгжээг илүү хурдан тайлах арга тохируулах</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" />-ын тодорхойгүй бүтээгдэхүүн <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">Сайт MIDI ашиглах боломжтой</translation>
@@ -6162,6 +6174,7 @@
 <translation id="7008815993384338777">Одоогоор роуминг хийгээгүй байна</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> таны камерыг ашиглаж байна</translation>
 <translation id="701080569351381435">Эх үүсвэрийг харах</translation>
+<translation id="7011797924920577670">таны сонирхлуудыг тооцоолно</translation>
 <translation id="7014174261166285193">Суулгах ажиллагаа амжилтгүй боллоо.</translation>
 <translation id="7014480873681694324">Тодруулгыг хасах</translation>
 <translation id="7017004637493394352">Дахин "Oк Google" гэж хэлнэ үү</translation>
@@ -6229,6 +6242,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" />-г таны администратор удирддаг</translation>
 <translation id="7085389578340536476">Chrome-д аудио бичихийг зөвшөөрөх үү?</translation>
 <translation id="708550780726587276">(тохируулаагүй)</translation>
+<translation id="7086531709814430567">Эдгээр өргөтгөлийг <ph name="ORIGIN" /> дээр ажиллуулахыг үргэлж зөвшөөрөх үү?</translation>
 <translation id="7086672505018440886">Архивт Chrome лог файлуудыг багтаана.</translation>
 <translation id="7088434364990739311">Шинэчлэлтийг шалгах ажиллагааг эхлүүлж чадсангүй (алдааны код <ph name="ERROR" /> ).</translation>
 <translation id="7088674813905715446">Энэ нь төхөөрөмжийг админаас тодорхой нөхцөлгүй байдалд оруулсан байна. Үүнийг идэвхжүүлэхийн тулд админаас төхөөрөмжийг хүлээгдэж буй нөхцөл байдалд оруулах хэрэгтэй.</translation>
@@ -6327,7 +6341,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Хуудаснаас гарах}other{Хуудаснуудаас гарах}}</translation>
 <translation id="7207457272187520234">Ашиглалт болон оношилгооны өгөгдлийг илгээнэ үү. Энэ төхөөрөмж нь одоогоор оношилгоо, төхөөрөмж болон аппын ашиглалтын өгөгдлийг Google-д автоматаар илгээж байна. Энэ нь систем, аппын тогтвортой байдал болон бусад зүйлийг сайжруулахад тусална. Хуримтлуулсан зарим өгөгдөл нь Google-н аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд мөн тусална. Энэ тохиргоог эзэмшигчийн зүгээс хэрэгжүүлнэ. Хэрэв таны Веб, аппын нэмэлт үйл ажиллагааны тохиргоо асаалттай байвал энэ өгөгдлийг таны Google Бүртгэлд хадгалж болзошгүй.</translation>
 <translation id="7207631048330366454">Аппууд хайх</translation>
-<translation id="720808544705441386">Аппыг нээх боломжгүй</translation>
 <translation id="7210499381659830293">Өргөтгөлийн хэвлэгч</translation>
 <translation id="7211783048245131419">Одоохондоо оноосон сэлгэгч алга</translation>
 <translation id="7212097698621322584">ПИН-г өөрчлөхийн тулд одоогийн ПИН-ээ оруулна уу. Хэрэв та ПИН-ээ мэдэхгүй бол аюулгүй байдлын түлхүүрээ шинэчлээд дараа нь шинэ ПИН үүсгэх шаардлагатай.</translation>
@@ -8358,6 +8371,7 @@
 <translation id="9215742531438648683">Google Play Дэлгүүрийг устгах</translation>
 <translation id="9218430445555521422">Анхны хувилбарт оруулж тохируулах</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (дэмждэггүй апп)</translation>
+<translation id="9219582468404818260">Бидэнд илүү сайн веб бүтээхэд тусална уу</translation>
 <translation id="9220525904950070496">Бүртгэлийг хасах</translation>
 <translation id="9220820413868316583">Дээшлүүлээд дахин оролдоно уу.</translation>
 <translation id="923467487918828349">Бүгдийг харуул</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 6a00138..69b8a74c 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">तुमच्या स्थानाची आवश्यकता असलेली वैशिष्ट्ये काम करणार नाहीत</translation>
 <translation id="1329191040029425999">तुमचे डिव्हाइस अप टू डेट असल्याची खात्री करा आणि कृपया पुन्हा प्रयत्न करा</translation>
 <translation id="1330145147221172764">ऑन-स्क्रीन कीबोर्ड सुरू करा</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> उघडण्यासाठी, "स्लीप मोडमधून सुरू करताना लॉक स्क्रीन दाखवा" सुरू करा</translation>
 <translation id="1331977651797684645">ही व्यक्ती मी आहे.</translation>
 <translation id="1333489022424033687">तुम्ही इतर साइटनी तुमच्या डिव्हाइसवर स्टोअर केलेला डेटा साफ करेपर्यंत <ph name="ORIGIN" /> वरील काही वैशिष्ट्ये कदाचित काम करणार नाहीत</translation>
 <translation id="1333965224356556482">साइटना तुमचे स्थान पाहाण्याची अनुमती देऊ नका</translation>
@@ -518,7 +517,7 @@
 <translation id="150411034776756821"><ph name="SITE" /> काढून टाका</translation>
 <translation id="1504551620756424144">शेअर केलेली फोल्डर Windows मध्ये <ph name="BASE_DIR" /> येथे उपलब्ध आहेत.</translation>
 <translation id="1506061864768559482">शोध इंजीन</translation>
-<translation id="1507170440449692343">हे पृष्ठ आपल्या कॅमेर्‍यावर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
+<translation id="1507170440449692343">तुमच्या कॅमेराचा अ‍ॅक्सेस या पेजसाठी ब्लॉक केला आहे.</translation>
 <translation id="1507246803636407672">&amp;टाकून द्या</translation>
 <translation id="1509163368529404530">&amp;गट रिस्टोअर करा</translation>
 <translation id="1509281256533087115">USB द्वारे कोणतेही <ph name="DEVICE_NAME_AND_VENDOR" /> ॲक्सेस करा</translation>
@@ -1018,6 +1017,7 @@
 <translation id="1944921356641260203">अपडेट आढळले</translation>
 <translation id="1947136734041527201">ओळखीच्या सेवेसह तुमच्याकडे असलेले खाते वापरून तुम्हाला वेबसाइटवर साइन इन करू देते</translation>
 <translation id="1949584741547056205">झटपट उत्तरे</translation>
+<translation id="1949849604471335579">वॉलपेपर, स्क्रीन सेव्हर, अ‍ॅक्सेंट रंग आणि आणखी बरेच काही पर्सनलाइझ करा</translation>
 <translation id="1951012854035635156">Assistant</translation>
 <translation id="1954597385941141174">साइट USB डिव्हाइसशी कनेक्ट करण्यासाठी विचारू शकतात</translation>
 <translation id="1954813140452229842">शेअर माउंट करताना एरर आली. कृपया तुमची क्रेडेंशियल तपासा आणि पुन्हा प्रयत्न करा.</translation>
@@ -1049,6 +1049,7 @@
 <translation id="1981434377190976112">सर्व वेबसाइटवरील तुमचा सर्व डेटा वाचू शकते</translation>
 <translation id="1984417487208496350">संरक्षण नाही (शिफारस केली जात नाही)</translation>
 <translation id="1987317783729300807">खाती</translation>
+<translation id="1987574314042117472">लोकप्रिय अ‍ॅप्स निवडा आणि इंस्टॉल करा</translation>
 <translation id="1988259784461813694">आवश्यकता</translation>
 <translation id="1989112275319619282">ब्राउझ करा</translation>
 <translation id="1989903373608997757">नेहमी वापरा</translation>
@@ -1114,6 +1115,7 @@
 <translation id="2048554637254265991">कंटेनर व्यवस्थापक सुरू करताना एरर आली. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="2048653237708779538">कृती उपलब्ध नाही</translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
+<translation id="2052572566310583903">तुमच्या इतर डिव्हाइसवर इंस्टॉल केले</translation>
 <translation id="2053312383184521053">निष्क्रिय स्थिती डेटा</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" /> वर विभागणी केलेल्या <ph name="SITE_NAME" /> चा साइट डेटा साफ करायचा आहे का?</translation>
 <translation id="2055585478631012616">उघड्या असलेल्या टॅबच्या समावेशासह तुम्हाला या साइटमधून साइन आउट केले जाईल.</translation>
@@ -1276,6 +1278,7 @@
 <translation id="2191754378957563929">सुरू करा</translation>
 <translation id="2192505247865591433">द्वारा:</translation>
 <translation id="2193365732679659387">विश्वासू सेटिंग्ज</translation>
+<translation id="2194554416429452547">चाचण्यांदरम्यान, Chrome हे स्पॅम, फसवणूक आणि साइटदरम्यान शेअरिंग मर्यादित करण्याचे मार्ग शोधत आहे. Chrome हे साइट तुम्हाला जाहिराती दाखवण्यासाठी वापरू शकतात अशादेखील <ph name="ESTIMATE_INTERESTS_LINK" />. तुम्ही सेटिंग्जमध्ये तुमची स्वारस्ये व्यवस्थापित करू शकता.</translation>
 <translation id="2194856509914051091">विचार करण्याच्या गोष्टी</translation>
 <translation id="2195331105963583686">तुम्ही त्यानंतर तरीही हे <ph name="DEVICE_TYPE" /> वापरू शकाल पण ते यापुढे ऑटोमॅटिक सॉफ्टवेअर आणि सुरक्षा अपडेट मिळवू शकणार नाही</translation>
 <translation id="2195729137168608510">ईमेल संरक्षण</translation>
@@ -1883,6 +1886,7 @@
 <translation id="2749836841884031656">सिम</translation>
 <translation id="2749881179542288782">शुद्धलेखनासह व्याकरण तपासा</translation>
 <translation id="2753677631968972007">साइट परवानग्या मॅन्युअली नियंत्रित करा.</translation>
+<translation id="2754825024506485820">Google Play Store वर तुम्हाला उत्पादनक्षमतेपासून मनोरंजनापर्यंत आवश्यक असलेली अ‍ॅप्स शोधा. तुम्ही कधीही अ‍ॅप्स इंस्टॉल करू शकता.</translation>
 <translation id="2755349111255270002">हे <ph name="DEVICE_TYPE" /> रीसेट करा</translation>
 <translation id="2755367719610958252">ॲक्सेसिबिलिटी वैशिष्ट्ये व्यवस्थापित करा</translation>
 <translation id="275662540872599901">स्क्रीन बंद</translation>
@@ -1959,6 +1963,7 @@
 <translation id="2815693974042551705">बुकमार्क फोल्डर</translation>
 <translation id="2816319641769218778">तुमच्या Google खाते मध्ये पासवर्ड सेव्ह करण्यासाठी सिंक सुरू करा.</translation>
 <translation id="2816628817680324566">या साइटला तुमची सिक्युरिटी की ओळखण्याची अनुमती द्यायची का?</translation>
+<translation id="2817435998497102771">तुमचा वॉलपेपर आणि स्टाइल सेट करा</translation>
 <translation id="2818476747334107629">प्रिंटर तपशील</translation>
 <translation id="2819167288942847344">ॲपला गैरवर्तन करण्यापासून रोखण्यासाठी, फोन, टॅबलेट किंवा आकार बदलता येणाऱ्या विंडोकरिता प्रीसेट वापरा</translation>
 <translation id="2820957248982571256">स्कॅन होत आहे...</translation>
@@ -2313,7 +2318,7 @@
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन</translation>
 <translation id="3163511056918491211">तुमचा डेटा सहजरीत्‍या रिस्टोअर करा किंवा डिव्हाइस कधीही स्विच करा. तुमचे बॅकअप Google वर अपलोड केले जातात आणि तुमचा Google खाते पासवर्ड वापरून एंक्रिप्ट केले जातात.</translation>
 <translation id="3164329792803560526"><ph name="APP_NAME" /> यावर हा टॅब शेअर करत आहे</translation>
-<translation id="3165390001037658081">काही वाहक हे वैशिष्ट्य अवरोधित शकतात.</translation>
+<translation id="3165390001037658081">काही वाहक हे वैशिष्ट्य ब्लॉक करू शकतात.</translation>
 <translation id="3170072451822350649">तुम्ही साइन इन वगळुन <ph name="LINK_START" />अतिथी म्हणून ब्राउझ<ph name="LINK_END" /> देखील करू शकता.</translation>
 <translation id="31774765611822736">डावीकडील नवीन टॅब</translation>
 <translation id="3177909033752230686">पृष्ठ भाषा:</translation>
@@ -2575,7 +2580,7 @@
 <translation id="3446274660183028131">Windows इंस्टॉल करण्यासाठी कृपया Parallels Desktop लाँच करा.</translation>
 <translation id="344630545793878684">अनेक वेबसाइटवर तुमचा डेटा वाचा</translation>
 <translation id="3446650212859500694">या फाइलमध्ये संवेदनशील आशय आहे</translation>
-<translation id="3447644283769633681">सर्व तृतीय-पक्ष कुकीज अवरोधित करा</translation>
+<translation id="3447644283769633681">सर्व तृतीय-पक्ष कुकीज ब्लॉक करा</translation>
 <translation id="3448492834076427715">खाते अपडेट करा</translation>
 <translation id="3449393517661170867">नवीन टॅब असलेल्या विंडोमध्ये उघडा</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> कडे कमांड पाठविण्यासाठी <ph name="SEARCH_KEY" /> दाबा</translation>
@@ -2852,6 +2857,7 @@
 <translation id="3727144509609414201">उपलब्ध असलेली वायफाय नेटवर्क</translation>
 <translation id="3727187387656390258">पॉपअपची तपासणी करा</translation>
 <translation id="372722114124766626">फक्त एकदाच</translation>
+<translation id="3727332897090187514">कोणतीही टीप जोडली नाही</translation>
 <translation id="3727473233247516571">बॅक/फॉरवर्ड कॅशे केलेली सबफ्रेम: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">तुमच्‍या फोनवरून सूचना मिरर करू शकते</translation>
 <translation id="3728681439294129328">नेटवर्क अ‍ॅड्रेस कॉंफिगर करा</translation>
@@ -2884,7 +2890,7 @@
 <translation id="3757733214359997190">कोणत्याही साइट आढळल्या नाहीत</translation>
 <translation id="375841316537350618">प्रॉक्सी स्क्रिप्ट डाउनलोड करत आहे...</translation>
 <translation id="3758842566811519622">कुकीज सेट केल्या</translation>
-<translation id="3759933321830434300">वेब पृष्ठांचे भाग अवरोधित करा</translation>
+<translation id="3759933321830434300">वेब पेजचे भाग ब्लॉक करा</translation>
 <translation id="3760460896538743390">&amp;पार्श्वभूमी पृष्ठाचे निरीक्षण करा</translation>
 <translation id="37613671848467444">&amp;गुप्त विंडोमध्ये उघडा</translation>
 <translation id="3761556954875533505">साइटला फाइल संपादित करू द्यायच्या?</translation>
@@ -3187,6 +3193,7 @@
 <translation id="4031527940632463547">सेन्सर ब्लॉक केले गेले आहेत</translation>
 <translation id="4033415645631238123">Smart Lock वापरून साइन इन करणे आता उपलब्ध नाही. तुम्ही तरीही Smart Lock वापरून डिव्हाइस अनलॉक करू शकता.</translation>
 <translation id="4033471457476425443">नवीन फोल्डर जोडा</translation>
+<translation id="4033711848170683365">यामुळे या डिव्‍हाइसवरून ब्राउझिंग डेटा कायमचा हटवला जाईल. या प्रोफाइलमधील Google खाती इतर अ‍ॅप्सद्वारे तुमच्या <ph name="DEVICE_TYPE" /> वर वापरली जाऊ शकतात. तुम्ही ही खाती <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> येथे हटवू शकता.</translation>
 <translation id="4033963223187371752">सुरक्षित साइट या इमेज किंवा वेब फ्रेम यांसारखा सुरक्षित नसलेला आशय एम्बेड करू शकतात</translation>
 <translation id="4034824040120875894">प्रिंटर</translation>
 <translation id="4035758313003622889">&amp;कार्य व्यवस्थापक</translation>
@@ -3384,7 +3391,7 @@
 <translation id="4247901771970415646"><ph name="USERNAME" /> शी सिंक करू शकत नाही</translation>
 <translation id="4248098802131000011">डेटा भंग आणि इतर सुरक्षितता समस्यांपासून तुमचे पासवर्ड सुरक्षित ठेवा</translation>
 <translation id="4249248555939881673">नेटवर्क कनेक्शनची प्रतीक्षा करत आहे...</translation>
-<translation id="4249373718504745892">हे पृष्‍ठ तुमचा कॅमेरा आणि मायक्रोफोनवर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
+<translation id="4249373718504745892">तुमचा कॅमेरा आणि मायक्रोफोनचा अ‍ॅक्सेस या पेजसाठी ब्लॉक केला आहे.</translation>
 <translation id="424963718355121712">परिणाम होतो अशा होस्टवरून ॲप्स दिली जाणे आवश्यक आहे</translation>
 <translation id="4250229828105606438">स्क्रीनशॉट</translation>
 <translation id="4250680216510889253">नाही</translation>
@@ -3463,6 +3470,7 @@
 <translation id="4314815835985389558">सिंक व्यवस्थापित करा</translation>
 <translation id="4315933848520197627">खात्याची लिंक काढून टाका</translation>
 <translation id="4316850752623536204">डेव्हलपर वेबसाइट</translation>
+<translation id="4317733381297736564">अ‍ॅपमधील खरेदी</translation>
 <translation id="4317820549299924617">पडताळणी यशस्वी झाली नाही</translation>
 <translation id="4320177379694898372">कोणतेही इंटरनेट कनेक्शन नाही</translation>
 <translation id="4322394346347055525">अन्य टॅब बंद करा</translation>
@@ -4046,6 +4054,7 @@
 <translation id="4893522937062257019">लॉक स्क्रीनवर</translation>
 <translation id="4897496410259333978">अधिक माहितीसाठी, तुमच्‍या अ‍ॅडमिनिस्‍ट्रेटरशी संपर्क साधा.</translation>
 <translation id="4898011734382862273">सर्टिफिकेट "<ph name="CERTIFICATE_NAME" />" प्रमाणन अधिकृतता प्रस्तुत करते</translation>
+<translation id="4899696330053002588">यामध्ये जाहिराती आहेत</translation>
 <translation id="489985760463306091">धोकादायक सॉफ्टवेअर काढणे पूर्ण करण्यासाठी तुमचा काँप्युटर रीस्टार्ट करा</translation>
 <translation id="4900392736118574277">तुमचे स्टार्टअप पेज <ph name="URL" /> मध्‍ये बदलले.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz - इंटरलेस केलेला</translation>
@@ -4138,7 +4147,7 @@
 <translation id="4997086284911172121">इंटरनेट कनेक्‍शन नाही.</translation>
 <translation id="4998430619171209993">सुरू</translation>
 <translation id="4999804342505941663">व्यत्यय आणू नका सुरू करा</translation>
-<translation id="5000922062037820727">अवरोधित केली (शिफारस केलेले)</translation>
+<translation id="5000922062037820727">ब्लॉक केले (शिफारस केलेले)</translation>
 <translation id="5005498671520578047">पासवर्ड कॉपी करा</translation>
 <translation id="5006118752738286774">दोन वर्षांपूर्वी</translation>
 <translation id="5006218871145547804">Crostini Android अ‍ॅप ADB</translation>
@@ -4419,6 +4428,7 @@
 <translation id="52912272896845572">प्रायव्हेट की फाइल चुकीची आहे.</translation>
 <translation id="5291739252352359682">Chrome ब्राउझरमध्ये मीडियासाठी आपोआप कॅप्शन तयार करते (सध्या इंग्रजीमध्ये उपलब्ध आहे). ऑडिओ आणि कॅप्शनवर स्थानिकरीत्या प्रक्रिया केली जाते व या गोष्टी डिव्हाइसमधून कधीही जात नाहीत.</translation>
 <translation id="529175790091471945">हे डिव्हाइस स्वरूपित करा</translation>
+<translation id="5292862864186939732">"<ph name="EXTENSION_NAME" />" ला नेहमी <ph name="ORIGIN" /> वर रन होण्याची अनुमती द्यायची का?</translation>
 <translation id="529296195492126134">क्षणिक मोडला सपोर्ट नाही. कृपया तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा</translation>
 <translation id="5293170712604732402">सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर रिस्टोअर करा</translation>
 <translation id="5294097441441645251">लोअरकेस वर्ण किंवा अंडरस्कोअरने सुरू होणे आवश्यक आहे</translation>
@@ -4805,7 +4815,7 @@
 <translation id="567643736130151854">सर्व डिव्हाइसवर तुमचे बुकमार्क, पासवर्ड आणि बरेच काही मिळविण्यासाठी साइन इन करा आणि सिंक सुरू करा</translation>
 <translation id="567740581294087470">तुम्ही कोणत्या प्रकारचा फीडबॅक देत आहात?</translation>
 <translation id="5677503058916217575">पृष्ठ भाषा:</translation>
-<translation id="5677928146339483299">अवरोधित</translation>
+<translation id="5677928146339483299">ब्लॉक केले</translation>
 <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> ला रीड आणि राइट ॲक्सेस मंजूर केला आहे.</translation>
 <translation id="5678821117681811450"><ph name="WEB_DRIVE" /> ला पाठवत आहे</translation>
 <translation id="5678955352098267522"><ph name="WEBSITE_1" /> वर तुमचा डेटा वाचा</translation>
@@ -5177,6 +5187,7 @@
 <translation id="6054961935262556546">दृश्यमानता बदला</translation>
 <translation id="6055171183283175969">तुम्ही एंटर केलेला पासवर्ड चुकीचा आहे.</translation>
 <translation id="6055392876709372977">PKCS #1 RSA एंक्रिप्शनसह SHA-256</translation>
+<translation id="6055544610007596637">Google Play Store वरून तुमच्या <ph name="DEVICE_TYPE" /> साठी अ‍ॅप्स इंस्टॉल करा</translation>
 <translation id="6056710589053485679">सामान्‍य रीलोड</translation>
 <translation id="6057312498756061228">सुरक्षा तपासणीसाठी ही फाइल बरीच मोठी आहे. तुम्ही कमाल ५०MB च्या फाइल उघडू शकता.</translation>
 <translation id="6057381398996433816">या साइटला तुमचे गती किंवा प्रकाश सेन्सर वापरण्यापासून ब्लॉक केले गेले आहे.</translation>
@@ -6019,7 +6030,7 @@
 <translation id="6876155724392614295">सायकल</translation>
 <translation id="6876469544038980967">उपयुक्त नाही</translation>
 <translation id="6878422606530379992">सेन्सरना अनुमती आहे</translation>
-<translation id="6880587130513028875">या पृष्ठावरील इमेज अवरोधित केलेल्या होत्या.</translation>
+<translation id="6880587130513028875">या पेजवरील इमेज ब्लॉक केलेल्या होत्या.</translation>
 <translation id="688312408602122936">Steam द्वारे इंस्टॉल केलेले सर्व गेम आणि अ‍ॅप्सदेखील या डिव्हाइसमधून काढून टाकली जातील</translation>
 <translation id="6883319974225028188">अरेरे! डिव्हाइस कॉंफिगरेशन सेव्ह करण्यात सिस्टम अयशस्वी झाले.</translation>
 <translation id="6884474387073389421">तुम्हाला तुम्ही निवडलेला साइन इन डेटा नक्की हटवायचा आहे का?</translation>
@@ -6149,6 +6160,7 @@
 <translation id="7002055706763150362">Chromebook साठी Smart Lock सेट करण्यासाठी, Google ला हे तुम्हीच असल्याचे निश्चित करण्याची आवश्यकता असते—सुरुवात करण्यासाठी तुमचा पासवर्ड टाइप करा.</translation>
 <translation id="7003339318920871147">वेब डेटाबेस</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} फाइल}other{{COUNT} फाइल}}</translation>
+<translation id="7003705861991657723">अल्फा</translation>
 <translation id="7003723821785740825">तुमचे डिव्हाइस अनलॉक करण्‍यासाठी एक द्रुत मार्ग सेट करा</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> कडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन</translation>
 <translation id="7004402701596653846">साइट MIDI वापरू शकते</translation>
@@ -6165,6 +6177,7 @@
 <translation id="7008815993384338777">सध्या रोमिंगमध्ये नाही</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> तुमचा कॅमेरा वापरत आहे</translation>
 <translation id="701080569351381435">स्रोत पहा</translation>
+<translation id="7011797924920577670">तुमच्या स्वारस्यांचा अंदाज लावते</translation>
 <translation id="7014174261166285193">स्थापना अयशस्वी.</translation>
 <translation id="7014480873681694324">हायलाइट काढून टाका</translation>
 <translation id="7017004637493394352">पुन्हा "Ok Google" म्हणा</translation>
@@ -6232,6 +6245,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> हे तुमच्या अ‍ॅडमिनिस्ट्रेटरद्वारे व्यवस्थापित केले जाते</translation>
 <translation id="7085389578340536476">Chrome ला ऑडिओ रेकॉर्ड करण्‍याची अनुमती द्यायची का?</translation>
 <translation id="708550780726587276">(कॉंफिगर केलेले नाही)</translation>
+<translation id="7086531709814430567">या एक्स्टेंशनना नेहमी <ph name="ORIGIN" /> वर रन होण्याची अनुमती द्यायची का?</translation>
 <translation id="7086672505018440886">संग्रहणामध्ये Chrome लॉग फाइलचा समावेश करा.</translation>
 <translation id="7088434364990739311">अपडेट तपासणी सुरू होण्‍यात अयशस्वी (एरर कोड <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">हे डिव्‍हाइस ॲडमिनिस्ट्रेटरद्वारे तरतूद नसलेल्‍या स्‍थितीमध्ये ठेवले गेले आहे. ते नोंदणीकरिता सक्षम करण्‍यासाठी, कृपया तुमच्या ॲडमिनिस्ट्रेटरने डिव्‍हाइस एका प्रलंबित स्‍थितीमध्‍ये ठेवावे.</translation>
@@ -6330,7 +6344,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{पेजमधून बाहेर या}other{पेजमधून बाहेर या}}</translation>
 <translation id="7207457272187520234">वापर आणि निदान डेटा पाठवा. हे डिव्हाइस सध्या Google ला निदान, डिव्हाइस आणि अ‍ॅप वापर डेटा आपोआप पाठवत आहे. हे सिस्टम व अ‍ॅप स्थिरता आणि इतर सुधारणांमध्ये मदत करेल. काही एकत्रित डेटा Google अ‍ॅप्स आणि Android डेव्हलपर यांसारख्या भागीदारांनादेखील मदत करेल. हे सेटिंग मालकाद्वारे लागू केले जाते. तुमचे अतिरिक्त वेब आणि अ‍ॅप अ‍ॅक्टिव्हिटी सेटिंग सुरू केलेले असल्यास, हा डेटा तुमच्या Google खाते वर सेव्ह केला जाऊ शकतो.</translation>
 <translation id="7207631048330366454">अ‍ॅप्स शोधा</translation>
-<translation id="720808544705441386">ॲप उघडू शकत नाही</translation>
 <translation id="7210499381659830293">एक्स्टेंशन प्रिंटर</translation>
 <translation id="7211783048245131419">अद्याप कोणताही स्विच असाइन करण्यात आलेला नाही</translation>
 <translation id="7212097698621322584">बदलण्यासाठी तुमचा सध्याचा पिन एंटर करा. तुम्हाला तुमचा पिन माहित नसल्यास, तुम्हाला तुमची सिक्युरिटी की रीसेट करणे आवश्यक असेल, त्यानंतर तुम्ही नविन पिन तयार करू शकता.</translation>
@@ -6515,7 +6528,7 @@
 <translation id="7403642243184989645">स्रोत डाउनलोड करत आहे</translation>
 <translation id="7404065585741198296">USB केबल असलेला तुमचा फोन</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{सुरक्षा तपासणी एका तासापूर्वी रन केली गेली}other{सुरक्षा तपासणी {NUM_HOURS} तासांपूर्वी रन केली गेली}}</translation>
-<translation id="740624631517654988">पॉप-अप अवरोधित</translation>
+<translation id="740624631517654988">पॉप-अप ब्लॉक केलेले होते</translation>
 <translation id="7407430846095439694">इंपोर्ट करा आणि प्रतिबद्ध करा</translation>
 <translation id="7407504355934009739">बहुतेक लोक या साइटवरून येणार्‍या सूचना ब्लॉक करतात</translation>
 <translation id="740810853557944681">एखादा प्रिंट सर्व्हर जोडा</translation>
@@ -6950,7 +6963,7 @@
 <translation id="7807067443225230855">शोध आणि साहाय्यक</translation>
 <translation id="7807117920154132308"><ph name="SUPERVISED_USER_NAME" /> ने आधीच दुसर्‍या डिव्हाइसवर Google Assistant सेट केले आहे असे दिसते. या डिव्हाइसवर स्क्रीन संदर्भ सुरू करून <ph name="SUPERVISED_USER_NAME" /> हे Assistant चा पुरेपूर वापर करू शकतात.</translation>
 <translation id="7807711621188256451">तुमचा कॅमेरा ॲक्सेस करण्यासाठी <ph name="HOST" /> ला नेहमी परवानगी द्या</translation>
-<translation id="7810202088502699111">या पेजवर पॉप-अप अवरोधित केलेले होते.</translation>
+<translation id="7810202088502699111">या पेजवर पॉप-अप ब्लॉक केलेले होते.</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> कास्ट करा</translation>
 <translation id="7814458197256864873">&amp;कॉपी करा</translation>
 <translation id="7815680994978050279">धोकादायक डाउनलोड ब्लॉक केले</translation>
@@ -7482,7 +7495,7 @@
 <translation id="8317671367883557781">नेटवर्क कनेक्शन जोडा</translation>
 <translation id="8319414634934645341">विस्तारित की वापर</translation>
 <translation id="8321837372750396788">हे <ph name="DEVICE_TYPE" /> <ph name="MANAGER" /> द्वारे व्यवस्थापित केले जाईल.</translation>
-<translation id="8322814362483282060">या पृष्ठाला आपल्या मायक्रोफोनवर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
+<translation id="8322814362483282060">तुमच्या मायक्रोफोनचा अ‍ॅक्सेस या पेजसाठी ब्लॉक केला आहे.</translation>
 <translation id="8323167517179506834">URL टाइप करा</translation>
 <translation id="8323317289166663449">तुमच्या कॉंप्युटरवरील आणि सर्व वेबसाइटवरील तुमचा सर्व डेटा वाचू व बदलू शकते</translation>
 <translation id="8324784016256120271">वेगवेगळ्या साइटवरील तुमची ब्राउझिंग ॲक्टिव्हिटी पाहण्यासाठी साइट कुकी वापरू शकतात, उदाहरणार्थ, जाहिराती पर्सनलाइझ करण्यासाठी</translation>
@@ -8365,6 +8378,7 @@
 <translation id="9215742531438648683">Google Play स्टोअर अनइंस्टॉल करा</translation>
 <translation id="9218430445555521422">डीफॉल्ट म्हणून सेट करा</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (सपोर्ट नसलेले अ‍ॅप)</translation>
+<translation id="9219582468404818260">आम्हाला आणखी चांगले वेब तयार करण्यात मदत करा</translation>
 <translation id="9220525904950070496">खाते काढून टाका</translation>
 <translation id="9220820413868316583">उचला आणि नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="923467487918828349">सर्व दर्शवा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 188a4d0..4b0c17c92 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Ciri yang memerlukan lokasi anda tidak akan berfungsi</translation>
 <translation id="1329191040029425999">Pastikan peranti anda terkini dan sila cuba lagi</translation>
 <translation id="1330145147221172764">Dayakan papan kekunci pada skrin</translation>
-<translation id="1331625853030156663">Untuk membuka <ph name="APP_NAME" />, dayakan "Tunjukkan skrin kunci apabila bangkit daripada tidur"</translation>
 <translation id="1331977651797684645">Ini saya.</translation>
 <translation id="1333489022424033687">Sesetengah ciri di <ph name="ORIGIN" /> mungkin tidak berfungsi sehingga anda mengosongkan data yang telah disimpan pada peranti anda oleh tapak lain itu</translation>
 <translation id="1333965224356556482">Jangan benarkan laman melihat lokasi anda</translation>
@@ -6332,7 +6331,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Keluar daripada halaman}other{Keluar daripada halaman}}</translation>
 <translation id="7207457272187520234">Hantar data penggunaan dan diagnostik. Pada masa ini, peranti ini menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. Tetapan ini dikuatkuasakan oleh pemilik. Jika tetapan Aktiviti Web &amp; Apl tambahan anda dihidupkan, data ini mungkin disimpan pada Akaun Google anda.</translation>
 <translation id="7207631048330366454">Cari apl</translation>
-<translation id="720808544705441386">Tidak dapat membuka apl</translation>
 <translation id="7210499381659830293">Pencetak sambungan</translation>
 <translation id="7211783048245131419">Belum ada suis yang telah ditetapkan</translation>
 <translation id="7212097698621322584">Masukkan PIN semasa anda untuk menukar PIN. Jika anda tidak tahu PIN anda, anda perlu menetapkan semula kunci keselamatan, kemudian buat PIN baharu.</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index bd6c68a..1b7c83f 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">သင့်တည်နေရာ လိုအပ်သည့် ဝန်ဆောင်မှုများ အလုပ်လုပ်မည်မဟုတ်ပါ</translation>
 <translation id="1329191040029425999">သင့်စက် အပ်ဒိတ်ဖြစ်နေကြောင်း သေချာစစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ</translation>
 <translation id="1330145147221172764">မျက်နှာပြင် ကီးဘုတ်ကို ပြရန်</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ကိုဖွင့်ရန် "နားနေချိန်မှ နိုးသောအခါ လော့ခ်မျက်နှာပြင် ပြခြင်း" ကို ဖွင့်ပါ</translation>
 <translation id="1331977651797684645">၎င်းသည် ကျွန်ုပ်ဖြစ်ပါသည်။</translation>
 <translation id="1333489022424033687">သင့်စက်ပေါ်တွင် အခြားဝဘ်ဆိုက်များက သိမ်းဆည်းထားသည့် ဒေတာများကို မဖျက်မချင်း <ph name="ORIGIN" /> ရှိ ဝန်ဆောင်မှုအချို့ကို အသုံးပြုနိုင်မည် မဟုတ်ပါ</translation>
 <translation id="1333965224356556482">သင့်တည်နေရာကိုကြည့်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation>
@@ -849,6 +848,7 @@
 <translation id="1794051631868188691"><ph name="MERCHANT" /> ကို ဘယ်တော့မှ မပြပါနှင့်</translation>
 <translation id="1794791083288629568">ဤပြဿနာကို ဖြေရှင်းရာတွင် ကူညီပေးရန် အကြံပြုချက် ပေးပို့ပါ။</translation>
 <translation id="1795214765651529549">ဂန္ထဝင်ကို အသုံးပြုရန်</translation>
+<translation id="1796105431091975902">‘Ansible လမ်းညွှန်’ ထည့်ရန် ရွေးပါ</translation>
 <translation id="1796588414813960292">အသံလိုအပ်သော ဝန်ဆောင်မှုများ အလုပ်လုပ်မည်မဟုတ်ပါ</translation>
 <translation id="1800502858278951817"><ph name="SITE_NAME" /> အား ဖတ်ရန်နှင့် ပြောင်းလဲရန် တောင်းဆိုထားသော နောက်ဆက်တွဲများ မရှိပါ</translation>
 <translation id="1802624026913571222">အဖုံးကို ပိတ်လိုက်သည့်အခါ နားရန်</translation>
@@ -3046,6 +3046,7 @@
 <translation id="389901847090970821">ကီးဘုတ်ကို ရွေးပါ</translation>
 <translation id="3900966090527141178">စကားဝှက်များကို တင်ပို့ရန်</translation>
 <translation id="3903187154317825986">အသင့်ပါ ကီးဘုတ်</translation>
+<translation id="3903191712482985591">လမ်းညွှန်ထည့်ရန်</translation>
 <translation id="3904326018476041253">တည်နေရာဝန်ဆောင်မှုများ</translation>
 <translation id="3904849010307028014">အကောင့်တွင် ပုံမှန်လက်မှတ်ထိုးဝင်ခြင်းကဲ့သို့ ဝဘ်ဆိုက်နှင့် သင်၏ပြန်လှန်တုံ့ပြန်မှုပေါ် အခြေခံ၍ အဆိုပါဝဘ်ဆိုက်က သင့်ဘရောင်ဇာကို ယုံကြည်မှုတိုကင် ထုတ်ပေးနိုင်သည်။ နောက်ပိုင်းတွင် သင်ဝင်ကြည့်သော အခြားဝဘ်ဆိုက်များက ယုံကြည်မှုတိုကင်ကို စစ်ဆေးပြီး မှန်ကန်ကြောင်းတွေ့ရှိပါက သင့်အား ဘော့တ်အဖြစ်မဟုတ်ဘဲ လူပုဂ္ဂိုလ်အနေနှင့် ဆက်ဆံနိုင်ခြေရှိသည်။</translation>
 <translation id="3905761538810670789">အက်ပ်ပြင်ဆင်ရန်</translation>
@@ -3654,6 +3655,7 @@
 <translation id="4510479820467554003">မိဘအကောင့် စာရင်း</translation>
 <translation id="451102079304155829">ဈေးခြင်းတောင်းများ</translation>
 <translation id="4513872120116766993">ခန့်မှန်းရေးသားမှု</translation>
+<translation id="4513909579793564731">လမ်းညွှန် သတ်မှတ်ရန်</translation>
 <translation id="4513946894732546136">အကြံပြုချက်</translation>
 <translation id="451407183922382411"><ph name="COMPANY_NAME" /> က ပံ့ပိုးပေးထားပါသည်</translation>
 <translation id="4514610446763173167">ဗီဒီယိုကို ဖွင့်ရန် သို့မဟုတ် ခေတ္တရပ်ရန် ခလုတ်နှိပ်ပါ</translation>
@@ -5484,6 +5486,7 @@
 <translation id="635609604405270300">ကိရိယာကို ဆက်ဖွင့်ထားပါ</translation>
 <translation id="63566973648609420">သင့်စကားဝှက်ရှိသူသာ သင်အသွင်ဝှက်ထားသည့် ဒေတာများကို ဖတ်နိုင်မည် ဖြစ်သည်။ စကားဝှက်ကို Google သို့ပို့ခြင်း သို့မဟုတ် သိမ်းဆည်းထားခြင်း မရှိပါ။ သင့်စကားဝှက်ကို မေ့သွားလျှင် သို့မဟုတ် ဤဆက်တင်ကို ပြောင်းလဲလိုလျှင် <ph name="BEGIN_LINK" />စင့်ခ်လုပ်ခြင်းကို ပြန်လည်သတ်မှတ်ပေးရန်<ph name="END_LINK" /> လိုအပ်ပါသည်။</translation>
 <translation id="6357305427698525450">ပံ့ပိုးထားသောလင့်ခ်အချို့ကို <ph name="APP_NAME" /> (သို့) <ph name="APP_NAME_2" /> တွင် ဖွင့်နိုင်ပါဦးမည်။</translation>
+<translation id="6357794994761110294"><ph name="SITE_NAME" /> ကို ဖတ်ပြီးပြောင်းရန် မည်သည့်နောက်ဆက်တွဲကိုမျှ ခွင့်မပြုပါ</translation>
 <translation id="6358884629796491903">နဂါး</translation>
 <translation id="6361850914223837199">မှားယွင်းမှု အသေးစိတ်များ:</translation>
 <translation id="6362853299801475928">&amp;ပြဿနာ အစီရင်ခံရန်...</translation>
@@ -6327,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{စာမျက်နှာကို ပိတ်ရန်}other{စာမျက်နှာများကို ပိတ်ရန်}}</translation>
 <translation id="7207457272187520234">အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ပါ။ ဤစက်ပစ္စည်းက အမှားရှာဖွေမှု၊ စက်ပစ္စည်းနှင့် အက်ပ်အသုံးပြုမှု ဒေတာတို့ကို လောလောဆယ်တွင် Google သို့ အလိုအလျောက် ပို့ပေးပါသည်။ ၎င်းက စနစ်နှင့် အက်ပ်တည်ငြိမ်မှု၊ အခြား တိုးတက်ပြင်ဆင်မှုများအတွက် ပံ့ပိုးပေးပါမည်။ စုစည်းထားသော ဒေတာအချို့က Google အက်ပ်နှင့် Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။ ဤဆက်တင်ကို ပိုင်ရှင်ဖြစ်သူက သတ်မှတ်ထားခြင်းဖြစ်သည်။ သင်၏ထပ်တိုး 'ဝဘ်နှင့် အက်ပ်လုပ်ဆောင်ချက်' ကို ဖွင့်ထားသည့်အခါ ဤဒေတာကို သင့် Google အကောင့်သို့ သိမ်းသွားပါမည်။</translation>
 <translation id="7207631048330366454">အက်ပ်များ ရှာပါ</translation>
-<translation id="720808544705441386">အက်ပ်ကို ဖွင့်မရပါ</translation>
 <translation id="7210499381659830293">နောက်ဆက်တွဲ ပရင်တာများ</translation>
 <translation id="7211783048245131419">မည်သည့်ခလုတ်ကိုမျှ မသတ်မှတ်ရသေးပါ</translation>
 <translation id="7212097698621322584">သင်၏ လက်ရှိပင်နံပါတ် ပြောင်းရန် ၎င်းကိုထည့်ပါ။ သင်၏ ပင်နံပါတ်ကို မသိလျှင် သင့်လုံခြုံရေးကီးကို ပြင်ဆင်သတ်မှတ်ပြီး ပင်နံပါတ်အသစ် ပြုလုပ်ပါ။</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 5ed98c9..ed7b1b5 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -331,7 +331,6 @@
 <translation id="1327794256477341646">तपाईंको स्थानसम्बन्धी जानकारी प्रयोग गर्ने सुविधाहरूले काम गर्ने छैनन्</translation>
 <translation id="1329191040029425999">आफ्नो डिभाइस अप टु डेट छ भन्ने कुरा सुनिश्चित गर्नुहोस् र कृपया फेरि प्रयास गर्नुहोस्</translation>
 <translation id="1330145147221172764">अन-स्क्रिन किबोर्ड सक्षम बनाउनुहोस्</translation>
-<translation id="1331625853030156663">तपाईं <ph name="APP_NAME" /> खोल्न चाहनुहुन्छ भने "डिभाइस स्लिप मोडबाट बाहिरिएपछि लक स्क्रिन देखाइयोस्" अन गर्नुहोस्</translation>
 <translation id="1331977651797684645">यो म थिएँ।</translation>
 <translation id="1333489022424033687">तपाईंले आफ्नो यन्त्रमा अन्य साइटहरूले भण्डारण गरेको डेटा नहटाएसम्म <ph name="ORIGIN" /> का केही सुविधाहरूले काम नगर्न सक्छन्</translation>
 <translation id="1333965224356556482">साइटहरूलाई मेरो स्थानसम्बन्धी जानकारी हेर्ने अनुमति नदिइयोस्</translation>
@@ -836,6 +835,7 @@
 <translation id="1794051631868188691"><ph name="MERCHANT" /> कहिल्यै नदेखाइयोस्</translation>
 <translation id="1794791083288629568">हामीलाई यस समस्याको समाधान गर्नमा मद्दत गर्न प्रतिक्रिया पठाउनुहोस्।</translation>
 <translation id="1795214765651529549">क्लासिक प्रयोग गर्नुहोस्</translation>
+<translation id="1796105431091975902">आफूले हाल्न चाहेको Ansible प्लेबुक चयन गर्नुहोस्</translation>
 <translation id="1796588414813960292">जुन सुविधा चल्न ध्वनि चाहिन्छ ती सुविधाले काम गर्ने छैनन्</translation>
 <translation id="1800502858278951817">कुनै पनि एक्स्टेन्सनले <ph name="SITE_NAME" /> रिड गर्ने तथा बदल्ने अनुमति मागेको छैन</translation>
 <translation id="1802624026913571222">कभर बन्द गरिएको बेला शयन अवस्थामा लानुहोस्</translation>
@@ -1004,6 +1004,7 @@
 <translation id="1944921356641260203">अपडेट फेला पर्‍यो</translation>
 <translation id="1947136734041527201">तपाईंले यो सेटिङ अन गर्नुभयो भने तपाईं आफूले पहिचान सेवा प्रदायकबाट प्राप्त गरेको खाता प्रयोग गरी वेबसाइटहरूमा साइन इन गर्न सक्नुहुन्छ</translation>
 <translation id="1949584741547056205">द्रुत जवाफहरू</translation>
+<translation id="1949849604471335579">वालपेपर, स्क्रिन सेभर र एक्सेन्टको रङलगायतका कुराहरू पर्सनलाइज गर्नुहोस्</translation>
 <translation id="1951012854035635156">सहायक</translation>
 <translation id="1954597385941141174">साइटहरूले USB मा कनेक्ट हुने अनुमति माग्न सक्छन्</translation>
 <translation id="1954813140452229842">आदान प्रदान माउन्ट गर्ने क्रममा त्रुटि भयो। कृपया आफ्ना प्रमाणहरूको जाँच गरी फेरि प्रयास गर्नुहोस्।</translation>
@@ -1035,6 +1036,7 @@
 <translation id="1981434377190976112">सबै वेबसाइटमा भएका तपाईंका सबै डेटा पढ्न</translation>
 <translation id="1984417487208496350">सुरक्षारहित मोड (सिफारिस गरिँदैन)</translation>
 <translation id="1987317783729300807">खाताहरू</translation>
+<translation id="1987574314042117472">लोकप्रिय एपहरू चयन गर्नुहोस् र इन्स्टल गर्नुहोस्</translation>
 <translation id="1988259784461813694">VM चलाउन पूरा गर्नु पर्ने मापदण्डहरू</translation>
 <translation id="1989112275319619282">ब्राउज गर्नुहोस्</translation>
 <translation id="1989903373608997757">सधैँ प्रयोग गरियोस्</translation>
@@ -1100,6 +1102,7 @@
 <translation id="2048554637254265991">कन्टेनर म्यानेजर सुरु गर्ने क्रममा त्रुटि भयो। कृपया फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="2048653237708779538">कारबाही उपलब्ध छैन</translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
+<translation id="2052572566310583903">तपाईंका अन्य डिभाइसमा इन्स्टल गरिएका एप</translation>
 <translation id="2053312383184521053">निष्क्रिय स्थिति लगत</translation>
 <translation id="2054240652864153171"><ph name="PARTITION_SITE_NAME" /> मा पार्टिसन गरिएको <ph name="SITE_NAME" /> को साइट डेटा मेटाउने हो?</translation>
 <translation id="2055585478631012616">तपाईं खुला ट्याबहरूका साथै यी साइटहरूबाट साइन आउट हुनु हुने छ</translation>
@@ -1262,6 +1265,7 @@
 <translation id="2191754378957563929">सक्रिय छ</translation>
 <translation id="2192505247865591433">बाट:</translation>
 <translation id="2193365732679659387">विश्वास सम्बन्धी सेटिङहरू</translation>
+<translation id="2194554416429452547">Chrome ले परीक्षण अवधिमा स्प्याम तथा ठगी रोकथाम गर्ने र साइटहरूका बिचमा सेयर गर्ने सुविधा सीमित पार्ने विभिन्न उपायहरूको परीक्षण गरिरहेको छ। साथै, Chrome ले साइटहरूले तपाईंलाई विज्ञापनहरू देखाउनका निम्ति प्रयोग गर्न सक्ने <ph name="ESTIMATE_INTERESTS_LINK" />। तपाईं सेटिङमा गई आफ्ना रुचिहरू व्यवस्थापन गर्न सक्नुहुन्छ।</translation>
 <translation id="2194856509914051091">विचार गर्नु पर्ने कुराहरू</translation>
 <translation id="2195331105963583686">तपाईं उक्त समयपछि पनि यो <ph name="DEVICE_TYPE" /> प्रयोग गरिरहन सक्नु हुने छ तर यसले सफ्टवेयर तथा सुरक्षासम्बन्धी स्वचालित अद्यावधिकहरू भने प्राप्त गर्ने छैन</translation>
 <translation id="2195729137168608510">इमेल संरक्षण</translation>
@@ -1866,6 +1870,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">व्याकरणसँगै हिज्जे पनि जाँच्नुहोस्</translation>
 <translation id="2753677631968972007">म्यानुअल रूपमा साइटका अनुमतिहरू नियन्त्रण गर्नुहोस्।</translation>
+<translation id="2754825024506485820">Google Play स्टोरमा उत्पादकत्वदेखि मनोरञ्‍जनलगायतका कुरासँग सम्बन्धित आफूलाई चाहिएका एपहरू भेट्टाउनुहोस्। तपाईं जुनसुकै बेला एपहरू इन्स्टल गर्न सक्नुहुन्छ।</translation>
 <translation id="2755349111255270002">यो <ph name="DEVICE_TYPE" /> रिसेट गर्नुहोस्</translation>
 <translation id="2755367719610958252">पहुँच सम्बन्धी सुविधाहरूलाई व्यवस्थापन गर्नुहोस्</translation>
 <translation id="275662540872599901">स्क्रिन निष्क्रिय छ</translation>
@@ -1942,6 +1947,7 @@
 <translation id="2815693974042551705">बुकमार्क फोल्डर</translation>
 <translation id="2816319641769218778">आफ्नो Google खातामा पासवर्डहरू सुरक्षित गर्न सिंक गर्ने सुविधा अन गर्नुहोस्।</translation>
 <translation id="2816628817680324566">यो साइटलाई तपाईंको सुरक्षा साँचो पहिचान गर्न दिने हो?</translation>
+<translation id="2817435998497102771">आफ्नो वालपेपर र शैली तय गर्नुहोस्</translation>
 <translation id="2818476747334107629">प्रिन्टर सम्बन्धी विवरणहरू</translation>
 <translation id="2819167288942847344">एपले असामान्य व्यवहार नदेखाओस् भन्नाका लागि फोन, ट्याब्लेट वा आकार बदल्न मिल्ने विन्डोका डिफल्ट आकार प्रयोग गर्नुहोस्</translation>
 <translation id="2820957248982571256">स्क्यान गर्दै...</translation>
@@ -2836,6 +2842,7 @@
 <translation id="3727144509609414201">उपलब्ध WiFi नेटवर्कहरू</translation>
 <translation id="3727187387656390258">पपअप निरीक्षण गर्नुहोस्</translation>
 <translation id="372722114124766626">एक पटक मात्र</translation>
+<translation id="3727332897090187514">कुनै पनि नोट हालिएको छैन</translation>
 <translation id="3727473233247516571">ब्याक/फर्वार्ड क्यास गरिएको सबफ्रेम: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">आफ्नो फोनमा प्राप्त हुने सूचनाहरू आफ्नो Chromebook मा पनि प्राप्त गर्नुहोस्</translation>
 <translation id="3728681439294129328">नेटवर्कको ठेगाना कन्फिगर गर्नुहोस्</translation>
@@ -3031,6 +3038,7 @@
 <translation id="389901847090970821">किबोर्ड चयन गर्नुहोस्</translation>
 <translation id="3900966090527141178">पासवर्डहरू निर्यात गर्नुहोस्</translation>
 <translation id="3903187154317825986">अन्तर्निर्मित किबोर्ड</translation>
+<translation id="3903191712482985591">प्लेबुक हाल्नुहोस्</translation>
 <translation id="3904326018476041253">लोकेसन सर्भिस</translation>
 <translation id="3904849010307028014">तपाईंले कुनै खातामा नियमित रूपमा साइन इन गर्नेलगायतका कुनै साइटमार्फत गर्ने गतिविधिका आधारमा उक्त साइटले तपाईंको ब्राउजरका हकमा ट्रस्ट टोकन जारी गर्न सक्छ। त्यसपछि तपाईंले खोल्ने अन्य साइटहरूले ट्रस्ट टोकन वैध छ कि छैन भनी जाँच्छन् र वैध ट्रस्ट टोकन फेला पारे भने ती साइटहरूले तपाईंलाई बटका रूपमा नभई व्यक्तिका रूपमा व्यवहार गर्ने बढी सम्भावना हुन्छ।</translation>
 <translation id="3905761538810670789">एप मर्मत गर्नुहोस्</translation>
@@ -3170,6 +3178,7 @@
 <translation id="4031527940632463547">सेन्सरहरूमा रोक लगाइयो</translation>
 <translation id="4033415645631238123">अब Smart Lock मार्फत साइन इन गर्ने सुविधा उपलब्ध छैन। तर तपाईं अझै पनि Smart Lock मार्फत अनलक गर्न सक्नुहुन्छ।</translation>
 <translation id="4033471457476425443">नयाँ फोल्डर थप्नुहोस्</translation>
+<translation id="4033711848170683365">तपाईंले यसो गर्नुभयो भने यो डिभाइसमा भएको ब्राउजिङ डेटा सदाका लागि मेटाइने छ। तपाईंको <ph name="DEVICE_TYPE" /> मा इन्स्टल गरिएका अन्य एपहरूले यो प्रोफाइलमा लिंक गरिएका Google खाताहरू प्रयोग गर्न सक्छन्। तपाईं <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> मा गई यी खाताहरू हटाउन सक्नुहुन्छ।</translation>
 <translation id="4033963223187371752">सुरक्षित साइटहरूले असुरक्षित खालका फोटो वा वेब फ्रेम जस्ता सामग्री इम्बेड गर्न सक्छन्</translation>
 <translation id="4034824040120875894">प्रिन्टर</translation>
 <translation id="4035758313003622889">&amp;कार्य व्यवस्थापक</translation>
@@ -3448,6 +3457,7 @@
 <translation id="4314815835985389558">सिंक व्यवस्थापन गर्नुहोस्</translation>
 <translation id="4315933848520197627">खाता अनलिंक गर्नुहोस्</translation>
 <translation id="4316850752623536204">विकासकर्ता वेबसाइट</translation>
+<translation id="4317733381297736564">एपभित्र हुने किनमेल</translation>
 <translation id="4317820549299924617">पुष्टि गर्ने कार्य असफल भयो</translation>
 <translation id="4320177379694898372">इन्टरनेट छैन</translation>
 <translation id="4322394346347055525">अन्य ट्याबहरू बन्द गर्नुहोस्</translation>
@@ -3638,6 +3648,7 @@
 <translation id="4510479820467554003">अभिभावकको खाताको सूची</translation>
 <translation id="451102079304155829">कार्टहरू</translation>
 <translation id="4513872120116766993">पूर्वानुमानयुक्त लेखन</translation>
+<translation id="4513909579793564731">प्लेबुक एट्याच गर्नुहोस्</translation>
 <translation id="4513946894732546136">पृष्ठपोषण</translation>
 <translation id="451407183922382411"><ph name="COMPANY_NAME" /> द्वारा संचालित</translation>
 <translation id="4514610446763173167">भिडियो प्ले वा पज गर्न टगल गर्नुहोस्‌</translation>
@@ -4030,6 +4041,7 @@
 <translation id="4893522937062257019">लक स्क्रिनमा</translation>
 <translation id="4897496410259333978">थप जानकारीका लागि आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्।</translation>
 <translation id="4898011734382862273">प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" ले प्रमाणीकरण अधिकारीको प्रतिनिधित्व गर्दछ</translation>
+<translation id="4899696330053002588">यसमा विज्ञापनहरू समावेश हुन्छन्</translation>
 <translation id="489985760463306091">हानिकारक सफ्टवेयर हटाउने कार्य सम्पन्न गर्न आफ्नो कम्प्युटरलाई पुन:सुरु गर्नुहोस्</translation>
 <translation id="4900392736118574277">तपाईंको सुरुवात पृष्ठलाई <ph name="URL" /> मा परिवर्तन गरिएको छ।</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> हर्ज - इन्टरलेस गरिएको</translation>
@@ -4403,6 +4415,7 @@
 <translation id="52912272896845572">निजी कुञ्जी फाइल अवैध छ।</translation>
 <translation id="5291739252352359682">Chrome मा मिडियाका क्याप्सनहरू स्वतः सिर्जना गर्छ (यो सेवा हाल अङ्ग्रेजी भाषामा उपलब्ध छ)। सबै अडियो र क्याप्सनहरू डिभाइसभित्रै व्यवस्थापन गरिन्छन् र तिनलाई यन्त्रबाट अन्यत्र पठाइँदैन।</translation>
 <translation id="529175790091471945">यस यन्त्रलाई फर्म्याट गर्नुहोस्</translation>
+<translation id="5292862864186939732">"<ph name="EXTENSION_NAME" />" लाई सधैँ <ph name="ORIGIN" /> मा चलाउने अनुमति दिने हो?</translation>
 <translation id="529296195492126134">अल्पकालिक मोड प्रयोग गर्न मिल्दैन। कृपया आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्</translation>
 <translation id="5293170712604732402">सेटिङहरूलाई तिनीहरूकै डिफल्ट मूल सेटिङमा पुनर्स्थापना गर्नुहोस्</translation>
 <translation id="5294097441441645251">अनिवार्य रूपमा लोअरकेस वर्ण वा underscore बाट सुरु हुनु पर्छ</translation>
@@ -5159,6 +5172,7 @@
 <translation id="6054961935262556546">पहुँचसम्बन्धी सेटिङ बदल्नुहोस्</translation>
 <translation id="6055171183283175969">तपाईंले प्रविष्ट गर्नुभएको पासवर्ड गलत छ।</translation>
 <translation id="6055392876709372977">RSA इन्क्रिप्शनको साथमा PKCS #1 SHA-256</translation>
+<translation id="6055544610007596637">Google Play स्टोरबाट आफ्नो <ph name="DEVICE_TYPE" /> मा चल्ने एपहरू इन्स्टल गर्नुहोस्</translation>
 <translation id="6056710589053485679">सामान्य पुन: लोड</translation>
 <translation id="6057312498756061228">यो फाइल सुरक्षासम्बन्धी जाँच गर्नै नसकिने गरी ठुलो छ। तपाईं बढीमा ५० एम.बि. सम्मका फाइलहरू खोल्न सक्नुहुन्छ।</translation>
 <translation id="6057381398996433816">यो साइटलाई चाल तथा प्रकाशसम्बन्धी सेन्सरहरू प्रयोग गर्नबाट रोक लगाइएको छ।</translation>
@@ -5467,6 +5481,7 @@
 <translation id="635609604405270300">यन्त्रलाई सक्रिय राख्नुहोस्</translation>
 <translation id="63566973648609420">तपाईंको इन्क्रिप्ट गरिएको डेटालाई तपाईंको पासफ्रेज भएको व्यक्तिले मात्र पढ्न सक्छ। पासफ्रेजलाई Google मा पठाइँदैन वा त्यहाँ भण्डारण गरिदैन। यदि तपाईंले आफ्नो पासफ्रेज बिर्सनुभयो वा यस सेटिङलाई परिवर्तन गर्न चाहनुहुन्छ भने तपाईंले <ph name="BEGIN_LINK" />सिंकलाई रिसेट<ph name="END_LINK" /> गर्नुपर्ने हुन्छ।</translation>
 <translation id="6357305427698525450">खोल्न मिल्ने केही लिंकहरू अझै पनि <ph name="APP_NAME" /> मा वा  <ph name="APP_NAME_2" /> मा खुल्ने छन्।</translation>
+<translation id="6357794994761110294">कुनै पनि एक्स्टेन्सनलाई <ph name="SITE_NAME" /> रिड गर्ने तथा बदल्ने अनुमति दिइएको छैन</translation>
 <translation id="6358884629796491903">ड्रागन</translation>
 <translation id="6361850914223837199">त्रुटि विवरणहरू:</translation>
 <translation id="6362853299801475928">एउटा मामिलालाई &amp;रिपोर्ट गर्नुहोस्...</translation>
@@ -6131,6 +6146,7 @@
 <translation id="7002055706763150362">Chromebook का लागि स्मार्ट लक सेटअप गर्न Google ले यो तपाईं नै हो भनेर सुनिश्चित गर्नुपर्छ— सुरु गर्न तपाईंको पासवर्ड टाइप गर्नुहोस्।</translation>
 <translation id="7003339318920871147">वेब डाटाबेसहरू</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} वटा फाइल}other{{COUNT} वटा फाइल}}</translation>
+<translation id="7003705861991657723">अल्फा</translation>
 <translation id="7003723821785740825">आफ्नो डिभाइस अनलक गर्ने अझ द्रुत तरिका सेटअप गर्नुहोस्</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> बाट अज्ञात उत्पादन <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">साइटले MIDI प्रयोग गर्न सक्छ</translation>
@@ -6147,6 +6163,7 @@
 <translation id="7008815993384338777">हाल रोमिङ नेटवर्क प्रयोग गरिँदै छैन</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> ले तपाईंको क्यामेरा प्रयोग गरिरहेको छ</translation>
 <translation id="701080569351381435">स्रोत हेर्नुहोस्</translation>
+<translation id="7011797924920577670">यसले तपाईंका रुचिहरू पत्ता लगाउँछ</translation>
 <translation id="7014174261166285193">स्थापना असफल भयो।</translation>
 <translation id="7014480873681694324">हाइलाइट हटाउनुहोस्</translation>
 <translation id="7017004637493394352">फेरि "Ok Google" भन्नुहोस्</translation>
@@ -6214,6 +6231,7 @@
 <translation id="7082568314107259011">तपाईंका एड्मिन <ph name="NETWORK_NAME" /> व्यवस्थापन गर्नुहुन्छ</translation>
 <translation id="7085389578340536476">Chrome लाई अडियो रेकर्ड गर्न दिने हो?</translation>
 <translation id="708550780726587276">(कन्फिगर गरिएको छैन)</translation>
+<translation id="7086531709814430567">यी एक्स्टेन्सनहरूलाई सधैँ <ph name="ORIGIN" /> मा चलाउने अनुमति दिने हो?</translation>
 <translation id="7086672505018440886">अभिलेखमा Chrome का लग फाइलहरू समावेश गरियोस्।</translation>
 <translation id="7088434364990739311">अद्यावधिक जाँच सुरु हुन असफल भयो (त्रुटि कोड <ph name="ERROR" />)।</translation>
 <translation id="7088674813905715446">यस यन्त्रलाई प्रशासकद्वारा एक डिप्रोभिजन गरिएको स्थितिमा राखिएको छ। त्यसलाई भर्ती गर्न सक्षम गर्नको लागि, कृपया तपाइँको प्रशासकलाई यन्त्रलाई पेन्डिङ स्थितिमा राख्न लगाउनुहोस्।</translation>
@@ -6312,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{पृष्ठबाट बाहिरिनुहोस्}other{पृष्ठहरूबाट बाहिरिनुहोस्}}</translation>
 <translation id="7207457272187520234">प्रयोग तथा निदानसम्बन्धी डेटा पठाउनुहोस्। यो यन्त्रले हाल निदान, डिभाइस र एपको प्रयोगसम्बन्धी डेटा स्वतः Google लाई पठाइरहेको छ। यसले प्रणाली तथा एपको स्थिरता र अन्य कुराहरूमा सुधार ल्याउन मद्दत गर्ने छ। केही समग्र डेटाले Google का एप तथा Android का विकासकर्ता जस्ता साझेदारहरूलाई पनि मद्दत गर्ने छन्। यो सेटिङ मालिकले लागू गर्छन्। तपाईंको खातामा अतिरिक्त वेब तथा एपसम्बन्धी गतिविधिको सेटिङ सक्रिय गरिएको छ भने यो डेटा तपाईंको Google खातामा सुरक्षित गरिन सक्छ।</translation>
 <translation id="7207631048330366454">एपहरू खोज्नुहोस्</translation>
-<translation id="720808544705441386">एप खोल्न सकिएन</translation>
 <translation id="7210499381659830293">विस्तारसम्बन्धी प्रिन्टरहरू</translation>
 <translation id="7211783048245131419">अहिलेसम्म कुनै पनि स्विच तोकिएको छैन</translation>
 <translation id="7212097698621322584">यसलाई बदल्न आफ्नो हालको PIN प्रविष्टि गर्नुहोस्। तपाईंलाई आफ्नो PIN थाहा छैन भने तपाईंले सुरक्षा साँचो रिसेट गर्नु पर्छ र त्यसपछि नयाँ PIN सिर्जना गर्नु पर्छ।</translation>
@@ -8347,6 +8364,7 @@
 <translation id="9215742531438648683">Google Play Store अनइन्स्टल गर्नुहोस्</translation>
 <translation id="9218430445555521422">डिफल्ट रूपमा सेट गर्नुहोस्</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (चलाउन नमिल्ने एप)</translation>
+<translation id="9219582468404818260">हामीलाई वेबको गुणस्तर अझ राम्रो बनाउन मद्दत गर्नुहोस्</translation>
 <translation id="9220525904950070496">खाता हटाउनुहोस्</translation>
 <translation id="9220820413868316583">औँला उठाई फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="923467487918828349">सबै देखाउनुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 8b7f39d..7ce3df4 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Functies waarvoor je locatie nodig is, werken niet</translation>
 <translation id="1329191040029425999">Zorg dat je apparaat up-to-date is en probeer het opnieuw</translation>
 <translation id="1330145147221172764">Schermtoetsenbord aanzetten</translation>
-<translation id="1331625853030156663">Als je <ph name="APP_NAME" /> wilt openen, zet je 'Vergrendelscherm bekijken bij activering vanuit de slaapstand' aan</translation>
 <translation id="1331977651797684645">Dit was ik.</translation>
 <translation id="1333489022424033687">Sommige functies op <ph name="ORIGIN" /> werken mogelijk pas als je gegevens wist die andere sites op je apparaat hebben opgeslagen</translation>
 <translation id="1333965224356556482">Niet toestaan dat sites je locatie zien</translation>
@@ -6324,7 +6323,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Pagina afsluiten}other{Pagina's afsluiten}}</translation>
 <translation id="7207457272187520234">Stuur gebruiks- en diagnostische gegevens. Dit apparaat stuurt momenteel automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google. Deze gegevens kunnen worden gebruikt om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Deze instelling wordt afgedwongen door de eigenaar. Als je de instelling voor aanvullende Web- en app-activiteit hebt aangezet, kunnen deze gegevens worden opgeslagen in je Google-account.</translation>
 <translation id="7207631048330366454">Apps zoeken</translation>
-<translation id="720808544705441386">Kan app niet openen</translation>
 <translation id="7210499381659830293">Printers via extensie</translation>
 <translation id="7211783048245131419">Er is nog geen schakelaar toegewezen</translation>
 <translation id="7212097698621322584">Voer je huidige pincode in om deze te wijzigen. Als je je pincode niet weet, moet je de beveiligingssleutel resetten en vervolgens een nieuwe pincode maken.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 053192a..886bc886 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funksjoner som krever posisjonen din, kommer ikke til å virke</translation>
 <translation id="1329191040029425999">Sørg for at enheten er oppdatert, og prøv på nytt</translation>
 <translation id="1330145147221172764">Slå på skjermtastaturet</translation>
-<translation id="1331625853030156663">For å åpne <ph name="APP_NAME" />, slå på «Vis låseskjermen ved oppvåkning etter hvilemodus».</translation>
 <translation id="1331977651797684645">Dette var meg.</translation>
 <translation id="1333489022424033687">Noen funksjoner på <ph name="ORIGIN" /> fungerer kanskje ikke før du sletter data som andre nettsteder har lagret på enheten</translation>
 <translation id="1333965224356556482">Ikke la nettsteder se posisjonen din</translation>
@@ -6322,7 +6321,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Lukk siden}other{Lukk sidene}}</translation>
 <translation id="7207457272187520234">Send bruks- og diagnostikkdata. Denne enheten sender for øyeblikket diagnostikk-, enhets- og appbruksdata til Google automatisk. Dette bidrar til å gjøre systemet og appene bedre og mer stabile. Noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere. Denne innstillingen håndheves av eieren. Hvis du har slått på innstillingen for annen nett- og appaktivitet, kan disse dataene bli lagret i Google-kontoen din.</translation>
 <translation id="7207631048330366454">Søk etter apper</translation>
-<translation id="720808544705441386">Kan ikke åpne appen</translation>
 <translation id="7210499381659830293">Utvidelsesskrivere</translation>
 <translation id="7211783048245131419">Ingen bryter er tilordnet ennå</translation>
 <translation id="7212097698621322584">Skriv inn den nåværende PIN-koden for å endre den. Hvis du ikke kan PIN-koden, må du tilbakestille sikkerhetsnøkkelen og deretter opprette en ny PIN-kode.</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 788b6bb..952ea77 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">ଆପଣଙ୍କ ଲୋକେସନ୍ ଆବଶ୍ୟକ କରୁଥିବା ଫିଚରଗୁଡ଼ିକ କାମ କରିବ ନାହିଁ</translation>
 <translation id="1329191040029425999">ଆପଣଙ୍କ ଡିଭାଇସ ଅପଟୁଡେଟ ଥିବା ସୁନିଶ୍ଚିତ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation>
 <translation id="1330145147221172764">ଅନ୍-ସ୍କ୍ରିନ୍ କୀ'ବୋର୍ଡ ସକ୍ଷମ କରନ୍ତୁ</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" />କୁ ଖୋଲିବା ପାଇଁ "ନିଷ୍କ୍ରିୟତାରୁ ବାହାରିବା ବେଳେ ଲକ ସ୍କ୍ରିନ ଦେଖାନ୍ତୁ"କୁ ସକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="1331977651797684645">ଏହା ମୁଁ ଥିଲି।</translation>
 <translation id="1333489022424033687">ଆପଣଙ୍କ ଡିଭାଇସରେ ଅନ୍ୟ ସାଇଟଗୁଡ଼ିକ ଷ୍ଟୋର୍ କରିଥିବା ଡାଟା ଆପଣ ଖାଲି ନକରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" />ରେ କିଛି ଫିଚର୍ କାମ କରିନପାରେ</translation>
 <translation id="1333965224356556482">ଆପଣଙ୍କ ଲୋକେସନ୍ ଦେଖିବାକୁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation>
@@ -6313,7 +6312,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ପୃଷ୍ଠାରୁ ବାହାରି ଯାଆନ୍ତୁ}other{ପୃଷ୍ଠାରୁ ବାହାରି ଯାଆନ୍ତୁ}}</translation>
 <translation id="7207457272187520234">ବ୍ୟବହାର ଏବଂ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ ଡାଟା ପଠାନ୍ତୁ। ଏହି ଡିଭାଇସ୍ ବର୍ତ୍ତମାନ ସ୍ୱଚାଳିତ ରୂପେ ଡାଏଗ୍ନୋଷ୍ଟିକ୍, ଡିଭାଇସ୍ ଏବଂ ଆପ୍ ବ୍ୟବହାର ଡାଟା Googleକୁ ପଠାଉଛି। ସିଷ୍ଟମ୍ ଓ ଆପର ସ୍ଥିରତା ଏବଂ ଅନ୍ୟ ଉନ୍ନତିଗୁଡ଼ିକରେ ଏହା ସାହାଯ୍ୟ କରିବ। କିଛି ଏକତ୍ରିତ ଡାଟା Google ଆପ୍ ଓ Android ଡେଭଲପର୍ ପରି ଏହାର ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ। ଏହି ସେଟିଂ ମାଲିକଙ୍କ ଦ୍ୱାରା ଲାଗୁ କରାଯାଇଛି। ଯଦି ଆପଣଙ୍କର ଅତିରିକ୍ତ ୱେବ୍ ଓ ଆପ୍ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଏହି ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ୍ ହୋଇପାରେ।</translation>
 <translation id="7207631048330366454">ଆପ୍ସ ଖୋଜନ୍ତୁ</translation>
-<translation id="720808544705441386">ଆପକୁ ଖୋଲାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="7210499381659830293">ଏକ୍ସଟେନ୍‌ସନ୍ ପ୍ରିଣ୍ଟର୍‌</translation>
 <translation id="7211783048245131419">ଏ ପର୍ଯ୍ୟନ୍ତ କୌଣସି ସ୍ୱିଚକୁ ଆସାଇନ୍ କରାଯାଇନାହିଁ</translation>
 <translation id="7212097698621322584">ଏହାକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ବର୍ତ୍ତମାନର ପିନ୍ ଲେଖନ୍ତୁ। ଯଦି ଆପଣ ନିଜର ପିନ୍ ଜାଣିନାହାନ୍ତି, ତେବେ ଆପଣଙ୍କୁ ସୁରକ୍ଷା କୀ ରିସେଟ୍ କରିବା ଆବଶ୍ୟକ, ଏହା ପରେ ଗୋଟିଏ ନୂଆ ପିନ୍ ତିଆରି କରନ୍ତୁ।</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 89526c5..1e8eec00 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">ਜਿਹੜੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਤੁਹਾਡੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ</translation>
 <translation id="1329191040029425999">ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਅੱਪ-ਟੂ-ਡੇਟ ਹੈ ਅਤੇ ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
 <translation id="1330145147221172764">ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ, "ਸਲੀਪ ਮੋਡ ਤੋਂ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ 'ਤੇ ਲਾਕ ਸਕ੍ਰੀਨ ਦਿਖਾਓ" ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="1331977651797684645">ਇਹ ਮੈਂ ਸੀ।</translation>
 <translation id="1333489022424033687"><ph name="ORIGIN" /> ਦੀਆਂ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸ਼ਾਇਦ ਉਦੋਂ ਤੱਕ ਕੰਮ ਨਾ ਕਰਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਹੋਰਾਂ ਸਾਈਟਾਂ ਵੱਲੋਂ ਸਟੋਰ ਕੀਤੇ ਡਾਟੇ ਨੂੰ ਕਲੀਅਰ ਨਹੀਂ ਕਰਦੇ</translation>
 <translation id="1333965224356556482">ਸਾਈਟਾਂ ਨੂੰ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਦੇਖਣ ਦੀ ਇਜਾਜ਼ਤ ਨਾ ਦਿਓ</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">ਨੈੱਟਵਰਕ ਨੂੰ ਸਫਲਤਾਪੂਰਬਕ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡੇ ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਲਈ ਕਈ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ।</translation>
 <translation id="5206215183583316675">ਕੀ "<ph name="CERTIFICATE_NAME" />" ਮਿਟਾਉਣਾ ਹੈ?</translation>
 <translation id="520621735928254154">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਆਯਾਤ ਗੜਬੜ</translation>
+<translation id="5206562235913517859">ਵਿਕਰੇਤਾ-ਸਟੋਰ ਆਈਡੀ ABC-1234 ਫਾਰਮੈਟ ਵਿੱਚ ਹੈ</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{ਛੇੜਛਾੜ ਵਾਲਾ ਪਾਸਵਰਡ ਸਫਲਤਾਪੂਰਕ ਬਦਲਿਆ ਗਿਆ। ਤੁਹਾਡੇ ਕੋਲ # ਹੋਰ ਛੇੜਛਾੜ ਵਾਲਾ ਪਾਸਵਰਡ ਹੈ। Chrome ਹੁਣੇ ਇਸ ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।}one{ਛੇੜਛਾੜ ਵਾਲਾ ਪਾਸਵਰਡ ਸਫਲਤਾਪੂਰਕ ਬਦਲਿਆ ਗਿਆ। ਤੁਹਾਡੇ ਕੋਲ # ਹੋਰ ਛੇੜਛਾੜ ਵਾਲਾ ਪਾਸਵਰਡ ਹੈ। Chrome ਹੁਣੇ ਇਸ ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।}other{ਛੇੜਛਾੜ ਵਾਲਾ ਪਾਸਵਰਡ ਸਫਲਤਾਪੂਰਕ ਬਦਲਿਆ ਗਿਆ। ਤੁਹਾਡੇ ਕੋਲ # ਹੋਰ ਛੇੜਛਾੜ ਵਾਲੇ ਪਾਸਵਰਡ ਹਨ। Chrome ਹੁਣੇ ਇਹਨਾਂ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।}}</translation>
 <translation id="5207949376430453814">ਲਿਖਤ ਕੈਰੇਟ ਨੂੰ ਉਜਾਗਰ ਕਰੋ</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> ਸੇਵਾ ਇਹ ਜਾਂਚ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ ਕਿ ਕੀ ਤੁਸੀਂ ਯੋਗ ChromeOS ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ।</translation>
@@ -4858,6 +4858,7 @@
 <translation id="5729712731028706266">&amp;ਦੇਖੋ</translation>
 <translation id="5731247495086897348">ਪੇ&amp;ਸਟ ਕਰੋ ਅਤੇ ਜਾਓ</translation>
 <translation id="5732392974455271431">ਤੁਹਾਡੇ ਮਾਪੇ ਇਸ ਨੂੰ ਤੁਹਾਡੇ ਲਈ ਅਣਬਲੌਕ ਕਰ ਸਕਦੇ ਹਨ</translation>
+<translation id="5733866499231170760">ਅਵੈਧ ਆਈਡੀ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਾਖਲ ਕੀਤਾ ਗਿਆ ਫਾਰਮੈਟ ਗਲਤ ਹੈ। ਇਹ ਪੱਕਾ ਕਰਨ ਲਈ ਕਿ ਤੁਸੀਂ ਆਈਡੀ ਨੂੰ ਸਹੀ ਫਾਰਮੈਟ ਵਿੱਚ ਦਾਖਲ ਕਰ ਰਹੇ ਹੋ, ਕਿਰਪਾ ਕਰਕੇ ਤੁਹਾਨੂੰ ਪ੍ਰਾਪਤ ਹੋਈਆਂ ਹਿਦਾਇਤਾਂ ਦੀ ਜਾਂਚ ਕਰੋ। ਜੇ ਤੁਸੀਂ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਖੇਤਰ ਨੂੰ ਖਾਲੀ ਛੱਡੋ ਅਤੇ ਸਥਾਪਨਾ ਜਾਰੀ ਰੱਖੋ।</translation>
 <translation id="5734362860645681824">ਸੰਚਾਰ</translation>
 <translation id="5734697361979786483">ਫ਼ਾਈਲ ਸਾਂਝਾਕਰਨ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="5736796278325406685">ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਵੈਧ ਵਰਤੋਂਕਾਰ ਨਾਮ ਦਾਖਲ ਕਰੋ</translation>
@@ -6333,7 +6334,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{ਪੰਨੇ ਤੋਂ ਬਾਹਰ ਜਾਓ}one{ਪੰਨੇ ਤੋਂ ਬਾਹਰ ਜਾਓ}other{ਪੰਨਿਆਂ ਤੋਂ ਬਾਹਰ ਜਾਓ}}</translation>
 <translation id="7207457272187520234">ਵਰਤੋਂ ਅਤੇ ਤਸ਼ਖੀਸ ਡਾਟਾ ਭੇਜੋ। ਇਹ ਡੀਵਾਈਸ ਇਸ ਵੇਲੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸ਼ਖੀਸ, ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਵਰਤੋਂ ਡਾਟਾ Google ਨੂੰ ਭੇਜ ਰਿਹਾ ਹੈ। ਇਸ ਨਾਲ ਸਿਸਟਮ ਅਤੇ ਐਪ ਸਥਿਰਤਾ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲੇਗੀ। ਕੁਝ ਏਕੀਕ੍ਰਿਤ ਜਾਣਕਾਰੀ Google ਐਪਾਂ ਅਤੇ ਪਾਰਟਨਰਾਂ, ਜਿਵੇਂ ਕਿ Android ਵਿਕਾਸਕਾਰਾਂ ਦੀ ਵੀ ਮਦਦ ਕਰੇਗੀ। ਇਹ ਸੈਟਿੰਗ ਮਾਲਕ ਵੱਲੋਂ ਲਾਗੂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਜੇ ਤੁਹਾਡੀ ਵਧੀਕ 'ਵੈੱਬ ਅਤੇ ਐਪ ਸਰਗਰਮੀ' ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਇਹ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="7207631048330366454">ਐਪਾਂ ਖੋਜੋ</translation>
-<translation id="720808544705441386">ਐਪ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕਦੀ</translation>
 <translation id="7210499381659830293">ਐਕਸਟੈਂਸ਼ਨ ਪ੍ਰਿੰਟਰ</translation>
 <translation id="7211783048245131419">ਹਾਲੇ ਤੱਕ ਕੋਈ ਵੀ ਸਵਿੱਚ ਜ਼ਿੰਮੇ ਨਹੀਂ ਲਾਇਆ ਗਿਆ</translation>
 <translation id="7212097698621322584">ਇਸਨੂੰ ਬਦਲਣ ਲਈ ਆਪਣਾ ਮੌਜੂਦਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ। ਜੇ ਤੁਹਾਨੂੰ ਆਪਣਾ ਪਿੰਨ ਨਹੀਂ ਪਤਾ, ਤਾਂ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਨੂੰ ਰੀਸੈੱਟ ਕਰਕੇ ਨਵਾਂ ਪਿੰਨ ਬਣਾਉਣਾ ਪਵੇਗਾ।</translation>
@@ -6967,6 +6967,7 @@
 <translation id="7824864914877854148">ਕਿਸੇ ਗੜਬੜ ਕਰਕੇ ਬੈਕਅੱਪ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation>
 <translation id="782590969421016895">ਮੌਜੂਦਾ ਸਫ਼ੇ ਵਰਤੋ</translation>
 <translation id="7826174860695147464">ਲੀਗੇਸੀ ਬ੍ਰਾਊਜ਼ਰ ਸਮਰਥਨ (LBS) - ਅੰਦਰੂਨੀ</translation>
+<translation id="7826190688224781865">ਵਿਕਰੇਤਾ-ਸਟੋਰ ਆਈਡੀ ਕੋਡ</translation>
 <translation id="7826249772873145665">ADB ਡੀਬੱਗਿੰਗ ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ</translation>
 <translation id="7826254698725248775">ਸਮੱਸਿਆ ਵਾਲਾ ਡੀਵਾਈਸ ਪਛਾਣਕਰਤਾ।</translation>
 <translation id="7828731929332799387">ਇਹ ਤੀਜੀ-ਧਿਰ ਦੇ ਸੰਦਰਭਾਂ ਵਿੱਚ ਉਪਲਬਧ ਸਾਰੀਆਂ ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟੇ ਨੂੰ ਮਿਟਾ ਦੇਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
@@ -8437,6 +8438,7 @@
 <translation id="987897973846887088">ਕੋਈ ਚਿੱਤਰ ਉਪਲਬਧ ਨਹੀਂ ਹਨ</translation>
 <translation id="988320949174893488">ਕਦੇ-ਕਦਾਈਂ ਰੁਕ ਕੇ ਚੱਲਣਾ</translation>
 <translation id="988978206646512040">ਖਾਲੀ ਪਾਸਫਰੇਜ਼ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation>
+<translation id="991097196715779457">ਵਿਕਰੇਤਾ-ਸਟੋਰ ਆਈਡੀ ਕੋਡ (ਵਿਕਲਪਿਕ)</translation>
 <translation id="992032470292211616">ਐਕਸਟੈਂਸ਼ਨਾਂ, ਐਪਾਂ ਅਤੇ ਵਿਸ਼ੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚਾ ਸਕਦੇ ਹਨ। ਕੀ ਤੁਸੀਂ ਪੱਕਾ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="992256792861109788">ਗੁਲਾਬੀ</translation>
 <translation id="992592832486024913">ChromeVox ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ (ਬੋਲੀ ਪ੍ਰਤੀਕਰਮ)</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 8c95a34..e31440cd 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Nie będą działać funkcje, które potrzebują lokalizacji</translation>
 <translation id="1329191040029425999">Sprawdź, czy urządzenie jest aktualne, i spróbuj ponownie</translation>
 <translation id="1330145147221172764">Włącz klawiaturę ekranową</translation>
-<translation id="1331625853030156663">Aby otworzyć aplikację <ph name="APP_NAME" />, włącz opcję „Pokaż ekran blokady po wybudzeniu”</translation>
 <translation id="1331977651797684645">To ja.</translation>
 <translation id="1333489022424033687">Dopóki nie usuniesz danych zapisanych na Twoim urządzeniu przez inne strony, niektóre funkcje na stronie <ph name="ORIGIN" /> mogą nie działać</translation>
 <translation id="1333965224356556482">Nie zezwalaj witrynom na wyświetlanie lokalizacji</translation>
@@ -6320,7 +6319,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Zamknij stronę}few{Zamknij strony}many{Zamknij strony}other{Zamknij strony}}</translation>
 <translation id="7207457272187520234">Wysyłaj dane diagnostyczne oraz informacje o użytkowaniu. To urządzenie automatycznie wysyła do Google dane diagnostyczne oraz informacje o używaniu urządzenia i aplikacji. Dzięki temu będziemy mogli poprawić stabilność systemu i aplikacji oraz wprowadzić inne ulepszenia. Niektóre dane zbiorcze pomogą nam też udoskonalić aplikacje Google lub zostaną wykorzystane przez naszych partnerów, na przykład deweloperów aplikacji na Androida. To ustawienie jest wymuszone przez właściciela. Jeśli włączysz ustawienie Dodatkowa aktywność w internecie i aplikacjach, te dane mogą być zapisywane na Twoim koncie Google.</translation>
 <translation id="7207631048330366454">Szukaj aplikacji</translation>
-<translation id="720808544705441386">Nie można otworzyć aplikacji</translation>
 <translation id="7210499381659830293">Drukarki dostępne za pomocą rozszerzeń</translation>
 <translation id="7211783048245131419">Jeszcze nie przypisano żadnego przełącznika</translation>
 <translation id="7212097698621322584">Wpisz obecny kod PIN, by go zmienić. Jeśli go nie znasz, musisz zresetować klucz bezpieczeństwa, a potem utworzyć nowy kod PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 14d5d76..c9fd2fd 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Recursos que precisam da localização não funcionarão</translation>
 <translation id="1329191040029425999">Confira se o dispositivo está atualizado e tente novamente</translation>
 <translation id="1330145147221172764">Ativar o teclado na tela</translation>
-<translation id="1331625853030156663">Para abrir o app <ph name="APP_NAME" />, ative a opção "Mostrar tela de bloqueio ao sair do modo de suspensão"</translation>
 <translation id="1331977651797684645">Fui eu.</translation>
 <translation id="1333489022424033687">Alguns recursos em <ph name="ORIGIN" /> podem não funcionar até que você limpe os dados de outros sites armazenados no dispositivo</translation>
 <translation id="1333965224356556482">Não permitir que os sites acessem seu local</translation>
@@ -4339,6 +4338,7 @@
 <translation id="520568280985468584">A rede foi adicionada. Pode demorar vários minutos para que sua rede celular fique ativa.</translation>
 <translation id="5206215183583316675">Quer excluir "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Erro ao importar certificado</translation>
+<translation id="5206562235913517859">O formato do ID da loja do varejista é ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{A senha comprometida foi modificada. Você tem # outra senha comprometida. O Chrome recomenda verificá-la imediatamente.}one{A senha comprometida foi modificada. Você tem # outra senha comprometida. O Chrome recomenda verificá-la imediatamente.}other{A senha comprometida foi modificada. Você tem # outras senhas comprometidas. O Chrome recomenda verificá-las imediatamente.}}</translation>
 <translation id="5207949376430453814">Destacar cursor de texto</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> quer verificar se você está usando um dispositivo ChromeOS qualificado.</translation>
@@ -4846,7 +4846,7 @@
 <translation id="5711010025974903573">Registros do serviço</translation>
 <translation id="5711983031544731014">Não foi possível realizar o desbloqueio. Insira sua senha.</translation>
 <translation id="5712153969432126546">Às vezes, os sites podem publicar PDFs, como documentos, contratos, e formulários</translation>
-<translation id="571222594670061844">Sites podem mostrar solicitações de login de serviços de identidade</translation>
+<translation id="571222594670061844">Sites podem mostrar solicitações de login de serviços de identificação</translation>
 <translation id="5713158217420111469">Conectado a <ph name="DEVICE" /></translation>
 <translation id="5715711091495208045">Agente do plug-in: <ph name="PLUGIN_NAME" /></translation>
 <translation id="5719603411793408026">Mecanismos de pesquisa padrão</translation>
@@ -4861,6 +4861,7 @@
 <translation id="5729712731028706266">&amp;Visualizar</translation>
 <translation id="5731247495086897348">&amp;Colar e ir</translation>
 <translation id="5732392974455271431">Seus responsáveis podem desbloqueá-lo para você</translation>
+<translation id="5733866499231170760">ID inválido. O formato inserido está incorreto. Leia as instruções que você recebeu para garantir que está inserindo o ID no formato correto. Se não for possível solucionar esse problema, deixe o campo em branco e continue a instalação.</translation>
 <translation id="5734362860645681824">Comunicações</translation>
 <translation id="5734697361979786483">Adicionar compartilhamento de arquivos</translation>
 <translation id="5736796278325406685">Insira um nome de usuário válido</translation>
@@ -5004,7 +5005,7 @@
 <translation id="5876851302954717356">Nova guia à direita</translation>
 <translation id="5877064549588274448">Canal alterado. Reinicie o dispositivo para aplicar as alterações.</translation>
 <translation id="5877584842898320529">A impressora selecionada não está disponível ou não foi instalada corretamente. <ph name="BR" /> Verifique a impressora ou selecione outra.</translation>
-<translation id="5878945009165002849">Bloquear solicitações de login de serviços de identidade</translation>
+<translation id="5878945009165002849">Bloquear solicitações de login de serviços de identificação</translation>
 <translation id="5882919346125742463">Redes conhecidas</translation>
 <translation id="5883356647197510494">Bloqueados automaticamente: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5884474295213649357">Esta guia está conectada a um dispositivo USB.</translation>
@@ -6335,7 +6336,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Sair da página}one{Sair da página}other{Sair das páginas}}</translation>
 <translation id="7207457272187520234">Envie dados de uso e diagnóstico. No momento, este dispositivo está enviando automaticamente ao Google dados de diagnóstico, de uso de apps e do dispositivo. Eles ajudarão a melhorar o sistema, a estabilidade de apps e muito mais. Alguns dados agregados também ajudarão os apps do Google e nossos parceiros, como os desenvolvedores Android. Essa configuração é aplicada pelo proprietário, Se a configuração "Atividade na Web e de apps adicional" estiver ativada, esses dados poderão ser salvos na sua Conta do Google.</translation>
 <translation id="7207631048330366454">Pesquisar apps</translation>
-<translation id="720808544705441386">Não é possível abrir o app</translation>
 <translation id="7210499381659830293">Impressoras de extensão</translation>
 <translation id="7211783048245131419">Nenhum interruptor foi atribuído até o momento</translation>
 <translation id="7212097698621322584">Insira seu PIN atual para alterá-lo. Se você não sabe seu PIN, redefina a chave de segurança e crie um novo.</translation>
@@ -6970,6 +6970,7 @@
 <translation id="7824864914877854148">Ocorreu um erro e não foi possível concluir o backup</translation>
 <translation id="782590969421016895">Usar as páginas atuais</translation>
 <translation id="7826174860695147464">Suporte a navegadores legados (LBS): configurações internas</translation>
+<translation id="7826190688224781865">ID da loja do varejista</translation>
 <translation id="7826249772873145665">Depuração do adb desativada</translation>
 <translation id="7826254698725248775">Conflito no identificador de dispositivo.</translation>
 <translation id="7828731929332799387">Essa ação excluirá todos os cookies e dados de sites disponíveis em contextos de terceiros. Quer continuar?</translation>
@@ -8441,6 +8442,7 @@
 <translation id="987897973846887088">Não há imagens disponíveis</translation>
 <translation id="988320949174893488">Tem falhas intermitentes</translation>
 <translation id="988978206646512040">A senha longa não pode ficar em branco</translation>
+<translation id="991097196715779457">ID da loja do varejista (opcional)</translation>
 <translation id="992032470292211616">Extensões, aplicativos e temas podem danificar seu dispositivo. Você quer mesmo continuar?</translation>
 <translation id="992256792861109788">Rosa</translation>
 <translation id="992592832486024913">Desativar ChromeVox (resposta falada)</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 57b1a94..37f97d29 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">As funcionalidades que precisam da sua localização não funcionam</translation>
 <translation id="1329191040029425999">Certifique-se de que o seu dispositivo está atualizado e tente novamente</translation>
 <translation id="1330145147221172764">Ativar o teclado no ecrã</translation>
-<translation id="1331625853030156663">Para abrir a app <ph name="APP_NAME" />, ative a opção "Mostrar o ecrã de bloqueio quando for ativado após a suspensão"</translation>
 <translation id="1331977651797684645">Fui eu.</translation>
 <translation id="1333489022424033687">Algumas funcionalidades em <ph name="ORIGIN" /> poderão não funcionar até limpar os dados que outros sites armazenaram no seu dispositivo.</translation>
 <translation id="1333965224356556482">Não permitir que os sites vejam a sua localização</translation>
@@ -663,7 +662,7 @@
 <translation id="1627408615528139100">Já transferido</translation>
 <translation id="1628948239858170093">Pretende analisar o ficheiro antes de abrir?</translation>
 <translation id="1629314197035607094">A palavra-passe expirou.</translation>
-<translation id="1629451755632656601">Pretende permitir que a Google encontre descontos personalizados nos seus carrinhos?</translation>
+<translation id="1629451755632656601">Permitir que a Google encontre descontos personalizados nos seus carrinhos?</translation>
 <translation id="163072119192489970">Com autorização para concluir o envio e a receção de dados</translation>
 <translation id="1630768113285622200">Reiniciar e continuar</translation>
 <translation id="1632082166874334883">Palavra-passe armazenada na sua Conta Google.</translation>
@@ -1944,7 +1943,7 @@
 <translation id="281504910091592009">Veja e faça a gestão das palavras-passe guardadas na sua <ph name="BEGIN_LINK" />Conta Google<ph name="END_LINK" />.</translation>
 <translation id="2815693974042551705">Pasta de marcadores</translation>
 <translation id="2816319641769218778">Para guardar palavras-passe na sua Conta Google, ative a sincronização.</translation>
-<translation id="2816628817680324566">Pretende permitir que este site veja a sua chave de segurança?</translation>
+<translation id="2816628817680324566">Permitir que este site veja a sua chave de segurança?</translation>
 <translation id="2818476747334107629">Detalhes da impressora</translation>
 <translation id="2819167288942847344">Utilize predefinições para janelas redimensionáveis, de telemóveis ou de tablets para impedir o funcionamento incorreto da app</translation>
 <translation id="2820957248982571256">A analisar...</translation>
@@ -2412,7 +2411,7 @@
 <translation id="33022249435934718">Identificadores de GDI</translation>
 <translation id="3302388252085547855">Introduza a justificação…</translation>
 <translation id="3303260552072730022">Uma extensão acionou o ecrã inteiro.</translation>
-<translation id="3303795387212510132">Pretende permitir que a app abra os links <ph name="PROTOCOL_SCHEME" />?</translation>
+<translation id="3303795387212510132">Permitir que a app abra os links <ph name="PROTOCOL_SCHEME" />?</translation>
 <translation id="3303818374450886607">Cópias</translation>
 <translation id="3303855915957856445">Não foram encontrados resultados da pesquisa</translation>
 <translation id="3304212451103136496"><ph name="DISCOUNT_AMOUNT" /> de desconto</translation>
@@ -6318,7 +6317,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Sair da página}other{Sair das páginas}}</translation>
 <translation id="7207457272187520234">Envie dados de utilização e diagnóstico. Agora, este dispositivo está a enviar automaticamente dados de diagnóstico, de utilização de apps e do dispositivo para a Google. Deste modo, ajudará a melhorar a estabilidade das apps e do sistema, entre outras melhorias. Alguns dados agregados também ajudarão as apps e os parceiros Google, como os programadores Android. Esta definição é aplicada pelo proprietário. Se a definição Atividade da Web e de apps adicional estiver ativada, estes dados podem ser guardados na sua Conta Google.</translation>
 <translation id="7207631048330366454">Pesquisar aplicações</translation>
-<translation id="720808544705441386">Não é possível abrir a app</translation>
 <translation id="7210499381659830293">Impressoras por extensão</translation>
 <translation id="7211783048245131419">Ainda não foi atribuído qualquer comutador</translation>
 <translation id="7212097698621322584">Introduza o seu PIN atual para o alterar. Se não souber qual é o PIN, tem de repor a chave de segurança e, em seguida, criar um novo PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index ea999936..27008c39 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -334,7 +334,6 @@
 <translation id="1327794256477341646">Funcțiile care au nevoie de locația ta nu vor funcționa</translation>
 <translation id="1329191040029425999">Asigură-te că dispozitivul este actualizat și încearcă din nou</translation>
 <translation id="1330145147221172764">Activați tastatura pe ecran</translation>
-<translation id="1331625853030156663">Ca să deschizi <ph name="APP_NAME" />, activează opțiunea Afișează blocarea ecranului când dispozitivul este activat</translation>
 <translation id="1331977651797684645">Eu am fost.</translation>
 <translation id="1333489022424033687">Unele funcții din <ph name="ORIGIN" /> pot să nu funcționeze până când nu golești datele pe care alte site-uri le-au stocat pe dispozitiv</translation>
 <translation id="1333965224356556482">Nu permite site-urilor să-ți vadă locația</translation>
@@ -1008,6 +1007,7 @@
 <translation id="1944921356641260203">A fost găsită o actualizare</translation>
 <translation id="1947136734041527201">Îți dă posibilitatea să te conectezi pe site-uri folosind contul creat într-un serviciu de identitate</translation>
 <translation id="1949584741547056205">Răspunsuri rapide</translation>
+<translation id="1949849604471335579">Personalizează imaginea de fundal, screensaverul, culorile de evidențiere și multe altele</translation>
 <translation id="1951012854035635156">Asistent</translation>
 <translation id="1954597385941141174">Site-urile pot solicita permisiunea de a se conecta la dispozitive USB</translation>
 <translation id="1954813140452229842">Eroare la montarea dispozitivului de stocare în rețea. Verifică acreditările și încearcă din nou.</translation>
@@ -1039,6 +1039,7 @@
 <translation id="1981434377190976112">să citească toate datele de pe toate site-urile</translation>
 <translation id="1984417487208496350">Fără protecție (nu este recomandat)</translation>
 <translation id="1987317783729300807">Conturi</translation>
+<translation id="1987574314042117472">Selectează și instalează aplicații populare</translation>
 <translation id="1988259784461813694">Cerință</translation>
 <translation id="1989112275319619282">Răsfoiește</translation>
 <translation id="1989903373608997757">Folosește întotdeauna</translation>
@@ -1104,6 +1105,7 @@
 <translation id="2048554637254265991">Eroare la pornirea managerului de containere. Încearcă din nou.</translation>
 <translation id="2048653237708779538">Acțiunea nu este disponibilă</translation>
 <translation id="2050339315714019657">Portret</translation>
+<translation id="2052572566310583903">Instalată pe celelalte dispozitive</translation>
 <translation id="2053312383184521053">Date pentru starea inactivă</translation>
 <translation id="2054240652864153171">Ștergi datele site-ului <ph name="SITE_NAME" /> cu partiții la <ph name="PARTITION_SITE_NAME" />?</translation>
 <translation id="2055585478631012616">Te vei deconecta de la site-uri, inclusiv din filele deschise</translation>
@@ -1266,6 +1268,7 @@
 <translation id="2191754378957563929">Activat</translation>
 <translation id="2192505247865591433">De la:</translation>
 <translation id="2193365732679659387">Setări privind încrederea</translation>
+<translation id="2194554416429452547">În perioadele de încercare, Chrome explorează moduri de a limita spamul, frauda și transferul între site-uri. În plus, Chrome <ph name="ESTIMATE_INTERESTS_LINK" />, pe care site-urile le pot folosi pentru a-ți afișa anunțuri. Îți poți gestiona interesele din setări.</translation>
 <translation id="2194856509914051091">De reținut</translation>
 <translation id="2195331105963583686">Vei putea folosi în continuare <ph name="DEVICE_TYPE" />, dar nu vei mai primi actualizări automate de software și de securitate</translation>
 <translation id="2195729137168608510">Protecție e-mail</translation>
@@ -1870,6 +1873,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Verificare gramaticală și ortografică</translation>
 <translation id="2753677631968972007">Gestionează manual permisiunile pentru site-uri.</translation>
+<translation id="2754825024506485820">Găsește aplicațiile de care ai nevoie, de la productivitate la divertisment, în Magazinul Google Play. Poți instala aplicații oricând.</translation>
 <translation id="2755349111255270002">Resetează <ph name="DEVICE_TYPE" /></translation>
 <translation id="2755367719610958252">Gestionează funcțiile de accesibilitate</translation>
 <translation id="275662540872599901">ecran dezactivat</translation>
@@ -1946,6 +1950,7 @@
 <translation id="2815693974042551705">Dosar de marcaje</translation>
 <translation id="2816319641769218778">Activează sincronizarea ca să salvezi parolele în Contul tău Google.</translation>
 <translation id="2816628817680324566">Permiți site-ului să identifice cheia de securitate?</translation>
+<translation id="2817435998497102771">Setează imaginea de fundal și stilul</translation>
 <translation id="2818476747334107629">Detaliile imprimantei</translation>
 <translation id="2819167288942847344">Folosește presetările pentru ferestre redimensionabile, de pe telefon sau tabletă pentru a evita comportamentul neadecvat al aplicației</translation>
 <translation id="2820957248982571256">Se scanează...</translation>
@@ -2839,6 +2844,7 @@
 <translation id="3727144509609414201">Rețele Wi-Fi disponibile</translation>
 <translation id="3727187387656390258">Fereastră pop-up de inspectare</translation>
 <translation id="372722114124766626">Doar o singură dată</translation>
+<translation id="3727332897090187514">Nicio notă adăugată</translation>
 <translation id="3727473233247516571">Subcadru din memoria cache înainte-înapoi: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Oglindește notificările de pe telefon</translation>
 <translation id="3728681439294129328">Configurează adresa rețelei</translation>
@@ -3174,6 +3180,7 @@
 <translation id="4031527940632463547">Senzorii sunt blocați</translation>
 <translation id="4033415645631238123">Conectarea cu Smart Lock nu mai este disponibilă. Poți în continuare să deblochezi dispozitivul folosind Smart Lock.</translation>
 <translation id="4033471457476425443">Adaugă un dosar nou</translation>
+<translation id="4033711848170683365">Astfel, vor fi șterse definitiv datele de navigare de pe acest dispozitiv. Conturile Google din acest profil pot fi folosite de alte aplicații de pe <ph name="DEVICE_TYPE" />. Poți elimina conturile din <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">Site-urile securizate pot încorpora conținut precum imagini sau cadre web nesigure</translation>
 <translation id="4034824040120875894">Imprimantă</translation>
 <translation id="4035758313003622889">&amp;Manager de activități</translation>
@@ -3452,6 +3459,7 @@
 <translation id="4314815835985389558">Gestionează sincronizarea</translation>
 <translation id="4315933848520197627">Deconectează contul</translation>
 <translation id="4316850752623536204">Site-ul dezvoltatorului</translation>
+<translation id="4317733381297736564">Achiziții în aplicație</translation>
 <translation id="4317820549299924617">Confirmarea nu a reușit</translation>
 <translation id="4320177379694898372">Nu există conexiune la internet</translation>
 <translation id="4322394346347055525">Închide celelalte file</translation>
@@ -4034,6 +4042,7 @@
 <translation id="4893522937062257019">Pe ecranul de blocare</translation>
 <translation id="4897496410259333978">Pentru informații suplimentare, contactează administratorul.</translation>
 <translation id="4898011734382862273">Certificatul „<ph name="CERTIFICATE_NAME" />” reprezintă o Autoritate de certificare</translation>
+<translation id="4899696330053002588">Conține anunțuri</translation>
 <translation id="489985760463306091">Pentru a finaliza eliminarea software-ului dăunător, repornește computerul</translation>
 <translation id="4900392736118574277">Pagina de pornire a fost înlocuită cu <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz – intercalat</translation>
@@ -4407,6 +4416,7 @@
 <translation id="52912272896845572">Fișierul cu cheia privată este nevalid.</translation>
 <translation id="5291739252352359682">Creează automat subtitrări pentru conținut media în browserul Chrome (disponibile momentan în limba engleză). Conținutul audio și subtitrările sunt procesate local și nu părăsesc niciodată dispozitivul.</translation>
 <translation id="529175790091471945">Formatează acest dispozitiv</translation>
+<translation id="5292862864186939732">Permiți întotdeauna rularea <ph name="EXTENSION_NAME" /> pe <ph name="ORIGIN" />?</translation>
 <translation id="529296195492126134">Modul efemer nu este acceptat. Contactează administratorul.</translation>
 <translation id="5293170712604732402">Restabilește setările la valorile inițiale</translation>
 <translation id="5294097441441645251">Trebuie să înceapă cu literă mică sau cu un caracter de subliniere</translation>
@@ -5164,6 +5174,7 @@
 <translation id="6054961935262556546">Modifică vizibilitatea</translation>
 <translation id="6055171183283175969">Parola introdusă nu este corectă.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 cu criptare RSA</translation>
+<translation id="6055544610007596637">Instalează aplicații pentru <ph name="DEVICE_TYPE" /> din Magazinul Google Play</translation>
 <translation id="6056710589053485679">Reîncărcați normal</translation>
 <translation id="6057312498756061228">Acest fișier este prea mare pentru verificarea de securitate. Poți să deschizi fișiere de maximum 50 MB.</translation>
 <translation id="6057381398996433816">Acest site nu are permisiunea de a folosi senzorii de mișcare și de lumină.</translation>
@@ -6138,6 +6149,7 @@
 <translation id="7002055706763150362">Pentru a configura Smart Lock pentru Chromebook, Google trebuie să se asigure că ești tu: introdu parola pentru a începe.</translation>
 <translation id="7003339318920871147">Baze de date web</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} fișier}few{{COUNT} fișiere}other{{COUNT} de fișiere}}</translation>
+<translation id="7003705861991657723">Alfa</translation>
 <translation id="7003723821785740825">Configurează o modalitate mai rapidă de a debloca dispozitivul</translation>
 <translation id="7003844668372540529">Produs necunoscut <ph name="PRODUCT_ID" /> de la <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">Este posibil ca site-ul să folosească dispozitive MIDI</translation>
@@ -6154,6 +6166,7 @@
 <translation id="7008815993384338777">Nu se folosește roamingul</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> folosește camera foto</translation>
 <translation id="701080569351381435">Afișează sursa</translation>
+<translation id="7011797924920577670">îți estimează interesele</translation>
 <translation id="7014174261166285193">Instalarea nu a reușit.</translation>
 <translation id="7014480873681694324">Elimină evidențierea</translation>
 <translation id="7017004637493394352">Rostește din nou „Ok Google”</translation>
@@ -6221,6 +6234,7 @@
 <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> este gestionată de administrator</translation>
 <translation id="7085389578340536476">Îi permiți browserului Chrome să înregistreze conținut audio?</translation>
 <translation id="708550780726587276">(nu este configurată)</translation>
+<translation id="7086531709814430567">Permiți întotdeauna rularea acestor extensii pe <ph name="ORIGIN" />?</translation>
 <translation id="7086672505018440886">Include fișiere jurnal Chrome în arhivă.</translation>
 <translation id="7088434364990739311">Nu a reușit pornirea verificării actualizării (cod de eroare <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">Administratorul a trecut acest dispozitiv într-o stare de acces revocat. Pentru a-l activa pentru înscriere, solicitați administratorului să-l treacă într-o stare de așteptare.</translation>
@@ -6319,7 +6333,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Închide pagina}few{Închide paginile}other{Închide paginile}}</translation>
 <translation id="7207457272187520234">Trimite date de utilizare și diagnosticare. Momentan, dispozitivul trimite automat date de diagnosticare și de utilizare a dispozitivului și aplicațiilor la Google. Aceasta va ajuta la stabilitatea sistemului, a aplicației și altele. Unele date cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android. Această setare este impusă de proprietar. Dacă setarea Activitatea suplimentară de pe web și din aplicații este activată, aceste date pot fi salvate în Contul tău Google.</translation>
 <translation id="7207631048330366454">Caută aplicații</translation>
-<translation id="720808544705441386">Nu se poate deschide aplicația</translation>
 <translation id="7210499381659830293">Imprimante de extensie</translation>
 <translation id="7211783048245131419">Nu a fost încă atribuită nicio tastă de comutare</translation>
 <translation id="7212097698621322584">Introdu codul PIN actual pentru a-l schimba. Dacă nu știi codul PIN, trebuie să resetezi cheia de securitate, apoi să creezi un nou cod PIN.</translation>
@@ -8355,6 +8368,7 @@
 <translation id="9215742531438648683">Dezinstalează Magazinul Google Play</translation>
 <translation id="9218430445555521422">Setează ca prestabilit</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (aplicație neacceptată)</translation>
+<translation id="9219582468404818260">Ajută-ne să creăm un web mai bun</translation>
 <translation id="9220525904950070496">Eliminați contul</translation>
 <translation id="9220820413868316583">Ridică, apoi încearcă din nou.</translation>
 <translation id="923467487918828349">Afișează-le pe toate</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index b80e947..7b7332f 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Функции, которым нужна информация о местоположении, не будут работать</translation>
 <translation id="1329191040029425999">Обновите операционную систему устройства и повторите попытку.</translation>
 <translation id="1330145147221172764">Включить экранную клавиатуру</translation>
-<translation id="1331625853030156663">Чтобы открыть приложение "<ph name="APP_NAME" />", включите функцию "Показывать заблокированный экран при выходе из спящего режима".</translation>
 <translation id="1331977651797684645">Это я</translation>
 <translation id="1333489022424033687">Некоторые функции <ph name="ORIGIN" /> могут не работать до тех пор, пока вы не удалите данные других сайтов на этом устройстве.</translation>
 <translation id="1333965224356556482">Запретить сайтам доступ к местоположению</translation>
@@ -1009,6 +1008,7 @@
 <translation id="1944921356641260203">Найдено обновление</translation>
 <translation id="1947136734041527201">Позволяет выполнять вход на сайтах через сервисы подтверждения личности.</translation>
 <translation id="1949584741547056205">Быстрые ответы</translation>
+<translation id="1949849604471335579">Выберите обои, заставку, акцентные цвета и многое другое.</translation>
 <translation id="1951012854035635156">Ассистент</translation>
 <translation id="1954597385941141174">Разрешить сайтам отправлять запрос на подключение к USB-устройствам</translation>
 <translation id="1954813140452229842">Не удалось подключить ресурс. Проверьте учетные данные и повторите попытку.</translation>
@@ -1040,6 +1040,7 @@
 <translation id="1981434377190976112">Просмотр ваших данных на всех сайтах.</translation>
 <translation id="1984417487208496350">Защита отключена (не рекомендуется)</translation>
 <translation id="1987317783729300807">Аккаунты</translation>
+<translation id="1987574314042117472">Выбрать и установить популярные приложения</translation>
 <translation id="1988259784461813694">Требования</translation>
 <translation id="1989112275319619282">Выбрать</translation>
 <translation id="1989903373608997757">Использовать всегда</translation>
@@ -1105,6 +1106,7 @@
 <translation id="2048554637254265991">Не удалось запустить менеджер контейнеров. Повторите попытку.</translation>
 <translation id="2048653237708779538">Действие недоступно</translation>
 <translation id="2050339315714019657">Вертикальное расположение</translation>
+<translation id="2052572566310583903">Установлено на другом вашем устройстве</translation>
 <translation id="2053312383184521053">Данные о состоянии бездействия</translation>
 <translation id="2054240652864153171">Удалить данные <ph name="SITE_NAME" />, секционированные на сайте <ph name="PARTITION_SITE_NAME" />?</translation>
 <translation id="2055585478631012616">Вы автоматически выйдете из аккаунта на этих сайтах (в том числе на открытых вкладках).</translation>
@@ -1267,6 +1269,7 @@
 <translation id="2191754378957563929">ВКЛ</translation>
 <translation id="2192505247865591433">Из:</translation>
 <translation id="2193365732679659387">Настройки доверия</translation>
+<translation id="2194554416429452547">Во время эксперимента Chrome изучает способы ограничения спама, мошенничества и обмена информацией между сайтами. Браузер также <ph name="ESTIMATE_INTERESTS_LINK" />, чтобы на их основе сайты показывали вам рекламу. Параметры этой функции можно задать в настройках.</translation>
 <translation id="2194856509914051091">Важная информация</translation>
 <translation id="2195331105963583686">После этого срока вы по-прежнему сможете пользоваться устройством <ph name="DEVICE_TYPE" />, но оно больше не будет получать обновления ПО и безопасности.</translation>
 <translation id="2195729137168608510">Защита электронной почты</translation>
@@ -1870,6 +1873,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Проверять грамматику и правописание</translation>
 <translation id="2753677631968972007">Управление доступом к сайтам вручную</translation>
+<translation id="2754825024506485820">В Google Play вы найдете любые интересующие вас приложения. Их можно установить в любое время.</translation>
 <translation id="2755349111255270002">Сбросьте настройки устройства <ph name="DEVICE_TYPE" /></translation>
 <translation id="2755367719610958252">Настроить специальные возможности</translation>
 <translation id="275662540872599901">экран выключен</translation>
@@ -1946,6 +1950,7 @@
 <translation id="2815693974042551705">Папка с закладками</translation>
 <translation id="2816319641769218778">Чтобы сохранять пароли в аккаунте Google, включите синхронизацию.</translation>
 <translation id="2816628817680324566">Разрешить этому сайту определять ваш электронный ключ?</translation>
+<translation id="2817435998497102771">Настройка обоев и стиля</translation>
 <translation id="2818476747334107629">Сведения о принтере</translation>
 <translation id="2819167288942847344">Использовать стандартные параметры для телефона и планшета или разрешать изменять размер окон, чтобы избежать неполадок</translation>
 <translation id="2820957248982571256">Поиск…</translation>
@@ -2839,6 +2844,7 @@
 <translation id="3727144509609414201">Доступные сети Wi-Fi</translation>
 <translation id="3727187387656390258">Просмотреть всплывающее окно</translation>
 <translation id="372722114124766626">Один раз</translation>
+<translation id="3727332897090187514">Добавьте примечание</translation>
 <translation id="3727473233247516571">Субфрейм возвратного кеша: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Дублировать уведомления с вашего телефона</translation>
 <translation id="3728681439294129328">Настроить сетевой адрес</translation>
@@ -3174,6 +3180,7 @@
 <translation id="4031527940632463547">Использование датчиков запрещено</translation>
 <translation id="4033415645631238123">Вход в аккаунт с помощью Smart Lock больше не доступен. Вы можете продолжать использовать эту функцию, чтобы разблокировать устройство.</translation>
 <translation id="4033471457476425443">Новая папка</translation>
+<translation id="4033711848170683365">Все данные о работе в браузере будут навсегда удалены с текущего устройства. Аккаунты Google, связанные с выбранным профилем, могут использоваться другими приложениями на устройстве <ph name="DEVICE_TYPE" />. Чтобы удалить эти аккаунты, выберите <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">Безопасные сайты могут содержать небезопасный встроенный контент, например изображения или фреймы.</translation>
 <translation id="4034824040120875894">Принтер</translation>
 <translation id="4035758313003622889">&amp;Диспетчер задач</translation>
@@ -3452,6 +3459,7 @@
 <translation id="4314815835985389558">Настройки синхронизации</translation>
 <translation id="4315933848520197627">Отменить связь</translation>
 <translation id="4316850752623536204">Сайт разработчика</translation>
+<translation id="4317733381297736564">Есть платный контент</translation>
 <translation id="4317820549299924617">Не удалось выполнить верификацию</translation>
 <translation id="4320177379694898372">Нет подключения к Интернету</translation>
 <translation id="4322394346347055525">Закрыть другие вкладки</translation>
@@ -4034,6 +4042,7 @@
 <translation id="4893522937062257019">Экран блокировки</translation>
 <translation id="4897496410259333978">За дополнительной информацией обратитесь к системному администратору.</translation>
 <translation id="4898011734382862273">Сертификат "<ph name="CERTIFICATE_NAME" />" представляет центр сертификации</translation>
+<translation id="4899696330053002588">Есть реклама</translation>
 <translation id="489985760463306091">Чтобы завершить удаление вредоносного ПО, перезагрузите компьютер</translation>
 <translation id="4900392736118574277">Стартовая страница изменена на <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Гц – чересстрочная развертка</translation>
@@ -4407,6 +4416,7 @@
 <translation id="52912272896845572">Файл закрытого ключа недействителен.</translation>
 <translation id="5291739252352359682">Субтитры к медиаконтенту в Chrome создаются автоматически (доступно только на английском языке). Аудиофайлы и субтитры обрабатываются и хранятся на вашем устройстве.</translation>
 <translation id="529175790091471945">Форматировать устройство</translation>
+<translation id="5292862864186939732">Всегда разрешать запуск расширения "<ph name="EXTENSION_NAME" />" на сайте <ph name="ORIGIN" />?</translation>
 <translation id="529296195492126134">Режим временного профиля не поддерживается. Обратитесь к администратору.</translation>
 <translation id="5293170712604732402">Восстановление настроек по умолчанию</translation>
 <translation id="5294097441441645251">Имя должно начинаться со строчной буквы или символа подчеркивания.</translation>
@@ -5164,6 +5174,7 @@
 <translation id="6054961935262556546">Изменить настройки</translation>
 <translation id="6055171183283175969">Введен неверный пароль.</translation>
 <translation id="6055392876709372977">PKCS #1 SHA-256 с шифрованием RSA</translation>
+<translation id="6055544610007596637">Установите на свое устройство <ph name="DEVICE_TYPE" /> приложения из Google Play</translation>
 <translation id="6056710589053485679">Обычная перезагрузка</translation>
 <translation id="6057312498756061228">Этот файл слишком большой для проверки безопасности. Можно открывать файлы до 50 МБ.</translation>
 <translation id="6057381398996433816">Этому сайту запрещено использовать датчики движения и освещенности</translation>
@@ -6142,6 +6153,7 @@
 <translation id="7002055706763150362">Чтобы начать настройку Smart Lock для Chromebook, введите пароль. Так мы определим, что функцию пытаетесь включить именно вы.</translation>
 <translation id="7003339318920871147">Базы данных в Интернете</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} файл}one{{COUNT} файл}few{{COUNT} файла}many{{COUNT} файлов}other{{COUNT} файла}}</translation>
+<translation id="7003705861991657723">Альфа-версия</translation>
 <translation id="7003723821785740825">Настроить разблокировку с помощью отпечатка</translation>
 <translation id="7003844668372540529">Неизвестный продукт <ph name="PRODUCT_ID" /> от <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">Сайт может использовать устройство MIDI</translation>
@@ -6158,6 +6170,7 @@
 <translation id="7008815993384338777">Сейчас не в роуминге</translation>
 <translation id="7009709314043432820">Приложение "<ph name="APP_NAME" />" использует камеру</translation>
 <translation id="701080569351381435">Просмотр исходного кода</translation>
+<translation id="7011797924920577670">оценивает ваши интересы</translation>
 <translation id="7014174261166285193">Установка не выполнена.</translation>
 <translation id="7014480873681694324">Снять выделение</translation>
 <translation id="7017004637493394352">Скажите "Окей, Google" ещё раз</translation>
@@ -6225,6 +6238,7 @@
 <translation id="7082568314107259011">Сетью <ph name="NETWORK_NAME" /> управляет ваш администратор</translation>
 <translation id="7085389578340536476">Разрешить Chrome записывать аудио?</translation>
 <translation id="708550780726587276">(не настроено)</translation>
+<translation id="7086531709814430567">Всегда разрешать запуск этих расширений на сайте <ph name="ORIGIN" />?</translation>
 <translation id="7086672505018440886">Включать файлы журналов Chrome в архив</translation>
 <translation id="7088434364990739311">Не удалось выполнить проверку обновлений (код ошибки: <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">Это устройство отключено администратором. Чтобы можно было выполнить регистрацию, устройство следует перевести в состояние ожидания подключения.</translation>
@@ -6323,7 +6337,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Закрыть страницу}one{Закрыть страницы}few{Закрыть страницы}many{Закрыть страницы}other{Закрыть страницы}}</translation>
 <translation id="7207457272187520234">Отправка данных об использовании и диагностике. Сейчас это устройство автоматически отправляет в Google диагностическую информацию, сведения об использовании приложений и самого устройства. Эти сведения помогут нам повысить стабильность приложений и внести другие улучшения. Некоторые агрегированные данные пригодятся партнерам Google, например разработчикам Android. Эта настройка принудительно применяется владельцем. Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в вашем аккаунте.</translation>
 <translation id="7207631048330366454">Поиск приложений</translation>
-<translation id="720808544705441386">Не удается открыть приложение</translation>
 <translation id="7210499381659830293">Принтеры, работающие через расширение</translation>
 <translation id="7211783048245131419">Переключатели не назначены.</translation>
 <translation id="7212097698621322584">Сначала введите текущий PIN-код. Если вы его не знаете, сбросьте настройки электронного ключа и установите новый PIN-код.</translation>
@@ -8361,6 +8374,7 @@
 <translation id="9215742531438648683">Удалить Google Play Маркет</translation>
 <translation id="9218430445555521422">Сделать браузером по умолчанию</translation>
 <translation id="9218842937876577955">"<ph name="APP_NAME" />" (не поддерживается)</translation>
+<translation id="9219582468404818260">Помогите нам улучшить интернет</translation>
 <translation id="9220525904950070496">Удалить аккаунт</translation>
 <translation id="9220820413868316583">Поднимите палец и попробуйте ещё раз.</translation>
 <translation id="923467487918828349">Показать все</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 045b362..f1d5f2e 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">ඔබගේ ස්ථානය අවශ්‍ය විශේෂාංග ක්‍රියා නොකරනු ඇත</translation>
 <translation id="1329191040029425999">ඔබගේ උපාංගය යාවත්කාලීන බව සහතික කර ගෙන කරුණාකර නැවත උත්සාහ කරන්න</translation>
 <translation id="1330145147221172764">තිර යතුරු පුවරුව සක්‍රිය කරන්න</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> විවෘත කිරීමට, "නින්දෙන් අවදි වන විට අගුලු තිරය පෙන්වන්න" සබල කරන්න</translation>
 <translation id="1331977651797684645">මේ මම.</translation>
 <translation id="1333489022424033687">ඔබ ඔබේ උපාංගයෙහි වෙනත් අඩවි ගබඩා කර ඇති දත්ත හිස් කරන තුරු <ph name="ORIGIN" /> හි සමහර විශේෂාංග වැඩ නොකරනු ඇත</translation>
 <translation id="1333965224356556482">ඔබගේ ස්ථානය බැලීමට අඩවිවලට ඉඩ නොදෙන්න</translation>
@@ -4325,6 +4324,7 @@
 <translation id="520568280985468584">ජාලය සාර්ථකව එක් කර ඇත. ඔබගේ සෙලියුලර් ජාලය සක්‍රිය වීමට මිනිත්තු කිහිපයක් ගත විය හැකිය.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" මකන්නද?</translation>
 <translation id="520621735928254154">සහතිකය ආයාත කිරීමේ දෝෂයකි</translation>
+<translation id="5206562235913517859">සිල්ලර වෙළෙන්දා-වෙළඳසැල් ID ABC-1234 ආකෘතිය වේ</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{අවදානමට පත් වූ මුරපදය සාර්ථකව වෙනස් කරන ලදි. ඔබට අවදානමට පත් වූ මුරපද තව #ක් ඇත. Chrome දැන් මෙම මුරපදය පරික්ෂා කිරීමට නිර්දේශ කරයි.}one{අවදානමට පත් වූ මුරපදය සාර්ථකව වෙනස් කරන ලදි. ඔබට අවදානමට පත් වූ මුරපද තව #ක් ඇත. Chrome දැන් මෙම මුරපද පරික්ෂා කිරීමට නිර්දේශ කරයි.}other{අවදානමට පත් වූ මුරපදය සාර්ථකව වෙනස් කරන ලදි. ඔබට අවදානමට පත් වූ මුරපද තව #ක් ඇත. Chrome දැන් මෙම මුරපද පරික්ෂා කිරීමට නිර්දේශ කරයි.}}</translation>
 <translation id="5207949376430453814">පෙළ කාකපාදය උද්දීපනය කරන්න</translation>
 <translation id="520840839826327499">ඔබ යෝග්‍ය ChromeOS උපාංගයක් භාවිත කරන්නේදැයි පරීක්ෂා කිරීමට <ph name="SERVICE_NAME" /> හට අවශ්‍යයි.</translation>
@@ -4847,6 +4847,7 @@
 <translation id="5729712731028706266">&amp;බලන්න</translation>
 <translation id="5731247495086897348">අල&amp;වා යන්න</translation>
 <translation id="5732392974455271431">ඔබේ දෙමව්පියන්ට එය ඔබ සඳහා අනවහිර කළ හැකිය</translation>
+<translation id="5733866499231170760">වලංගු නොවන ID. ඔබ ඇතුළත් කළ ආකෘතිය වැරදියි. ඔබ නිවැරදි ආකෘතියෙන් ID ඇතුළත් කරන බව සහතික කර ගැනීමට කරුණාකර ඔබට ලැබුණු උපදෙස් පරීක්ෂා කරන්න. ඔබට මෙම ගැටලුව විසඳීමට නොහැකි නම්, කරුණාකර ක්ෂේත්‍රය හිස්ව තබා ස්ථාපනය කරගෙන යන්න.</translation>
 <translation id="5734362860645681824">සන්නිවේදන</translation>
 <translation id="5734697361979786483">ගොනු බෙදා ගැනීම එක් කරන්න</translation>
 <translation id="5736796278325406685">වලංගු පරිශීලක නාමයක් ඇතුළු කරන්න</translation>
@@ -6319,7 +6320,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{පිටවීමේ පිටුව}one{පිටවීමේ පිටු}other{පිටවීමේ පිටු}}</translation>
 <translation id="7207457272187520234">භාවිත සහ දෝෂ නිර්ණ දත්ත යවන්න. මෙම උපාංගය ස්වයංක්‍රියව රෝග විනිශ්චය, උපාංග සහ යෙදුම් භාවිත දත්ත Google වෙත යවයි. මෙය පද්ධති සහ යෙදුම් ස්ථායිතාවට සහ අනෙකුත් වැඩිදියුණු කිරීම්වලට උදවු කරයි. සමහර එකතු කළ දත්ත Google යෙදුම්වලට සහ Android සංවර්ධකයින් වැනි හවුල්කරුවන්ට ද උදවු කරති. මෙම සැකසීම හිමිකරු විසින් බලාත්මක කෙරේ. ඔබේ අමතර වෙබ් සහ යෙදුම් ක්‍රියාකාරකම් සැකසීම සක්‍රීය නම්, මෙම දත්ත ඔබේ Google ගිණුුමට සුරකිනු ලැබේ.</translation>
 <translation id="7207631048330366454">යෙදුම් සොයන්න</translation>
-<translation id="720808544705441386">යෙදුම විවෘත කළ නොහැකිය</translation>
 <translation id="7210499381659830293">දිගු මුද්‍රක</translation>
 <translation id="7211783048245131419">තවම ස්විචයක් පවරා නැත</translation>
 <translation id="7212097698621322584">එය වෙනස් කිරීමට ඔබේ රහස් අංකය ඇතුළත් කරන්න. ඔබ ඔබේ රහස් අංකය නොදන්නෙහි නම්, ඔබ ආරක්‍ෂක යතුර යළි සකසා, නව රහස් අංකයක් සෑදිය යුතු ය.</translation>
@@ -6953,6 +6953,7 @@
 <translation id="7824864914877854148">දෝෂයක් හේතුවෙන් උපස්ථය සම්පූර්ණ කළ නොහැකි විය</translation>
 <translation id="782590969421016895">වත්මන් පිටු භාවිතා කරන්න</translation>
 <translation id="7826174860695147464">පැරණි බ්‍රවුසර සහාය (LBS) - අභ්‍යන්තර</translation>
+<translation id="7826190688224781865">සිල්ලර වෙළෙන්දා-වෙළඳසැල් ID කේතය</translation>
 <translation id="7826249772873145665">ADB නිදොස් කිරීම අබලයි</translation>
 <translation id="7826254698725248775">උපාංග හැඳුනුම්කාරකය ගැටුම්කාරී වේ.</translation>
 <translation id="7828731929332799387">මෙය තෙවන පාර්ශ්ව සන්දර්භ තුළ තිබෙන සියලුම කුකී සහ වෙබ් අඩවි දත්ත මකා දමයි. ඔබට ඉදිරියට යාමට අවශ්‍යද?</translation>
@@ -8422,6 +8423,7 @@
 <translation id="987897973846887088">රූප ලබා ගත නොහැක</translation>
 <translation id="988320949174893488">ඔකේෂනල් ස්ටටර්</translation>
 <translation id="988978206646512040">හිස් මුරවැකිකඩවලට ඉඩ නොදේ</translation>
+<translation id="991097196715779457">සිල්ලර වෙළෙන්දා-වෙළඳසැල් ID කේතය (විකල්පමය)</translation>
 <translation id="992032470292211616">දිගු, යෙදුම්, සහ තේමා ඔබගේ පරිගණකයට හානි කළ හැකිය. ඔබට දිගටම කරගෙන යාමට අවශ්‍ය බව ඔබට විශ්වාසද?</translation>
 <translation id="992256792861109788">රෝස</translation>
 <translation id="992592832486024913">ChromeVox (කථා කළ අදහස්) අක්‍රිය කරන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 232fd094..9debb5d2 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funkcie vyžadujúce vašu polohu nebudú fungovať</translation>
 <translation id="1329191040029425999">Skontrolujte, či je zariadenie aktuálne a skúste to znova</translation>
 <translation id="1330145147221172764">Zobraziť klávesnicu na obrazovke</translation>
-<translation id="1331625853030156663">Ak chcete otvoriť aplikáciu <ph name="APP_NAME" />, zapnite možnosť Pri prebúdzaní z režimu spánku spúšťať uzamknutú obrazovku</translation>
 <translation id="1331977651797684645">To som bol(a) ja.</translation>
 <translation id="1333489022424033687">Niektoré funkcie na <ph name="ORIGIN" /> nemusia fungovať, dokým nevymažete dáta, ktoré ostatné weby uložili v zariadení</translation>
 <translation id="1333965224356556482">Nepovoliť webom zobrazovať polohu</translation>
@@ -1009,6 +1008,7 @@
 <translation id="1944921356641260203">Je k dispozícii aktualizácia</translation>
 <translation id="1947136734041527201">Umožňuje vám prihlásiť sa na weboch účtom, ktorý ste si zriadili prostredníctvom služby identity</translation>
 <translation id="1949584741547056205">Rýchle odpovede</translation>
+<translation id="1949849604471335579">Prispôsobiť tapetu, šetrič obrazovky, zvýrazňujúce farby a ďalšie položky</translation>
 <translation id="1951012854035635156">Asistent</translation>
 <translation id="1954597385941141174">Weby môžu žiadať o pripjenie k zariadeniam USB</translation>
 <translation id="1954813140452229842">Pri pripájaní zdieľaného úložiska sa vyskytla chyba. Skontrolujte poverenia a skúste to znova.</translation>
@@ -1040,6 +1040,7 @@
 <translation id="1981434377190976112">Čítať všetky vaše údaje na všetkých weboch</translation>
 <translation id="1984417487208496350">Bez ochrany (neodporúča sa)</translation>
 <translation id="1987317783729300807">Účty</translation>
+<translation id="1987574314042117472">Vybrať a nainštalovať obľúbené aplikácie</translation>
 <translation id="1988259784461813694">Požiadavka</translation>
 <translation id="1989112275319619282">Prehliadať</translation>
 <translation id="1989903373608997757">Vždy používať</translation>
@@ -1105,6 +1106,7 @@
 <translation id="2048554637254265991">Správcu kontajnera sa nepodarilo spustiť. Skúste to znova.</translation>
 <translation id="2048653237708779538">Akcia nie je k dispozícii</translation>
 <translation id="2050339315714019657">Na výšku</translation>
+<translation id="2052572566310583903">Nainštalované vo vašich ďalších zariadeniach</translation>
 <translation id="2053312383184521053">Údaje stavu nečinnosti</translation>
 <translation id="2054240652864153171">Chcete vymazať dáta webu pre <ph name="SITE_NAME" /> segmentované na <ph name="PARTITION_SITE_NAME" />?</translation>
 <translation id="2055585478631012616">Systém vás odhlási z týchto webov (aj v otvorených kartách)</translation>
@@ -1267,6 +1269,7 @@
 <translation id="2191754378957563929">zapnuté</translation>
 <translation id="2192505247865591433">Zdroj:</translation>
 <translation id="2193365732679659387">Nastavenie dôveryhodnosti</translation>
+<translation id="2194554416429452547">Počas skúšobných období hľadá Chrome spôsoby, ako obmedziť spam, podvody a zdieľanie obsahu medzi webmi. Chrome okrem toho <ph name="ESTIMATE_INTERESTS_LINK" />, na základe ktorých vám budú môcť weby zobrazovať reklamy. Svoje záujmy môžete spravovať v nastaveniach.</translation>
 <translation id="2194856509914051091">Čo je potrebné zohľadniť</translation>
 <translation id="2195331105963583686">Po tomto dátume budete môcť <ph name="DEVICE_TYPE" /> naďalej používať, ale už nebude dostávať automatické aktualizácie softvéru a zabezpečenia</translation>
 <translation id="2195729137168608510">Ochrana e-mailu</translation>
@@ -1871,6 +1874,7 @@
 <translation id="2749836841884031656">SIM</translation>
 <translation id="2749881179542288782">Skontrolovať gramatiku s pravopisom</translation>
 <translation id="2753677631968972007">Ručne ovládať povolenia webu</translation>
+<translation id="2754825024506485820">Vyhľadajte v Obchode Google Play aplikácie, ktoré potrebujete, napríklad kancelárske alebo také, ktoré vás zabavia. Aplikácie môžete inštalovať kedykoľvek.</translation>
 <translation id="2755349111255270002">Resetovanie tohto zariadenia <ph name="DEVICE_TYPE" /></translation>
 <translation id="2755367719610958252">Spravovať funkcie dostupnosti</translation>
 <translation id="275662540872599901">obrazovka je vypnutá</translation>
@@ -1947,6 +1951,7 @@
 <translation id="2815693974042551705">Priečinok so záložkami</translation>
 <translation id="2816319641769218778">Ak chcete ukladať heslá do svojho účtu Google, zapnite synchronizáciu.</translation>
 <translation id="2816628817680324566">Chcete tomuto webu povoliť identifikáciu vášho bezpečnostného kľúča?</translation>
+<translation id="2817435998497102771">Nastaviť tapety a štýl</translation>
 <translation id="2818476747334107629">Podrobnosti tlačiarne</translation>
 <translation id="2819167288942847344">Ak chcete zabrániť problematickému správaniu aplikácií, použite v prípade telefónu, tabletu alebo okna s prispôsobiteľnou veľkosťou predvoľby.</translation>
 <translation id="2820957248982571256">Prebieha vyhľadávanie...</translation>
@@ -2840,6 +2845,7 @@
 <translation id="3727144509609414201">Dostupné siete Wi‑Fi</translation>
 <translation id="3727187387656390258">Kontrola kontextovej ponuky</translation>
 <translation id="372722114124766626">Len raz</translation>
+<translation id="3727332897090187514">Nebola pridaná žiadna poznámka</translation>
 <translation id="3727473233247516571">Podrám v spätnej vyrovnávacej pamäti: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation>
 <translation id="3728188878314831180">Zrkadliť upozornenia z telefónu</translation>
 <translation id="3728681439294129328">Konfigurovať adresu siete</translation>
@@ -3175,6 +3181,7 @@
 <translation id="4031527940632463547">Senzory sú blokované</translation>
 <translation id="4033415645631238123">Prihlasovanie pomocou funkcie Smart Lock už nie je k dispozícii. Stále však pomocou nej môžete odomykať.</translation>
 <translation id="4033471457476425443">Pridať nový priečinok</translation>
+<translation id="4033711848170683365">Týmto natrvalo odstránite dáta prehliadania z tohto zariadenia. Účty Google v tomto profile môžu byť používané ďalšími aplikáciami vo vašom zariadení <ph name="DEVICE_TYPE" />. Tieto účty môžete odstrániť v sekcii <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> &gt; <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation>
 <translation id="4033963223187371752">Zabezpečené weby môžu vkladať obsah, napríklad obrázky alebo rámy webu, ktoré nie sú zabezpečené</translation>
 <translation id="4034824040120875894">Tlačiareň</translation>
 <translation id="4035758313003622889">&amp;Správca úloh</translation>
@@ -3453,6 +3460,7 @@
 <translation id="4314815835985389558">Správa synchronizácie</translation>
 <translation id="4315933848520197627">Odpojiť účet</translation>
 <translation id="4316850752623536204">Webové stránky vývojára</translation>
+<translation id="4317733381297736564">Nákupy v aplikácii</translation>
 <translation id="4317820549299924617">Overenie nebolo úspešné</translation>
 <translation id="4320177379694898372">Žiadne internetové pripojenie</translation>
 <translation id="4322394346347055525">Zatvoriť ostatné karty</translation>
@@ -4035,6 +4043,7 @@
 <translation id="4893522937062257019">Na uzamknutej obrazovke</translation>
 <translation id="4897496410259333978">Ďalšie informácie získate od správcu.</translation>
 <translation id="4898011734382862273">Certifikát „<ph name="CERTIFICATE_NAME" />“ predstavuje certifikačnú autoritu</translation>
+<translation id="4899696330053002588">Obsahuje reklamy</translation>
 <translation id="489985760463306091">Odstraňovanie škodlivého softvéru dokončite reštartovaním počítača</translation>
 <translation id="4900392736118574277">Vaša stránka pri spustení bola zmenená na <ph name="URL" />.</translation>
 <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz –prekladané</translation>
@@ -4408,6 +4417,7 @@
 <translation id="52912272896845572">Súbor súkromného kľúča je neplatný.</translation>
 <translation id="5291739252352359682">Automaticky vytvára titulky k médiám v prehliadači Chrome (momentálne k dispozícii v angličtine). Zvuk a titulky sú spracúvané miestne a nikdy neopustia zariadenie.</translation>
 <translation id="529175790091471945">Formátovať toto zariadenie</translation>
+<translation id="5292862864186939732">Chcete, aby sa rozšírenie <ph name="EXTENSION_NAME" /> spúšťalo na <ph name="ORIGIN" /> vždy?</translation>
 <translation id="529296195492126134">Režim dočasných profilov nie je podporovaný. Kontaktujte správcu.</translation>
 <translation id="5293170712604732402">Obnovenie pôvodných predvolených nastavení</translation>
 <translation id="5294097441441645251">Musí sa začínať malým znakom alebo podčiarkovníkom</translation>
@@ -5165,6 +5175,7 @@
 <translation id="6054961935262556546">Zmeniť viditeľnosť</translation>
 <translation id="6055171183283175969">Zadané heslo je nesprávne.</translation>
 <translation id="6055392876709372977">Štandard PKCS #1 SHA-256 so šifrovaním RSA</translation>
+<translation id="6055544610007596637">Inštalácia aplikácií pre zariadenie <ph name="DEVICE_TYPE" /> z Obchodu Google Play</translation>
 <translation id="6056710589053485679">Opätovne načítať</translation>
 <translation id="6057312498756061228">Tento súbor je príliš veľký na kontrolu. Otvoriť môžete súbory s maximálnou veľkosťou 50 MB.</translation>
 <translation id="6057381398996433816">Tomuto webu bolo zablokované používanie senzorov pohybu a svetla.</translation>
@@ -6141,6 +6152,7 @@
 <translation id="7002055706763150362">Ak chcete nastaviť funkciu Smart Lock pre Chromebook, Google musí najprv overiť, že ste to vy. Musíte preto zadať heslo.</translation>
 <translation id="7003339318920871147">Webové databázy</translation>
 <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} súbor}few{{COUNT} súbory}many{{COUNT} files}other{{COUNT} súborov}}</translation>
+<translation id="7003705861991657723">Alfa verzia</translation>
 <translation id="7003723821785740825">Nastavte rýchlejší spôsob odomknutia zariadenia</translation>
 <translation id="7003844668372540529">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">Web môže používať MIDI</translation>
@@ -6157,6 +6169,7 @@
 <translation id="7008815993384338777">Momentálne nepoužívate roaming</translation>
 <translation id="7009709314043432820"><ph name="APP_NAME" /> používa vašu kameru</translation>
 <translation id="701080569351381435">Zobraziť zdrojový kód</translation>
+<translation id="7011797924920577670">odhadne vaše záujmy</translation>
 <translation id="7014174261166285193">Inštalácia zlyhala.</translation>
 <translation id="7014480873681694324">Odstrániť zvýraznenie</translation>
 <translation id="7017004637493394352">Povedzte „Ok Google“ ešte raz</translation>
@@ -6224,6 +6237,7 @@
 <translation id="7082568314107259011">Sieť <ph name="NETWORK_NAME" /> je spravovaná správcom</translation>
 <translation id="7085389578340536476">Povoliť Chromu zaznamenať zvuk?</translation>
 <translation id="708550780726587276">(nenakonfigurované)</translation>
+<translation id="7086531709814430567">Chcete povoliť, aby sa tieto rozšírenia spúšťali na <ph name="ORIGIN" /> vždy?</translation>
 <translation id="7086672505018440886">Zahŕňať súbory denníka Chromu do archívu</translation>
 <translation id="7088434364990739311">Kontrolu aktualizácií sa nepodarilo spustiť (kód chyby: <ph name="ERROR" />).</translation>
 <translation id="7088674813905715446">Toto zariadenie bolo správcom uvedené do stavu odstránenia. Ak chcete povoliť jeho registráciu, požiadajte svojho správcu, aby zariadenie uviedol do stavu čakania.</translation>
@@ -6322,7 +6336,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Opustiť stránku}few{Opustiť stránky}many{Opustiť stránky}other{Opustiť stránky}}</translation>
 <translation id="7207457272187520234">Odosielanie údajov o využití a diagnostiky. Toto zariadenie momentálne automaticky odosiela Googlu diagnostiky a údaje o používaní zariadenia a aplikácií. Pomôžu zvýšiť stabilitu systému a aplikácií a poskytovať ďalšie zlepšenia. Niektoré súhrnné údaje tiež pomôžu aplikáciám Google a partnerom, ako napríklad vývojárom pre Android. Používanie tohto nastavenia je presadzované vlastníkom. Ak aktivujete ďalšiu aktivitu na internete a v aplikáciách, tieto údaje sa uložia vo vašom účte Google.</translation>
 <translation id="7207631048330366454">Vyhľadajte aplikácie</translation>
-<translation id="720808544705441386">Aplikácia sa nedá otvoriť</translation>
 <translation id="7210499381659830293">Tlačiarne s rozšíreniami</translation>
 <translation id="7211783048245131419">Zatiaľ nebol pridelený žiadny prepínač</translation>
 <translation id="7212097698621322584">Zadajte svoj aktuálny kód PIN a zmeňte ho. Ak ho nepoznáte, musíte resetovať bezpečnostný kľúč a potom vytvoriť nový PIN.</translation>
@@ -8359,6 +8372,7 @@
 <translation id="9215742531438648683">Odinštalovať Obchod Google Play</translation>
 <translation id="9218430445555521422">Nastaviť ako predvolený</translation>
 <translation id="9218842937876577955"><ph name="APP_NAME" /> (nepodporovaná aplikácia)</translation>
+<translation id="9219582468404818260">Pomôžte nám vytvoriť lepší internet</translation>
 <translation id="9220525904950070496">Odstrániť účet</translation>
 <translation id="9220820413868316583">Zodvihnite a zopakujte.</translation>
 <translation id="923467487918828349">Zobraziť všetky</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index e80ba47e..161a314 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -338,7 +338,6 @@
 <translation id="1327794256477341646">Funkcije, ki potrebujejo lokacijo, ne bodo delovale</translation>
 <translation id="1329191040029425999">Preverite, ali je naprava posodobljena, in poskusite znova.</translation>
 <translation id="1330145147221172764">Omogoči zaslonsko tipkovnico</translation>
-<translation id="1331625853030156663">Če želite odpreti aplikacijo <ph name="APP_NAME" />, omogočite možnost »Prikaži zaklenjen zaslon pri preklopu iz stanja pripravljenosti«.</translation>
 <translation id="1331977651797684645">To sem bil(-a) jaz.</translation>
 <translation id="1333489022424033687">Nekatere funkcije na <ph name="ORIGIN" /> morda ne bodo delovale, dokler ne izbrišete podatkov, ki so jih druga spletna mesta shranila na napravi</translation>
 <translation id="1333965224356556482">Spletnim mestom ni dovoljen ogled vaše lokacije.</translation>
@@ -6343,7 +6342,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Zapri stran}one{Zapri strani}two{Zapri strani}few{Zapri strani}other{Zapri strani}}</translation>
 <translation id="7207457272187520234">Pošiljanje podatkov o uporabi in diagnostičnih podatkov. Ta naprava trenutno Googlu samodejno pošilja diagnostične podatke ter podatke o uporabi naprave in aplikacij. Te podatke uporabljamo za izboljšanje stabilnosti sistema in izvajanja aplikacij ter drugega. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android. To nastavitev je uveljavil lastnik naprave. Če ste vklopili dodatno beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v vašem računu Google.</translation>
 <translation id="7207631048330366454">Iščite aplikacije</translation>
-<translation id="720808544705441386">Aplikacije ni mogoče odpreti</translation>
 <translation id="7210499381659830293">Tiskalniki razširitev</translation>
 <translation id="7211783048245131419">Dodeljeno ni bilo še nobeno stikalo.</translation>
 <translation id="7212097698621322584">Vnesite trenutno kodo PIN, da jo spremenite. Če kode PIN ne poznate, morate ponastaviti varnostni ključ, nato ustvarite novo kodo PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index d614194..66ba7a1b 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Veçoritë që kanë nevojë për vendndodhjen tënde nuk do të funksionojnë</translation>
 <translation id="1329191040029425999">Sigurohu që pajisja jote të jetë e përditësuar dhe provo përsëri</translation>
 <translation id="1330145147221172764">Aktivizo tastierën në ekran</translation>
-<translation id="1331625853030156663">Për të hapur aplikacionin <ph name="APP_NAME" />, aktivizo "Shfaq ekranin e kyçjes kur zgjohet nga gjumi"</translation>
 <translation id="1331977651797684645">Isha unë.</translation>
 <translation id="1333489022424033687">Disa veçori në <ph name="ORIGIN" /> mund të mos funksionojnë deri sa të pastrosh të dhënat që sajtet e tjera kanë ruajtur në pajisjen tënde</translation>
 <translation id="1333965224356556482">Mos lejo që sajtet të shikojnë vendndodhjen tënde</translation>
@@ -4318,6 +4317,7 @@
 <translation id="520568280985468584">Rrjeti është shtuar me sukses. Mund të duhen disa minuta që rrjeti yt celular të bëhet aktiv.</translation>
 <translation id="5206215183583316675">Të fshihet "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Gabim në importimin e certifikatës</translation>
+<translation id="5206562235913517859">ID-ja e dyqanit të shitjes me pakicë është në formatin ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Fjalëkalimi i komprometuar u ndryshua me sukses. Ke edhe # fjalëkalim tjetër të komprometuar. Chrome rekomandon që ta kontrollosh këtë fjalëkalim tani.}other{Fjalëkalimi i komprometuar u ndryshua me sukses. Ke edhe # fjalëkalime të tjera të komprometuara. Chrome rekomandon që t'i kontrollosh këto fjalëkalime tani.}}</translation>
 <translation id="5207949376430453814">Thekso kursorin e tekstit</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> dëshiron të kontrollojë nëse po përdor një pajisje të përshtatshme me ChromeOS.</translation>
@@ -4839,6 +4839,7 @@
 <translation id="5729712731028706266">&amp;Shiko</translation>
 <translation id="5731247495086897348">Ngj&amp;it dhe vazhdo</translation>
 <translation id="5732392974455271431">Prindërit e tu mund ta zhbllokojnë atë për ty</translation>
+<translation id="5733866499231170760">ID e pavlefshme. Formati që fute është i pasaktë. Kontrollo udhëzimet që ke marrë për t'u siguruar që po e fut ID-në në formatin e duhur. Nëse nuk mund ta zgjidhësh këtë problem, lëre fushën bosh dhe vazhdo me instalimin.</translation>
 <translation id="5734362860645681824">Komunikimet</translation>
 <translation id="5734697361979786483">Shto një ndarje të skedarit</translation>
 <translation id="5736796278325406685">Fut një emër të vlefshëm përdoruesi</translation>
@@ -6311,7 +6312,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Dil nga faqja}other{Dil nga faqet}}</translation>
 <translation id="7207457272187520234">Dërgo të dhënat e përdorimit dhe të diagnostikimit. Aktualisht kjo pajisje po dërgon automatikisht te Google të dhënat e diagnostikimit dhe të përdorimit të pajisjes dhe të aplikacioneve. Këto do të ndihmojnë për qëndrueshmërinë e sistemit dhe të aplikacioneve dhe për përmirësime të tjera. Disa të dhëna të përmbledhura do të ndihmojnë po ashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android. Ky cilësim zbatohet nga zotëruesi. Nëse cilësimi i "Aktivitetit shtesë të uebit dhe të aplikacioneve" është i aktivizuar, këto të dhëna mund të ruhen në "Llogarinë tënde të Google".</translation>
 <translation id="7207631048330366454">Kërko për aplikacione</translation>
-<translation id="720808544705441386">Aplikacioni nuk mund të hapet</translation>
 <translation id="7210499381659830293">Printerët e shtesës</translation>
 <translation id="7211783048245131419">Nuk është caktuar ende asnjë çelës</translation>
 <translation id="7212097698621322584">Fut kodin PIN aktual për ta ndryshuar. Nëse nuk e di kodin PIN, duhet të rivendosësh çelësin e sigurisë, dhe më pas të krijosh një kod të ri PIN.</translation>
@@ -6945,6 +6945,7 @@
 <translation id="7824864914877854148">Rezervimi nuk mund të përfundonte për shkak të një gabimi</translation>
 <translation id="782590969421016895">Përdor faqet aktuale</translation>
 <translation id="7826174860695147464">Mbështetja e shfletuesit të trashëgimisë (LBS) - Pjesët e brendshme</translation>
+<translation id="7826190688224781865">Kodi i ID-së së dyqanit të shitjes me pakicë</translation>
 <translation id="7826249772873145665">Korrigjimi i ADB-së është çaktivizuar</translation>
 <translation id="7826254698725248775">Identifikuesi i pajisjes është në konflikt.</translation>
 <translation id="7828731929332799387">Kjo do të fshijë të gjitha kukit dhe të dhënat e sajtit që ofrohen në kontekstet e palëve të treta. Dëshiron të vazhdosh?</translation>
@@ -8413,6 +8414,7 @@
 <translation id="987897973846887088">Nuk ka imazhe në dispozicion</translation>
 <translation id="988320949174893488">Belbëzon herë pas here</translation>
 <translation id="988978206646512040">Lënia bosh e frazës së kalimit nuk lejohet</translation>
+<translation id="991097196715779457">Kodi i ID-së së dyqanit të shitjes me pakicë (opsional)</translation>
 <translation id="992032470292211616">Shtesat, aplikacionet dhe temat mund të dëmtojnë pajisjen tënde. Je i sigurt se dëshiron të vazhdosh?</translation>
 <translation id="992256792861109788">Rozë</translation>
 <translation id="992592832486024913">Çaktivizo ChromeVox (koment me të folur)</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 61a1de8..cd58a4f 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funkcije kojima je potrebna vaša lokacija neće raditi</translation>
 <translation id="1329191040029425999">Proverite da li je uređaj ažuran i probajte ponovo</translation>
 <translation id="1330145147221172764">Omogući tastaturu na ekranu</translation>
-<translation id="1331625853030156663">Da biste otvorili aplikaciju <ph name="APP_NAME" />, omogućite opciju Prikaži zaključani ekran pri pokretanju iz režima spavanja</translation>
 <translation id="1331977651797684645">To sam ja.</translation>
 <translation id="1333489022424033687">Neke funkcije na <ph name="ORIGIN" /> možda neće raditi dok ne obrišete podatke koje su drugi sajtovi sačuvali na uređaju</translation>
 <translation id="1333965224356556482">Ne dozvoljavaj sajtovima da vide vašu lokaciju</translation>
@@ -838,6 +837,7 @@
 <translation id="1794051631868188691">Nikada ne prikazuj korpu prodavca <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Šalji povratne informacije kao pomoć za rešavanje ovog problema.</translation>
 <translation id="1795214765651529549">Koristi klasičnu</translation>
+<translation id="1796105431091975902">Izaberite Ansible vodič za dodavanje</translation>
 <translation id="1796588414813960292">Funkcije kojima treba zvuk neće raditi</translation>
 <translation id="1800502858278951817">Nijedan dodatak nije zatražio da čita i menja <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">Pređi u stanje spavanja kada se poklopac zatvori</translation>
@@ -3032,6 +3032,7 @@
 <translation id="389901847090970821">Izaberite tastaturu</translation>
 <translation id="3900966090527141178">Izvezite lozinke</translation>
 <translation id="3903187154317825986">Ugrađena tastatura</translation>
+<translation id="3903191712482985591">Dodajte vodič</translation>
 <translation id="3904326018476041253">Usluge lokacije</translation>
 <translation id="3904849010307028014">Taj sajt može da izda pouzdan token za pregledač na osnovu vaše interakcije sa sajtom, poput redovnog prijavljivanja na nalog. Ako drugi sajtovi koje posećujete kasnije potraže i pronađu važeći pouzdani token, veća je verovatnoća da će vas tretirati kao osobu, a ne kao robota.</translation>
 <translation id="3905761538810670789">Popravi aplikaciju</translation>
@@ -3640,6 +3641,7 @@
 <translation id="4510479820467554003">Lista naloga roditelja</translation>
 <translation id="451102079304155829">korpe</translation>
 <translation id="4513872120116766993">Pisanje sa predviđanjem</translation>
+<translation id="4513909579793564731">Primeni vodič</translation>
 <translation id="4513946894732546136">Povratne informacije</translation>
 <translation id="451407183922382411">Omogućava <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Pušta ili pauzira video</translation>
@@ -5470,6 +5472,7 @@
 <translation id="635609604405270300">Ne isključujte uređaj</translation>
 <translation id="63566973648609420">Samo neko ko ima pristupnu frazu može da čita šifrovane podatke. Google ne šalje niti čuva pristupnu frazu. Ako zaboravite pristupnu frazu ili želite da promenite ovo podešavanje, moraćete da <ph name="BEGIN_LINK" />resetujete sinhronizaciju<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Neki podržani linkovi će se i dalje otvarati u <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">Nijednom dodatku nije dozvoljeno da čita i menja <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Zmaj</translation>
 <translation id="6361850914223837199">Detalji greške:</translation>
 <translation id="6362853299801475928">P&amp;rijavi problem...</translation>
@@ -6319,7 +6322,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Zatvori stranicu}one{Zatvori stranice}few{Zatvori stranice}other{Zatvori stranice}}</translation>
 <translation id="7207457272187520234">Šaljite podatke o korišćenju i dijagnostičke podatke. Ovaj uređaj trenutno automatski šalje podatke o dijagnostici, uređaju i korišćenju aplikacija Google-u. To doprinosi održavanju stabilnosti sistema i aplikacije i drugim podešavanjima. Neki objedinjeni podaci će takođe pomoći Google aplikacijama i partnerima, poput Android programera. To podešavanje primenjuje vlasnik. Ako uključite podešavanje dodatne aktivnosti na vebu i u aplikacijama, ti podaci će se možda čuvati na Google nalogu.</translation>
 <translation id="7207631048330366454">Pretražite aplikacije</translation>
-<translation id="720808544705441386">Otvaranje aplikacije nije uspelo</translation>
 <translation id="7210499381659830293">Štampači dodaci</translation>
 <translation id="7211783048245131419">Još nije dodeljen nijedan prekidač</translation>
 <translation id="7212097698621322584">Unesite aktuelni PIN da biste ga promenili. Ako ne znate PIN, morate da resetujete bezbednosni ključ, pa da napravite novi PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 7c30275c..87f61f7 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Функције којима је потребна ваша локација неће радити</translation>
 <translation id="1329191040029425999">Проверите да ли је уређај ажуран и пробајте поново</translation>
 <translation id="1330145147221172764">Омогући тастатуру на екрану</translation>
-<translation id="1331625853030156663">Да бисте отворили апликацију <ph name="APP_NAME" />, омогућите опцију Прикажи закључани екран при покретању из режима спавања</translation>
 <translation id="1331977651797684645">То сам ја.</translation>
 <translation id="1333489022424033687">Неке функције на <ph name="ORIGIN" /> можда неће радити док не обришете податке које су други сајтови сачували на уређају</translation>
 <translation id="1333965224356556482">Не дозвољавај сајтовима да виде вашу локацију</translation>
@@ -838,6 +837,7 @@
 <translation id="1794051631868188691">Никада не приказуј корпу продавца <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">Шаљи повратне информације као помоћ за решавање овог проблема.</translation>
 <translation id="1795214765651529549">Користи класичну</translation>
+<translation id="1796105431091975902">Изаберите Ansible водич за додавање</translation>
 <translation id="1796588414813960292">Функције којима треба звук неће радити</translation>
 <translation id="1800502858278951817">Ниједан додатак није затражио да чита и мења <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">Пређи у стање спавања када се поклопац затвори</translation>
@@ -3032,6 +3032,7 @@
 <translation id="389901847090970821">Изаберите тастатуру</translation>
 <translation id="3900966090527141178">Извезите лозинке</translation>
 <translation id="3903187154317825986">Уграђена тастатура</translation>
+<translation id="3903191712482985591">Додајте водич</translation>
 <translation id="3904326018476041253">Услуге локације</translation>
 <translation id="3904849010307028014">Тај сајт може да изда поуздан токен за прегледач на основу ваше интеракције са сајтом, попут редовног пријављивања на налог. Ако други сајтови које посећујете касније потраже и пронађу важећи поуздани токен, већа је вероватноћа да ће вас третирати као особу, а не као робота.</translation>
 <translation id="3905761538810670789">Поправи апликацију</translation>
@@ -3640,6 +3641,7 @@
 <translation id="4510479820467554003">Листа налога родитеља</translation>
 <translation id="451102079304155829">корпе</translation>
 <translation id="4513872120116766993">Писање са предвиђањем</translation>
+<translation id="4513909579793564731">Примени водич</translation>
 <translation id="4513946894732546136">Повратне информације</translation>
 <translation id="451407183922382411">Омогућава <ph name="COMPANY_NAME" /></translation>
 <translation id="4514610446763173167">Пушта или паузира видео</translation>
@@ -5470,6 +5472,7 @@
 <translation id="635609604405270300">Не искључујте уређај</translation>
 <translation id="63566973648609420">Само неко ко има приступну фразу може да чита шифроване податке. Google не шаље нити чува приступну фразу. Ако заборавите приступну фразу или желите да промените ово подешавање, мораћете да <ph name="BEGIN_LINK" />ресетујете синхронизацију<ph name="END_LINK" />.</translation>
 <translation id="6357305427698525450">Неки подржани линкови ће се и даље отварати у <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation>
+<translation id="6357794994761110294">Ниједном додатку није дозвољено да чита и мења <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">Змај</translation>
 <translation id="6361850914223837199">Детаљи грешке:</translation>
 <translation id="6362853299801475928">П&amp;ријави проблем...</translation>
@@ -6319,7 +6322,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Затвори страницу}one{Затвори странице}few{Затвори странице}other{Затвори странице}}</translation>
 <translation id="7207457272187520234">Шаљите податке о коришћењу и дијагностичке податке. Овај уређај тренутно аутоматски шаље податке о дијагностици, уређају и коришћењу апликација Google-у. То доприноси одржавању стабилности система и апликације и другим подешавањима. Неки обједињени подаци ће такође помоћи Google апликацијама и партнерима, попут Android програмера. То подешавање примењује власник. Ако укључите подешавање додатне активности на вебу и у апликацијама, ти подаци ће се можда чувати на Google налогу.</translation>
 <translation id="7207631048330366454">Претражите апликације</translation>
-<translation id="720808544705441386">Отварање апликације није успело</translation>
 <translation id="7210499381659830293">Штампачи додаци</translation>
 <translation id="7211783048245131419">Још није додељен ниједан прекидач</translation>
 <translation id="7212097698621322584">Унесите актуелни PIN да бисте га променили. Ако не знате PIN, морате да ресетујете безбедносни кључ, па да направите нови PIN.</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index b8e858be..e5b3d0f 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Funktioner där din plats behövs slutar fungera</translation>
 <translation id="1329191040029425999">Kontrollera att enheten är uppdaterad och försök igen</translation>
 <translation id="1330145147221172764">Aktivera skärmtangentbordet</translation>
-<translation id="1331625853030156663">Om du vill öppna <ph name="APP_NAME" /> aktiverar du Visa låsskärm efter viloläge</translation>
 <translation id="1331977651797684645">Det var jag.</translation>
 <translation id="1333489022424033687">Vissa funktioner på <ph name="ORIGIN" /> kanske inte fungerar förrän du rensar data som andra webbplatser har lagrat på enheten</translation>
 <translation id="1333965224356556482">Tillåt inte att webbplatser ser din plats</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">Nätverket har lagts till. Det kan ta flera minuter innan mobilnätverket blir aktivt.</translation>
 <translation id="5206215183583316675">Vill du radera <ph name="CERTIFICATE_NAME" />?</translation>
 <translation id="520621735928254154">Fel vid import av certifikat</translation>
+<translation id="5206562235913517859">Id:n för återförsäljarbutiker har formatet ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Det utsatta lösenordet har ändrats. Det finns # utsatt lösenord till. Du rekommenderas att kontrollera detta lösenord nu.}other{Det utsatta lösenordet har ändrats. Det finns # utsatta lösenord till. Du rekommenderas att kontrollera dessa lösenord nu.}}</translation>
 <translation id="5207949376430453814">Markera textmarkören</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> vill kontrollera om du använder en Chrome OS-enhet som uppfyller villkoren.</translation>
@@ -4858,6 +4858,7 @@
 <translation id="5729712731028706266">&amp;Visa</translation>
 <translation id="5731247495086897348">Kl&amp;istra in och öppna</translation>
 <translation id="5732392974455271431">Dina föräldrar kan ta bort blockeringen</translation>
+<translation id="5733866499231170760">Ogiltigt id. Det angivna formatet är felaktigt. Läs de tillhandahållna anvisningarna för att se till att det angivna id:t har rätt format. Om du inte kan lösa problemet lämnar du fältet tomt och fortsätter med installationen.</translation>
 <translation id="5734362860645681824">Kommunikation</translation>
 <translation id="5734697361979786483">Lägg till filresurs</translation>
 <translation id="5736796278325406685">Ange ett giltigt användarnamn</translation>
@@ -6330,7 +6331,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Lämna sidan}other{Lämna sidorna}}</translation>
 <translation id="7207457272187520234">Skicka diagnostik- och användningsdata. Den här enheten skickar för närvarande diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera. Viss samlad data används även till att förbättra appar från Google och Googles partner, till exempel Android-utvecklare. Ägaren har gjort denna inställning obligatorisk. Om ytterligare webb- och appaktivitet har aktiverats kan denna data sparas i Google-kontot.</translation>
 <translation id="7207631048330366454">Sök efter appar</translation>
-<translation id="720808544705441386">Det gick inte att öppna appen</translation>
 <translation id="7210499381659830293">Tilläggsskrivare</translation>
 <translation id="7211783048245131419">Ingen brytare har tilldelats ännu</translation>
 <translation id="7212097698621322584">Ange den nuvarande pinkoden om du vill ändra den. Om du inte kan pinkoden måste du återställa säkerhetsnyckeln och sedan ställa in en ny pinkod.</translation>
@@ -6965,6 +6965,7 @@
 <translation id="7824864914877854148">Det gick inte att slutföra säkerhetskopieringen på grund av ett fel</translation>
 <translation id="782590969421016895">Använd aktuella sidor</translation>
 <translation id="7826174860695147464">Stöd för äldre webbläsare – interna inställningar</translation>
+<translation id="7826190688224781865">Id-kod för återförsäljarbutik</translation>
 <translation id="7826249772873145665">Felsökning med ADB har inaktiverats</translation>
 <translation id="7826254698725248775">Motstridiga enhetsidentifierare.</translation>
 <translation id="7828731929332799387">Med denna åtgärd raderas alla cookies och webbplatsuppgifter som är tillgängliga i sammanhang där en tredje part är inblandad. Vill du fortsätta?</translation>
@@ -8435,6 +8436,7 @@
 <translation id="987897973846887088">Det finns inga bilder</translation>
 <translation id="988320949174893488">Hackar ibland</translation>
 <translation id="988978206646512040">Lösenfrasen får inte vara tom</translation>
+<translation id="991097196715779457">Id-kod för återförsäljarbutik (valfritt)</translation>
 <translation id="992032470292211616">Tillägg, appar och teman kan skada enheten. Vill du fortsätta?</translation>
 <translation id="992256792861109788">Rosa</translation>
 <translation id="992592832486024913">Inaktivera ChromeVox (talad feedback)</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index da8515d..677da43 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Vipengele vinavyohitaji maelezo ya mahali ulipo havitafanya kazi</translation>
 <translation id="1329191040029425999">Hakikisha kuwa kifaa chako kimesasishwa kisha ujaribu tena</translation>
 <translation id="1330145147221172764">Washa kibodi ya skrini</translation>
-<translation id="1331625853030156663">Ili kufungua <ph name="APP_NAME" />, ruhusu kipengele cha '"Onyesha skrini iliyofungwa unapofungua kifaa kutoka kwenye hali tuli"</translation>
 <translation id="1331977651797684645">Ni mimi.</translation>
 <translation id="1333489022424033687">Baadhi ya vipengele kwenye <ph name="ORIGIN" /> huenda visifanye kazi hadi utakapofuta data ambayo tovuti nyingine zimehifadhi kwenye kifaa chako</translation>
 <translation id="1333965224356556482">Usiruhusu tovuti zione mahali ulipo</translation>
@@ -4332,6 +4331,7 @@
 <translation id="520568280985468584">Mtandao umewekwa. Huenda ikachukua dakika kadhaa kabla ya mtandao wako wa simu kuanza kutumika.</translation>
 <translation id="5206215183583316675">Ungependa kufuta "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="520621735928254154">Hitilafu ya Kuleta Cheti</translation>
+<translation id="5206562235913517859">Kitambulisho cha duka la muuzaji wa rejareja kina muundo wa ABC-1234</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Imebadilisha nenosiri lililoathiriwa. Una nenosiri # zaidi lililoathiriwa. Chrome inapendekeza ukague nenosiri hili sasa.}other{Imebadilisha nenosiri lililoathiriwa. Una manenosiri # zaidi yaliyoathiriwa. Chrome inapendekeza ukague manenosiri haya sasa.}}</translation>
 <translation id="5207949376430453814">Angazia kareti ya maandishi</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> inataka kuthibitisha kama unatumia kifaa kinachostahiki cha Mfumo wa Uendeshaji wa Chrome.</translation>
@@ -4853,6 +4853,7 @@
 <translation id="5729712731028706266">&amp;Ona</translation>
 <translation id="5731247495086897348">&amp;Bandika Uende</translation>
 <translation id="5732392974455271431">Wazazi wako wanaweza kukuondolea kizuizi</translation>
+<translation id="5733866499231170760">Kitambulisho si sahihi. Muundo ulioweka si sahihi. Tafadhali angalia maagizo uliyopokea na uhakikishe unaweka kitambulisho katika muundo sahihi. Iwapo hutaweza kutatua hililafu hii, tafadhali usijaze sehemu hii na uendelee na usakinishaji.</translation>
 <translation id="5734362860645681824">Mawasiliano</translation>
 <translation id="5734697361979786483">Ongeza faili ya kushiriki</translation>
 <translation id="5736796278325406685">Tafadhali andika jina sahihi la mtumiaji</translation>
@@ -6325,7 +6326,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Funga ukurasa}other{Funga kurasa}}</translation>
 <translation id="7207457272187520234">Tuma data ya matumizi na uchunguzi. Kwa sasa, kifaa hiki kinatuma kiotomatiki data ya uchunguzi na matumizi ya programu na kifaa kwa Google. Maelezo haya yatatusaidia kuboresha uthabiti wa programu na mfumo na maboresho mengine. Baadhi ya maelezo yaliyojumlishwa pia yatasaidia programu na washirika wa Google kama vile wasanidi programu za Android. Mipangilio hii hutekelezwa na mmiliki. Ikiwa umewasha mipangilio ya historia ya Shughuli za ziada kwenye Wavuti na Programu, huenda data hii itahifadhiwa kwenye Akaunti yako ya Google.</translation>
 <translation id="7207631048330366454">Tafuta programu</translation>
-<translation id="720808544705441386">Imeshindwa kufungua programu</translation>
 <translation id="7210499381659830293">Printa za viendelezi</translation>
 <translation id="7211783048245131419">Bado hujakabidhi swichi yoyote</translation>
 <translation id="7212097698621322584">Weka PIN yako ya sasa ili uibadilishe. Ikiwa hujui PIN yako, utahitaji kubadilisha ufunguo wako wa usalama, kisha uunde PIN mpya.</translation>
@@ -6961,6 +6961,7 @@
 <translation id="7824864914877854148">Imeshindwa kukamilisha kuhifadhi nakala kutokana na hitilafu</translation>
 <translation id="782590969421016895">Tumia kurasa za sasa</translation>
 <translation id="7826174860695147464">Uwezo wa Kutumia Kivinjari Kilichopitwa na Wakati (LBS) - Mipangilio ya ndani</translation>
+<translation id="7826190688224781865">Msimbo wa kitambulisho cha duka la muuzaji wa rejareja</translation>
 <translation id="7826249772873145665">Utatuzi wa ADB umezimwa</translation>
 <translation id="7826254698725248775">Kitambulishi cha kifaa kinachokinzana.</translation>
 <translation id="7828731929332799387">Hatua hii itafuta vidakuzi na data yote ya tovuti inayopatikana katika muktadha wa watu au kampuni nyingine. Je, ungependa kuendelea?</translation>
@@ -8431,6 +8432,7 @@
 <translation id="987897973846887088">Hakuna picha zinazopatikana</translation>
 <translation id="988320949174893488">Kigugumizi Hapa na Pale</translation>
 <translation id="988978206646512040">Kauli ya siri tupu hairuhusiwi</translation>
+<translation id="991097196715779457">Msimbo wa kitambulisho cha duka la muuzaji wa rejareja (si lazima)</translation>
 <translation id="992032470292211616">Viendelezi, programu, na mandhari vinaweza kudhuru kifaa chako. Je, una uhakika unataka kuendelea?</translation>
 <translation id="992256792861109788">Waridi</translation>
 <translation id="992592832486024913">Zima ChromeVox (maoni ya yaliyotamkwa)</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index ecb5528..8b3b2d93 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">இருப்பிடத் தகவலின் உதவியுடன் இயங்கும் அம்சங்கள் செயல்படாது</translation>
 <translation id="1329191040029425999">உங்கள் சாதனம் சமீபத்திய பதிப்பில் இயங்குவதை உறுதிசெய்து மீண்டும் முயலவும்</translation>
 <translation id="1330145147221172764">ஸ்கிரீன் கீபோர்டு இயக்கு</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ஆப்ஸைத் திறக்க, "உறக்கத்தில் இருந்து விழிக்கும்போது லாக் ஸ்கிரீனைக் காட்டு" என்பதை இயக்கவும்</translation>
 <translation id="1331977651797684645">அது நான் தான்.</translation>
 <translation id="1333489022424033687">உங்கள் சாதனத்தில் பிற தளங்கள் சேமித்த தரவை நீங்கள் அழிக்காத வரை <ph name="ORIGIN" /> இல் சில அம்சங்கள் சரியாக செயல்படாமல் போகக்கூடும்</translation>
 <translation id="1333965224356556482">எனது இருப்பிட விவரத்தை அறிய தளங்களை அனுமதிக்காதே</translation>
@@ -4337,6 +4336,7 @@
 <translation id="520568280985468584">நெட்வொர்க் சேர்க்கப்பட்டது. மொபைல் நெட்வொர்க் செயல்பட சில நிமிடங்கள் ஆகக்கூடும்.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />"ஐ நீக்கவா?</translation>
 <translation id="520621735928254154">சான்றிதழ் இறக்குமதியாவதில் பிழை</translation>
+<translation id="5206562235913517859">சில்லறை விற்பனையாளர் கடை ஐடி ABC-1234 வடிவத்தில் இருக்க வேண்டும்</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{களவாடப்பட்ட கடவுச்சொல் மாற்றப்பட்டது. இன்னும் # களவாடப்பட்ட கடவுச்சொல் உள்ளது. இப்போதே இந்தக் கடவுச்சொச்லைச் சரிபார்க்கும்படி Chrome பரிந்துரைக்கிறது.}other{களவாடப்பட்ட கடவுச்சொல் மாற்றப்பட்டது. இன்னும் # களவாடப்பட்ட கடவுச்சொற்கள் உள்ளன. இப்போதே இந்தக் கடவுச்சொற்களைச் சரிபார்க்கும்படி Chrome பரிந்துரைக்கிறது.}}</translation>
 <translation id="5207949376430453814">உரைச் சுட்டியைத் தனிப்படுத்து</translation>
 <translation id="520840839826327499">தகுதியான ChromeOS சாதனத்தைப் பயன்படுத்துகிறீர்களா என்பதை <ph name="SERVICE_NAME" /> சரிபார்க்க விரும்புகிறது.</translation>
@@ -4859,6 +4859,7 @@
 <translation id="5729712731028706266">&amp;காண்க</translation>
 <translation id="5731247495086897348">ஒட்&amp;டிவிட்டு செல்</translation>
 <translation id="5732392974455271431">உங்களுக்காக, தளத்தின் தடுப்பை உங்கள் பெற்றோர் நீக்க முடியும்</translation>
+<translation id="5733866499231170760">தவறான ஐடி. தவறான வடிவத்தில் உள்ளிட்டுள்ளீர்கள். சரியான வடிவத்தில் ஐடியை உள்ளிடுகிறீர்கள் என்பதை உறுதிசெய்ய உங்களுக்குக் கிடைத்த வழிமுறைகளைப் பார்க்கவும். சிக்கலைத் தீர்க்க முடியவில்லையெனில் இந்தப் புலத்தைக் காலியாக விட்டுவிட்டு நிறுவலைத் தொடரவும்.</translation>
 <translation id="5734362860645681824">தகவல்தொடர்புகள்</translation>
 <translation id="5734697361979786483">ஃபைல் பகிர்வைச் சேர்</translation>
 <translation id="5736796278325406685">சரியான பயனர்பெயரை உள்ளிடவும்</translation>
@@ -6331,7 +6332,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{பக்கத்திலிருந்து வெளியேறு}other{பக்கங்களிலிருந்து வெளியேறு}}</translation>
 <translation id="7207457272187520234">உபயோகம் மற்றும் பிழை கண்டறிதல் தரவை அனுப்பவும். பிழை கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை இந்தச் சாதனம் தற்போது Googleளுக்குத் தானாக அனுப்புகிறது. இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவு, Google ஆப்ஸுக்கும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உரிமையாளர் இந்த அமைப்பைச் செயல்படுத்தியுள்ளார். கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு உங்கள் Google கணக்கில் சேமிக்கப்படக்கூடும்.</translation>
 <translation id="7207631048330366454">ஆப்ஸில் தேடுக</translation>
-<translation id="720808544705441386">ஆப்ஸைத் திறக்க முடியவில்லை</translation>
 <translation id="7210499381659830293">நீட்டிப்பு பிரிண்டர்கள்</translation>
 <translation id="7211783048245131419">இதுவரை எந்த ஸ்விட்சும் ஒதுக்கப்படவில்லை</translation>
 <translation id="7212097698621322584">தற்போதைய பின்னை மாற்ற அதை உள்ளிடவும். பின் தெரியவில்லை என்றால் புதிய பின்னை உருவாக்க பாதுகாப்பு விசையை மீட்டமைக்க வேண்டும்.</translation>
@@ -6966,6 +6966,7 @@
 <translation id="7824864914877854148">காப்புப் பிரதி பிழையின் காரணமாக முடிக்க முடியவில்லை</translation>
 <translation id="782590969421016895">தற்போதைய பக்கங்களைப் பயன்படுத்து</translation>
 <translation id="7826174860695147464">லெகஸி உலாவி ஆதரவு (LBS) - இன்டெர்னல்கள்</translation>
+<translation id="7826190688224781865">சில்லறை விற்பனையாளர் கடை ஐடி குறியீடு</translation>
 <translation id="7826249772873145665">ADB பிழைதிருத்தம் முடக்கப்பட்டுள்ளது</translation>
 <translation id="7826254698725248775">முரண்பாடான சாதன அடையாளங்காட்டி.</translation>
 <translation id="7828731929332799387">இது மூன்றாம் தரப்பினரின் அனைத்துக் குக்கீகளையும் தளத் தரவையும் அழிக்கும். தொடர விரும்புகிறீர்களா?</translation>
@@ -8436,6 +8437,7 @@
 <translation id="987897973846887088">எந்தப் படங்களும் இல்லை</translation>
 <translation id="988320949174893488">அவ்வப்போது தடங்கல்</translation>
 <translation id="988978206646512040">கடவுச்சொற்றொடர் வெறுமையாக இருக்கக்கூடாது</translation>
+<translation id="991097196715779457">சில்லறை விற்பனையாளர் கடை ஐடி குறியீடு (விருப்பத்தேர்வு)</translation>
 <translation id="992032470292211616">நீட்டிப்புகள், ஆப்ஸ் மற்றும் தீம்கள் ஆகியவை உங்கள் சாதனத்திற்கு தீங்கு விளைவிக்கலாம். நிச்சயமாக தொடர விரும்புகிறீர்களா?</translation>
 <translation id="992256792861109788">பிங்க்</translation>
 <translation id="992592832486024913">ChromeVox (பேச்சுவடிவ கருத்து) ஐ முடக்கு</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 516dd265..16e2b78 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">ఏ ఫీచర్‌లకు మీ లొకేషన్ అవసరం అవుతుందో అవి పని చేయవు</translation>
 <translation id="1329191040029425999">మీ పరికరం అప్‌డేట్ అయ్యి ఉందని నిర్ధారించుకొని, దయచేసి మళ్లీ ట్రై చేయండి</translation>
 <translation id="1330145147221172764">స్క్రీన్‌లో కీబోర్డ్‌ను ప్రారంభించండి</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" />‌ను తెరవడానికి, మీరు స్లీప్ మోడ్ నుండి బయటకు వచ్చేటప్పుడు "లాక్ స్క్రీన్‌ను చూడండి"ని ఎనేబుల్ చేయండి</translation>
 <translation id="1331977651797684645">ఇది నేనే.</translation>
 <translation id="1333489022424033687">మీ పరికరంలో ఇతర సైట్‌లు నిల్వ చేసిన డేటాను మీరు క్లియర్ చేసేంత వరకు <ph name="ORIGIN" />లో కొన్ని ఫీచర్‌లు పని చేయకపోవచ్చు</translation>
 <translation id="1333965224356556482">మీ లొకేషన్‌ను చూడటానికి సైట్‌లను అనుమతించకండి</translation>
@@ -6331,7 +6330,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{పేజీ నుండి నిష్క్రమించు}other{పేజీల నుండి నిష్క్రమించు}}</translation>
 <translation id="7207457272187520234">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ డేటాను, పరికరం డేటాను, దానితో పాటు యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకు పంపుతోంది. ఇది సిస్టమ్, యాప్ స్థిరత్వానికి, అలాగే ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత ఏకీకృత డేటా కూడా Google యాప్‌లకు, Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ సెట్టింగ్‌ను యజమాని సెట్ చేశారు. మీ అదనపు వెబ్ &amp; యాప్ యాక్టివిటీ సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా మీ Google ఖాతాలో సేవ్ చేయబడవచ్చు.</translation>
 <translation id="7207631048330366454">యాప్‌లను వెతకండి</translation>
-<translation id="720808544705441386">యాప్‌ను తెరవడం సాధ్యం కాదు</translation>
 <translation id="7210499381659830293">ఎక్స్‌టెన్షన్ ప్రింటర్‌లు</translation>
 <translation id="7211783048245131419">ఇప్పటికీ ఎలాంటి స్విచ్ కేటాయించబడలేదు</translation>
 <translation id="7212097698621322584">మీ ప్రస్తుత పిన్‌ను మార్చడానికి దానిని నమోదు చేయండి. మీ పిన్ మీకు తెలియకుంటే, మీరు సెక్యూరిటీ కీని రీసెట్ చేసి, ఆపై కొత్త పిన్‌ను సృష్టించాలి.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 1daee92..0c13f83 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">ฟีเจอร์ที่ต้องใช้ตำแหน่งของคุณจะไม่ทำงาน</translation>
 <translation id="1329191040029425999">โปรดตรวจสอบว่าอุปกรณ์เป็นเวอร์ชันล่าสุด แล้วลองอีกครั้ง</translation>
 <translation id="1330145147221172764">เปิดใช้แป้นพิมพ์บนหน้าจอ</translation>
-<translation id="1331625853030156663">หากต้องการเปิด <ph name="APP_NAME" /> ให้เปิดใช้ "แสดงหน้าจอล็อกเมื่อปลุกให้ทำงานจากโหมดสลีป"</translation>
 <translation id="1331977651797684645">นี่คือฉันเอง</translation>
 <translation id="1333489022424033687">ฟีเจอร์บางอย่างใน <ph name="ORIGIN" /> อาจไม่ทำงานจนกว่าคุณจะล้างข้อมูลที่เว็บไซต์อื่นๆ จัดเก็บไว้ในอุปกรณ์ของคุณ</translation>
 <translation id="1333965224356556482">ไม่อนุญาตให้เว็บไซต์ดูตำแหน่งของคุณ</translation>
@@ -6313,7 +6312,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{หน้าที่ออกไป}other{หน้าที่ออกไป}}</translation>
 <translation id="7207457272187520234">ส่งข้อมูลการใช้งานและการวินิจฉัย ปัจจุบันอุปกรณ์นี้ส่งข้อมูลการวินิจฉัย อุปกรณ์ และการใช้งานแอปไปยัง Google โดยอัตโนมัติ ซึ่งจะช่วยให้แอปและระบบมีความเสถียร พร้อมทั้งปรับปรุงด้านอื่นๆ ข้อมูลที่รวบรวมมาบางส่วนจะมีประโยชน์ต่อแอปและพาร์ทเนอร์ของ Google ด้วย เช่น นักพัฒนาแอป Android เจ้าของเป็นผู้บังคับใช้การตั้งค่านี้ หากเปิดการตั้งค่ากิจกรรมเพิ่มเติมบนเว็บและแอปไว้ ระบบอาจบันทึกข้อมูลนี้ไว้ในบัญชี Google ของคุณ</translation>
 <translation id="7207631048330366454">ค้นหาแอป</translation>
-<translation id="720808544705441386">เปิดแอปไม่ได้</translation>
 <translation id="7210499381659830293">เครื่องพิมพ์ที่สั่งการผ่านส่วนขยาย</translation>
 <translation id="7211783048245131419">ยังไม่ได้กำหนดสวิตช์</translation>
 <translation id="7212097698621322584">ป้อน PIN ปัจจุบันเพื่อเปลี่ยน PIN หากไม่ทราบ PIN คุณจะต้องรีเซ็ตคีย์ความปลอดภัย แล้วสร้าง PIN ใหม่</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 7ff1a6f..fb49506 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Konumunuza erişilmesini gerektiren özellikler çalışmaz</translation>
 <translation id="1329191040029425999">Lütfen cihazınızın güncel olduğundan emin olup tekrar deneyin</translation>
 <translation id="1330145147221172764">Ekran klavyesini etkinleştir</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> uygulamasını açmak için "Uykudan uyanırken kilit ekranını göster"i etkinleştirin</translation>
 <translation id="1331977651797684645">Bu kişi bendim.</translation>
 <translation id="1333489022424033687">Diğer sitelerin cihazınızda depoladığı veriler temizlenmeden, bazı <ph name="ORIGIN" /> özellikleri düzgün bir şekilde çalışmayabilir</translation>
 <translation id="1333965224356556482">Sitelerin konumumu görmesine izin verme</translation>
@@ -4318,6 +4317,7 @@
 <translation id="520568280985468584">Ağ başarıyla eklendi. Hücresel ağınızın etkinleşmesi birkaç dakika sürebilir.</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" adlı sertifika silinsin mi?</translation>
 <translation id="520621735928254154">Sertifika İçe Aktarma Hatası</translation>
+<translation id="5206562235913517859">Perakendeci mağaza kimliği, ABC-1234 biçimindedir</translation>
 <translation id="5206787458656075734">{COUNT,plural, =1{Güvenliği ihlal edilmiş şifre değiştirildi. Güvenliği ihlal edilmiş # şifreniz daha var. Chrome, bu şifreyi hemen kontrol etmenizi öneriyor.}other{Güvenliği ihlal edilmiş şifre değiştirildi. Güvenliği ihlal edilmiş # şifreniz daha var. Chrome, bu şifreleri hemen kontrol etmenizi öneriyor.}}</translation>
 <translation id="5207949376430453814">Metin imlecini vurgula</translation>
 <translation id="520840839826327499"><ph name="SERVICE_NAME" /> uygun bir ChromeOS cihazı kullanıp kullanmadığınızı kontrol etmek istiyor.</translation>
@@ -4840,6 +4840,7 @@
 <translation id="5729712731028706266">&amp;Görüntüle</translation>
 <translation id="5731247495086897348">Ya&amp;pıştır ve Git</translation>
 <translation id="5732392974455271431">Ebeveynleriniz engellemeyi kaldırabilir</translation>
+<translation id="5733866499231170760">Geçersiz kimlik. Girdiğiniz biçim yanlış. Lütfen size gönderilen talimatlara göz atarak kimliği doğru biçimde girdiğinizden emin olun. Bu sorunu çözemiyorsanız lütfen alanı boş bırakıp kuruluma devam edin.</translation>
 <translation id="5734362860645681824">İletişim</translation>
 <translation id="5734697361979786483">Dosya paylaşımı ekle</translation>
 <translation id="5736796278325406685">Lütfen geçerli bir kullanıcı adı girin</translation>
@@ -6312,7 +6313,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Sayfadan çık}other{Sayfalardan çık}}</translation>
 <translation id="7207457272187520234">Kullanım ve teşhis verilerini gönder. Bu cihaz şu anda teşhis, cihaz ve uygulama kullanımı verilerini otomatik olarak Google'a gönderiyor. Bu veriler, sistem ve uygulama kararlılığı ile diğer özellikleri iyileştirmeye yardımcı olur. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur. Bu ayar, cihazın sahibi tarafından zorunlu kılınmıştır. Ek Web ve Uygulama Etkinliği açıksa bu veriler Google Hesabınıza kaydedilebilir.</translation>
 <translation id="7207631048330366454">Uygulamalarda ara</translation>
-<translation id="720808544705441386">Uygulama açılamıyor</translation>
 <translation id="7210499381659830293">Uzantı yazıcılar</translation>
 <translation id="7211783048245131419">Henüz atanmış anahtar yok</translation>
 <translation id="7212097698621322584">Değiştirmek için geçerli PIN'inizi girin. PIN'inizi bilmiyorsanız güvenlik anahtarınızı sıfırlayarak yeni bir PIN oluşturmanız gerekir.</translation>
@@ -6947,6 +6947,7 @@
 <translation id="7824864914877854148">Bir hata nedeniyle yedekleme işlemi tamamlanamadı</translation>
 <translation id="782590969421016895">Mevcut sayfaları kullan</translation>
 <translation id="7826174860695147464">Eski Tarayıcı Desteği (LBS) - Internals</translation>
+<translation id="7826190688224781865">Perakendeci mağaza kimliği kodu</translation>
 <translation id="7826249772873145665">ADB hata ayıklama işlevi devre dışı</translation>
 <translation id="7826254698725248775">Çakışan cihaz tanımlayıcısı.</translation>
 <translation id="7828731929332799387">Bu, üçüncü taraf bağlamında mevcut tüm çerezleri ve site verilerini siler. Devam etmek istiyor musunuz?</translation>
@@ -8416,6 +8417,7 @@
 <translation id="987897973846887088">Resim yok</translation>
 <translation id="988320949174893488">Ara Sıra Takılıyor</translation>
 <translation id="988978206646512040">Boş parolaya izin verilmez</translation>
+<translation id="991097196715779457">Perakendeci mağaza kimliği kodu (isteğe bağlı)</translation>
 <translation id="992032470292211616">Uzantılar, uygulamalar ve temalar cihazınıza zarar verebilir. Devam etmek istediğinizden emin misiniz?</translation>
 <translation id="992256792861109788">Pembe</translation>
 <translation id="992592832486024913">ChromeVox'u (sesli geri bildirim) devre dışı bırak</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 2c60e0b..69619c7 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -338,7 +338,6 @@
 <translation id="1327794256477341646">Функції, яким потрібен доступ до геоданих, не працюватимуть</translation>
 <translation id="1329191040029425999">Переконайтеся, що пристрій оновлений, і повторіть спробу</translation>
 <translation id="1330145147221172764">Увімкнути екранну клавіатуру</translation>
-<translation id="1331625853030156663">Щоб відкрити додаток <ph name="APP_NAME" />, виберіть "Показувати заблокований екран, коли пристрій виходить із режиму сну"</translation>
 <translation id="1331977651797684645">Це я.</translation>
 <translation id="1333489022424033687">Деякі функції на сайті <ph name="ORIGIN" /> можуть не працювати, доки ви не видалите дані, які інші сайти зберегли на вашому пристрої</translation>
 <translation id="1333965224356556482">Заборонити сайтам переглядати ваше місцезнаходження</translation>
@@ -6338,7 +6337,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Закрити сторінку}one{Закрити сторінки}few{Закрити сторінки}many{Закрити сторінки}other{Закрити сторінки}}</translation>
 <translation id="7207457272187520234">Надсилати дані про використання й діагностику. Наразі цей пристрій автоматично надсилає в Google дані про діагностику та використання пристрою й додатків. Ця інформація допоможе підвищити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Це налаштування застосовує власник. Якщо ввімкнено також запис Історії додатків і веб-пошуку, ці дані можуть зберігатися в обліковому записі Google.</translation>
 <translation id="7207631048330366454">Пошук у додатках</translation>
-<translation id="720808544705441386">Не вдалося відкрити додаток</translation>
 <translation id="7210499381659830293">Принтери розширення</translation>
 <translation id="7211783048245131419">Перемикачу ще не призначено дію</translation>
 <translation id="7212097698621322584">Введіть поточний PIN-код, щоб змінити його. Якщо ви не знаєте його, необхідно скинути ключ безпеки, а тоді створити новий PIN-код.</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 29521f1..6d2817f 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">وہ خصوصیات کام نہیں کریں گی جن کے لیے آپ کے مقام کی ضرورت ہوتی ہے</translation>
 <translation id="1329191040029425999">یقینی بنائیں کہ آپ کا آلہ اپ ٹو ڈیٹ ہے اور براہ کرم دوبارہ کوشش کریں</translation>
 <translation id="1330145147221172764">آن اسکرین کی بورڈ فعال کریں</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> کھولنے کے لیے، "سلیپ وضع سے بیدار کرنے کے وقت لاک اسکرین دکھائیں" کو فعال کریں</translation>
 <translation id="1331977651797684645">یہ میں تھا۔</translation>
 <translation id="1333489022424033687">ہو سکتا ہے <ph name="ORIGIN" /> پر کچھ خصوصیات اس وقت تک کام نہ کریں جب تک آپ اپنے آلے پر دیگر سائٹس کے ذریعے اسٹور کردہ ڈیٹا کو صاف نہیں کرتے ہیں</translation>
 <translation id="1333965224356556482">سائٹس کو اپنا مقام دیکھنے کی اجازت نہ دیں</translation>
@@ -6316,7 +6315,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{صفحہ سے باہر نکلیں}other{صفحات سے باہر نکلیں}}</translation>
 <translation id="7207457272187520234">‏استعمال اور ڈائیگناسٹک کا ڈیٹا بھیجیں۔ فی الوقت یہ آلہ خود کار طور پر ڈائیگناسٹک، آلے اور ایپ کے استعمال کا ڈیٹا Google کو بھیج رہا ہے۔ اس سے سسٹم اور ایپ کے استحکام اور دیگر بہتریوں میں مدد ملے گی۔ کچھ مجموعی ڈیٹا Google ایپس اور پارٹنرز، جیسے Android ڈیولپرز، کی مدد بھی کرے گا۔ اس ترتیب کو مالک نافذ کرتا ہے۔ اگر آپ کی ویب اور ایپ کی اضافی سرگرمی کی ترتیب آن ہے تو اس ڈیٹا کو آپ کے Google اکاؤنٹ میں محفوظ کیا جا سکتا ہے۔</translation>
 <translation id="7207631048330366454">ایپس تلاش کریں</translation>
-<translation id="720808544705441386">ایپ نہیں کھول سکتے</translation>
 <translation id="7210499381659830293">ایکسٹینشن پرنٹرز</translation>
 <translation id="7211783048245131419">ابھی تک کوئی بھی سوئچ تفویض نہیں کیا گیا</translation>
 <translation id="7212097698621322584">‏PIN تبدیل کرنے کیلئے، اپنا موجودہ PIN درج کریں۔ اگر آپ کو اپنا PIN نہیں معلوم ہے تو آپ کو پہلے اپنی سیکیورٹی کلید دوبارہ ترتیب دینی ہوگی اور پھر ایک نیا PIN تخلیق کرنا ہوگا۔</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 3cf6fb0..6e4b754 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">Joylashuvga ruxsat talab qiladigan funksiyalar ishlamaydi</translation>
 <translation id="1329191040029425999">Qurilma eng oxirgi tizimda ekanini tekshiring va qaytadan urining</translation>
 <translation id="1330145147221172764">Ekran klaviaturasini yoqish</translation>
-<translation id="1331625853030156663"><ph name="APP_NAME" /> ilovasini ochish uchun qurilma uyqu rejimidan chiqarilishida ekran qulfi koʻrsatishni yoqing.</translation>
 <translation id="1331977651797684645">Bu men</translation>
 <translation id="1333489022424033687">Qurilmangizda boshqa saytlar tomonidan saqlangan maʼlumotlar tozalanmaguncha ayrim <ph name="ORIGIN" /> funksiyalari yaxshi ishlamasligi mumkin</translation>
 <translation id="1333965224356556482">Saytlarga joylashuvingiz axborotini koʻrishni taqiqlash</translation>
@@ -6334,7 +6333,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Sahifani yopish}other{Sahifalarni yopish}}</translation>
 <translation id="7207457272187520234">Foydalanish statistikasi va diagnostika axborotini yuborish. Bu qurilma hozirda qurilma va ilovalardan foydalanish haqidagi hamda diagnostika axborotini avtomatik tarzda Google kompaniyasiga yubormoqda. Ular tizim va ilovalar barqarorligi kabilarni yaxshilash uchun ishlatiladi. Ayrim toʻplangan maʼlumotlar Android dasturchilar kabi hamkorlarimizga ham oʻz ilovalari va mahsulotlarini yanada yaxshilashga yordam beradi. Bu parametr qurilma egasi tomonidan oʻrnatilgan. Agar Kengaytirilgan veb-qidiruv va ilovalar tarixi yoqilsa, bu maʼlumotlar Google hisobingizda saqlanadi.</translation>
 <translation id="7207631048330366454">Ilovalar ichidan qidirish</translation>
-<translation id="720808544705441386">Ilova ochilmadi</translation>
 <translation id="7210499381659830293">Kengaytmalar ishlatuvchi printerlar</translation>
 <translation id="7211783048245131419">Hech qaysi tugma belgilanmagan</translation>
 <translation id="7212097698621322584">PIN kodni oʻzgartirish uchun joriy kodni kiriting. PIN kodni bilmasangiz, avval elektron kalit sozlamalarini qayta tiklab, keyingina yangi PIN belgilash mumkin.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index c6df326..0edea58 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">Các tính năng cần dùng thông tin vị trí của bạn sẽ không hoạt động</translation>
 <translation id="1329191040029425999">Hãy đảm bảo rằng thiết bị của bạn đã được cập nhật rồi vui lòng thử lại</translation>
 <translation id="1330145147221172764">Bật bàn phím ảo</translation>
-<translation id="1331625853030156663">Để mở ứng dụng <ph name="APP_NAME" />, hãy bật chế độ "Hiện màn hình khoá khi đánh thức từ chế độ ngủ"</translation>
 <translation id="1331977651797684645">Đây chính là tôi.</translation>
 <translation id="1333489022424033687">Một số tính năng trên <ph name="ORIGIN" /> có thể không hoạt động cho đến khi bạn xóa dữ liệu mà các trang web khác đã lưu trữ trên thiết bị của bạn</translation>
 <translation id="1333965224356556482">Không cho phép trang web xem thông tin vị trí của bạn</translation>
@@ -6332,7 +6331,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Thoát khỏi trang}other{Thoát khỏi các trang}}</translation>
 <translation id="7207457272187520234">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Thiết bị này hiện tự động gửi dữ liệu chẩn đoán, dữ liệu về thiết bị và mức sử dụng ứng dụng cho Google. Những thông tin này sẽ giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Tùy chọn cài đặt này do chủ sở hữu thực thi. Nếu bạn bật tùy chọn cài đặt Hoạt động trên web và ứng dụng bổ sung, thì dữ liệu này có thể được lưu vào Tài khoản Google của bạn.</translation>
 <translation id="7207631048330366454">Tìm kiếm ứng dụng</translation>
-<translation id="720808544705441386">Không mở được ứng dụng</translation>
 <translation id="7210499381659830293">Máy in tiện ích</translation>
 <translation id="7211783048245131419">Bạn chưa gán công tắc nào</translation>
 <translation id="7212097698621322584">Nhập mã PIN hiện tại của bạn để thay đổi. Nếu không nhớ mã PIN, thì bạn cần đặt lại khóa bảo mật rồi tạo mã PIN mới.</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 1d50c59..a8a958a 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">所有需要使用您的位置信息的功能都将无法正常运行</translation>
 <translation id="1329191040029425999">请确保您的设备已更新到最新版本,然后重试</translation>
 <translation id="1330145147221172764">启用屏幕键盘</translation>
-<translation id="1331625853030156663">若要打开<ph name="APP_NAME" />,请启用“从休眠状态唤醒时显示锁定屏幕”</translation>
 <translation id="1331977651797684645">是我本人。</translation>
 <translation id="1333489022424033687">请清除您设备上存储的其他网站的数据,否则 <ph name="ORIGIN" /> 上的某些功能可能无法正常运行</translation>
 <translation id="1333965224356556482">不允许网站查看您所在的位置</translation>
@@ -6301,7 +6300,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{退出网页}other{退出网页}}</translation>
 <translation id="7207457272187520234">发送使用情况数据和诊断数据。目前,此设备会自动向 Google 发送诊断数据、设备数据和应用使用情况数据。这些数据会有助于提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据还会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。这项设置是由此设备的所有者强制指定的。如果您已开启“其他网络与应用活动记录”设置,这些数据可能会被保存到您的 Google 帐号中。</translation>
 <translation id="7207631048330366454">搜索应用</translation>
-<translation id="720808544705441386">无法打开应用</translation>
 <translation id="7210499381659830293">扩展打印机</translation>
 <translation id="7211783048245131419">尚未分配任何开关</translation>
 <translation id="7212097698621322584">请输入您的当前 PIN 码以更改它。如果您不知道 PIN 码,则需要重置安全密钥,然后创建新 PIN 码。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 29e6ee98..9f700fa0d 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -335,7 +335,6 @@
 <translation id="1327794256477341646">需要所在位置的功能將無法運作</translation>
 <translation id="1329191040029425999">請確保裝置為最新版本,然後再試一次</translation>
 <translation id="1330145147221172764">啟用螢幕小鍵盤</translation>
-<translation id="1331625853030156663">如要開啟「<ph name="APP_NAME" />」,請啟用「從休眠狀態喚醒時顯示螢幕上鎖畫面」功能</translation>
 <translation id="1331977651797684645">這是我本人。</translation>
 <translation id="1333489022424033687">如不清除其他網站在裝置上儲存的資料,<ph name="ORIGIN" /> 的部分功能可能無法正常運作</translation>
 <translation id="1333965224356556482">不允許網站查看您的位置</translation>
@@ -849,6 +848,7 @@
 <translation id="1794051631868188691">永不顯示 <ph name="MERCHANT" /></translation>
 <translation id="1794791083288629568">請提供寶貴意見,協助我們修正此問題。</translation>
 <translation id="1795214765651529549">使用經典主題</translation>
+<translation id="1796105431091975902">選取 Ansible 腳本以新增</translation>
 <translation id="1796588414813960292">需要使用音訊的功能將無法運作</translation>
 <translation id="1800502858278951817">沒有擴充程式要求讀取和變更 <ph name="SITE_NAME" /></translation>
 <translation id="1802624026913571222">蓋上機蓋時進入休眠狀態</translation>
@@ -3048,6 +3048,7 @@
 <translation id="389901847090970821">選取鍵盤</translation>
 <translation id="3900966090527141178">匯出密碼</translation>
 <translation id="3903187154317825986">內置鍵盤</translation>
+<translation id="3903191712482985591">新增腳本</translation>
 <translation id="3904326018476041253">定位服務</translation>
 <translation id="3904849010307028014">網站可根據您與網站的互動 (例如定期登入網站),向您的瀏覽器發出信任憑證。日後,如果您瀏覽的其他網站檢查並找到有效的信任憑證,則這些網站更有可能將您視為真人,而不是機器人。</translation>
 <translation id="3905761538810670789">修復應用程式</translation>
@@ -3657,6 +3658,7 @@
 <translation id="4510479820467554003">家長帳戶清單</translation>
 <translation id="451102079304155829">購物車</translation>
 <translation id="4513872120116766993">預測輸入內容</translation>
+<translation id="4513909579793564731">套用腳本</translation>
 <translation id="4513946894732546136">意見反映</translation>
 <translation id="451407183922382411">由 <ph name="COMPANY_NAME" /> 提供</translation>
 <translation id="4514610446763173167">喺播放同暫停影片之間切換</translation>
@@ -5485,6 +5487,7 @@
 <translation id="635609604405270300">保持裝置開啟</translation>
 <translation id="63566973648609420">只有知道密碼短語的使用者才能讀取您的加密資料。系統不會將密碼短語傳送給 Google,Google 也不會儲存密碼短語。如果您忘記自己的密碼短語,或希望變更這項設定,則必須<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />。</translation>
 <translation id="6357305427698525450">部分支援連結將仍會在 <ph name="APP_NAME" /> 或 <ph name="APP_NAME_2" /> 中開啟。</translation>
+<translation id="6357794994761110294">沒有擴充程式可以讀取並變更 <ph name="SITE_NAME" /></translation>
 <translation id="6358884629796491903">龍</translation>
 <translation id="6361850914223837199">錯誤詳情:</translation>
 <translation id="6362853299801475928">報告問題(&amp;R)…</translation>
@@ -6330,7 +6333,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{離開網頁}other{離開網頁}}</translation>
 <translation id="7207457272187520234">傳送使用情況和診斷資料。此裝置目前會自動將診斷、裝置及應用程式的使用情況資料傳送至 Google。這可協助改善系統及應用程式的穩定性及其他功能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。擁有者可強制執行此設定。如果已開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至您的 Google 帳戶。</translation>
 <translation id="7207631048330366454">搜尋應用程式</translation>
-<translation id="720808544705441386">無法開啟應用程式</translation>
 <translation id="7210499381659830293">擴充程式打印機</translation>
 <translation id="7211783048245131419">未指派任何按鈕</translation>
 <translation id="7212097698621322584">請輸入目前的 PIN 以進行變更。如果您不知道自己的 PIN,請重設安全密鑰,然後建立新的 PIN。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index a515b8a..da1a9e9 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -333,7 +333,6 @@
 <translation id="1327794256477341646">需要位置資訊的功能將無法運作</translation>
 <translation id="1329191040029425999">確認裝置為最新版本,然後再試一次</translation>
 <translation id="1330145147221172764">啟用螢幕小鍵盤</translation>
-<translation id="1331625853030156663">如要開啟「<ph name="APP_NAME" />」,請啟用「從休眠狀態喚醒時顯示螢幕鎖定」功能</translation>
 <translation id="1331977651797684645">這是我。</translation>
 <translation id="1333489022424033687">在你清除裝置上其他網站所儲存的資料之前,<ph name="ORIGIN" /> 上的部分功能可能無法正常運作</translation>
 <translation id="1333965224356556482">禁止網站查看你的位置資訊</translation>
@@ -6312,7 +6311,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{離開網頁}other{離開網頁}}</translation>
 <translation id="7207457272187520234">傳送使用狀況與診斷資料。這部裝置目前會自動將診斷資料、裝置和應用程式的使用資料傳送給 Google。這些資料將有助於改善系統和應用程式的穩定性與其他功能。此外,部分匯總資料還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 改善自己的產品和服務。這項設定是由裝置擁有者強制執行。如果你將「其他網路和應用程式活動」設定為開啟,這些資料可能會儲存在你的 Google 帳戶中。</translation>
 <translation id="7207631048330366454">搜尋應用程式</translation>
-<translation id="720808544705441386">無法開啟應用程式</translation>
 <translation id="7210499381659830293">擴充印表機</translation>
 <translation id="7211783048245131419">尚未指派切換按鍵</translation>
 <translation id="7212097698621322584">請輸入目前的 PIN 碼以進行變更。如果你不知道自己的 PIN 碼,請重設安全金鑰,然後建立新的 PIN 碼。</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index ed77be7..0d918de 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -336,7 +336,6 @@
 <translation id="1327794256477341646">Izici ezidinga indawo yakho ngeke zize zisebenze</translation>
 <translation id="1329191040029425999">Qinisekisa ukuthi idivayisi yakho isesikhathini bese sicela uzame futhi</translation>
 <translation id="1330145147221172764">Nika amandla ikhibhodi yesikrini</translation>
-<translation id="1331625853030156663">Ukuze uvule i-<ph name="APP_NAME" />, nika amandla "Ukubonisa isikrini sokukhiya uma uvuka ebuthongweni"</translation>
 <translation id="1331977651797684645">Lo kwakuyimina.</translation>
 <translation id="1333489022424033687">Ezinye izici ku-<ph name="ORIGIN" /> kungenzeka zingasebenzi uze usule idatha amanye amasayithi ayigcine kudivayisi yakho</translation>
 <translation id="1333965224356556482">Ungavumeli amasayithi abone indawo yakho</translation>
@@ -6337,7 +6336,6 @@
 <translation id="720715819012336933">{NUM_PAGES,plural, =1{Phuma ekhasini}one{Phuma emakhasini}other{Phuma emakhasini}}</translation>
 <translation id="7207457272187520234">Thumela idatha yokusetshenziswa neyokuxilonga. Le divayisi manje ithumela ngokuzenzakalela idatha yokuxilonga, yedivayisi, neyokusetshenziswa kwedatha ku-Google. Lokhu kuzosiza ukuzinza kwesistimu nokohlelo lokusebenza nokunye ukuthuthukiswa. Enye idatha izophinda isize izinhlelo zokusebenza ze-Google nozakwethu, abafana nonjiniyela be-Android. Lesi silungiselelo siphoqelelwa umnikazi. Uma isilungiselelo sakho esingeziwe somsebenzi wewebhu nowohlelo lokusebenza sivuliwe, le datha ingalondolozwa ku-akhawunti yakho ye-Google.</translation>
 <translation id="7207631048330366454">Sesha izinhlelo zokusebenza</translation>
-<translation id="720808544705441386">Ayikwazi ukuvula i-app</translation>
 <translation id="7210499381659830293">Amaphrinta ezandiso</translation>
 <translation id="7211783048245131419">Ayikho iswishi enikeziwe okwamanje</translation>
 <translation id="7212097698621322584">Faka i-PIN yakho yamanje ukuze uyishintshe. Uma ungazi i-PIN yakho, uzodinga ukusetha kabusha ukhiye wokuqinisekisa ubunikazi, bese udale i-PIN entsha.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index 504f003..7b92841a 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -29,7 +29,7 @@
 <translation id="1553358976309200471">Chrome अपडेट करा</translation>
 <translation id="1583073672411044740"><ph name="EXISTING_USER" /> यांनी आधीपासून या Chrome प्रोफाइलमध्ये साइन इन केलेले आहे. हे <ph name="USER_EMAIL_ADDRESS" /> साठी नवीन Chrome प्रोफाइल तयार करेल</translation>
 <translation id="1587223624401073077">Google Chrome तुमचा कॅमेरा वापरत आहे.</translation>
-<translation id="1587325591171447154"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chrom ने ते अवरोधित केले आहे.</translation>
+<translation id="1587325591171447154"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chrom ने ती ब्लॉक केली आहे.</translation>
 <translation id="1597911401261118146">तुमचे पासवर्ड डेटा भंग आणि इतर सुरक्षा समस्यांपासून सुरक्षित आहेत हे तपासण्यासाठी, <ph name="BEGIN_LINK" />Chrome मध्ये साइन इन करा<ph name="END_LINK" />.</translation>
 <translation id="1619887657840448962">Chrome अधिक सुरक्षित करण्यासाठी, आम्ही <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्ये सूचीबद्ध नसलेला आणि तुमच्या माहितीशिवाय कदाचित जोडले गेलेले खालील एक्स्टेंशन बंद केले आहे.</translation>
 <translation id="1627304841979541023"><ph name="BEGIN_BOLD" />तुम्ही तुमचा डेटा कसा व्यवस्थापित करू शकता:<ph name="END_BOLD" /> तुमच्या गोपनीयतेचे संरक्षण करण्यासाठी, आम्ही तुमची चार आठवड्यांपेक्षा जुनी स्वारस्ये ऑटो-डिलीट करतो. तुम्ही ब्राउझ करत राहाल, तसे सूचीमध्ये स्वारस्य पुन्हा दिसू शकते. किंवा Chrome ने विचारात घेऊ नये असे तुम्हाला वाटत असलेली स्वारस्ये तुम्ही काढून टाकू शकता.</translation>
@@ -183,7 +183,7 @@
 <translation id="4728575227883772061">नमूद न केलेल्या एररमुळे स्थापना अयशस्वी. जर Google Chrome सध्या सुरू असेल तर, कृपया त्यास बंद करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="4747730611090640388">Chrome तुमच्या स्वारस्यांबाबतचे अंदाज लावू शकते.  त्यानंतर, तुम्ही पाहता त्या जाहिराती पर्सनलाइझ करण्यासाठी तुम्ही भेट देता ती साइट Chrome कडे तुमची स्वारस्ये पाहण्याची अनुमती मागू शकते.</translation>
 <translation id="4754614261631455953">Google Chrome कॅनरी (mDNS-मध्ये)</translation>
-<translation id="4771048833395599659">ही फाईल कदाचित धोकादायक असू शकते, त्यामुळे Chrome ने ती अवरोधित केली आहे.</translation>
+<translation id="4771048833395599659">ही फाइल कदाचित धोकादायक असू शकते, त्यामुळे Chrome ने ती ब्लॉक केली आहे.</translation>
 <translation id="479167709087336770">Google Search मध्ये वापरत असेलेले समान स्पेल चेकर हे वापरते. तुम्ही ब्राउझरमध्ये टाइप करत असलेला मजकूर Google कडे पाठवला जातो. तुम्ही हे वर्तन कधीही सेटिंग्ज मध्ये बदलू शकता.</translation>
 <translation id="4842397268809523050">तुमच्या डोमेनसाठी सिंक करणे उपलब्ध नसल्यामुळे ChromeOS Flex ला तुमचा डेटा सिंक करता आला नाही.</translation>
 <translation id="4873783916118289636">Chrome मधील महत्त्वाच्या गोपनीयता आणि सुरक्षा नियंत्रणांचे पुनरावलोकन करा</translation>
@@ -218,7 +218,7 @@
 <translation id="5524761631371622910">चाचण्या सुरू असताना Chrome ने तुम्हाला रँडम पद्धतीने अ‍ॅक्टिव्ह चाचणीमध्ये सामील केल्यास, तुमचा ब्राउझिंग इतिहास हा तुम्ही पाहता त्या जाहिराती आणि खाली दिलेली अंदाजित स्वारस्ये यांवर परिणाम करतो. तुमच्या गोपनीयतेचे संरक्षण करण्यासाठी, Chrome दर महिन्याला रोलिंगच्या आधारे तुमची स्वारस्ये हटवते.</translation>
 <translation id="556024056938947818">Google Chrome पासवर्ड दर्शवण्याचा प्रयत्न करत आहे.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-मध्ये)</translation>
-<translation id="565744775970812598"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chrom ने ते अवरोधित केले आहे.</translation>
+<translation id="565744775970812598"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chrome ने ती ब्लॉक केली आहे.</translation>
 <translation id="5678190148303298925">{COUNT,plural, =0{तुमच्या ॲडमिनिस्ट्रेटरने तुम्हाला हे अपडेट लागू करण्यासाठी Chrome पुन्हा लाँच करण्यास सांगितले आहे}=1{तुमच्या ॲडमिनिस्ट्रेटरने हे अपडेट लागू करण्यासाठी तुम्हाला Chrome पुन्हा लाँच करण्यास सांगितले आहे. तुमची गुप्त विंडो पुन्हा उघडणार नाही.}other{तुमच्या ॲडमिनिस्ट्रेटरने हे अपडेट लागू करण्यासाठी तुम्हाला Chrome पुन्हा लाँच करण्यास सांगितले आहे. तुमच्या # गुप्त विंडो पुन्हा उघडणार नाहीत.}}</translation>
 <translation id="5686916850681061684">Google Chrome कस्टमाइझ करा आणि नियंत्रित करा. एका गोष्टीवर तुम्ही लक्ष द्यायला हवे - तपशिलांसाठी क्लिक करा.</translation>
 <translation id="5690427481109656848">Google LLC</translation>
@@ -327,7 +327,7 @@
 <translation id="8286862437124483331">Google Chrome पासवर्ड दर्शविण्‍याचा प्रयत्‍न करत आहे. यास अनुमती देण्‍यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="828798499196665338">तुमच्या पालकांनी Chrome साठी "साइट, अ‍ॅप्स आणि एक्स्टेंशनकरिता परवानग्या" सुरू केल्या आहेत. हे <ph name="EXTENSION_TYPE_PARAMETER" /> सुरू करण्यास अनुमती नाही.</translation>
 <translation id="8290100596633877290">अरेरे! Google Chrome क्रॅश झाला. त्वरित पुन्हा लाँच करायचा?</translation>
-<translation id="8342675569599923794">ही फाईल धोकादायक आहे, त्यामुळे Chrome ने ती अवरोधित केली आहे.</translation>
+<translation id="8342675569599923794">ही फाइल धोकादायक आहे, त्यामुळे Chrome ने ती ब्लॉक केली आहे.</translation>
 <translation id="8349795646647783032"><ph name="BEGIN_BOLD" />आम्ही हा डेटा कसा वापरतो:<ph name="END_BOLD" /> साइट तुमच्या स्वारस्यांबद्दलची माहिती Chrome वापरून स्टोअर करू शकतात. उदाहरणार्थ, तुम्ही मॅरेथॉनसाठी शूज खरेदी करण्यासाठी एखाद्या साइटला भेट दिल्यास, ती साइट तुमचे स्वारस्य मॅरेथॉनमध्ये धावणे म्हणून परिभाषित करू शकते. त्यानंतर, तुम्ही एखाद्या शर्यतीसाठी नोंदणी करण्याकरिता वेगळ्या साइटला भेट दिल्यास, ती साइट तुम्हाला तुमच्या स्वारस्यांनुसार धावण्यासाठीच्या शूजची जाहिरात दाखवू शकते.</translation>
 <translation id="8370517070665726704">कॉपीराइट <ph name="YEAR" /> Google LLC. सर्व हक्क राखीव.</translation>
 <translation id="8383226135083126309"><ph name="BEGIN_BOLD" />आम्ही हा डेटा कसा वापरतो:<ph name="END_BOLD" /> Chrome तुमच्या स्वारस्यांचा अंदाज लावू शकते. नंतर, तुम्ही पाहता त्या जाहिराती पर्सनलाइझ करण्यासाठी तुम्ही भेट देता ती साइट Chrome ला तुमची स्वारस्ये पाहण्याची विनंती करू शकते.</translation>
diff --git a/chrome/browser/ash/accessibility/dictation_browsertest.cc b/chrome/browser/ash/accessibility/dictation_browsertest.cc
index 1662fb5..fd6635c 100644
--- a/chrome/browser/ash/accessibility/dictation_browsertest.cc
+++ b/chrome/browser/ash/accessibility/dictation_browsertest.cc
@@ -44,7 +44,6 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/fake_speech_recognition_manager.h"
-#include "extensions/browser/browsertest_util.h"
 #include "extensions/browser/extension_host_test_helper.h"
 #include "media/mojo/mojom/speech_recognition_service.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -319,13 +318,7 @@
   }
 
   // Routers to SpeechRecognitionTestHelper methods.
-  void WaitForRecognitionStarted() {
-    test_helper_.WaitForRecognitionStarted();
-    // Dictation intializes FocusHandler when speech recognition starts.
-    // Several tests require FocusHandler logic, so wait for it to initialize
-    // before proceeding.
-    WaitForFocusHandler();
-  }
+  void WaitForRecognitionStarted() { test_helper_.WaitForRecognitionStarted(); }
 
   void WaitForRecognitionStopped() { test_helper_.WaitForRecognitionStopped(); }
 
@@ -397,29 +390,6 @@
         .Wait();
   }
 
-  void WaitForFocusHandler() {
-    std::string error_message = "Still waiting for FocusHandler";
-    std::string script = R"(
-      if (accessibilityCommon.dictation_.focusHandler_.isReadyForTesting()) {
-        window.domAutomationController.send("ready");
-      } else {
-        window.domAutomationController.send("not ready");
-      }
-    )";
-    SuccessWaiter(
-        base::BindLambdaForTesting([&]() {
-          std::string result =
-              extensions::browsertest_util::ExecuteScriptInBackgroundPage(
-                  /*context=*/browser()->profile(),
-                  /*extension_id=*/
-                  extension_misc::kAccessibilityCommonExtensionId,
-                  /*script=*/script);
-          return result == "ready";
-        }),
-        error_message)
-        .Wait();
-  }
-
   void ToggleDictationWithKeystroke() {
     ASSERT_NO_FATAL_FAILURE(ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
         nullptr, ui::KeyboardCode::VKEY_D, false, false, false, true)));
diff --git a/chrome/browser/ash/file_manager/extract_io_task.cc b/chrome/browser/ash/file_manager/extract_io_task.cc
index fbbeb45..245b5ee5 100644
--- a/chrome/browser/ash/file_manager/extract_io_task.cc
+++ b/chrome/browser/ash/file_manager/extract_io_task.cc
@@ -38,6 +38,7 @@
       file_system_context_(std::move(file_system_context)) {
   progress_.type = OperationType::kExtract;
   progress_.state = State::kQueued;
+  progress_.destination_folder = parent_folder_;
   progress_.bytes_transferred = 0;
   progress_.total_bytes = 0;
   // Store all the ZIP files in the selection so we have
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc
index df1a946..45f1e83 100644
--- a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc
+++ b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc
@@ -25,6 +25,8 @@
 #include "ash/components/smbfs/smbfs_mounter.h"
 #include "ash/constants/ash_features.h"
 #include "ash/constants/ash_switches.h"
+#include "ash/public/cpp/style/color_provider.h"
+#include "ash/public/cpp/style/scoped_light_mode_as_default.h"
 #include "ash/public/cpp/test/shell_test_api.h"
 #include "ash/webui/file_manager/url_constants.h"
 #include "base/bind.h"
@@ -3006,6 +3008,12 @@
     return;
   }
 
+  if (name == "isDarkModeEnabled") {
+    ash::ScopedLightModeAsDefault scoped_light_mode_as_default;
+    *output = ash::ColorProvider::Get()->IsDarkModeEnabled() ? "true" : "false";
+    return;
+  }
+
   if (name == "switchLanguage") {
     const std::string* language = value.FindStringKey("language");
     ASSERT_TRUE(language);
diff --git a/chrome/browser/ash/file_manager/file_manager_string_util.cc b/chrome/browser/ash/file_manager/file_manager_string_util.cc
index c2c3230..a8cb0f7 100644
--- a/chrome/browser/ash/file_manager/file_manager_string_util.cc
+++ b/chrome/browser/ash/file_manager/file_manager_string_util.cc
@@ -831,6 +831,7 @@
   SET_STRING("EXTRACT_FILESYSTEM_ERROR",
              IDS_FILE_BROWSER_EXTRACT_FILESYSTEM_ERROR);
   SET_STRING("EXTRACT_FILE_NAME", IDS_FILE_BROWSER_EXTRACT_FILE_NAME);
+  SET_STRING("EXTRACT_FILE_NAME_LONG", IDS_FILE_BROWSER_EXTRACT_FILE_NAME_LONG);
   SET_STRING("EXTRACT_ITEMS_REMAINING",
              IDS_FILE_BROWSER_EXTRACT_ITEMS_REMAINING);
   SET_STRING("SELECTION_ADD_SINGLE_ENTRY",
diff --git a/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc b/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc
index ea7bea5c..23ebc64 100644
--- a/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc
+++ b/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc
@@ -577,9 +577,16 @@
 // Directory domain join screen. Verifies the domain join screen is displayed.
 // Submits Active Directory different incorrect credentials. Verifies that the
 // correct error is displayed.
-// TODO(crbug.com/1318903): Re-enable this test
+// TODO(crbug.com/1318903): Re-enable this test on linux-chromeos-dbg.
+#if !defined(NDEBUG)
+#define MAYBE_TestActiveDirectoryEnrollment_UIErrors \
+  DISABLED_TestActiveDirectoryEnrollment_UIErrors
+#else
+#define MAYBE_TestActiveDirectoryEnrollment_UIErrors \
+  TestActiveDirectoryEnrollment_UIErrors
+#endif
 IN_PROC_BROWSER_TEST_F(ActiveDirectoryJoinTest,
-                       DISABLED_TestActiveDirectoryEnrollment_UIErrors) {
+                       MAYBE_TestActiveDirectoryEnrollment_UIErrors) {
   ShowEnrollmentScreen();
   enrollment_helper_.SetupActiveDirectoryJoin(
       enrollment_screen(), kAdUserDomain, std::string(), kDMToken);
diff --git a/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc b/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
index 61201bb..f24cf49 100644
--- a/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
@@ -221,9 +221,14 @@
 
 // Check that a successful install shows the success step and countdown timer,
 // which will shut down the computer automatically after 60 seconds.
-// TODO(crbug.com/1318903): Re-enable this test
+// TODO(crbug.com/1318903): Re-enable this test on linux-chromeos-dbg.
+#if !defined(NDEBUG)
+#define MAYBE_OsInstallSuccessAutoShutdown DISABLED_OsInstallSuccessAutoShutdown
+#else
+#define MAYBE_OsInstallSuccessAutoShutdown OsInstallSuccessAutoShutdown
+#endif
 IN_PROC_BROWSER_TEST_F(OsInstallScreenTest,
-                       DISABLED_OsInstallSuccessAutoShutdown) {
+                       MAYBE_OsInstallSuccessAutoShutdown) {
   base::ScopedMockTimeMessageLoopTaskRunner mocked_task_runner;
   SetTickClockForTesting(mocked_task_runner->GetMockTickClock());
   auto* ti = OsInstallClient::Get()->GetTestInterface();
diff --git a/chrome/browser/ash/login/ui/login_display_host_webui.cc b/chrome/browser/ash/login/ui/login_display_host_webui.cc
index ff6258a..5d4f034 100644
--- a/chrome/browser/ash/login/ui/login_display_host_webui.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_webui.cc
@@ -14,6 +14,7 @@
 #include "ash/components/settings/cros_settings_provider.h"
 #include "ash/components/settings/timezone_settings.h"
 #include "ash/components/timezone/timezone_resolver.h"
+#include "ash/constants/ash_features.h"
 #include "ash/constants/ash_switches.h"
 #include "ash/public/cpp/locale_update_controller.h"
 #include "ash/public/cpp/login_accelerators.h"
@@ -606,6 +607,7 @@
         "ui", "StartSignInScreen",
         TRACE_ID_WITH_SCOPE(kShowLoginWebUIid, TRACE_ID_GLOBAL(1)));
     BootTimesRecorder::Get()->RecordCurrentStats("login-start-signin-screen");
+    CHECK(base::FeatureList::IsEnabled(features::kOobeLoginUrl));
     LoadURL(GURL(kLoginURL));
   }
 
diff --git a/chrome/browser/ash/system_extensions/system_extensions_install_manager.cc b/chrome/browser/ash/system_extensions/system_extensions_install_manager.cc
index 044a593..0bd872db 100644
--- a/chrome/browser/ash/system_extensions/system_extensions_install_manager.cc
+++ b/chrome/browser/ash/system_extensions/system_extensions_install_manager.cc
@@ -162,6 +162,8 @@
       blink::mojom::ServiceWorkerUpdateViaCache::kImports);
   blink::StorageKey key(url::Origin::Create(options.scope));
 
+  // TODO(ortuno): Remove after fixing flakiness.
+  DLOG(ERROR) << "Registering service worker";
   auto* worker_context =
       profile_->GetDefaultStoragePartition()->GetServiceWorkerContext();
   worker_context->RegisterServiceWorker(
@@ -186,6 +188,8 @@
     return;
   }
 
+  DLOG(ERROR) << "Starting service worker";
+
   const SystemExtension& system_extension = it->second;
   const GURL& scope = system_extension.base_url;
 
@@ -225,6 +229,8 @@
   }
   auto& remote_interfaces = worker_context->GetRemoteInterfaces(version_id);
 
+  DLOG(ERROR) << "Dispatching start event";
+
   mojo::Remote<blink::mojom::CrosWindowManagementStartObserver> observer;
   remote_interfaces.GetInterface(observer.BindNewPipeAndPassReceiver());
   observer->DispatchStartEvent();
diff --git a/chrome/browser/ash/system_web_apps/types/BUILD.gn b/chrome/browser/ash/system_web_apps/types/BUILD.gn
index fc992ab..e4160f18 100644
--- a/chrome/browser/ash/system_web_apps/types/BUILD.gn
+++ b/chrome/browser/ash/system_web_apps/types/BUILD.gn
@@ -18,6 +18,8 @@
   sources = [
     "system_web_app_background_task_info.cc",
     "system_web_app_background_task_info.h",
+    "system_web_app_data.cc",
+    "system_web_app_data.h",
     "system_web_app_delegate.cc",
     "system_web_app_delegate.h",
     "system_web_app_delegate_map.cc",
diff --git a/chrome/browser/ash/system_web_apps/types/system_web_app_data.cc b/chrome/browser/ash/system_web_apps/types/system_web_app_data.cc
new file mode 100644
index 0000000..74acac9
--- /dev/null
+++ b/chrome/browser/ash/system_web_apps/types/system_web_app_data.cc
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
+#include <ios>
+#include <ostream>
+#include <tuple>
+
+namespace ash {
+
+base::Value SystemWebAppData::AsDebugValue() const {
+  base::Value root(base::Value::Type::DICTIONARY);
+  root.SetIntKey("system_app_type", static_cast<int>(system_app_type));
+  return root;
+}
+
+bool operator==(const SystemWebAppData& chromeos_data1,
+                const SystemWebAppData& chromeos_data2) {
+  return chromeos_data1.system_app_type == chromeos_data2.system_app_type;
+}
+
+}  // namespace ash
diff --git a/chrome/browser/ash/system_web_apps/types/system_web_app_data.h b/chrome/browser/ash/system_web_apps/types/system_web_app_data.h
new file mode 100644
index 0000000..a2e5d192
--- /dev/null
+++ b/chrome/browser/ash/system_web_apps/types/system_web_app_data.h
@@ -0,0 +1,29 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_SYSTEM_WEB_APPS_TYPES_SYSTEM_WEB_APP_DATA_H_
+#define CHROME_BROWSER_ASH_SYSTEM_WEB_APPS_TYPES_SYSTEM_WEB_APP_DATA_H_
+
+#include "base/values.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_type.h"
+
+namespace ash {
+
+// An in-memory representation of a System Web App registered in
+// `WebAppDatabase`. (Also see the corresponding on-disk representation:
+// `SystemWebAppDataProto`). This `WebAppRegistry` entry helps to identify a
+// System Web App during reinstall, i.e. before
+// `SystemWebAppManager::OnAppsSynchronized` is called.
+struct SystemWebAppData {
+  base::Value AsDebugValue() const;
+
+  SystemWebAppType system_app_type;
+};
+
+bool operator==(const SystemWebAppData& data1, const SystemWebAppData& data2);
+bool operator!=(const SystemWebAppData& data1, const SystemWebAppData& data2);
+
+}  // namespace ash
+
+#endif  // CHROME_BROWSER_ASH_SYSTEM_WEB_APPS_TYPES_SYSTEM_WEB_APP_DATA_H_
diff --git a/chrome/browser/background_fetch/background_fetch_browsertest.cc b/chrome/browser/background_fetch/background_fetch_browsertest.cc
index 8c5dae4c..711cda0 100644
--- a/chrome/browser/background_fetch/background_fetch_browsertest.cc
+++ b/chrome/browser/background_fetch/background_fetch_browsertest.cc
@@ -704,9 +704,10 @@
             offline_items_collection::OfflineItemState::CANCELLED);
 }
 
+// TODO(crbug.com/1329696): Fix flaky timeouts and re-enable.
 IN_PROC_BROWSER_TEST_F(
     BackgroundFetchBrowserTest,
-    OfflineItemCollection_VerifyResourceDownloadedWhenCorrectDownloadTotalSpecified) {
+    DISABLED_OfflineItemCollection_VerifyResourceDownloadedWhenCorrectDownloadTotalSpecified) {
   // Starts a Background Fetch for a single to-be-downloaded file and waits for
   // the fetch to be registered with the offline items collection.
 
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 5cf44ff9..0d4c13e 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -248,6 +248,10 @@
       platform_part_(std::make_unique<BrowserProcessPlatformPart>()) {
   g_browser_process = this;
 
+  // Initialize the SessionIdGenerator instance, providing a PrefService to
+  // ensure the persistent storage of current max SessionId.
+  sessions::SessionIdGenerator::GetInstance()->Init(local_state_.get());
+
   DCHECK(local_state_);
   DCHECK(startup_data);
   // Most work should be done in Init().
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
index 5230a84..6ab83e1 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
@@ -445,9 +445,9 @@
     if (should_warn) {
       text_warning_ = true;
       text_response_ = std::move(response);
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::WARNING, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::WARNING, tag);
     } else {
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::FAILURE, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::FAILURE, tag);
     }
   }
 
@@ -488,16 +488,14 @@
 
   if (!file_complies) {
     if (result == BinaryUploadService::Result::FILE_TOO_LARGE) {
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::LARGE_FILES,
-                        tag);
+      UpdateFinalResult(FinalContentAnalysisResult::LARGE_FILES, tag);
     } else if (result == BinaryUploadService::Result::FILE_ENCRYPTED) {
-      UpdateFinalResult(
-          ContentAnalysisDelegateBase::FinalResult::ENCRYPTED_FILES, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::ENCRYPTED_FILES, tag);
     } else if (should_warn) {
       file_warnings_[index] = std::move(response);
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::WARNING, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::WARNING, tag);
     } else {
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::FAILURE, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::FAILURE, tag);
     }
   }
 
@@ -531,14 +529,13 @@
 
   if (!result_.page_result) {
     if (result == BinaryUploadService::Result::FILE_TOO_LARGE) {
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::LARGE_FILES,
-                        tag);
+      UpdateFinalResult(FinalContentAnalysisResult::LARGE_FILES, tag);
     } else if (should_warn) {
       page_warning_ = true;
       page_response_ = std::move(response);
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::WARNING, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::WARNING, tag);
     } else {
-      UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult::FAILURE, tag);
+      UpdateFinalResult(FinalContentAnalysisResult::FAILURE, tag);
     }
   }
 
@@ -704,7 +701,7 @@
 
   // If showing the warning message, wait before running the callback. The
   // callback will be called either in BypassWarnings or Cancel.
-  if (final_result_ != ContentAnalysisDelegateBase::FinalResult::WARNING)
+  if (final_result_ != FinalContentAnalysisResult::WARNING)
     RunCallback();
 
   if (!UpdateDialog() && data_uploaded_) {
@@ -752,7 +749,7 @@
 }
 
 void ContentAnalysisDelegate::UpdateFinalResult(
-    ContentAnalysisDelegateBase::FinalResult result,
+    FinalContentAnalysisResult result,
     const std::string& tag) {
   if (result < final_result_) {
     final_result_ = result;
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
index b2a9d70..465ab8c9 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
@@ -313,7 +313,7 @@
 
   // Updates `final_result_` following the precedence established by the
   // FinalResult enum.
-  void UpdateFinalResult(ContentAnalysisDelegateBase::FinalResult message,
+  void UpdateFinalResult(FinalContentAnalysisResult message,
                          const std::string& tag);
 
   // Returns the BinaryUploadService used to upload content for deep scanning.
@@ -372,8 +372,8 @@
   safe_browsing::DeepScanAccessPoint access_point_;
 
   // Scanning result to be shown to the user once every request is done.
-  ContentAnalysisDelegateBase::FinalResult final_result_ =
-      ContentAnalysisDelegateBase::FinalResult::SUCCESS;
+  FinalContentAnalysisResult final_result_ =
+      FinalContentAnalysisResult::SUCCESS;
   // The tag (dlp, malware, etc) of the result that triggered the verdict
   // represented by `final_result_`.
   std::string final_result_tag_;
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h
index 6d28d5a..9d57b04 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h
@@ -15,25 +15,6 @@
 
 class ContentAnalysisDelegateBase {
  public:
-  // Enum to identify which message to show once scanning is complete. Ordered
-  // by precedence for when multiple files have conflicting results.
-  enum class FinalResult {
-    // Show that an issue was found and that the upload is blocked.
-    FAILURE = 0,
-
-    // Show that files were not uploaded since they were too large.
-    LARGE_FILES = 1,
-
-    // Show that files were not uploaded since they were encrypted.
-    ENCRYPTED_FILES = 2,
-
-    // Show that DLP checks failed, but that the user can proceed if they want.
-    WARNING = 3,
-
-    // Show that no issue was found and that the user may proceed.
-    SUCCESS = 4,
-  };
-
   virtual ~ContentAnalysisDelegateBase() = default;
 
   // Called when the user decides to bypass the verdict they obtained from DLP.
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
index 3ff32b58..90f76a7 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
@@ -1146,7 +1146,7 @@
   }
 
   void DialogUpdated(ContentAnalysisDialog* dialog,
-                     ContentAnalysisDelegateBase::FinalResult result) override {
+                     FinalContentAnalysisResult result) override {
     ASSERT_TRUE(file_scan_ && blocking_scan());
   }
 
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
index 04ffaf7..3f1f631 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
@@ -214,7 +214,7 @@
     content::WebContents* web_contents,
     safe_browsing::DeepScanAccessPoint access_point,
     int files_count,
-    ContentAnalysisDelegateBase::FinalResult final_result,
+    FinalContentAnalysisResult final_result,
     download::DownloadItem* download_item)
     : content::WebContentsObserver(web_contents),
       delegate_(std::move(delegate)),
@@ -231,7 +231,7 @@
   if (observer_for_testing)
     observer_for_testing->ConstructorCalled(this, base::TimeTicks::Now());
 
-  if (final_result_ != ContentAnalysisDelegateBase::FinalResult::SUCCESS)
+  if (final_result_ != FinalContentAnalysisResult::SUCCESS)
     UpdateStateFromFinalResult(final_result_);
 
   SetupButtons();
@@ -402,8 +402,7 @@
   CancelDialogWithoutCallback();
 }
 
-void ContentAnalysisDialog::ShowResult(
-    ContentAnalysisDelegateBase::FinalResult result) {
+void ContentAnalysisDialog::ShowResult(FinalContentAnalysisResult result) {
   DCHECK(is_pending());
 
   UpdateStateFromFinalResult(result);
@@ -430,18 +429,18 @@
 }
 
 void ContentAnalysisDialog::UpdateStateFromFinalResult(
-    ContentAnalysisDelegateBase::FinalResult final_result) {
+    FinalContentAnalysisResult final_result) {
   final_result_ = final_result;
   switch (final_result_) {
-    case ContentAnalysisDelegateBase::FinalResult::ENCRYPTED_FILES:
-    case ContentAnalysisDelegateBase::FinalResult::LARGE_FILES:
-    case ContentAnalysisDelegateBase::FinalResult::FAILURE:
+    case FinalContentAnalysisResult::ENCRYPTED_FILES:
+    case FinalContentAnalysisResult::LARGE_FILES:
+    case FinalContentAnalysisResult::FAILURE:
       dialog_state_ = State::FAILURE;
       break;
-    case ContentAnalysisDelegateBase::FinalResult::SUCCESS:
+    case FinalContentAnalysisResult::SUCCESS:
       dialog_state_ = State::SUCCESS;
       break;
-    case ContentAnalysisDelegateBase::FinalResult::WARNING:
+    case FinalContentAnalysisResult::WARNING:
       dialog_state_ = State::WARNING;
       break;
   }
@@ -732,7 +731,7 @@
   if (has_custom_message())
     return GetCustomMessage();
 
-  if (final_result_ == ContentAnalysisDelegateBase::FinalResult::LARGE_FILES) {
+  if (final_result_ == FinalContentAnalysisResult::LARGE_FILES) {
     if (is_print_scan()) {
       return l10n_util::GetStringUTF16(
           IDS_DEEP_SCANNING_DIALOG_LARGE_PRINT_FAILURE_MESSAGE);
@@ -741,8 +740,7 @@
         IDS_DEEP_SCANNING_DIALOG_LARGE_FILE_FAILURE_MESSAGE, files_count_);
   }
 
-  if (final_result_ ==
-      ContentAnalysisDelegateBase::FinalResult::ENCRYPTED_FILES) {
+  if (final_result_ == FinalContentAnalysisResult::ENCRYPTED_FILES) {
     return l10n_util::GetPluralStringFUTF16(
         IDS_DEEP_SCANNING_DIALOG_ENCRYPTED_FILE_FAILURE_MESSAGE, files_count_);
   }
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
index 20ce589..530d2e28 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
@@ -11,6 +11,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h"
+#include "chrome/browser/enterprise/connectors/common.h"
 #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
 #include "components/download/public/common/download_item.h"
 #include "content/public/browser/web_contents_observer.h"
@@ -73,9 +74,8 @@
     // Called at the end of ContentAnalysisDialog::UpdateDialog. `result` is
     // the value that UpdatedDialog used to transition from the pending state to
     // the success/failure/warning state.
-    virtual void DialogUpdated(
-        ContentAnalysisDialog* dialog,
-        ContentAnalysisDelegateBase::FinalResult result) {}
+    virtual void DialogUpdated(ContentAnalysisDialog* dialog,
+                               FinalContentAnalysisResult result) {}
 
     // Called at the end of ContentAnalysisDialog's destructor. `dialog` is a
     // pointer to the ContentAnalysisDialog being destructed. It can be used
@@ -96,8 +96,8 @@
                         content::WebContents* web_contents,
                         safe_browsing::DeepScanAccessPoint access_point,
                         int files_count,
-                        ContentAnalysisDelegateBase::FinalResult final_result =
-                            ContentAnalysisDelegateBase::FinalResult::SUCCESS,
+                        FinalContentAnalysisResult final_result =
+                            FinalContentAnalysisResult::SUCCESS,
                         download::DownloadItem* download_item = nullptr);
 
   // views::DialogDelegate:
@@ -114,7 +114,7 @@
 
   // Updates the dialog with the result, and simply delete it from memory if
   // nothing should be shown.
-  void ShowResult(ContentAnalysisDelegateBase::FinalResult result);
+  void ShowResult(FinalContentAnalysisResult result);
 
   // Accessors to simplify `dialog_state_` checking.
   inline bool is_success() const { return dialog_state_ == State::SUCCESS; }
@@ -186,8 +186,7 @@
 
   ~ContentAnalysisDialog() override;
 
-  void UpdateStateFromFinalResult(
-      ContentAnalysisDelegateBase::FinalResult final_result);
+  void UpdateStateFromFinalResult(FinalContentAnalysisResult final_result);
 
   // Updates the views in the dialog to put them in the correct state for
   // `dialog_state_`. This doesn't trigger the same events/resizes as
@@ -294,7 +293,7 @@
   State dialog_state_ = State::PENDING;
 
   // Used to show the appropriate message.
-  ContentAnalysisDelegateBase::FinalResult final_result_;
+  FinalContentAnalysisResult final_result_;
 
   // Used to animate dialog height changes.
   std::unique_ptr<views::BoundsAnimator> bounds_animator_;
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
index 46a5b55..3e83a6e 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
@@ -161,7 +161,7 @@
   }
 
   void DialogUpdated(ContentAnalysisDialog* dialog,
-                     ContentAnalysisDelegateBase::FinalResult result) override {
+                     FinalContentAnalysisResult result) override {
     DCHECK_EQ(dialog, dialog_);
     dialog_updated_timestamp_ = base::TimeTicks::Now();
 
@@ -174,8 +174,7 @@
 
     // The dialog can only be updated to the success or failure case.
     EXPECT_TRUE(dialog_->is_result());
-    bool is_success =
-        result == ContentAnalysisDelegateBase::FinalResult::SUCCESS;
+    bool is_success = result == FinalContentAnalysisResult::SUCCESS;
     EXPECT_EQ(dialog_->is_success(), is_success);
     EXPECT_EQ(dialog_->is_success(), expected_scan_result_);
 
@@ -335,7 +334,7 @@
   }
 
   void DialogUpdated(ContentAnalysisDialog* dialog,
-                     ContentAnalysisDelegateBase::FinalResult result) override {
+                     FinalContentAnalysisResult result) override {
     ASSERT_TRUE(dialog->is_warning());
 
     // The dialog's buttons should be Ok and Cancel.
@@ -402,7 +401,7 @@
   }
 
   void DialogUpdated(ContentAnalysisDialog* dialog,
-                     ContentAnalysisDelegateBase::FinalResult result) override {
+                     FinalContentAnalysisResult result) override {
     // The dialog shows the failure or success message for the appropriate
     // access point and scan type.
     std::u16string final_message = dialog->GetMessageForTesting()->GetText();
@@ -849,8 +848,7 @@
 
   ContentAnalysisDialog* CreateContentAnalysisDialog(
       std::unique_ptr<ContentAnalysisDelegateBase> delegate,
-      ContentAnalysisDelegateBase::FinalResult result =
-          ContentAnalysisDelegateBase::FinalResult::SUCCESS) {
+      FinalContentAnalysisResult result = FinalContentAnalysisResult::SUCCESS) {
     // This ctor ends up calling into constrained_window to show itself, in a
     // way that relinquishes its ownership. Because of this, new it here and
     // let it be deleted by the constrained_window code.
@@ -878,8 +876,8 @@
       std::make_unique<MockCustomMessageDelegate>(
           u"Test", GURL("https://www.example.com"));
   ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::move(delegate), ContentAnalysisDelegateBase::FinalResult::SUCCESS);
-  dialog->ShowResult(ContentAnalysisDelegateBase::FinalResult::WARNING);
+      std::move(delegate), FinalContentAnalysisResult::SUCCESS);
+  dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
   EXPECT_TRUE(dialog->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(), u"Test");
@@ -893,8 +891,8 @@
   std::unique_ptr<MockDelegate> delegate = std::make_unique<MockDelegate>();
   delegate->SetBypassRequiresJustification(true);
   ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::move(delegate), ContentAnalysisDelegateBase::FinalResult::SUCCESS);
-  dialog->ShowResult(ContentAnalysisDelegateBase::FinalResult::WARNING);
+      std::move(delegate), FinalContentAnalysisResult::SUCCESS);
+  dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
   EXPECT_FALSE(dialog->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
   dialog->GetBypassJustificationTextareaForTesting()->InsertOrReplaceText(
@@ -910,8 +908,8 @@
   std::unique_ptr<MockDelegate> delegate = std::make_unique<MockDelegate>();
   delegate->SetBypassRequiresJustification(true);
   ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::move(delegate), ContentAnalysisDelegateBase::FinalResult::SUCCESS);
-  dialog->ShowResult(ContentAnalysisDelegateBase::FinalResult::WARNING);
+      std::move(delegate), FinalContentAnalysisResult::SUCCESS);
+  dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
   EXPECT_FALSE(dialog->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
   dialog->GetBypassJustificationTextareaForTesting()->InsertOrReplaceText(
@@ -936,8 +934,7 @@
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInWarningState) {
   ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::make_unique<MockDelegate>(),
-      ContentAnalysisDelegateBase::FinalResult::WARNING);
+      std::make_unique<MockDelegate>(), FinalContentAnalysisResult::WARNING);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
             u"This data has sensitive or dangerous content");
@@ -945,8 +942,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests, TestOpenInBlockState) {
   ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::make_unique<MockDelegate>(),
-      ContentAnalysisDelegateBase::FinalResult::FAILURE);
+      std::make_unique<MockDelegate>(), FinalContentAnalysisResult::FAILURE);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
             u"This data has sensitive or dangerous content. Remove this "
@@ -955,9 +951,9 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInLargeFilesState) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::make_unique<MockDelegate>(),
-      ContentAnalysisDelegateBase::FinalResult::LARGE_FILES);
+  ContentAnalysisDialog* dialog =
+      CreateContentAnalysisDialog(std::make_unique<MockDelegate>(),
+                                  FinalContentAnalysisResult::LARGE_FILES);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
             u"Some of these files are too big for a security check. You can "
@@ -966,9 +962,9 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInEncryptedFilesState) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
-      std::make_unique<MockDelegate>(),
-      ContentAnalysisDelegateBase::FinalResult::ENCRYPTED_FILES);
+  ContentAnalysisDialog* dialog =
+      CreateContentAnalysisDialog(std::make_unique<MockDelegate>(),
+                                  FinalContentAnalysisResult::ENCRYPTED_FILES);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
             u"Some of these files are encrypted. Ask their owner to decrypt.");
@@ -985,7 +981,7 @@
           base::BindOnce(&ContentAnalysisDialogPlainTests::DiscardCallback,
                          base::Unretained(this)),
           &mock_download_item),
-      ContentAnalysisDelegateBase::FinalResult::WARNING);
+      FinalContentAnalysisResult::WARNING);
 
   EXPECT_EQ(0, times_open_called_);
   EXPECT_EQ(0, times_discard_called_);
@@ -1014,7 +1010,7 @@
           base::BindOnce(&ContentAnalysisDialogPlainTests::DiscardCallback,
                          base::Unretained(this)),
           nullptr),
-      ContentAnalysisDelegateBase::FinalResult::WARNING);
+      FinalContentAnalysisResult::WARNING);
 
   EXPECT_EQ(0, times_open_called_);
   EXPECT_EQ(0, times_discard_called_);
@@ -1034,7 +1030,7 @@
           base::BindOnce(&ContentAnalysisDialogPlainTests::DiscardCallback,
                          base::Unretained(this)),
           nullptr),
-      ContentAnalysisDelegateBase::FinalResult::FAILURE);
+      FinalContentAnalysisResult::FAILURE);
 
   EXPECT_EQ(0, times_open_called_);
   EXPECT_EQ(0, times_discard_called_);
@@ -1080,7 +1076,7 @@
         std::move(delegate),
         browser()->tab_strip_model()->GetActiveWebContents(),
         safe_browsing::DeepScanAccessPoint::DOWNLOAD, 1,
-        ContentAnalysisDelegateBase::FinalResult::WARNING);
+        FinalContentAnalysisResult::WARNING);
   }
 };
 
@@ -1136,7 +1132,7 @@
           /* discard_callback */ base::DoNothing(), &mock_download_item),
       browser()->tab_strip_model()->GetActiveWebContents(),
       safe_browsing::DeepScanAccessPoint::DOWNLOAD, /* file_count */ 1,
-      ContentAnalysisDelegateBase::FinalResult::WARNING, &mock_download_item);
+      FinalContentAnalysisResult::WARNING, &mock_download_item);
 
   show_run_loop.Run();
 
@@ -1162,7 +1158,7 @@
           /* discard_callback */ base::DoNothing(), &mock_download_item),
       browser()->tab_strip_model()->GetActiveWebContents(),
       safe_browsing::DeepScanAccessPoint::DOWNLOAD, /* file_count */ 1,
-      ContentAnalysisDelegateBase::FinalResult::WARNING, &mock_download_item);
+      FinalContentAnalysisResult::WARNING, &mock_download_item);
 
   show_run_loop.Run();
 
@@ -1197,8 +1193,7 @@
           /* discard_callback */ base::DoNothing(), mock_download_item.get()),
       browser()->tab_strip_model()->GetActiveWebContents(),
       safe_browsing::DeepScanAccessPoint::DOWNLOAD, /* file_count */ 1,
-      ContentAnalysisDelegateBase::FinalResult::WARNING,
-      mock_download_item.get());
+      FinalContentAnalysisResult::WARNING, mock_download_item.get());
 
   show_run_loop.Run();
 
diff --git a/chrome/browser/enterprise/connectors/common.h b/chrome/browser/enterprise/connectors/common.h
index 8fa593c..5ca3bf7 100644
--- a/chrome/browser/enterprise/connectors/common.h
+++ b/chrome/browser/enterprise/connectors/common.h
@@ -195,6 +195,25 @@
   absl::optional<std::u16string> user_justification;
 };
 
+// Enum to identify which message to show once scanning is complete. Ordered
+// by precedence for when multiple files have conflicting results.
+enum class FinalContentAnalysisResult {
+  // Show that an issue was found and that the upload is blocked.
+  FAILURE = 0,
+
+  // Show that files were not uploaded since they were too large.
+  LARGE_FILES = 1,
+
+  // Show that files were not uploaded since they were encrypted.
+  ENCRYPTED_FILES = 2,
+
+  // Show that DLP checks failed, but that the user can proceed if they want.
+  WARNING = 3,
+
+  // Show that no issue was found and that the user may proceed.
+  SUCCESS = 4,
+};
+
 // User data to persist a save package's final callback allowing/denying
 // completion. This is used since the callback can be called either when
 // scanning completes on a block/allow verdict, when the user cancels the scan,
diff --git a/chrome/browser/enterprise/util/managed_browser_utils.cc b/chrome/browser/enterprise/util/managed_browser_utils.cc
index 15321a84..b118467b 100644
--- a/chrome/browser/enterprise/util/managed_browser_utils.cc
+++ b/chrome/browser/enterprise/util/managed_browser_utils.cc
@@ -60,9 +60,8 @@
 // URL in |ContentSettingsType::AUTO_SELECT_CERTIFICATE| content setting. The
 // format of the returned filters corresponds to the "filter" property of the
 // AutoSelectCertificateForUrls policy as documented at policy_templates.json.
-std::vector<base::Value> GetCertAutoSelectionFilters(
-    Profile* profile,
-    const GURL& requesting_url) {
+base::Value::List GetCertAutoSelectionFilters(Profile* profile,
+                                              const GURL& requesting_url) {
   HostContentSettingsMap* host_content_settings_map =
       HostContentSettingsMapFactory::GetForProfile(profile);
   base::Value setting = host_content_settings_map->GetWebsiteSetting(
@@ -72,8 +71,7 @@
   if (!setting.is_dict())
     return {};
 
-  base::Value* filters =
-      setting.FindKeyOfType("filters", base::Value::Type::LIST);
+  base::Value::List* filters = setting.GetDict().FindList("filters");
   if (!filters) {
     // |setting_dict| has the wrong format (e.g. single filter instead of a
     // list of filters). This content setting is only provided by
@@ -84,14 +82,14 @@
         ContentSettingsType::AUTO_SELECT_CERTIFICATE, base::Value());
     return {};
   }
-  return std::move(*filters).TakeListDeprecated();
+  return std::move(*filters);
 }
 
 // Returns whether the client certificate matches any of the auto-selection
 // filters. Returns false when there's no valid filter.
 bool CertMatchesSelectionFilters(
     const net::ClientCertIdentity& client_cert,
-    const std::vector<base::Value>& auto_selection_filters) {
+    const base::Value::List& auto_selection_filters) {
   for (const auto& filter : auto_selection_filters) {
     if (!filter.is_dict()) {
       // The filter has a wrong format, so ignore it. Note that reporting of
@@ -99,15 +97,12 @@
       // policy handler - see configuration_policy_handler_list_factory.cc.
       continue;
     }
-
     auto issuer_pattern = certificate_matching::CertificatePrincipalPattern::
-        ParseFromOptionalDict(
-            filter.FindKeyOfType("ISSUER", base::Value::Type::DICTIONARY), "CN",
-            "L", "O", "OU");
+        ParseFromOptionalDict(filter.GetDict().FindDict("ISSUER"), "CN", "L",
+                              "O", "OU");
     auto subject_pattern = certificate_matching::CertificatePrincipalPattern::
-        ParseFromOptionalDict(
-            filter.FindKeyOfType("SUBJECT", base::Value::Type::DICTIONARY),
-            "CN", "L", "O", "OU");
+        ParseFromOptionalDict(filter.GetDict().FindDict("SUBJECT"), "CN", "L",
+                              "O", "OU");
 
     if (issuer_pattern.Matches(client_cert.certificate()->issuer()) &&
         subject_pattern.Matches(client_cert.certificate()->subject())) {
@@ -178,7 +173,7 @@
     net::ClientCertIdentityList* nonmatching_client_certs) {
   matching_client_certs->clear();
   nonmatching_client_certs->clear();
-  const std::vector<base::Value> auto_selection_filters =
+  const base::Value::List auto_selection_filters =
       GetCertAutoSelectionFilters(profile, requesting_url);
   for (auto& client_cert : client_certs) {
     if (CertMatchesSelectionFilters(*client_cert, auto_selection_filters))
diff --git a/chrome/browser/extensions/extension_action_runner.cc b/chrome/browser/extensions/extension_action_runner.cc
index 1c228ad..988e0a89 100644
--- a/chrome/browser/extensions/extension_action_runner.cc
+++ b/chrome/browser/extensions/extension_action_runner.cc
@@ -20,6 +20,7 @@
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/extensions/permissions_updater.h"
 #include "chrome/browser/extensions/scripting_permissions_modifier.h"
+#include "chrome/browser/extensions/site_permissions_helper.h"
 #include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser_finder.h"
@@ -90,12 +91,26 @@
     bool grant_tab_permissions) {
   if (grant_tab_permissions) {
     int blocked = GetBlockedActions(extension);
-    if ((blocked & kRefreshRequiredActionsMask) != 0) {
+    if (blocked & kRefreshRequiredActionsMask) {
+      const GURL& url = web_contents()->GetLastCommittedURL();
+      // An extension that wants to run but it is currently blocked must have
+      // "on click" access.
+      constexpr SitePermissionsHelper::SiteAccess kExpectedSiteAccess =
+          SitePermissionsHelper::SiteAccess::kOnClick;
+      DCHECK_EQ(
+          kExpectedSiteAccess,
+          SitePermissionsHelper(Profile::FromBrowserContext(browser_context_))
+              .GetSiteAccess(*extension, url));
+
+      // Display the checkbox so the user has the option to always run the
+      // action on this site.
+      bool show_checkbox = true;
       ShowBlockedActionBubble(
-          extension,
-          base::BindOnce(
-              &ExtensionActionRunner::OnBlockedActionBubbleForRunActionClosed,
-              weak_factory_.GetWeakPtr(), extension->id()));
+          extension, show_checkbox,
+          base::BindOnce(&ExtensionActionRunner::OnBlockedActionBubbleClosed,
+                         weak_factory_.GetWeakPtr(), extension->id(), url,
+                         kExpectedSiteAccess, kExpectedSiteAccess));
+
       return ExtensionAction::ACTION_NONE;
     }
     TabHelper::FromWebContents(web_contents())
@@ -145,10 +160,12 @@
   if (blocked_actions & kRefreshRequiredActionsMask) {
     // TODO(devlin): The bubble text should make it clear that permissions are
     // granted only after the user accepts the refresh.
+    // Since the user already changed site access, don't display the checkbox
+    // to always run on site.
+    bool show_checkbox = false;
     ShowBlockedActionBubble(
-        extension,
-        base::BindOnce(&ExtensionActionRunner::
-                           OnBlockedActionBubbleForPageAccessGrantClosed,
+        extension, show_checkbox,
+        base::BindOnce(&ExtensionActionRunner::OnBlockedActionBubbleClosed,
                        weak_factory_.GetWeakPtr(), extension->id(),
                        web_contents()->GetLastCommittedURL(), current_access,
                        new_access));
@@ -355,7 +372,8 @@
 
 void ExtensionActionRunner::ShowBlockedActionBubble(
     const Extension* extension,
-    base::OnceClosure callback) {
+    bool show_checkbox,
+    base::OnceCallback<void(bool)> callback) {
   Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
   ExtensionsContainer* const extensions_container =
       browser ? browser->window()->GetExtensionsContainer() : nullptr;
@@ -367,40 +385,25 @@
   if (accept_bubble_for_testing_.has_value()) {
     if (*accept_bubble_for_testing_) {
       base::ThreadTaskRunnerHandle::Get()->PostTask(
-          FROM_HERE, base::BindOnce(std::move(callback)));
+          FROM_HERE,
+          base::BindOnce(std::move(callback), bubble_is_checked_for_testing_));
     }
     return;
   }
 
-  ShowBlockedActionDialog(browser, extension->id(), std::move(callback));
+  ShowBlockedActionDialog(browser, extension->id(), show_checkbox,
+                          std::move(callback));
 }
 
-void ExtensionActionRunner::OnBlockedActionBubbleForRunActionClosed(
-    const std::string& extension_id) {
-  const Extension* extension = ExtensionRegistry::Get(browser_context_)
-                                   ->enabled_extensions()
-                                   .GetByID(extension_id);
-  if (!extension)
-    return;
-  {
-    // Ignore the active tab permission being granted because we don't want
-    // to run scripts right before we refresh the page.
-    base::AutoReset<bool> ignore_active_tab(&ignore_active_tab_granted_, true);
-    TabHelper::FromWebContents(web_contents())
-        ->active_tab_permission_granter()
-        ->GrantIfRequested(extension);
-  }
-  web_contents()->GetController().Reload(content::ReloadType::NORMAL, false);
-}
-
-void ExtensionActionRunner::OnBlockedActionBubbleForPageAccessGrantClosed(
+void ExtensionActionRunner::OnBlockedActionBubbleClosed(
     const std::string& extension_id,
     const GURL& page_url,
     SitePermissionsHelper::SiteAccess current_access,
-    SitePermissionsHelper::SiteAccess new_access) {
-  DCHECK(new_access == SitePermissionsHelper::SiteAccess::kOnSite ||
-         new_access == SitePermissionsHelper::SiteAccess::kOnAllSites);
-  DCHECK_EQ(SitePermissionsHelper::SiteAccess::kOnClick, current_access);
+    SitePermissionsHelper::SiteAccess new_access,
+    bool is_checked) {
+  // Blocked action dialog could have only be shown if the extension's action
+  // was blocked, which means the current site access must be "on click".
+  DCHECK_EQ(current_access, SitePermissionsHelper::SiteAccess::kOnClick);
 
   // If the web contents have navigated to a different origin, do nothing.
   if (!url::IsSameOriginWith(page_url, web_contents()->GetLastCommittedURL()))
@@ -412,7 +415,25 @@
   if (!extension)
     return;
 
-  UpdatePageAccessSettings(extension, current_access, new_access);
+  // If the user selected the checkbox, always grant access to this site. Note
+  // that the checkbox should only be visible if the dialog wasn't triggered
+  // after a site access change (which would be evidenced in `new_access`).
+  if (is_checked) {
+    DCHECK_EQ(current_access, new_access);
+    new_access = SitePermissionsHelper::SiteAccess::kOnSite;
+  }
+
+  if (current_access != new_access) {
+    UpdatePageAccessSettings(extension, current_access, new_access);
+  } else {
+    // Ignore the active tab permission being granted because we don't want
+    // to run scripts right before we refresh the page.
+    base::AutoReset<bool> ignore_active_tab(&ignore_active_tab_granted_, true);
+    TabHelper::FromWebContents(web_contents())
+        ->active_tab_permission_granter()
+        ->GrantIfRequested(extension);
+  }
+
   web_contents()->GetController().Reload(content::ReloadType::NORMAL, false);
 }
 
diff --git a/chrome/browser/extensions/extension_action_runner.h b/chrome/browser/extensions/extension_action_runner.h
index aec4535d..a87f3d58 100644
--- a/chrome/browser/extensions/extension_action_runner.h
+++ b/chrome/browser/extensions/extension_action_runner.h
@@ -99,6 +99,10 @@
     accept_bubble_for_testing_ = accept_bubble;
   }
 
+  void bubble_is_checked_for_testing(bool is_checked) {
+    bubble_is_checked_for_testing_ = is_checked;
+  }
+
   void set_observer_for_testing(TestObserver* observer) {
     test_observer_ = observer;
   }
@@ -178,19 +182,16 @@
   // actions for the given |extension|. |callback| is invoked when the bubble is
   // closed.
   void ShowBlockedActionBubble(const Extension* extension,
-                               base::OnceClosure callback);
+                               bool show_checkbox,
+                               base::OnceCallback<void(bool)> callback);
 
-  // Called when the blocked actions bubble invoked to run the extension action
-  // is closed.
-  void OnBlockedActionBubbleForRunActionClosed(const std::string& extension_id);
-
-  // Called when the blocked actions bubble invoked for the page access grant is
-  // closed.
-  void OnBlockedActionBubbleForPageAccessGrantClosed(
+  // Called when the blocked actions bubble is closed.
+  void OnBlockedActionBubbleClosed(
       const std::string& extension_id,
       const GURL& page_url,
       SitePermissionsHelper::SiteAccess current_access,
-      SitePermissionsHelper::SiteAccess new_access);
+      SitePermissionsHelper::SiteAccess new_access,
+      bool is_checked);
 
   // Handles permission changes necessary for page access modification of the
   // |extension|.
@@ -251,6 +252,10 @@
   // callback.
   absl::optional<bool> accept_bubble_for_testing_;
 
+  // If `accept_bubble_for_testing_` is true, signals whether the checkbox is
+  // checked or not.
+  bool bubble_is_checked_for_testing_{false};
+
   raw_ptr<TestObserver> test_observer_;
 
   base::ScopedObservation<ExtensionRegistry, ExtensionRegistryObserver>
diff --git a/chrome/browser/extensions/extension_action_runner_browsertest.cc b/chrome/browser/extensions/extension_action_runner_browsertest.cc
index f87c821..2da7c63 100644
--- a/chrome/browser/extensions/extension_action_runner_browsertest.cc
+++ b/chrome/browser/extensions/extension_action_runner_browsertest.cc
@@ -16,6 +16,7 @@
 #include "base/strings/stringprintf.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/extensions/scripting_permissions_modifier.h"
+#include "chrome/browser/extensions/site_permissions_helper.h"
 #include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -36,6 +37,8 @@
 
 namespace {
 
+using SiteAccess = SitePermissionsHelper::SiteAccess;
+
 const char kAllHostsScheme[] = "*://*/*";
 const char kExplicitHostsScheme[] = "http://127.0.0.1/*";
 const char kBackgroundScript[] =
@@ -72,19 +75,19 @@
 }
 
 // For use with blocked actions browsertests that put the result in
-// window.localStorage. Returns the result or "undefined" if the result is not
-// set.
-std::string GetValue(content::WebContents* web_contents) {
+// window.localStorage. Returns whether the extension injected a script.
+bool DidInjectScript(content::WebContents* web_contents) {
   std::string out;
-  if (!content::ExecuteScriptAndExtractString(
-          web_contents,
-          "var res = window.localStorage.getItem('extResult') || 'undefined';"
-          "window.localStorage.removeItem('extResult');"
-          "window.domAutomationController.send(res);",
-          &out)) {
-    out = "Failed to inject script";
-  }
-  return out;
+  bool exec = content::ExecuteScriptAndExtractString(
+      web_contents,
+      "var res = window.localStorage.getItem('extResult') || 'undefined';"
+      "window.localStorage.removeItem('extResult');"
+      "window.domAutomationController.send(res);",
+      &out);
+  EXPECT_TRUE(exec);
+  EXPECT_TRUE(out == "success" || out == "undefined")
+      << "Unexpected script value: " << out;
+  return out == "success";
 }
 
 }  // namespace
@@ -402,73 +405,84 @@
   // Load an extension that wants to run on every page at document start, and
   // load a test page.
   ASSERT_TRUE(embedded_test_server()->Start());
-  const GURL url = embedded_test_server()->GetURL("/simple.html");
   const Extension* extension = LoadExtension(
       test_data_dir_.AppendASCII("blocked_actions/content_scripts"));
   ASSERT_TRUE(extension);
   ScriptingPermissionsModifier(profile(), extension)
       .SetWithholdHostPermissions(true);
 
+  // Navigate to a page where the extension wants to run.
+  const GURL url = embedded_test_server()->GetURL("/simple.html");
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetActiveWebContents();
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
+  content::NavigationController& web_controller = web_contents->GetController();
+  const int nav_id = web_controller.GetLastCommittedEntry()->GetUniqueID();
 
-  // The extension should want to run on the page, and should not have
-  // injected.
+  // The extension should want to run on the page, should not have
+  // injected, and should have "on click" access.
   ExtensionActionRunner* runner =
       ExtensionActionRunner::GetForWebContents(web_contents);
   ASSERT_TRUE(runner);
   EXPECT_TRUE(runner->WantsToRun(extension));
-  EXPECT_EQ("undefined", GetValue(web_contents));
+  EXPECT_FALSE(DidInjectScript(web_contents));
+  SitePermissionsHelper permissions(profile());
+  EXPECT_EQ(permissions.GetSiteAccess(*extension, url), SiteAccess::kOnClick);
 
-  // Wire up the runner to automatically accept the bubble to prompt for page
-  // refresh.
-  runner->accept_bubble_for_testing(true);
-
-  content::NavigationEntry* entry =
-      web_contents->GetController().GetLastCommittedEntry();
-  ASSERT_TRUE(entry);
-  const int first_nav_id = entry->GetUniqueID();
-
-  // Run the extension action, which should cause a page refresh (since we
-  // automatically accepted the bubble prompting us), and the extension should
-  // have injected at document start.
+  // Wire up the runner to reject the blocked action bubble prompting for
+  // page refresh, and run the action.
+  runner->accept_bubble_for_testing(false);
   runner->RunAction(extension, true);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-  entry = web_contents->GetController().GetLastCommittedEntry();
-  ASSERT_TRUE(entry);
-  // Confirm that we refreshed the page.
-  EXPECT_GE(entry->GetUniqueID(), first_nav_id);
-  EXPECT_EQ("success", GetValue(web_contents));
+
+  // Nothing should happen, because the user didn't agree to refresh the page.
+  // The extension should still want to run.
+  EXPECT_EQ(web_controller.GetLastCommittedEntry()->GetUniqueID(), nav_id);
+  EXPECT_FALSE(DidInjectScript(web_contents));
+  EXPECT_TRUE(runner->WantsToRun(extension));
+
+  // Wire up the runner to automatically accept the blocked action bubble with
+  // no checkbox marked, and run the action.
+  runner->accept_bubble_for_testing(true);
+  runner->bubble_is_checked_for_testing(false);
+  runner->RunAction(extension, true);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_TRUE(content::WaitForLoadStop(web_contents));
+
+  // Since we automatically accepted the bubble prompting us, the page should
+  // have refreshed, the extension should have injected at document start and
+  // the site access should still be "on click".
+  EXPECT_GE(web_controller.GetLastCommittedEntry()->GetUniqueID(), nav_id);
+  EXPECT_TRUE(DidInjectScript(web_contents));
   EXPECT_FALSE(runner->WantsToRun(extension));
+  EXPECT_EQ(permissions.GetSiteAccess(*extension, url), SiteAccess::kOnClick);
 
   // Revoke permission and reload to try different bubble options.
   ActiveTabPermissionGranter* active_tab_granter =
       TabHelper::FromWebContents(web_contents)->active_tab_permission_granter();
   ASSERT_TRUE(active_tab_granter);
   active_tab_granter->RevokeForTesting();
-  web_contents->GetController().Reload(content::ReloadType::NORMAL, true);
+  web_controller.Reload(content::ReloadType::NORMAL, true);
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-
-  // The extension should again want to run. Don't automatically accept the
-  // bubble that pops up prompting for page refresh.
   EXPECT_TRUE(runner->WantsToRun(extension));
-  EXPECT_EQ("undefined", GetValue(web_contents));
-  const int next_nav_id =
-      web_contents->GetController().GetLastCommittedEntry()->GetUniqueID();
-  runner->accept_bubble_for_testing(false);
 
-  // Try running the extension. Nothing should happen, because the user
-  // didn't agree to refresh the page. The extension should still want to run.
+  // Wire up the runner to automatically accept the blocked action bubble with
+  // the checkbox marked, and run the action.
+  runner->accept_bubble_for_testing(true);
+  runner->bubble_is_checked_for_testing(true);
   runner->RunAction(extension, true);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-  EXPECT_EQ("undefined", GetValue(web_contents));
-  EXPECT_EQ(
-      next_nav_id,
-      web_contents->GetController().GetLastCommittedEntry()->GetUniqueID());
+
+  // Since we automatically accepted the bubble (with checkbox selected)
+  // prompting us, the page should have refreshed, the extension should have
+  // injected at document start and the site access should now be "on site".
+  EXPECT_GE(web_controller.GetLastCommittedEntry()->GetUniqueID(), nav_id);
+  EXPECT_TRUE(DidInjectScript(web_contents));
+  EXPECT_FALSE(runner->WantsToRun(extension));
+  EXPECT_EQ(permissions.GetSiteAccess(*extension, url), SiteAccess::kOnSite);
 }
 
 // If we don't withhold permissions, extensions should execute normally.
@@ -559,7 +573,7 @@
   entry = web_contents->GetController().GetLastCommittedEntry();
   ASSERT_TRUE(entry);
   EXPECT_GE(entry->GetUniqueID(), first_nav_id);
-  EXPECT_EQ("success", GetValue(web_contents));
+  EXPECT_TRUE(DidInjectScript(web_contents));
   EXPECT_FALSE(runner->WantsToRun(extension));
 
   ActiveTabPermissionGranter* active_tab_granter =
diff --git a/chrome/browser/extensions/extension_assets_manager_chromeos.cc b/chrome/browser/extensions/extension_assets_manager_chromeos.cc
index 3e64c1b..83a96da 100644
--- a/chrome/browser/extensions/extension_assets_manager_chromeos.cc
+++ b/chrome/browser/extensions/extension_assets_manager_chromeos.cc
@@ -531,8 +531,8 @@
       } else if (user->is_logged_in()) {
         // For logged in user also check that this path is actually used as
         // installed extension or as delayed install.
-        Profile* profile =
-            ash::ProfileHelper::Get()->GetProfileByUserUnsafe(user);
+        Profile* profile = ash::ProfileHelper::Get()->GetProfileByUser(user);
+        DCHECK(profile);
         ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(profile);
         if (!extension_prefs || extension_prefs->pref_service()->ReadOnly())
           return false;
diff --git a/chrome/browser/extensions/extension_garbage_collector_chromeos.cc b/chrome/browser/extensions/extension_garbage_collector_chromeos.cc
index bf5299d..d6e32941 100644
--- a/chrome/browser/extensions/extension_garbage_collector_chromeos.cc
+++ b/chrome/browser/extensions/extension_garbage_collector_chromeos.cc
@@ -65,7 +65,7 @@
     if (!active_users[i]->is_profile_created())
       return false;
     Profile* profile =
-        ash::ProfileHelper::Get()->GetProfileByUserUnsafe(active_users[i]);
+        ash::ProfileHelper::Get()->GetProfileByUser(active_users[i]);
     ExtensionGarbageCollectorChromeOS* gc =
         ExtensionGarbageCollectorChromeOS::Get(profile);
     if (gc && gc->crx_installs_in_progress_ > 0)
diff --git a/chrome/browser/history/history_tab_helper_unittest.cc b/chrome/browser/history/history_tab_helper_unittest.cc
index ebff157..a540de95 100644
--- a/chrome/browser/history/history_tab_helper_unittest.cc
+++ b/chrome/browser/history/history_tab_helper_unittest.cc
@@ -489,7 +489,7 @@
     GURL fenced_frame_url = GURL("https://fencedframe.com");
     content::RenderFrameHost* fenced_frame_root =
         content::RenderFrameHostTester::For(main_rfh())->AppendFencedFrame();
-    simulator = content::NavigationSimulator::CreateForFencedFrame(
+    simulator = content::NavigationSimulator::CreateRendererInitiated(
         fenced_frame_url, fenced_frame_root);
   } else if (GetParam() == MPArchType::kPrerender) {
     // Navigate a prerendering page.
diff --git a/chrome/browser/lacros/policy_ui_lacros_browsertest.cc b/chrome/browser/lacros/policy_ui_lacros_browsertest.cc
index c930ac1..ba64da5 100644
--- a/chrome/browser/lacros/policy_ui_lacros_browsertest.cc
+++ b/chrome/browser/lacros/policy_ui_lacros_browsertest.cc
@@ -77,8 +77,7 @@
           return;
         }
 
-        const statusBox = statusSection.querySelector('status-box');
-        const policies = statusBox.shadowRoot.querySelectorAll('fieldset');
+        const policies = statusSection.querySelectorAll('fieldset');
         const statuses = {};
         for (let i = 0; i < policies.length; ++i) {
           const legend = policies[i].querySelector('legend').textContent;
diff --git a/chrome/browser/media/media_engagement_contents_observer_unittest.cc b/chrome/browser/media/media_engagement_contents_observer_unittest.cc
index 928a17f..35534d9 100644
--- a/chrome/browser/media/media_engagement_contents_observer_unittest.cc
+++ b/chrome/browser/media/media_engagement_contents_observer_unittest.cc
@@ -1442,7 +1442,8 @@
       ->InitializeRenderFrameIfNeeded();
   content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh());
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(url, fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(url,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
   EXPECT_EQ(1u, GetAudioContextPlayersCount());
diff --git a/chrome/browser/offline_pages/android/auto_fetch_page_load_watcher_unittest.cc b/chrome/browser/offline_pages/android/auto_fetch_page_load_watcher_unittest.cc
index 38019983..012940d 100644
--- a/chrome/browser/offline_pages/android/auto_fetch_page_load_watcher_unittest.cc
+++ b/chrome/browser/offline_pages/android/auto_fetch_page_load_watcher_unittest.cc
@@ -335,8 +335,8 @@
       CreateFencedFrame(web_content->GetMainFrame());
   GURL kFencedFrameUrl("http://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(kFencedFrameUrl,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
 
diff --git a/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc b/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc
index 5ffd4ec..c9279d3 100644
--- a/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc
+++ b/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc
@@ -504,8 +504,8 @@
   content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh());
   GURL kFencedFrameUrl("https://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(kFencedFrameUrl,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
 
diff --git a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
index 2f6fdc6f..9c0fd69 100644
--- a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
+++ b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
@@ -1149,8 +1149,8 @@
   content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh());
   GURL kFencedFrameUrl("https://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(kFencedFrameUrl,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
 
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
index 74e6319a..b625aa2 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
@@ -430,11 +430,13 @@
   return CONTINUE_OBSERVING;
 }
 
-// TODO(https://crbug.com/1317494): Audit and use appropriate policy.
 page_load_metrics::PageLoadMetricsObserver::ObservePolicy
 FromGWSPageLoadMetricsObserver::OnFencedFramesStart(
     content::NavigationHandle* navigation_handle,
     const GURL& currently_committed_url) {
+  // This class is interested only in events that are preprocessed and
+  // dispatched also to the outermost page at PageLoadTracker. So, this class
+  // doesn't need to forward events for FencedFrames.
   return STOP_OBSERVING;
 }
 
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
index 00804ea..f7c46bc 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
@@ -511,7 +511,7 @@
     })
   };
   await double_raf();
-  await new Promise(r => setTimeout(r, 50));
+  await new Promise(r => setTimeout(r, 500));
   const timestamp = performance.now();
   await new Promise(r => setTimeout(r, 50));
   return timestamp;
diff --git a/chrome/browser/predictors/loading_predictor_tab_helper_unittest.cc b/chrome/browser/predictors/loading_predictor_tab_helper_unittest.cc
index ee638f1..1119217 100644
--- a/chrome/browser/predictors/loading_predictor_tab_helper_unittest.cc
+++ b/chrome/browser/predictors/loading_predictor_tab_helper_unittest.cc
@@ -885,8 +885,8 @@
   // Navigate a fenced frame.
   GURL fenced_frame_url = GURL("https://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_root);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_root);
   navigation_simulator->Commit();
 
   EXPECT_EQ(0u, test_collector_->count_resource_loads_completed());
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn
index 439f9d35..1b2f0c5 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn
@@ -42,7 +42,6 @@
     "dictation/earcons/audio_end.wav",
     "dictation/earcons/audio_initiate.wav",
     "dictation/earcons/null_selection.wav",
-    "dictation/focus_handler.js",
     "dictation/input_controller.js",
     "dictation/macros/input_text_view_macro.js",
     "dictation/macros/list_commands_macro.js",
@@ -125,7 +124,6 @@
     "dictation/dictation_test.js",
     "dictation/dictation_test_base.js",
     "dictation/dictation_ui_test.js",
-    "dictation/focus_handler_test.js",
     "dictation/macros/dictation_macros_test.js",
     "dictation/parse/dictation_parse_test.js",
     "magnifier/magnifier_test.js",
@@ -202,7 +200,6 @@
 js_library("dictation") {
   sources = [ "dictation/dictation.js" ]
   deps = [
-    ":dictation_focus_handler",
     ":dictation_input_controller",
     ":dictation_metrics",
     ":dictation_ui_controller",
@@ -217,6 +214,10 @@
 
 js_library("dictation_input_controller") {
   sources = [ "dictation/input_controller.js" ]
+  deps = [
+    "../common:automation_predicate",
+    "../common:constants",
+  ]
   externs_list = [
     "$externs_path/input_method_private.js",
     "$externs_path/language_settings_private.js",
@@ -269,12 +270,3 @@
     "$externs_path/speech_recognition_private.js",
   ]
 }
-
-js_library("dictation_focus_handler") {
-  sources = [ "dictation/focus_handler.js" ]
-  deps = [
-    "../common:automation_predicate",
-    "../common:constants",
-  ]
-  externs_list = [ "$externs_path/automation.js" ]
-}
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
index 68a0981..a7017c2cc 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {FocusHandler} from '/accessibility_common/dictation/focus_handler.js';
 import {InputController} from '/accessibility_common/dictation/input_controller.js';
 import {Macro} from '/accessibility_common/dictation/macros/macro.js';
 import {MacroName} from '/accessibility_common/dictation/macros/macro_names.js';
@@ -66,9 +65,6 @@
     /** @private {boolean} */
     this.isPumpkinEnabled_ = false;
 
-    /** @private {?FocusHandler} */
-    this.focusHandler_ = null;
-
     this.initialize_();
   }
 
@@ -77,9 +73,8 @@
    * @private
    */
   initialize_() {
-    this.focusHandler_ = new FocusHandler();
-    this.inputController_ = new InputController(
-        () => this.stopDictation_(/*notify=*/ true), this.focusHandler_);
+    this.inputController_ =
+        new InputController(() => this.stopDictation_(/*notify=*/ true));
     this.uiController_ = new UIController();
     this.speechParser_ = new SpeechParser(this.inputController_);
     if (this.localePref_) {
@@ -218,7 +213,6 @@
   /**
    * Called when the Speech Recognition engine receives a recognition event.
    * @param {ResultEvent} event
-   * @return {!Promise}
    * @private
    */
   async onSpeechRecognitionResult_(event) {
@@ -239,7 +233,6 @@
    * @param {string} transcript
    * @param {boolean} isFinal Whether this is a finalized transcript or an
    *     interim result.
-   * @return {!Promise}
    * @private
    */
   async processSpeechRecognitionResult_(transcript, isFinal) {
@@ -302,7 +295,6 @@
 
     this.uiController_.setState(
         UIState.STANDBY, {context: HintContext.STANDBY});
-    this.focusHandler_.refresh();
   }
 
   /**
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
index a15e9314..f660e19 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
@@ -92,8 +92,6 @@
 #include "base/command_line.h"
 #include "chrome/browser/ash/accessibility/accessibility_manager.h"
 #include "ui/accessibility/accessibility_features.h"
-#include "components/prefs/pref_service.h"
-#include "ash/constants/ash_pref_names.h"
     `);
   }
 
@@ -101,9 +99,6 @@
   testGenPreamble() {
     super.testGenPreamble();
     GEN(`
-  browser()->profile()->GetPrefs()->SetBoolean(
-        ash::prefs::kDictationAcceleratorDialogHasBeenAccepted, true);
-
   base::OnceClosure load_cb =
     base::BindOnce(&ash::AccessibilityManager::SetDictationEnabled,
         base::Unretained(ash::AccessibilityManager::Get()),
@@ -201,7 +196,6 @@
   /**
    * Checks that the latest IME commit text matches the expected value.
    * @param {string} expected
-   * @return {!Promise}
    */
   async assertCommittedText(expected) {
     if (!this.mockInputIme.getLastCommittedParameters()) {
@@ -223,7 +217,6 @@
   /**
    * Async function to get a preference value from Settings.
    * @param {string} name
-   * @return {!Promise<*>}
    */
   async getPref(name) {
     return new Promise(resolve => {
@@ -236,7 +229,6 @@
   /**
    * Async function to set a preference value in Settings.
    * @param {string} name
-   * @return {!Promise}
    */
   async setPref(name, value) {
     return new Promise(resolve => {
@@ -315,7 +307,6 @@
    * Waits for the updateDictationBubble() API to be called with the given
    * properties.
    * @param {DictationBubbleProperties} targetProps
-   * @return {!Promise}
    */
   async waitForUIProperties(targetProps) {
     // Poll until the updateDictationBubble() API gets called with
@@ -330,7 +321,7 @@
           clearInterval(intervalId);
           resolve();
         }
-      }, 100);
+      });
     });
   }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler.js
deleted file mode 100644
index 3669fa2ec..0000000
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler.js
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-const AutomationNode = chrome.automation.AutomationNode;
-const AutomationEvent = chrome.automation.AutomationEvent;
-const EventType = chrome.automation.EventType;
-
-export class FocusHandler {
-  constructor() {
-    /** @private {boolean} */
-    this.active_ = false;
-
-    /**
-     * The currently focused editable node.
-     * @private {?AutomationNode}
-     */
-    this.editableNode_ = null;
-
-    /** @private {?number} */
-    this.deactivateTimeoutId_ = null;
-
-    /** @private {?EventHandler} */
-    this.eventHandler_ = null;
-  }
-
-  /**
-   * Starts listening to focus events and sets a timeout to deactivate after
-   * a certain amount of inactivity.
-   * @return {!Promise}
-   */
-  async refresh() {
-    if (this.deactivateTimeoutId_ !== null) {
-      clearTimeout(this.deactivateTimeoutId_);
-    }
-    this.deactivateTimeoutId_ = setTimeout(
-        () => this.deactivate_(), FocusHandler.DEACTIVATE_TIMEOUT_MS_);
-
-    await this.activate_();
-  }
-
-  /**
-   * Gets the current focus and starts listening for focus events.
-   * @private
-   * @return {!Promise}
-   */
-  async activate_() {
-    if (this.active_) {
-      return;
-    }
-
-    const desktop =
-        await new Promise(resolve => chrome.automation.getDesktop(resolve));
-
-    const focus =
-        await new Promise(resolve => chrome.automation.getFocus(resolve));
-    if (focus && AutomationPredicate.editText(focus)) {
-      this.editableNode_ = focus;
-    }
-
-    if (!this.eventHandler_) {
-      this.eventHandler_ = new EventHandler(
-          [], EventType.FOCUS, event => this.onFocusChanged_(event));
-    }
-    this.eventHandler_.setNodes(desktop);
-    this.eventHandler_.start();
-
-    this.active_ = true;
-  }
-
-  /** @private */
-  deactivate_() {
-    this.eventHandler_.stop();
-    this.eventHandler_ = null;
-    this.active_ = false;
-    this.editableNode_ = null;
-  }
-
-  /**
-   * Saves the focused node if it's an editable.
-   * @param {!AutomationEvent} event
-   * @private
-   */
-  onFocusChanged_(event) {
-    const node = event.target;
-    if (!node || !AutomationPredicate.editText(node)) {
-      this.editableNode_ = null;
-      return;
-    }
-
-    this.editableNode_ = node;
-  }
-
-  /** @return {?AutomationNode} */
-  getEditableNode() {
-    return this.editableNode_;
-  }
-
-  /** @return {boolean} */
-  isReadyForTesting() {
-    return this.active_ && this.editableNode_ !== null;
-  }
-}
-
-/**
- * @const {number}
- * @private
- */
-FocusHandler.DEACTIVATE_TIMEOUT_MS_ = 45 * 1000;
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler_test.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler_test.js
deleted file mode 100644
index 378e11a..0000000
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/focus_handler_test.js
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-GEN_INCLUDE(['dictation_test_base.js']);
-
-DictationFocusHandlerTest = class extends DictationE2ETestBase {
-  /** @override */
-  async setUpDeferred() {
-    await super.setUpDeferred();
-    await importModule(
-        'FocusHandler', '/accessibility_common/dictation/focus_handler.js');
-  }
-
-  /** @return {!FocusHandler} */
-  getFocusHandler() {
-    return accessibilityCommon.dictation_.focusHandler_;
-  }
-
-  /** @return {!Promise} */
-  async activateFocusHandler() {
-    await this.getFocusHandler().refresh();
-    assertTrue(this.getFocusHandler().active_);
-    assertNotNullNorUndefined(this.getFocusHandler().deactivateTimeoutId_);
-  }
-
-  /**
-   * @param {boolean} active
-   * @return {!Promise}
-   */
-  async waitForFocusHandlerActive(active) {
-    return new Promise(resolve => {
-      const intervalId = setInterval(() => {
-        if (this.getFocusHandler().active_ === active) {
-          clearInterval(intervalId);
-          resolve();
-        }
-      }, 100);
-    });
-  }
-
-  /**
-   * @param {!AutomationNode} target
-   * @return {!Promise}
-   */
-  async waitForFocus(target) {
-    return new Promise(resolve => {
-      const intervalId = setInterval(() => {
-        if (this.getFocusHandler().editableNode_ === target) {
-          clearInterval(intervalId);
-          resolve();
-        }
-      }, 100);
-    });
-  }
-
-  /** @return {string} */
-  simpleSite() {
-    return `
-      <button autofocus>Start</button>
-      <input id="first" type="text"></input>
-    `;
-  }
-};
-
-// This test ensures that FocusHandler activates when Dictation is toggled on.
-SYNC_TEST_F('DictationFocusHandlerTest', 'Activate', async function() {
-  const root = await this.runWithLoadedTree(this.simpleSite());
-  const input = root.find({role: chrome.automation.RoleType.TEXT_FIELD});
-  assertTrue(Boolean(input));
-
-  // FocusHandler should not be activated until Dictation is toggled on.
-  assertFalse(this.getFocusHandler().active_);
-  assertEquals(null, this.getFocusHandler().editableNode_);
-  input.focus();
-  this.toggleDictationOn();
-  await this.waitForFocusHandlerActive(true);
-});
-
-// This test ensures that FocusHandler deactivates automatically after a
-// period of inactivity.
-SYNC_TEST_F('DictationFocusHandlerTest', 'Deactivate', async function() {
-  // Shorten timeout for testing.
-  FocusHandler.DEACTIVATE_TIMEOUT_MS_ = 1000;
-  await this.activateFocusHandler();
-  await this.waitForFocusHandlerActive(false);
-});
-
-// This test ensures that FocusHandler tracks focus once it's been activated.
-SYNC_TEST_F('DictationFocusHandlerTest', 'OnFocusChanged', async function() {
-  await this.activateFocusHandler();
-  const root = await this.runWithLoadedTree(this.simpleSite());
-  const input = root.find({role: chrome.automation.RoleType.TEXT_FIELD});
-  assertTrue(Boolean(input));
-
-  input.focus();
-  await this.waitForFocus(input);
-});
-
-// This test ensures that the timeout to deactivate FocusHandler is reset
-// whenever Dictation toggles on.
-SYNC_TEST_F(
-    'DictationFocusHandlerTest', 'ResetDeactivateTimeout', async function() {
-      this.mockSetTimeoutMethod();
-      this.toggleDictationOn();
-      await this.waitForFocusHandlerActive(true);
-      let callback =
-          this.getCallbackWithDelay(FocusHandler.DEACTIVATE_TIMEOUT_MS_);
-      assertNotNullNorUndefined(callback);
-
-      this.clearSetTimeoutData();
-      this.toggleDictationOff();
-      this.toggleDictationOn();
-      // Toggling Dictation on should set a new timeout to deactivate
-      // FocusHandler.
-      callback = this.getCallbackWithDelay(FocusHandler.DEACTIVATE_TIMEOUT_MS_);
-      assertNotNullNorUndefined(callback);
-      // Running `callback` should deactivate FocusHandler.
-      callback();
-      await this.waitForFocusHandlerActive(false);
-    });
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/input_controller.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/input_controller.js
index 15c10a175..7c3d268 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/input_controller.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/input_controller.js
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+const AutomationNode = chrome.automation.AutomationNode;
+const AutomationEvent = chrome.automation.AutomationEvent;
+const EventType = chrome.automation.EventType;
 const IconType = chrome.accessibilityPrivate.DictationBubbleIconType;
 
 /**
  * InputController handles interaction with input fields for Dictation.
  */
 export class InputController {
-  constructor(stopDictationCallback, focusHandler) {
+  constructor(stopDictationCallback) {
     /** @private {number} */
     this.activeImeContextId_ = InputController.NO_ACTIVE_IME_CONTEXT_ID_;
 
-    /** @private {!FocusHandler} */
-    this.focusHandler_ = focusHandler;
-
     /**
      * The engine ID of the previously active IME input method. Used to
      * restore the previous IME after Dictation is deactivated.
@@ -28,6 +28,15 @@
     /** @private {?function():void} */
     this.onConnectCallback_ = null;
 
+    /**
+     * The currently focused editable node.
+     * @private {?AutomationNode}
+     */
+    this.editableNode_ = null;
+
+    /** @private {?EventHandler} */
+    this.focusHandler_ = null;
+
     this.initialize_();
   }
 
@@ -41,6 +50,16 @@
         (context) => this.onImeFocus_(context));
     chrome.input.ime.onBlur.addListener(
         (contextId) => this.onImeBlur_(contextId));
+
+    // IME focus and blur listeners do not tell us which AutomationNode is
+    // currently focused. Register a focus event handler that will give us this
+    // information.
+    this.focusHandler_ = new EventHandler(
+        [], EventType.FOCUS, event => this.onFocusChanged_(event));
+    chrome.automation.getDesktop((desktop) => {
+      this.focusHandler_.setNodes(desktop);
+      this.focusHandler_.start();
+    });
   }
 
   /**
@@ -134,6 +153,20 @@
   }
 
   /**
+   * @param {!AutomationEvent} event
+   * @private
+   */
+  onFocusChanged_(event) {
+    const node = event.target;
+    if (!node || !AutomationPredicate.editText(node)) {
+      this.editableNode_ = null;
+      return;
+    }
+
+    this.editableNode_ = node;
+  }
+
+  /**
    * @param {string} text
    * @return {string}
    */
@@ -144,15 +177,14 @@
     // space when committed to a text field. This is a temporary workaround
     // until the blocking SODA bug can be fixed. Note, a similar strategy
     // already exists in Dictation::OnSpeechResult().
-    const editableNode = this.focusHandler_.getEditableNode();
-    if (!editableNode ||
+    if (!this.editableNode_ ||
         InputController.BEGINS_WITH_WHITESPACE_REGEX_.test(text)) {
       return text;
     }
 
-    const value = editableNode.value;
-    const selStart = editableNode.textSelStart;
-    const selEnd = editableNode.textSelEnd;
+    const value = this.editableNode_.value;
+    const selStart = this.editableNode_.textSelStart;
+    const selEnd = this.editableNode_.textSelEnd;
     // Prepend a space to `text` if there is text directly left of the cursor.
     if (!selStart || selStart !== selEnd || !value ||
         InputController.BEGINS_WITH_WHITESPACE_REGEX_.test(
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/parse/speech_parser.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/parse/speech_parser.js
index a82d9c0c..aef2ae4 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/parse/speech_parser.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/parse/speech_parser.js
@@ -36,7 +36,6 @@
   /**
    * @param {string} locale The Dictation recognition locale. Only some locales
    *     are supported by Pumpkin.
-   * @return {!Promise}
    */
   async initialize(locale) {
     this.isRTLLocale_ = SpeechParser.RTLLocales.has(locale);
diff --git a/chrome/browser/resources/settings/chromeos/os_privacy_page/smart_privacy_page.html b/chrome/browser/resources/settings/chromeos/os_privacy_page/smart_privacy_page.html
index 21eef57..057bb54 100644
--- a/chrome/browser/resources/settings/chromeos/os_privacy_page/smart_privacy_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_privacy_page/smart_privacy_page.html
@@ -48,7 +48,7 @@
   <div>
     <localized-link
         localized-string="$i18n{smartPrivacyDesc}"
-        link-url="$i18n{smartPrivacyLearnMoreLink}">
+        link-url="$i18n{smartPrivacyLearnMoreURL}">
     </localized-link>
   </div>
 </div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_completion_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_completion_fragment.html
index 5e588a734..4b557c6 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_completion_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_completion_fragment.html
@@ -127,6 +127,10 @@
     width: 13px;
   }
 
+  privacy-guide-completion-link-row {
+    border-radius: 4px;
+  }
+
   .footer {
     align-items: center;
     bottom: calc(-1 * var(--privacy-guide-footer-total-height));
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.html b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.html
index 48606c1..9facbb7 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.html
@@ -9,21 +9,22 @@
     margin-inline-start: -10px;
   }
 
-  cr-dialog::part(dialog) {
-    border-radius: 0;
+  #dialog {
+    background-color: var(--md-background-color);
+    border: 0;
+    display: flex;
+    flex-direction: column;
     height: 100vh;
-    overflow: auto;
+    margin: 0;
+    max-height: 100vh;
+    max-width: 100vw;
+    padding: 0;
     width: 100vw;
   }
 
-  cr-dialog::part(wrapper),
-  cr-dialog::part(body-container) {
-    max-height: none;
-    overflow: visible;
-  }
-
   settings-privacy-guide-page {
-    margin: auto;
+    margin-inline-end: auto;
+    margin-inline-start: auto;
   }
 
   settings-privacy-guide-page::part(privacyGuideCard) {
@@ -33,8 +34,7 @@
     min-width: 550px;
   }
 </style>
-<cr-dialog id="dialog" ignore-popstate ignore-enter-key no-cancel
-    show-on-attach>
+<dialog id="dialog" on-cancel="onDialogCancel_" on-close="onDialogClose_">
   <div class="cr-row first" id="headerLine" slot="title">
     <cr-icon-button class="icon-arrow-back" id="backToSettingsButton"
         on-click="onSettingsBackClick_"
@@ -44,7 +44,7 @@
     </cr-icon-button>
     <h1 class="cr-title-text">$i18n{privacyGuideLabel}</h1>
   </div>
-  <settings-privacy-guide-page on-close="onClose_" prefs="{{prefs}}"
-      slot="body" is-privacy-guide-v2="true">
+  <settings-privacy-guide-page on-close="onPrivacyGuidePageClose_"
+      prefs="{{prefs}}" slot="body" is-privacy-guide-v2>
   </settings-privacy-guide-page>
-</cr-dialog>
+</dialog>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.ts b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.ts
index d97f4e7..77e38f6d 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_guide/privacy_guide_dialog.ts
@@ -13,14 +13,13 @@
 import '../../settings_shared_css.js';
 import './privacy_guide_page.js';
 
-import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.m.js';
 import {afterNextRender, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {getTemplate} from './privacy_guide_dialog.html.js';
 
 export interface SettingsPrivacyGuideDialogElement {
   $: {
-    dialog: CrDialogElement,
+    dialog: HTMLDialogElement,
   };
 }
 
@@ -48,6 +47,8 @@
   override connectedCallback() {
     super.connectedCallback();
 
+    this.$.dialog.showModal();
+
     // TODO(crbug/1215630): Instead of this focus code, it should be possible to
     // use |autofocus| on the corresponding element in the cr-dialog to put the
     // focus on it when the dialog is shown. For an unknown reason this does not
@@ -58,14 +59,31 @@
     afterNextRender(this, () => elementToFocus!.focus());
   }
 
-  private onClose_(event: Event) {
-    // Closing the cr-dialog fires its own close event.
-    event.stopPropagation();
+  private onDialogCancel_(e: Event) {
+    if (e.target === this.$.dialog) {
+      e.preventDefault();
+    }
+  }
 
+  private onDialogClose_(e: Event) {
+    // Ignore any 'close' events not fired directly by the <dialog> element.
+    if (e.target !== this.$.dialog) {
+      return;
+    }
+
+    // Catch and re-fire the 'close' event such that it bubbles across Shadow
+    // DOM v1.
+    this.dispatchEvent(
+        new CustomEvent('close', {bubbles: true, composed: true}));
+  }
+
+  private onPrivacyGuidePageClose_() {
     this.$.dialog.close();
   }
 
-  private onSettingsBackClick_() {
+  private onSettingsBackClick_(e: Event) {
+    e.stopPropagation();
+
     this.$.dialog.close();
   }
 }
diff --git a/chrome/browser/sessions/session_id_generator_browsertest.cc b/chrome/browser/sessions/session_id_generator_browsertest.cc
new file mode 100644
index 0000000..8d9c929
--- /dev/null
+++ b/chrome/browser/sessions/session_id_generator_browsertest.cc
@@ -0,0 +1,22 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/sessions/core/session_id_generator.h"
+
+#include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/test/browser_test.h"
+
+namespace {
+
+using SessionIdGeneratorBrowserTest = InProcessBrowserTest;
+
+// Verify the SessionIdGenerator is Initialized.
+IN_PROC_BROWSER_TEST_F(SessionIdGeneratorBrowserTest,
+                       VerifySessionIdGeneratorInitialized) {
+  sessions::SessionIdGenerator* generator =
+      sessions::SessionIdGenerator::GetInstance();
+  EXPECT_TRUE(generator->IsInitializedForTest());
+}
+
+}  // namespace
\ No newline at end of file
diff --git a/chrome/browser/sync/test/integration/apps_helper.cc b/chrome/browser/sync/test/integration/apps_helper.cc
index 23f63ae..29ca3f6c 100644
--- a/chrome/browser/sync/test/integration/apps_helper.cc
+++ b/chrome/browser/sync/test/integration/apps_helper.cc
@@ -39,23 +39,17 @@
 
 std::unique_ptr<web_app::WebAppTestInstallObserver>
 SetupSyncInstallObserverForProfile(Profile* profile) {
-  auto apps_to_be_installed = web_app::WebAppProvider::GetForTest(profile)
-                                  ->install_manager()
-                                  .GetEnqueuedInstallAppIdsForTesting();
-
   auto apps_to_be_sync_installed = web_app::WebAppProvider::GetForTest(profile)
-                                       ->registrar()
-                                       .GetAppsFromSyncAndPendingInstallation();
+                                       ->install_manager()
+                                       .GetEnqueuedInstallAppIdsForTesting();
 
-  apps_to_be_installed.insert(apps_to_be_sync_installed.begin(),
-                              apps_to_be_sync_installed.end());
-
-  if (apps_to_be_installed.empty())
+  if (apps_to_be_sync_installed.empty()) {
     return nullptr;
+  }
 
   auto install_observer =
       std::make_unique<web_app::WebAppTestInstallObserver>(profile);
-  install_observer->BeginListening(apps_to_be_installed);
+  install_observer->BeginListening(apps_to_be_sync_installed);
   return install_observer;
 }
 
diff --git a/chrome/browser/sync/test/integration/ash_custom_passphrase_sharing_sync_test.cc b/chrome/browser/sync/test/integration/ash_custom_passphrase_sharing_sync_test.cc
index a76defc..4cf24b2 100644
--- a/chrome/browser/sync/test/integration/ash_custom_passphrase_sharing_sync_test.cc
+++ b/chrome/browser/sync/test/integration/ash_custom_passphrase_sharing_sync_test.cc
@@ -23,6 +23,8 @@
 #include "chromeos/crosapi/mojom/sync.mojom.h"
 #include "components/prefs/pref_service.h"
 #include "components/sync/chromeos/explicit_passphrase_mojo_utils.h"
+#include "components/sync/driver/sync_service.h"
+#include "components/sync/driver/sync_user_settings.h"
 #include "components/sync/engine/loopback_server/persistent_unique_client_entity.h"
 #include "components/sync/engine/nigori/nigori.h"
 #include "components/sync/nigori/cryptographer_impl.h"
@@ -34,6 +36,9 @@
 
 namespace {
 
+using testing::Eq;
+using testing::NotNull;
+
 void InjectEncryptedServerOsPreference(
     const sync_pb::OsPreferenceSpecifics& unencrypted_specifics,
     const syncer::KeyParamsForTesting& key_params,
@@ -65,26 +70,45 @@
   return result;
 }
 
-class PassphraseRequiredNotifiedToCrosapiObserverChecker
+std::string ComputeKeyName(const syncer::Nigori& nigori) {
+  std::string key_name;
+  nigori.Permute(syncer::Nigori::Password, syncer::kNigoriKeyName, &key_name);
+  return key_name;
+}
+
+std::string GetServerNigoriKeyName(fake_server::FakeServer* fake_server) {
+  sync_pb::NigoriSpecifics specifics;
+  fake_server::GetServerNigori(fake_server, &specifics);
+  return specifics.encryption_keybag().key_name();
+}
+
+class PassphraseStateNotifiedToCrosapiObserverChecker
     : public StatusChangeChecker,
       public crosapi::mojom::SyncExplicitPassphraseClientObserver {
  public:
-  explicit PassphraseRequiredNotifiedToCrosapiObserverChecker(
+  enum class ExpectedState { kPassphraseRequired, kPassphraseAvailable };
+
+  explicit PassphraseStateNotifiedToCrosapiObserverChecker(
       mojo::Remote<crosapi::mojom::SyncExplicitPassphraseClient>*
-          remote_explicit_passphrase_client) {
+          remote_explicit_passphrase_client,
+      ExpectedState expected_state)
+      : expected_state_(expected_state) {
     DCHECK(remote_explicit_passphrase_client);
     remote_explicit_passphrase_client->get()->AddObserver(
         receiver_.BindNewPipeAndPassRemote());
   }
 
-  PassphraseRequiredNotifiedToCrosapiObserverChecker(
-      const PassphraseRequiredNotifiedToCrosapiObserverChecker&) = delete;
-  PassphraseRequiredNotifiedToCrosapiObserverChecker& operator=(
-      const PassphraseRequiredNotifiedToCrosapiObserverChecker&) = delete;
-  ~PassphraseRequiredNotifiedToCrosapiObserverChecker() override = default;
+  PassphraseStateNotifiedToCrosapiObserverChecker(
+      const PassphraseStateNotifiedToCrosapiObserverChecker&) = delete;
+  PassphraseStateNotifiedToCrosapiObserverChecker& operator=(
+      const PassphraseStateNotifiedToCrosapiObserverChecker&) = delete;
+  ~PassphraseStateNotifiedToCrosapiObserverChecker() override = default;
 
   // crosapi::mojom::SyncExplicitPassphraseClientObserver implementation.
-  void OnPassphraseAvailable() override {}
+  void OnPassphraseAvailable() override {
+    passphrase_available_notified_ = true;
+    CheckExitCondition();
+  }
 
   void OnPassphraseRequired() override {
     passphrase_required_notified_ = true;
@@ -93,12 +117,24 @@
 
   // StatusChangeChecker implementation.
   bool IsExitConditionSatisfied(std::ostream* os) override {
-    *os << "Waiting for OnPassphraseRequired() call for crosapi observer";
-    return passphrase_required_notified_;
+    switch (expected_state_) {
+      case ExpectedState::kPassphraseAvailable: {
+        *os << "Waiting for OnPassphraseAvailable() call for crosapi observer";
+        return passphrase_available_notified_;
+      }
+      case ExpectedState::kPassphraseRequired: {
+        *os << "Waiting for OnPassphraseRequired() call for crosapi observer";
+        return passphrase_required_notified_;
+      }
+    }
+    NOTREACHED();
+    return false;
   }
 
  private:
   bool passphrase_required_notified_ = false;
+  bool passphrase_available_notified_ = false;
+  ExpectedState expected_state_;
   mojo::Receiver<crosapi::mojom::SyncExplicitPassphraseClientObserver>
       receiver_{this};
 };
@@ -144,21 +180,40 @@
     return &explicit_passphrase_client_remote_;
   }
 
+  std::unique_ptr<syncer::Nigori> GetDecryptionKeyExposedViaCrosapi() {
+    crosapi::mojom::SyncExplicitPassphraseClientAsyncWaiter
+        explicit_passphrase_client_async_waiter(
+            explicit_passphrase_client_remote_.get());
+
+    crosapi::mojom::NigoriKeyPtr mojo_nigori_key;
+    explicit_passphrase_client_async_waiter.GetDecryptionNigoriKey(
+        GetSyncingUserAccountKey(), &mojo_nigori_key);
+
+    if (!mojo_nigori_key) {
+      return nullptr;
+    }
+
+    return syncer::NigoriFromMojo(*mojo_nigori_key);
+  }
+
   void MimicDecryptionKeyProvidedByLacros(
       const syncer::KeyParamsForTesting& key_params) {
     auto nigori = syncer::Nigori::CreateByDerivation(
         key_params.derivation_params, key_params.password);
 
-    auto account_key = crosapi::mojom::AccountKey::New();
-    account_key->id = GetSyncService(0)->GetAccountInfo().gaia;
-    account_key->account_type = crosapi::mojom::AccountType::kGaia;
-
     explicit_passphrase_client_remote_.get()->SetDecryptionNigoriKey(
-        std::move(account_key),
+        GetSyncingUserAccountKey(),
         /*decryption_key=*/syncer::NigoriToMojo(*nigori));
   }
 
  private:
+  crosapi::mojom::AccountKeyPtr GetSyncingUserAccountKey() {
+    auto account_key = crosapi::mojom::AccountKey::New();
+    account_key->id = GetSyncService(0)->GetAccountInfo().gaia;
+    account_key->account_type = crosapi::mojom::AccountType::kGaia;
+    return account_key;
+  }
+
   base::test::ScopedFeatureList feature_list_;
 
   mojo::Remote<crosapi::mojom::SyncService> sync_mojo_service_remote_;
@@ -171,9 +226,11 @@
   ASSERT_TRUE(SetupSync());
   SetupCrosapi();
 
-  PassphraseRequiredNotifiedToCrosapiObserverChecker
+  PassphraseStateNotifiedToCrosapiObserverChecker
       passphrase_required_notified_to_crosapi_observer_checker(
-          explicit_passphrase_client_remote());
+          explicit_passphrase_client_remote(),
+          PassphraseStateNotifiedToCrosapiObserverChecker::ExpectedState::
+              kPassphraseRequired);
 
   // Mimic custom passphrase being set by other client.
   const syncer::KeyParamsForTesting kKeyParams =
@@ -215,4 +272,73 @@
                   .Wait());
 }
 
+IN_PROC_BROWSER_TEST_F(AshCustomPassphraseSharingSyncTest,
+                       ShouldExposeEncryptionKeyWhenSetDecryptionPassphrase) {
+  ASSERT_TRUE(SetupSync());
+  SetupCrosapi();
+
+  PassphraseStateNotifiedToCrosapiObserverChecker
+      passphrase_available_notified_to_crosapi_observer_checker(
+          explicit_passphrase_client_remote(),
+          PassphraseStateNotifiedToCrosapiObserverChecker::ExpectedState::
+              kPassphraseAvailable);
+
+  // Mimic custom passphrase being set by other client.
+  const syncer::KeyParamsForTesting kKeyParams =
+      syncer::ScryptPassphraseKeyParamsForTesting("hunter2");
+  const sync_pb::NigoriSpecifics kCustomPassphraseSpecifics =
+      syncer::BuildCustomPassphraseNigoriSpecifics(kKeyParams);
+  fake_server::SetNigoriInFakeServer(kCustomPassphraseSpecifics,
+                                     GetFakeServer());
+  ASSERT_TRUE(
+      PassphraseRequiredStateChecker(GetSyncService(0), /*desired_state=*/true)
+          .Wait());
+
+  // Mimic that user entered the passphrase.
+  ASSERT_TRUE(GetSyncService(0)->GetUserSettings()->SetDecryptionPassphrase(
+      kKeyParams.password));
+  ASSERT_TRUE(
+      PassphraseRequiredStateChecker(GetSyncService(0), /*desired_state=*/false)
+          .Wait());
+
+  // Lacros should be eventually notified that passphrase is available and be
+  // able to retrieve it.
+  EXPECT_TRUE(passphrase_available_notified_to_crosapi_observer_checker.Wait());
+
+  std::unique_ptr<syncer::Nigori> exposed_key =
+      GetDecryptionKeyExposedViaCrosapi();
+  ASSERT_THAT(exposed_key, NotNull());
+  EXPECT_THAT(ComputeKeyName(*exposed_key),
+              Eq(kCustomPassphraseSpecifics.encryption_keybag().key_name()));
+}
+
+IN_PROC_BROWSER_TEST_F(AshCustomPassphraseSharingSyncTest,
+                       ShouldExposeDecryptionKeyWhenSetEncryptionPassphrase) {
+  ASSERT_TRUE(SetupSync());
+  SetupCrosapi();
+
+  PassphraseStateNotifiedToCrosapiObserverChecker
+      passphrase_available_notified_to_crosapi_observer_checker(
+          explicit_passphrase_client_remote(),
+          PassphraseStateNotifiedToCrosapiObserverChecker::ExpectedState::
+              kPassphraseAvailable);
+
+  // Mimic that user set custom passphrase using current client.
+  const std::string kPassphrase = "hunter2";
+  GetSyncService(0)->GetUserSettings()->SetEncryptionPassphrase(kPassphrase);
+  ASSERT_TRUE(ServerNigoriChecker(GetSyncService(0), GetFakeServer(),
+                                  syncer::PassphraseType::kCustomPassphrase)
+                  .Wait());
+
+  // Lacros should be eventually notified that passphrase is available and be
+  // able to retrieve it.
+  EXPECT_TRUE(passphrase_available_notified_to_crosapi_observer_checker.Wait());
+
+  std::unique_ptr<syncer::Nigori> exposed_key =
+      GetDecryptionKeyExposedViaCrosapi();
+  ASSERT_THAT(exposed_key, NotNull());
+  EXPECT_THAT(ComputeKeyName(*exposed_key),
+              Eq(GetServerNigoriKeyName(GetFakeServer())));
+}
+
 }  // namespace
diff --git a/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc b/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc
index 8ce7ff0..eea1a8c 100644
--- a/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc
+++ b/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc
@@ -337,7 +337,12 @@
   gfx::Image default_favicon_image =
       ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
           IDR_DEFAULT_FAVICON);
+  gfx::Image default_dark_favicon_image =
+      ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
+          IDR_DEFAULT_FAVICON_DARK);
   EXPECT_TRUE(gfx::test::AreImagesEqual(default_favicon_image,
+                                        gfx::Image(task->icon())) ||
+              gfx::test::AreImagesEqual(default_dark_favicon_image,
                                         gfx::Image(task->icon())));
 }
 
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 0c89cc6..603b86e 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -959,6 +959,8 @@
       "apps/chrome_app_window_client.h",
       "apps/directory_access_confirmation_dialog.cc",
       "apps/directory_access_confirmation_dialog.h",
+      "autofill_assistant/password_change/apc_utils.cc",
+      "autofill_assistant/password_change/apc_utils.h",
       "autofill_assistant/password_change/assistant_display_delegate.h",
       "autofill_assistant/password_change/assistant_onboarding_controller.cc",
       "autofill_assistant/password_change/assistant_onboarding_controller.h",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index d7874624..7a29930 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# аўдыяфайл}one{# аўдыяфайл}few{# аўдыяфайлы}many{# аўдыяфайлаў}other{# аўдыяфайла}}</translation>
 <translation id="265156376773362237">Стандартная перадзагрузка</translation>
 <translation id="2656405586795711023">Вэб-праграмы</translation>
+<translation id="2669454659051515572">Усе, хто карыстаецца гэтай прыладай, могуць бачыць спампаваныя файлы</translation>
 <translation id="2702516483241149200">Навінка: абагульце спасылку, пры выкарыстанні якой старонка прагартаецца гэтага фрагмента тэксту</translation>
 <translation id="2704606927547763573">Скапіравана</translation>
 <translation id="2707726405694321444">Абнавіць старонку</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Змяніць кнопку-ярлык на панэлі інструментаў</translation>
 <translation id="526421993248218238">Не ўдалося загрузіць гэту старонку</translation>
 <translation id="5271967389191913893">Прылада не можа адкрыць змесціва для спампоўвання.</translation>
+<translation id="5274286919938458946">Картка звязана з наступнай карткай: <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Адпраўка на прыладу</translation>
 <translation id="5300426565656326054">Персаналізацыя рэкламы на аснове даных браўзера</translation>
 <translation id="5304593522240415983">Гэта поле не можа быць пустым</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
index 318923d..246794db 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, kartica, odabrana</translation>
 <translation id="6828070228333235514">Zaustavi praćenje cijene</translation>
 <translation id="6833996806551876956">Probni period Zaštićenog okruženja za privatnost</translation>
+<translation id="6836206421467243968">Vratite grupu kartica <ph name="TITLE_OF_GROUP" /> kao novu pozadinsku grupu kartica.</translation>
 <translation id="6846298663435243399">Učitavanje…</translation>
 <translation id="6850409657436465440">Vaše preuzimanje je još uvijek u toku</translation>
 <translation id="6850830437481525139">Broj zatvorenih kartica: <ph name="TAB_COUNT" /></translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">Štiti vas na Chromeu i može se koristiti da poboljša vašu sigurnost u drugim Googleovim aplikacijama kada ste prijavljeni.</translation>
 <translation id="7191430249889272776">Kartica je otvorena u pozadini.</translation>
 <translation id="7196215469483532480">Objašnjenje vodiča za privatnost je otvoreno u punoj veličini</translation>
+<translation id="7207760545532569765">Vratite <ph name="TAB_COUNT" /> kartica kao nove pozadinske kartice.</translation>
 <translation id="7208109991155904980">Reakcija je pomjerena</translation>
 <translation id="7222235798733126207">Ograničeno dijeljenje između web lokacija</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 preuzimanje na čekanju}one{# preuzimanje na čekanju}few{# preuzimanja na čekanju}other{# preuzimanja na čekanju}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">Prijavi se ponovo</translation>
 <translation id="9155898266292537608">Također možete pretraživati brzim dodirom riječi</translation>
 <translation id="9158770349521403363">Dijeli samo sadržaj</translation>
+<translation id="9159716826369098114">Vratite grupu od <ph name="TAB_COUNT" /> kartica kao novu pozadinsku grupu kartica.</translation>
 <translation id="916446198114569890">URL-ovi koje posjećujete pohranjuju se na vaš Google račun</translation>
 <translation id="9169507124922466868">Historija navigacije je napola otvorena</translation>
 <translation id="9187955620966010988">Reakcija je podešena</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
index fc8023c..39cb5584 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# fitxer d'àudio}other{# fitxers d'àudio}}</translation>
 <translation id="265156376773362237">Càrrega prèvia estàndard</translation>
 <translation id="2656405586795711023">Aplicacions web</translation>
+<translation id="2669454659051515572">Qualsevol persona que utilitzi aquest dispositiu pot veure els fitxers baixats</translation>
 <translation id="2702516483241149200">Nou: comparteix un enllaç que es desplaça fins a aquest text</translation>
 <translation id="2704606927547763573">Copiada</translation>
 <translation id="2707726405694321444">Actualitza la pàgina</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Edita la drecera de la barra d'eines</translation>
 <translation id="526421993248218238">No es pot carregar aquesta pàgina</translation>
 <translation id="5271967389191913893">El dispositiu no pot obrir el contingut que s'ha de baixar.</translation>
+<translation id="5274286919938458946">Enllaçada amb <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Envia a</translation>
 <translation id="5300426565656326054">Personalització d'anuncis basada en el navegador</translation>
 <translation id="5304593522240415983">Aquest camp no pot estar en blanc</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index b12232d5..58bed33c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# Audiodatei}other{# Audiodateien}}</translation>
 <translation id="265156376773362237">Standard-Vorabladen</translation>
 <translation id="2656405586795711023">Web-Apps</translation>
+<translation id="2669454659051515572">Alle Personen, die dieses Gerät nutzen, können heruntergeladene Dateien sehen</translation>
 <translation id="2702516483241149200">Neu: Link teilen, der direkt zu diesem Text führt</translation>
 <translation id="2704606927547763573">Kopiert</translation>
 <translation id="2707726405694321444">Seite aktualisieren</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Verknüpfung auf Symbolleiste bearbeiten</translation>
 <translation id="526421993248218238">Fehler beim Laden der Seite</translation>
 <translation id="5271967389191913893">Das Gerät kann den Inhalt, der heruntergeladen werden soll, nicht öffnen.</translation>
+<translation id="5274286919938458946">Verknüpft mit <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Senden an</translation>
 <translation id="5300426565656326054">Browserbasierte personalisierte Werbung</translation>
 <translation id="5304593522240415983">Dieses Feld darf nicht leer sein.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
index 48ea545..900c5e3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" /> tab, selected</translation>
 <translation id="6828070228333235514">Stop tracking price</translation>
 <translation id="6833996806551876956">Privacy sandbox trial</translation>
+<translation id="6836206421467243968">Restore tab group <ph name="TITLE_OF_GROUP" /> as a new background tab group.</translation>
 <translation id="6846298663435243399">Loading…</translation>
 <translation id="6850409657436465440">Your download is still in progress</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> tabs closed</translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">Keeps you safe on Chrome and may be used to improve your security in other Google apps when you are signed in.</translation>
 <translation id="7191430249889272776">Tab opened in background.</translation>
 <translation id="7196215469483532480">Privacy guide explanation opened at full height</translation>
+<translation id="7207760545532569765">Restore <ph name="TAB_COUNT" /> tabs as new background tabs.</translation>
 <translation id="7208109991155904980">Reaction moved</translation>
 <translation id="7222235798733126207">Limited sharing between sites</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download pending}other{# downloads pending}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">Sign in again</translation>
 <translation id="9155898266292537608">You can also search with a quick tap on a word</translation>
 <translation id="9158770349521403363">Share content only</translation>
+<translation id="9159716826369098114">Restore tab group of <ph name="TAB_COUNT" /> tabs as a new background tab group.</translation>
 <translation id="916446198114569890">The URLs that you visit are saved to your Google Account</translation>
 <translation id="9169507124922466868">Navigation history is half-opened</translation>
 <translation id="9187955620966010988">Reaction adjusted</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
index 8c3956e..1eeef98 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# helifail}other{# helifaili}}</translation>
 <translation id="265156376773362237">Standardne eellaadimine</translation>
 <translation id="2656405586795711023">Veebirakendused</translation>
+<translation id="2669454659051515572">Kõik inimesed, kes seda seadet kasutavad, näevad allalaaditud faile</translation>
 <translation id="2702516483241149200">Uus: jagage linki, millega keritakse selle teksti juurde</translation>
 <translation id="2704606927547763573">Kopeeritud</translation>
 <translation id="2707726405694321444">Lehe värskendamine</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Tööriistariba otsetee muutmine</translation>
 <translation id="526421993248218238">Seda lehte ei saa laadida</translation>
 <translation id="5271967389191913893">Seade ei saa allalaaditavat sisu avada.</translation>
+<translation id="5274286919938458946">Lingitud kaardiga <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Saatmine</translation>
 <translation id="5300426565656326054">Brauseripõhine reklaamide isikupärastamine</translation>
 <translation id="5304593522240415983">See väli ei tohi olla tühi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index d2e43f8..ff5364283 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# Audio file}one{# Audio file}other{# na Audio file}}</translation>
 <translation id="265156376773362237">Karaniwang pag-preload</translation>
 <translation id="2656405586795711023">Mga web app</translation>
+<translation id="2669454659051515572">Makikita ng sinumang gumagamit ng device na ito ang mga na-download na file</translation>
 <translation id="2702516483241149200">Bago: magbahagi ng link na nagso-scroll papunta sa text na ito</translation>
 <translation id="2704606927547763573">Kinopya</translation>
 <translation id="2707726405694321444">I-refresh ang page</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">I-edit ang shortcut ng toolbar</translation>
 <translation id="526421993248218238">Hindi ma-load ang page na ito</translation>
 <translation id="5271967389191913893">Hindi mabuksan ng device ang content na ida-download.</translation>
+<translation id="5274286919938458946">Naka-link sa <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Ipadala kay</translation>
 <translation id="5300426565656326054">Pag-personalize ng ad na nakabatay sa browser</translation>
 <translation id="5304593522240415983">Hindi maaaring maging blangko ang field na ito</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index d7453fb..a3d287b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# fichier audio}one{# fichier audio}other{# fichiers audio}}</translation>
 <translation id="265156376773362237">Préchargement standard</translation>
 <translation id="2656405586795711023">Applications Web</translation>
+<translation id="2669454659051515572">Toute personne utilisant cet appareil peut voir les fichiers téléchargés</translation>
 <translation id="2702516483241149200">Nouveauté : communiquez un lien qui fait défiler l'écran jusqu'à ce texte</translation>
 <translation id="2704606927547763573">Copié</translation>
 <translation id="2707726405694321444">Actualiser la page</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Modifier le raccourci de la barre d'outils</translation>
 <translation id="526421993248218238">Impossible de charger cette page</translation>
 <translation id="5271967389191913893">L'appareil ne peut pas ouvrir le contenu à télécharger.</translation>
+<translation id="5274286919938458946">Associée à <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Envoyer à</translation>
 <translation id="5300426565656326054">Personnalisation des annonces en fonction du navigateur</translation>
 <translation id="5304593522240415983">Ce champ ne peut être vide</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index 1cb9ea9..7843a13 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# fichier audio}one{# fichier audio}other{# fichiers audio}}</translation>
 <translation id="265156376773362237">Préchargement standard</translation>
 <translation id="2656405586795711023">Applications Web</translation>
+<translation id="2669454659051515572">Toute personne utilisant cet appareil peut voir les fichiers téléchargés</translation>
 <translation id="2702516483241149200">Nouveau : partagez un lien vers ce texte</translation>
 <translation id="2704606927547763573">Copié</translation>
 <translation id="2707726405694321444">Actualiser la page</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Modifier le raccourci sur la barre d'outils</translation>
 <translation id="526421993248218238">Impossible de charger cette page</translation>
 <translation id="5271967389191913893">Impossible d'ouvrir le contenu à télécharger sur l'appareil.</translation>
+<translation id="5274286919938458946">Associée à <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Envoyer sur</translation>
 <translation id="5300426565656326054">Personnalisation des annonces basée sur le navigateur</translation>
 <translation id="5304593522240415983">Champ obligatoire.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
index 90b6b345..0fd7301 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ficheiro de audio}other{# ficheiros de audio}}</translation>
 <translation id="265156376773362237">Precarga estándar</translation>
 <translation id="2656405586795711023">Aplicacións web</translation>
+<translation id="2669454659051515572">Calquera que use este dispositivo pode ver os ficheiros descargados</translation>
 <translation id="2702516483241149200">Novidade: Comparte unha ligazón que leve directamente a este texto</translation>
 <translation id="2704606927547763573">Copiada</translation>
 <translation id="2707726405694321444">Actualiza páxina</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Editar atallo da barra de ferramentas</translation>
 <translation id="526421993248218238">Non se puido cargar esta páxina</translation>
 <translation id="5271967389191913893">O dispositivo non pode abrir o contido que se debe descargar.</translation>
+<translation id="5274286919938458946">Vinculada a <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Enviar a</translation>
 <translation id="5300426565656326054">Personalización de anuncios baseada no navegador</translation>
 <translation id="5304593522240415983">Este campo non pode quedar baleiro</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
index 985227a6..a5be8c89 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, kartica, odabrana</translation>
 <translation id="6828070228333235514">Zaustavi praćenje cijene</translation>
 <translation id="6833996806551876956">Proba za Privacy Sandbox</translation>
+<translation id="6836206421467243968">Vratite grupu kartica <ph name="TITLE_OF_GROUP" /> kao novu pozadinsku grupu kartica.</translation>
 <translation id="6846298663435243399">Učitavanje…</translation>
 <translation id="6850409657436465440">Preuzimanje je još u tijeku</translation>
 <translation id="6850830437481525139">Kartice su zatvorene (njih <ph name="TAB_COUNT" />)</translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">Štiti vas na Chromeu i može se upotrebljavati za poboljšanje vaše sigurnosti u drugim Googleovim aplikacijama kad ste prijavljeni.</translation>
 <translation id="7191430249889272776">Kartica je otvorena u pozadini.</translation>
 <translation id="7196215469483532480">Objašnjenje vodiča za privatnost otvoreno u punoj visini</translation>
+<translation id="7207760545532569765">Vratite <ph name="TAB_COUNT" /> kartica kao nove pozadinske kartice.</translation>
 <translation id="7208109991155904980">Reakcija je premještena</translation>
 <translation id="7222235798733126207">Ograničeno dijeljenje između web-lokacija</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 preuzimanje na čekanju}one{# preuzimanje na čekanju}few{# preuzimanja na čekanju}other{# preuzimanja na čekanju}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">Prijavite se ponovno</translation>
 <translation id="9155898266292537608">Možete i kratko dodirnuti riječ da biste je pretražili</translation>
 <translation id="9158770349521403363">Podijeli samo sadržaj</translation>
+<translation id="9159716826369098114">Vratite grupu od <ph name="TAB_COUNT" /> kartica kao novu pozadinsku grupu kartica.</translation>
 <translation id="916446198114569890">URL-ovi koje posjećujete spremaju se na vaš Google račun</translation>
 <translation id="9169507124922466868">Povijest navigacije je poluotvorena</translation>
 <translation id="9187955620966010988">Reakcija je prilagođena</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 6f84c5f1..1273544 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
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# hljóðskrá}one{# hljóðskrá}other{# hljóðskrár}}</translation>
 <translation id="265156376773362237">Hefðbundin forhleðsla</translation>
 <translation id="2656405586795711023">Vefforrit</translation>
+<translation id="2669454659051515572">Allir sem nota þetta tæki geta séð sóttar skrár</translation>
 <translation id="2702516483241149200">Nýtt: Deildu tengli sem flettir að þessum texta</translation>
 <translation id="2704606927547763573">Afritað</translation>
 <translation id="2707726405694321444">Endurnýja síðu</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Breyta flýtileið tækjastiku</translation>
 <translation id="526421993248218238">Ekki hægt að hlaða þessari síðu</translation>
 <translation id="5271967389191913893">Tækið getur ekki opnað efnið sem á að sækja.</translation>
+<translation id="5274286919938458946">Tengt við <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Senda í</translation>
 <translation id="5300426565656326054">Sérsniðnar auglýsingar út frá vafravirkni</translation>
 <translation id="5304593522240415983">Þessi reitur má ekki vera auður</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 de77c104..7ace5c6 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
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{קובץ אודיו אחד (#)}two{# קובצי אודיו}many{# קובצי אודיו}other{# קובצי אודיו}}</translation>
 <translation id="265156376773362237">טעינה רגילה מראש</translation>
 <translation id="2656405586795711023">אפליקציות אינטרנט</translation>
+<translation id="2669454659051515572">כל מי שמשתמש במכשיר הזה יכול לראות את הקבצים שהורדו</translation>
 <translation id="2702516483241149200">חדש: ניתן לשתף קישור שגולל לטקסט הזה</translation>
 <translation id="2704606927547763573">הועתק</translation>
 <translation id="2707726405694321444">רענון הדף</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">עריכת קיצור הדרך בסרגל הכלים</translation>
 <translation id="526421993248218238">לא ניתן לטעון את הדף</translation>
 <translation id="5271967389191913893">המכשיר לא מצליח לפתוח את התוכן להורדה.</translation>
+<translation id="5274286919938458946">הכרטיס הווירטואלי מקושר לכרטיס <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">שליחה אל</translation>
 <translation id="5300426565656326054">התאמה אישית של מודעות על סמך הדפדפן</translation>
 <translation id="5304593522240415983">שדה זה לא יכול להיות ריק</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 6886e34..305d738 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
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />、タブ、選択中</translation>
 <translation id="6828070228333235514">価格のトラッキングを停止する</translation>
 <translation id="6833996806551876956">プライバシー サンドボックス(試用版)</translation>
+<translation id="6836206421467243968">「<ph name="TITLE_OF_GROUP" />」タブグループを新しいバックグラウンドのタブグループとして復元します。</translation>
 <translation id="6846298663435243399">読み込んでいます…</translation>
 <translation id="6850409657436465440">ダウンロードが進行中です</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> 個のタブを閉じました</translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">ログイン時に、Chrome を安全に利用できるようにするほか、他の Google アプリのセキュリティ強化に使用されることがあります。</translation>
 <translation id="7191430249889272776">バックグラウンドでタブを開きました。</translation>
 <translation id="7196215469483532480">プライバシー ガイドの説明が画面全体に表示されています</translation>
+<translation id="7207760545532569765"><ph name="TAB_COUNT" /> 個のタブを新しいバックグラウンドのタブとして復元します。</translation>
 <translation id="7208109991155904980">リアクションを移動しました</translation>
 <translation id="7222235798733126207">サイト間での共有の制限</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 件のダウンロードが保留中です}other{# 件のダウンロードが保留中です}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">もう一度ログインする</translation>
 <translation id="9155898266292537608">単語をタップするだけでも検索できます</translation>
 <translation id="9158770349521403363">コンテンツのみ共有</translation>
+<translation id="9159716826369098114"><ph name="TAB_COUNT" /> 個のタブのタブグループを新しいバックグラウンドのタブグループとして復元します。</translation>
 <translation id="916446198114569890">アクセスした URL は Google アカウントに保存されます</translation>
 <translation id="9169507124922466868">ナビゲーション履歴が半分開いています</translation>
 <translation id="9187955620966010988">リアクションを調整しました</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index eda4c70..db65b46d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# аудиофайл}other{# аудиофайл}}</translation>
 <translation id="265156376773362237">Стандартты алдын ала жүктеу</translation>
 <translation id="2656405586795711023">Веб-қолданбалар</translation>
+<translation id="2669454659051515572">Осы құрылғыны пайдаланатын кез келген адам жүктеп алынған файлдарды көре алады.</translation>
 <translation id="2702516483241149200">Жаңа: осы мәтінге бағыттайтын сілтемені бөлісу</translation>
 <translation id="2704606927547763573">Көшірілген</translation>
 <translation id="2707726405694321444">Бетті жаңарту</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Құралдар тақтасын өзгерту таңбашасы</translation>
 <translation id="526421993248218238">Бұл бет жүктелмеді</translation>
 <translation id="5271967389191913893">Құрылғы жүктелетін мазмұнды аша алмайды.</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> картасымен байланыстырылды.</translation>
 <translation id="5292796745632149097">Қойынды жіберілетін құрылғы:</translation>
 <translation id="5300426565656326054">Жарнаманы браузерге негіздеп жекелендіру</translation>
 <translation id="5304593522240415983">Бұл өріс бос болмауы керек</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index dfe2e1a..f849006a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ಆಡಿಯೋ ಫೈಲ್}one{# ಆಡಿಯೋ ಫೈಲ್‌ಗಳು}other{# ಆಡಿಯೋ ಫೈಲ್‌ಗಳು}}</translation>
 <translation id="265156376773362237">ಪ್ರಮಾಣಿತ ಮುಂಚಿತ ಲೋಡ್ ಮಾಡುವಿಕೆ</translation>
 <translation id="2656405586795711023">ವೆಬ್‌ ಆ್ಯಪ್‌ಗಳು</translation>
+<translation id="2669454659051515572">ಈ ಸಾಧನವನ್ನು ಬಳಸುವ ಯಾರಾದರೂ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿರುವ ಫೈಲ್‌ಗಳನ್ನು ನೋಡಬಹುದು</translation>
 <translation id="2702516483241149200">ಹೊಸ ವೈಶಿಷ್ಟ್ಯ: ಈ ಪಠ್ಯಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಆಗುವ ಲಿಂಕ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="2704606927547763573">ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="2707726405694321444">ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation>
@@ -777,6 +778,7 @@
 <translation id="5246093389635966745">ಪರಿಕರಪಟ್ಟಿ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="526421993248218238">ಈ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="5271967389191913893">ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಬೇಕಾದ ವಿಷಯವನ್ನು ಸಾಧನಕ್ಕೆ ತೆರೆಯಲಾಗುತ್ತಿಲ್ಲ.</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> ಜೊತೆ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="5292796745632149097">ಇಲ್ಲಿಗೆ ಕಳುಹಿಸಿ</translation>
 <translation id="5300426565656326054">ಬ್ರೌಸರ್-ಆಧಾರಿತ ಜಾಹೀರಾತು ವೈಯಕ್ತಿಕಗೊಳಿಸುವಿಕೆ</translation>
 <translation id="5304593522240415983">ಈ ಕ್ಷೇತ್ರವು ಖಾಲಿಯಾಗಿರುವಂತಿಲ್ಲ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index 7993215..680cab4e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# аудио файл}other{# аудио файл}}</translation>
 <translation id="265156376773362237">Стандарттуу алдын ала жүктөө</translation>
 <translation id="2656405586795711023">Веб колдонмолор</translation>
+<translation id="2669454659051515572">Бул түзмөктү колдонгондордун баары жүктөлүп алынган файлдарды көрө алышат</translation>
 <translation id="2702516483241149200">Жаңы: Бул текстке сыдырылган шилтемени бөлүшө аласыз</translation>
 <translation id="2704606927547763573">Көчүрүлдү</translation>
 <translation id="2707726405694321444">Бетти жаңылоо</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Куралдар тилкесинин ыкчам баскычын түзөтүү</translation>
 <translation id="526421993248218238">Бул бет жүктөлбөй жатат</translation>
 <translation id="5271967389191913893">Жүктөлүп алына турган мазмунду түзмөк ача албайт.</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> менен байланышкан</translation>
 <translation id="5292796745632149097">Төмөнкүгө жөнөтүү</translation>
 <translation id="5300426565656326054">Жарнамаларды серепчинин негизинде жекелештирүү</translation>
 <translation id="5304593522240415983">Бул талаа бош болбошу керек</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index d9236e5..30f5e95 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# garso įrašo failas}one{# garso įrašo failas}few{# garso įrašo failai}many{# garso įrašo failo}other{# garso įrašo failų}}</translation>
 <translation id="265156376773362237">Įprastas išankstinis įkėlimas</translation>
 <translation id="2656405586795711023">Žiniatinklio programos</translation>
+<translation id="2669454659051515572">Visi šį įrenginį naudojantys asmenys gali peržiūrėti atsisiųstus failus</translation>
 <translation id="2702516483241149200">Naujiena: bendrinkite nuorodą, kuria galima slinkti į šį tekstą</translation>
 <translation id="2704606927547763573">Nukopij.</translation>
 <translation id="2707726405694321444">Atnaujinti puslapį</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Redaguoti spartųjį įrankių juostos klavišą</translation>
 <translation id="526421993248218238">Nepavyko įkelti šio puslapio</translation>
 <translation id="5271967389191913893">Įrenginyje nepavyksta atidaryti norimo atsisiųsti turinio.</translation>
+<translation id="5274286919938458946">Susieta su <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Siųsti į</translation>
 <translation id="5300426565656326054">Skelbimų suasmeninimas pagal naršyklę</translation>
 <translation id="5304593522240415983">Šis laukas negali būti tuščias</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
index 6765c81..1e2a528 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# audio fails}zero{# audio faili}one{# audio fails}other{# audio faili}}</translation>
 <translation id="265156376773362237">Standarta iepriekšēja ielāde</translation>
 <translation id="2656405586795711023">Tīmekļa lietotnes</translation>
+<translation id="2669454659051515572">Lejupielādētie faili ir redzami visiem šīs ierīces lietotājiem.</translation>
 <translation id="2702516483241149200">Jaunums: varat kopīgot saiti uz šo tekstu</translation>
 <translation id="2704606927547763573">Nokopēts</translation>
 <translation id="2707726405694321444">Atsvaidzināt lapu</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Rīkjoslas rediģēšanas saīsne</translation>
 <translation id="526421993248218238">Šo lapu nevar ielādēt</translation>
 <translation id="5271967389191913893">Ierīcē nevar atvērt lejupielādējamo saturu.</translation>
+<translation id="5274286919938458946">Saistīta ar: <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Sūtīt uz:</translation>
 <translation id="5300426565656326054">Reklāmu personalizēšana, balstoties uz pārlūku</translation>
 <translation id="5304593522240415983">Šis lauks nevar būt tukšs.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
index 38419cc..957e3e2dc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# аудиодатотека}one{# аудиодатотека}other{# аудиодатотеки}}</translation>
 <translation id="265156376773362237">Стандардно вчитување однапред</translation>
 <translation id="2656405586795711023">Веб-апликации</translation>
+<translation id="2669454659051515572">Сите кои го користат уредов може да ги видат преземените датотеки</translation>
 <translation id="2702516483241149200">Ново: споделете линк што ќе ве одведе до текстов со лизгање</translation>
 <translation id="2704606927547763573">Копирано</translation>
 <translation id="2707726405694321444">Освежи ја страницата</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Изменете ја кратенката за алатникот</translation>
 <translation id="526421993248218238">Страницава не може да се вчита</translation>
 <translation id="5271967389191913893">Уредот не може да ја отвори содржината за да се преземе.</translation>
+<translation id="5274286919938458946">Поврзана со <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Испрати до</translation>
 <translation id="5300426565656326054">Персонализирање на рекламите според прелистувач</translation>
 <translation id="5304593522240415983">Ова поле не може да биде празно</translation>
@@ -1074,6 +1076,7 @@
 <translation id="6824899148643461612">Избрана е картичката <ph name="TAB_TITLE" /></translation>
 <translation id="6828070228333235514">Запри го следењето цени</translation>
 <translation id="6833996806551876956">Пробен период за Sandbox за приватност</translation>
+<translation id="6836206421467243968">Врати ја групата картички <ph name="TITLE_OF_GROUP" /> како нова заднинска група картички.</translation>
 <translation id="6846298663435243399">Се вчитува…</translation>
 <translation id="6850409657436465440">Вашето преземање е сѐ уште е во тек</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> затворени картички</translation>
@@ -1136,6 +1139,7 @@
 <translation id="7187993566681480880">Ја чува вашата безбедност на Chrome и може да се користи за да ја подобри безбедноста на други апликации на Google кога сте најавени.</translation>
 <translation id="7191430249889272776">Отворена е картичка во заднина.</translation>
 <translation id="7196215469483532480">Објаснувањето за водичот за приватност е отворено на цел екран</translation>
+<translation id="7207760545532569765">Врати <ph name="TAB_COUNT" /> картички како нова заднинска група картички.</translation>
 <translation id="7208109991155904980">Реакцијата се премести</translation>
 <translation id="7222235798733126207">Ограничено споделување меѓу сајтовите</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 преземање чека на ред}one{# преземање чека на ред}other{# преземања чекаат на ред}}</translation>
@@ -1514,6 +1518,7 @@
 <translation id="9148126808321036104">Најави се повторно</translation>
 <translation id="9155898266292537608">Може да пребарувате и со брзо допирање збор</translation>
 <translation id="9158770349521403363">Сподели само содржини</translation>
+<translation id="9159716826369098114">Врати ја групата картички од <ph name="TAB_COUNT" /> картички како нова заднинска група картички.</translation>
 <translation id="916446198114569890">URL-адресите што ги посетувате се зачувуваат во вашата сметка на Google</translation>
 <translation id="9169507124922466868">Историјата на навигација е отворена до половина екран</translation>
 <translation id="9187955620966010988">Реакцијата е приспособена</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 77c81b9..d5934a9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, ടാബ്, തിരഞ്ഞെടുത്തു</translation>
 <translation id="6828070228333235514">നിരക്ക് ട്രാക്ക് ചെയ്യൽ നിർത്തുക</translation>
 <translation id="6833996806551876956">സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് ട്രയൽ</translation>
+<translation id="6836206421467243968">പുതിയ പശ്ചാത്തല ടാബ് ഗ്രൂപ്പായി <ph name="TITLE_OF_GROUP" /> ടാബ് ഗ്രൂപ്പ് പുനഃസ്ഥാപിക്കുക.</translation>
 <translation id="6846298663435243399">ലോഡുചെയ്യുന്നു...</translation>
 <translation id="6850409657436465440">നിങ്ങളുടെ ഡൗൺലോഡ് ഇപ്പോഴും പുരോഗതിയിലാണ്</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ടാബുകൾ അടച്ചു</translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">നിങ്ങൾ സൈൻ ഇൻ ആയിരിക്കുമ്പോൾ Chrome-ൽ നിങ്ങളെ സുരക്ഷിതരാക്കുകയും മറ്റ് Google ആപ്പുകളിൽ നിങ്ങളുടെ സുരക്ഷ മെച്ചപ്പെടുത്താൻ ഉപയോഗിക്കുകയും ചെയ്യും.</translation>
 <translation id="7191430249889272776">ടാബ് പശ്ചാത്തലത്തിൽ തുറന്നു.</translation>
 <translation id="7196215469483532480">സ്വകാര്യതാ ഗൈഡിന്റെ വിശദീകരണം മുഴുവൻ ഉയരത്തിൽ തുറന്നു</translation>
+<translation id="7207760545532569765">പുതിയ പശ്ചാത്തല ടാബുകളായി <ph name="TAB_COUNT" /> ടാബുകൾ പുനഃസ്ഥാപിക്കുക.</translation>
 <translation id="7208109991155904980">പ്രതികരണം നീക്കി</translation>
 <translation id="7222235798733126207">സൈറ്റുകൾക്കിടയിൽ പരിമിതമായ പങ്കിടൽ</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{ഒരു ഡൗൺലോഡ് തീർച്ചപ്പെടുത്തിയിട്ടില്ല}other{# ഡൗൺലോഡുകൾ തീർച്ചപ്പെടുത്തിയിട്ടില്ല}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">വീണ്ടും പ്രവേശിക്കുക</translation>
 <translation id="9155898266292537608">ഒരു വാക്കിൽ പെട്ടെന്ന് ടാപ്പ് ചെയ്‌തും നിങ്ങൾക്ക് തിരയാൻ കഴിയും</translation>
 <translation id="9158770349521403363">ഉള്ളടക്കം മാത്രം പങ്കിടുക</translation>
+<translation id="9159716826369098114">പുതിയ പശ്ചാത്തല ടാബ് ഗ്രൂപ്പായി <ph name="TAB_COUNT" /> ടാബുകളുള്ള ടാബ് ഗ്രൂപ്പ് പുനഃസ്ഥാപിക്കുക.</translation>
 <translation id="916446198114569890">നിങ്ങൾ സന്ദർശിക്കുന്ന URL-കൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നു</translation>
 <translation id="9169507124922466868">നാവിഗേഷൻ ചരിത്രം പകുതിയായി തുറന്നിരിക്കുന്നു</translation>
 <translation id="9187955620966010988">പ്രതികരണം ക്രമീകരിച്ചു</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 1b49bd3..0709259 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
@@ -1075,6 +1075,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />၊ တဘ်၊ ရွေးထားသည်</translation>
 <translation id="6828070228333235514">ဈေးနှုန်းစောင့်ကြည့်ခြင်း ရပ်ရန်</translation>
 <translation id="6833996806551876956">'ပုဂ္ဂိုလ်ရေး လုံခြုံသည့်နေရာ' အစမ်းသုံးခြင်း</translation>
+<translation id="6836206421467243968">နောက်ခံတဘ်အုပ်စုအသစ်အဖြစ် <ph name="TITLE_OF_GROUP" /> တဘ်အုပ်စုကို ပြန်ယူနိုင်ပါသည်။</translation>
 <translation id="6846298663435243399">တင်ပေးနေ…</translation>
 <translation id="6850409657436465440">သင်၏ ဒေါင်းလုဒ်ကို လုပ်နေဆဲဖြစ်သည်</translation>
 <translation id="6850830437481525139">တဘ် <ph name="TAB_COUNT" /> ခု ပိတ်လိုက်သည်</translation>
@@ -1137,6 +1138,7 @@
 <translation id="7187993566681480880">Chrome တွင် ဘေးကင်းစေပြီး အခြား Google အက်ပ်များတွင် သင်လက်မှတ်ထိုးဝင်ထားသည့်အခါ လုံခြုံရေး ပိုကောင်းမွန်စေရန်လည်း သုံးနိုင်သည်။</translation>
 <translation id="7191430249889272776">တဲဘ်ကို နောက်ခံမှာ ဖွင့်ထား။</translation>
 <translation id="7196215469483532480">ကိုယ်ရေးအချက်အလက်လုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက်ကို မြင်ကွင်းအပြည့်ဖွင့်ပြီးပြီ</translation>
+<translation id="7207760545532569765">နောက်ခံတဘ်အသစ်များအဖြစ် တဘ် <ph name="TAB_COUNT" /> ခုကို ပြန်ယူနိုင်ပါသည်။</translation>
 <translation id="7208109991155904980">တုံ့ပြန်မှုကို ရွှေ့လိုက်သည်</translation>
 <translation id="7222235798733126207">ဝဘ်ဆိုက်များကြား မျှဝေမှုကန့်သတ်ထားခြင်း</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{ဒေါင်းလုဒ် ၁ ခုကို စောင့်နေသည်}other{ဒေါင်းလုဒ် # ခုကို စောင့်နေသည်}}</translation>
@@ -1515,6 +1517,7 @@
 <translation id="9148126808321036104">ထပ်ပြီး လက်မှတ်ထိုး ဝင်ရန်</translation>
 <translation id="9155898266292537608">စာလုံးပေါ်ကို အမြန်တို့၍လည်း ရှာနိုင်သည်</translation>
 <translation id="9158770349521403363">အကြောင်းအရာသီးသန့် မျှဝေပါ</translation>
+<translation id="9159716826369098114">နောက်ခံတဘ်အုပ်စုအသစ်အဖြစ် တဘ် <ph name="TAB_COUNT" /> ခု ပါသည့် တဘ်အုပ်စုကို ပြန်ယူနိုင်ပါသည်။</translation>
 <translation id="916446198114569890">သင်ဝင်ကြည့်သည့် URL များကို သင့် Google Account တွင်သိမ်းထားသည်</translation>
 <translation id="9169507124922466868">လမ်းညွှန်မှု မှတ်တမ်း တစ်ဝက်ဖွင့်ထားသည်</translation>
 <translation id="9187955620966010988">တုံ့ပြန်မှု ပြင်ဆင်လိုက်သည်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index 114bc8e..5dda2c3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -1075,6 +1075,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, ट्याब, चयन गरियो</translation>
 <translation id="6828070228333235514">मूल्य ट्रयाक गर्ने सुविधा अफ गर्नुहोस्</translation>
 <translation id="6833996806551876956">गोपनीयता स्यान्डबक्सको ट्रायल अवधि</translation>
+<translation id="6836206421467243968"><ph name="TITLE_OF_GROUP" /> नामक ट्याब समूह रिस्टोर गरी नयाँ ब्याकग्राउन्ड ट्याब समूह बनाउनुहोस्।</translation>
 <translation id="6846298663435243399">लोड हुँदै...</translation>
 <translation id="6850409657436465440">तपाईंको डाउनलोड हुने क्रम अझै जारी छ</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ट्याबहरू बन्द भए</translation>
@@ -1137,6 +1138,7 @@
 <translation id="7187993566681480880">यस सुविधाले तपाईं Chrome मा साइन इन भएका बेला तपाईंको जानकारी सुरक्षित राख्छ। Google का अन्य एपहरूको सुरक्षा स्तर सुधार गर्न पनि यसको प्रयोग गरिन सक्छ।</translation>
 <translation id="7191430249889272776">पृष्ठभूमिमा ट्याब खुला छ।</translation>
 <translation id="7196215469483532480">गोपनीयतासम्बन्धी मार्गदर्शनको वर्णन स्क्रिनको पूरा भाग ओगट्ने गरी खोलिएको छ</translation>
+<translation id="7207760545532569765"><ph name="TAB_COUNT" /> वटा ट्याब रिस्टोर गरी नयाँ ब्याकग्राउन्ड ट्याब समूह बनाउनुहोस्।</translation>
 <translation id="7208109991155904980">प्रतिक्रिया सारिएको छ</translation>
 <translation id="7222235798733126207">साइटहरूका बिचमा सीमित जानकारीको आदानप्रदान</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{१ डाउनलोड विचारधीन छ}other{# डाउनलोडहरू विचारधीन छन्}}</translation>
@@ -1515,6 +1517,7 @@
 <translation id="9148126808321036104">पुन: साइन इन गर्नुहोस्</translation>
 <translation id="9155898266292537608">कुनै शब्दमा द्रुत ट्याप गरेर पनि तपाईं खोज्न सक्नुहुन्छ</translation>
 <translation id="9158770349521403363">सामग्री मात्र सेयर गरियोस्</translation>
+<translation id="9159716826369098114"><ph name="TAB_COUNT" /> वटा ट्याब भएको ट्याब समूह रिस्टोर गरी नयाँ ब्याकग्राउन्ड ट्याब समूह बनाउनुहोस्।</translation>
 <translation id="916446198114569890">तपाईंले खोल्ने URL हरू तपाईंको Google खातामा सेभ गरिन्छन्</translation>
 <translation id="9169507124922466868">नेभिगेसनको इतिहास आधा खुला छ</translation>
 <translation id="9187955620966010988">प्रतिक्रिया मिलाइएको छ</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 130b9af..20fe66b 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
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ਆਡੀਓ ਫ਼ਾਈਲ}one{# ਆਡੀਓ ਫ਼ਾਈਲ}other{# ਆਡੀਓ ਫ਼ਾਈਲਾਂ}}</translation>
 <translation id="265156376773362237">ਮਿਆਰੀ ਪ੍ਰੀਲੋਡਿੰਗ</translation>
 <translation id="2656405586795711023">ਵੈੱਬ ਐਪਾਂ</translation>
+<translation id="2669454659051515572">ਇਸ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲਾ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਗਈਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ</translation>
 <translation id="2702516483241149200">ਨਵਾਂ: ਇਸ ਲਿਖਤ ਤੱਕ ਸਕ੍ਰੋਲ ਕਰਨ ਵਾਲਾ ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ</translation>
 <translation id="2704606927547763573">ਕਾਪੀ ਕੀਤਾ</translation>
 <translation id="2707726405694321444">ਪੰਨੇ ਰਿਫ੍ਰੈਸ਼ ਕਰੋ</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">ਟੂਲਬਾਰ ਸ਼ਾਰਟਕੱਟ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="526421993248218238">ਇਸ ਪੰਨੇ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ</translation>
 <translation id="5271967389191913893">ਡੀਵਾਈਸ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਸਮੱਗਰੀ ਨੂੰ ਨਹੀਂ ਖੋਲ੍ਹ ਸਕਦਾ ਹੈ।</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> ਨਾਲ ਲਿੰਕ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="5292796745632149097">ਇਸ 'ਤੇ ਭੇਜੋ</translation>
 <translation id="5300426565656326054">ਬ੍ਰਾਊਜ਼ਰ-ਆਧਾਰਿਤ ਵਿਗਿਆਪਨ ਵਿਅਕਤੀਗਤਕਰਨ</translation>
 <translation id="5304593522240415983">ਇਹ ਖੇਤਰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ</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 a4737778..7c8f9743 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
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# arquivo de áudio}one{# arquivo de áudio}other{# arquivos de áudio}}</translation>
 <translation id="265156376773362237">Pré-carregamento padrão</translation>
 <translation id="2656405586795711023">Apps da Web</translation>
+<translation id="2669454659051515572">Qualquer pessoa que use este dispositivo pode ver os arquivos transferidos por download</translation>
 <translation id="2702516483241149200">Novo: compartilhe um link para este texto</translation>
 <translation id="2704606927547763573">Copiado</translation>
 <translation id="2707726405694321444">Atualizar página</translation>
@@ -779,6 +780,7 @@
 <translation id="5246093389635966745">Editar atalho da barra de ferramentas</translation>
 <translation id="526421993248218238">Não foi possível carregar a página</translation>
 <translation id="5271967389191913893">Não é possível abrir no dispositivo o conteúdo a ser transferido por download.</translation>
+<translation id="5274286919938458946">Vinculado ao cartão <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Enviar para</translation>
 <translation id="5300426565656326054">Personalização de anúncios com base no navegador</translation>
 <translation id="5304593522240415983">Este campo não pode ficar em branco</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
index 857cb6d..0acad11 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ශ්‍රව්‍ය ගොනුවක්}one{ශ්‍රව්‍ය ගොනු #ක්}other{ශ්‍රව්‍ය ගොනු #ක්}}</translation>
 <translation id="265156376773362237">සම්මත පූර්ව පූරණය</translation>
 <translation id="2656405586795711023">වෙබ් යෙදුම්</translation>
+<translation id="2669454659051515572">මෙම උපාංගය භාවිත කරන ඕනෑම කෙනෙකුට බාගත් ගොනු දැකිය හැකිය</translation>
 <translation id="2702516483241149200">නව: මෙම පෙළට අනුචලනය වන සබැඳියක් බෙදා ගන්න</translation>
 <translation id="2704606927547763573">පිටපත් කරන ලදි</translation>
 <translation id="2707726405694321444">පිටුව නැවුම් කරන්න</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">මෙවලම් තීරු කෙටි මඟ සංස්කරණය කරන්න</translation>
 <translation id="526421993248218238">මෙම පිටුව පූරණය කළ නොහැක</translation>
 <translation id="5271967389191913893">බාගැනීමට අවශ්‍ය අන්තර්ගතය උපාංගයට විවෘත කළ නොහැක.</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> සමඟ සම්බන්ධ කරන ලදි</translation>
 <translation id="5292796745632149097">වෙත යවන්න</translation>
 <translation id="5300426565656326054">බ්‍රවසුරය පදනම් වෙළඳ දැන්වීම් පුද්ගලිකකරණය</translation>
 <translation id="5304593522240415983">මෙම ඉඩ හිස්ව තැබිය නොහැක</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
index dc90135..cd381ef46 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# skedar audio}other{# skedarë audio}}</translation>
 <translation id="265156376773362237">Ngarkimi paraprak standard</translation>
 <translation id="2656405586795711023">Aplikacionet e uebit</translation>
+<translation id="2669454659051515572">Çdo person që e përdor këtë pajisje mund t'i shikojë skedarët e shkarkuar</translation>
 <translation id="2702516483241149200">E re: Ndaj një lidhje që të drejton te ky tekst</translation>
 <translation id="2704606927547763573">Kopjuar</translation>
 <translation id="2707726405694321444">Rifresko faqen</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Shkurtorja e modifikimit të shiritit të veglave</translation>
 <translation id="526421993248218238">Kjo faqe nuk mund të ngarkohet</translation>
 <translation id="5271967389191913893">Pajisja nuk mund të hapë përmbajtjen që do të shkarkohet.</translation>
+<translation id="5274286919938458946">Lidhur me <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Dërgo te</translation>
 <translation id="5300426565656326054">Personalizimi i reklamave në bazë të shfletuesit</translation>
 <translation id="5304593522240415983">Kjo fushë nuk mund të jetë bosh</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 8e81b197..4bcffc6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, kartica, izabrana</translation>
 <translation id="6828070228333235514">Zaustavi praćenje cena</translation>
 <translation id="6833996806551876956">Proba Zaštićenog okruženja privatnosti</translation>
+<translation id="6836206421467243968">Vratite grupu kartica <ph name="TITLE_OF_GROUP" /> kao novu grupu kartica u pozadini.</translation>
 <translation id="6846298663435243399">Učitava se...</translation>
 <translation id="6850409657436465440">Preuzimanje je još uvek u toku</translation>
 <translation id="6850830437481525139">Zatvorenih kartica: <ph name="TAB_COUNT" /></translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">Štiti vas u Chrome-u i može da se koristi za poboljšanje bezbednosti u drugim Google aplikacijama kada ste prijavljeni.</translation>
 <translation id="7191430249889272776">Kartica je otvorena u pozadini.</translation>
 <translation id="7196215469483532480">Objašnjenje vodiča za privatnost otvoreno je na celom ekranu</translation>
+<translation id="7207760545532569765">Vratite kartice (<ph name="TAB_COUNT" />) kao nove kartice u pozadini.</translation>
 <translation id="7208109991155904980">Reakcija je uklonjena</translation>
 <translation id="7222235798733126207">Ograničeno deljenje između sajtova</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 preuzimanje na čekanju}one{# preuzimanje na čekanju}few{# preuzimanja na čekanju}other{# preuzimanja na čekanju}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">Prijavi me ponovo</translation>
 <translation id="9155898266292537608">Možete i kratko da dodirnete reč da biste je pretražili</translation>
 <translation id="9158770349521403363">Delite samo sadržaj</translation>
+<translation id="9159716826369098114">Vratite grupu kartica (<ph name="TAB_COUNT" />) kao novu grupu kartica u pozadini.</translation>
 <translation id="916446198114569890">URL-ovi koje posećujete se čuvaju na Google nalogu</translation>
 <translation id="9169507124922466868">Istorija navigacije je poluotvorena</translation>
 <translation id="9187955620966010988">Reakcija je prilagođena</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index d2c4682f..921e0c25 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />, картица, изабрана</translation>
 <translation id="6828070228333235514">Заустави праћење цена</translation>
 <translation id="6833996806551876956">Проба Заштићеног окружења приватности</translation>
+<translation id="6836206421467243968">Вратите групу картица <ph name="TITLE_OF_GROUP" /> као нову групу картица у позадини.</translation>
 <translation id="6846298663435243399">Учитава се...</translation>
 <translation id="6850409657436465440">Преузимање је још увек у току</translation>
 <translation id="6850830437481525139">Затворених картица: <ph name="TAB_COUNT" /></translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">Штити вас у Chrome-у и може да се користи за побољшање безбедности у другим Google апликацијама када сте пријављени.</translation>
 <translation id="7191430249889272776">Картица је отворена у позадини.</translation>
 <translation id="7196215469483532480">Објашњење водича за приватност отворено је на целом екрану</translation>
+<translation id="7207760545532569765">Вратите картице (<ph name="TAB_COUNT" />) као нове картице у позадини.</translation>
 <translation id="7208109991155904980">Реакција је уклоњена</translation>
 <translation id="7222235798733126207">Ограничено дељење између сајтова</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 преузимање на чекању}one{# преузимање на чекању}few{# преузимања на чекању}other{# преузимања на чекању}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">Пријави ме поново</translation>
 <translation id="9155898266292537608">Можете и кратко да додирнете реч да бисте је претражили</translation>
 <translation id="9158770349521403363">Делите само садржај</translation>
+<translation id="9159716826369098114">Вратите групу картица (<ph name="TAB_COUNT" />) као нову групу картица у позадини.</translation>
 <translation id="916446198114569890">URL-ови које посећујете се чувају на Google налогу</translation>
 <translation id="9169507124922466868">Историја навигације је полуотворена</translation>
 <translation id="9187955620966010988">Реакција је прилагођена</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index 81b4b79..61b703c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ljudfil}other{# ljudfiler}}</translation>
 <translation id="265156376773362237">Standardförinläsning</translation>
 <translation id="2656405586795711023">Webbappar</translation>
+<translation id="2669454659051515572">Alla som använder enheten kan se nedladdade filer</translation>
 <translation id="2702516483241149200">Nyhet: dela en länk som scrollar fram till den här texten</translation>
 <translation id="2704606927547763573">Kopierat</translation>
 <translation id="2707726405694321444">Uppdatera sidan</translation>
@@ -779,6 +780,7 @@
 <translation id="5246093389635966745">Redigera genväg i verktygsfältet</translation>
 <translation id="526421993248218238">Det går inte att läsa in den här sidan</translation>
 <translation id="5271967389191913893">Innehållet som skulle laddas ned gick inte att öppna på enheten.</translation>
+<translation id="5274286919938458946">Är länkat till <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Skicka till</translation>
 <translation id="5300426565656326054">Webbläsarbaserad annonsanpassning</translation>
 <translation id="5304593522240415983">Fältet får inte vara tomt</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 277a4ac..561d7bb 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
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{Faili # ya sauti}other{Faili # za sauti}}</translation>
 <translation id="265156376773362237">Upakiaji mapema wa kawaida</translation>
 <translation id="2656405586795711023">Programu za wavuti</translation>
+<translation id="2669454659051515572">Mtu yeyote anayetumia kifaa hiki anaweza kuona faili zilizopakuliwa</translation>
 <translation id="2702516483241149200">Mpya: shiriki kiungo kinachoenda kwenye maandishi haya</translation>
 <translation id="2704606927547763573">Imenakiliwa</translation>
 <translation id="2707726405694321444">Onyesha upya ukurasa</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Badilisha njia ya mkato ya upau wa vidhibiti</translation>
 <translation id="526421993248218238">Imeshindwa kupakia ukurasa huu</translation>
 <translation id="5271967389191913893">Kifaa hakiwezi kufungua maudhui yanayopaswa kupakuliwa.</translation>
+<translation id="5274286919938458946">Imeunganishwa na <ph name="CARD_DETAIL" /></translation>
 <translation id="5292796745632149097">Tuma kwenye</translation>
 <translation id="5300426565656326054">Mapendeleo ya matangazo kwenye kivinjari</translation>
 <translation id="5304593522240415983">Sehemu hii haiwezi kuwa tupu</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index 4e09105..0d8a9335 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ஆடியோ ஃபைல்}other{# ஆடியோ ஃபைல்கள் }}</translation>
 <translation id="265156376773362237">இயல்பான முன்கூட்டிய ஏற்றுதல்</translation>
 <translation id="2656405586795711023">இணைய ஆப்ஸ்</translation>
+<translation id="2669454659051515572">இந்தச் சாதனத்தைப் பயன்படுத்தும் அனைவராலும் பதிவிறக்கிய ஃபைல்களைப் பார்க்க முடியும்</translation>
 <translation id="2702516483241149200">புதிது: இந்த உரைக்குச் செல்லும் இணைப்பைப் பகிரலாம்</translation>
 <translation id="2704606927547763573">நகலெடுக்கப்பட்டது</translation>
 <translation id="2707726405694321444">பக்கத்தைப் புதுப்பி</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">கருவிப்பட்டியின் ஷார்ட்கட்டை மாற்றும்</translation>
 <translation id="526421993248218238">பக்கத்தை ஏற்ற முடியவில்லை</translation>
 <translation id="5271967389191913893">பதிவிறக்க வேண்டிய உள்ளடக்கத்தைச் சாதனத்தால் திறக்க முடியாது</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> உடன் இணைக்கப்பட்டுள்ளது</translation>
 <translation id="5292796745632149097">இதற்கு அனுப்பு:</translation>
 <translation id="5300426565656326054">உலாவி அடிப்படையில் விளம்பரப் பிரத்தியேகமாக்கல்</translation>
 <translation id="5304593522240415983">இந்தப் புலம் காலியாக இருக்கக் கூடாது</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index f9bd5a0..c89c80e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -313,6 +313,7 @@
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# Ses dosyası}other{# Ses dosyası}}</translation>
 <translation id="265156376773362237">Standart önceden yükleme</translation>
 <translation id="2656405586795711023">Web uygulamaları</translation>
+<translation id="2669454659051515572">Bu cihazı kullanan herkes indirilen dosyaları görebilir</translation>
 <translation id="2702516483241149200">Yeni: bu metne kaydıran bir bağlantı paylaşın</translation>
 <translation id="2704606927547763573">Kopyalandı</translation>
 <translation id="2707726405694321444">Sayfayı yenile</translation>
@@ -778,6 +779,7 @@
 <translation id="5246093389635966745">Araç çubuğu düzenleme kısayolu</translation>
 <translation id="526421993248218238">Bu sayfa yüklenemiyor</translation>
 <translation id="5271967389191913893">Cihaz, indirilecek içeriği açamıyor.</translation>
+<translation id="5274286919938458946"><ph name="CARD_DETAIL" /> ile bağlantı oluşturuldu</translation>
 <translation id="5292796745632149097">Alıcılar</translation>
 <translation id="5300426565656326054">Tarayıcıya dayalı reklam kişiselleştirme</translation>
 <translation id="5304593522240415983">Bu alan boş olamaz</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 b32f984..575bd68 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
@@ -1076,6 +1076,7 @@
 <translation id="6824899148643461612"><ph name="TAB_TITLE" />,分頁,已選取</translation>
 <translation id="6828070228333235514">停止追蹤價格</translation>
 <translation id="6833996806551876956">私隱沙箱試用</translation>
+<translation id="6836206421467243968">還原分頁群組 <ph name="TITLE_OF_GROUP" /> 做新嘅背景分頁群組。</translation>
 <translation id="6846298663435243399">載入中…</translation>
 <translation id="6850409657436465440">仍在下載</translation>
 <translation id="6850830437481525139">已關閉 <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -1138,6 +1139,7 @@
 <translation id="7187993566681480880">確保您登入使用 Chrome 的安全,並可提升您在其他 Google 應用程式的安全性。</translation>
 <translation id="7191430249889272776">已在背景開啟分頁。</translation>
 <translation id="7196215469483532480">私隱權指南說明宜家顯示喺成個畫面</translation>
+<translation id="7207760545532569765">還原 <ph name="TAB_COUNT" /> 個分頁做新嘅背景分頁群組。</translation>
 <translation id="7208109991155904980">已經移動咗反應</translation>
 <translation id="7222235798733126207">限制網站共用</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 項下載操作尚待處理}other{# 項下載操作尚待處理}}</translation>
@@ -1516,6 +1518,7 @@
 <translation id="9148126808321036104">重新登入</translation>
 <translation id="9155898266292537608">您亦可以透過快速輕按某個字詞進行搜尋</translation>
 <translation id="9158770349521403363">只分享內容</translation>
+<translation id="9159716826369098114">還原有 <ph name="TAB_COUNT" /> 個分頁嘅分頁群組做新嘅背景分頁群組。</translation>
 <translation id="916446198114569890">系統會將您瀏覽的網址儲存至 Google 帳戶</translation>
 <translation id="9169507124922466868">導覽記錄喺畫面下半部分顯示</translation>
 <translation id="9187955620966010988">調整咗反應</translation>
diff --git a/chrome/browser/ui/ash/system_tray_client_impl.cc b/chrome/browser/ui/ash/system_tray_client_impl.cc
index c7fb7a28..41683ac 100644
--- a/chrome/browser/ui/ash/system_tray_client_impl.cc
+++ b/chrome/browser/ui/ash/system_tray_client_impl.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ui/ash/system_tray_client_impl.h"
 
+#include <cstdio>
 #include <memory>
 
 #include "ash/constants/ash_features.h"
@@ -21,6 +22,7 @@
 #include "base/notreached.h"
 #include "base/strings/escape.h"
 #include "base/strings/strcat.h"
+#include "base/strings/stringprintf.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
 #include "chrome/browser/apps/app_service/launch_utils.h"
@@ -687,21 +689,33 @@
 
 void SystemTrayClientImpl::ShowCalendarEvent(
     const absl::optional<GURL>& event_url,
+    const base::Time& date,
     bool& opened_pwa,
     GURL& final_event_url) {
   // Default is that we didn't open the calendar PWA.
   opened_pwa = false;
 
-  // By default, open the calendar to no particular event, i.e. today's date.
+  // Calendar URL we'll actually open, today's date by default.
   GURL official_url(kOfficialCalendarUrlPrefix);
 
-  // Needed in order for us to pass the "in app scope" guards in
-  // WebAppLaunchProcess::Run().  See http://b/214428922
+  // Compose the actual URL to be opened.
   if (event_url.has_value()) {
+    // An event URL was passed in, so modify it as needed for us to pass the "in
+    // app scope" guards in WebAppLaunchProcess::Run().  See http://b/214428922
     GURL::Replacements replacements;
     replacements.SetSchemeStr("https");
     replacements.SetHostStr("calendar.google.com");
     official_url = event_url->ReplaceComponents(replacements);
+  } else {
+    // No event URL provided, so fall back on opening calendar with `date`.
+    std::string calendar_url_str = kOfficialCalendarUrlPrefix;
+    base::Time::Exploded date_exp;
+    date.UTCExplode(&date_exp);
+    std::string date_url =
+        base::StringPrintf("r/week/%d/%d/%d", date_exp.year, date_exp.month,
+                           date_exp.day_of_month);
+    calendar_url_str.append(date_url);
+    official_url = GURL(calendar_url_str);
   }
 
   // Return the URL we actually opened.
diff --git a/chrome/browser/ui/ash/system_tray_client_impl.h b/chrome/browser/ui/ash/system_tray_client_impl.h
index eac1f56..8d513e9 100644
--- a/chrome/browser/ui/ash/system_tray_client_impl.h
+++ b/chrome/browser/ui/ash/system_tray_client_impl.h
@@ -100,6 +100,7 @@
   void ShowAccessCodeCastingDialog(
       AccessCodeCastDialogOpenLocation open_location) override;
   void ShowCalendarEvent(const absl::optional<GURL>& event_url,
+                         const base::Time& date,
                          bool& opened_pwa,
                          GURL& finalized_event_url) override;
 
diff --git a/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc b/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc
index 46c9208..f20d529 100644
--- a/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc
+++ b/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc
@@ -471,24 +471,27 @@
   // Login a user.
   LoginUser(account_id_);
 
-  // Show the calendar, no URL and no PWA installed.
-  const char kOfficialCalendarUrlPrefix[] =
-      "https://calendar.google.com/calendar/";
+  // Show the calendar, no URL and no PWA installed. We expect to navigate to
+  // `date`.
+  const char kExpectedUrlStr[] =
+      "https://calendar.google.com/calendar/r/week/2021/11/18";
   GURL final_url;
   bool opened_pwa = false;
+  base::Time date;
+  ASSERT_TRUE(base::Time::FromString("18 Nov 2021 10:00 GMT", &date));
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      absl::nullopt, opened_pwa, final_url);
+      absl::nullopt, date, opened_pwa, final_url);
   EXPECT_FALSE(opened_pwa);
-  EXPECT_EQ(final_url.spec(), GURL(kOfficialCalendarUrlPrefix).spec());
+  EXPECT_EQ(final_url.spec(), GURL(kExpectedUrlStr).spec());
 
   // Now install the calendar PWA.
   InstallApp(web_app::kGoogleCalendarAppId, "Google Calendar");
   opened_pwa = false;
   final_url = GURL();
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      absl::nullopt, opened_pwa, final_url);
+      absl::nullopt, date, opened_pwa, final_url);
   EXPECT_TRUE(opened_pwa);
-  EXPECT_EQ(final_url.spec(), GURL(kOfficialCalendarUrlPrefix).spec());
+  EXPECT_EQ(final_url.spec(), GURL(kExpectedUrlStr).spec());
 }
 
 IN_PROC_BROWSER_TEST_F(SystemTrayClientShowCalendarTest, OfficialEventUrl) {
@@ -503,8 +506,10 @@
   GURL event_url(kOfficialCalendarEventUrl);
   GURL final_url;
   bool opened_pwa = false;
+  base::Time date;
+  ASSERT_TRUE(base::Time::FromString("18 Nov 2021 10:00 GMT", &date));
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      event_url, opened_pwa, final_url);
+      event_url, date, opened_pwa, final_url);
   EXPECT_FALSE(opened_pwa);
   EXPECT_EQ(final_url.spec(), event_url.spec());
 
@@ -513,7 +518,7 @@
   opened_pwa = false;
   final_url = GURL();
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      event_url, opened_pwa, final_url);
+      event_url, date, opened_pwa, final_url);
   EXPECT_TRUE(opened_pwa);
   EXPECT_EQ(final_url.spec(), event_url.spec());
 }
@@ -532,8 +537,10 @@
   GURL event_url(kUnofficialCalendarEventUrl);
   GURL final_url;
   bool opened_pwa = false;
+  base::Time date;
+  ASSERT_TRUE(base::Time::FromString("18 Nov 2021 10:00 GMT", &date));
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      event_url, opened_pwa, final_url);
+      event_url, date, opened_pwa, final_url);
   EXPECT_FALSE(opened_pwa);
   EXPECT_EQ(final_url.spec(), GURL(kOfficialCalendarEventUrl).spec());
 
@@ -542,7 +549,7 @@
   opened_pwa = false;
   final_url = GURL();
   ash::Shell::Get()->system_tray_model()->client()->ShowCalendarEvent(
-      event_url, opened_pwa, final_url);
+      event_url, date, opened_pwa, final_url);
   EXPECT_TRUE(opened_pwa);
   EXPECT_EQ(final_url.spec(), GURL(kOfficialCalendarEventUrl).spec());
 }
diff --git a/chrome/browser/ui/autofill_assistant/password_change/apc_utils.cc b/chrome/browser/ui/autofill_assistant/password_change/apc_utils.cc
new file mode 100644
index 0000000..32d3d7e1
--- /dev/null
+++ b/chrome/browser/ui/autofill_assistant/password_change/apc_utils.cc
@@ -0,0 +1,17 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/autofill_assistant/password_change/apc_utils.h"
+
+#include "build/branding_buildflags.h"
+#include "chrome/app/vector_icons/vector_icons.h"
+
+const gfx::VectorIcon& GetAssistantIconOrFallback() {
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+  return kAssistantIcon;
+#else
+  // Only developer builds will ever use this branch.
+  return kProductIcon;
+#endif
+}
diff --git a/chrome/browser/ui/autofill_assistant/password_change/apc_utils.h b/chrome/browser/ui/autofill_assistant/password_change/apc_utils.h
new file mode 100644
index 0000000..9e51d59
--- /dev/null
+++ b/chrome/browser/ui/autofill_assistant/password_change/apc_utils.h
@@ -0,0 +1,14 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_APC_UTILS_H_
+#define CHROME_BROWSER_UI_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_APC_UTILS_H_
+
+#include "chrome/app/vector_icons/vector_icons.h"
+
+// Returns the icon for Google Assistant on Google-branded builds and a
+// Chromium icon as a placeholder on non-branded builds.
+const gfx::VectorIcon& GetAssistantIconOrFallback();
+
+#endif  // CHROME_BROWSER_UI_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_APC_UTILS_H_
diff --git a/chrome/browser/ui/extensions/extensions_dialogs.h b/chrome/browser/ui/extensions/extensions_dialogs.h
index 49628c9..ddf76cfa 100644
--- a/chrome/browser/ui/extensions/extensions_dialogs.h
+++ b/chrome/browser/ui/extensions/extensions_dialogs.h
@@ -13,10 +13,13 @@
 namespace extensions {
 
 // Shows a dialog when an extension requires a refresh after gaining access to
-// the current site in order to run its blocked action.
+// the current site in order to run its blocked action. When the dialog is
+// accepted, `callback` is invoked. with a booleand indication whether the
+// checkbox (if shown) was checked by the user.
 void ShowBlockedActionDialog(Browser* browser,
                              const ExtensionId& extension_id,
-                             base::OnceClosure callback);
+                             bool show_checkbox,
+                             base::OnceCallback<void(bool)> callback);
 
 }  // namespace extensions
 
diff --git a/chrome/browser/ui/hats/hats_helper_unittest.cc b/chrome/browser/ui/hats/hats_helper_unittest.cc
index d141a9c..792e0735 100644
--- a/chrome/browser/ui/hats/hats_helper_unittest.cc
+++ b/chrome/browser/ui/hats/hats_helper_unittest.cc
@@ -105,8 +105,8 @@
   content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh());
   GURL fenced_frame_url = GURL("https://unrelated.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
 }
diff --git a/chrome/browser/ui/views/autofill_assistant/password_change/assistant_onboarding_view.cc b/chrome/browser/ui/views/autofill_assistant/password_change/assistant_onboarding_view.cc
index 20627683..a86af873 100644
--- a/chrome/browser/ui/views/autofill_assistant/password_change/assistant_onboarding_view.cc
+++ b/chrome/browser/ui/views/autofill_assistant/password_change/assistant_onboarding_view.cc
@@ -11,8 +11,7 @@
 #include "base/bind.h"
 #include "base/memory/ptr_util.h"
 #include "base/strings/string_util.h"
-#include "build/branding_buildflags.h"
-#include "chrome/app/vector_icons/vector_icons.h"
+#include "chrome/browser/ui/autofill_assistant/password_change/apc_utils.h"
 #include "chrome/browser/ui/autofill_assistant/password_change/assistant_onboarding_controller.h"
 #include "chrome/browser/ui/autofill_assistant/password_change/assistant_onboarding_prompt.h"
 #include "components/constrained_window/constrained_window_views.h"
@@ -118,19 +117,15 @@
     return static_cast<int>((1.0 - scale_factor) * dialog_width / 2.0);
   };
 
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-  const gfx::VectorIcon& assistant_icon = kAssistantIcon;
-#else
-  // Only developer builds will ever use this branch and the color used in
-  // `FromVectorIcon` below.
-  const gfx::VectorIcon& assistant_icon = kProductIcon;
-#endif
-  AddChildView(views::Builder<views::ImageView>()
-                   .SetImage(gfx::CreateVectorIcon(
-                       assistant_icon, kAssistantLogoScaleFactor * dialog_width,
-                       gfx::kPlaceholderColor))
-                   .SetID(static_cast<int>(DialogViewID::HEADER_ICON))
-                   .Build());
+  // The icon. The placeholder color is only used on non-branded developer
+  // builds.
+  AddChildView(
+      views::Builder<views::ImageView>()
+          .SetImage(gfx::CreateVectorIcon(
+              GetAssistantIconOrFallback(),
+              kAssistantLogoScaleFactor * dialog_width, gfx::kPlaceholderColor))
+          .SetID(static_cast<int>(DialogViewID::HEADER_ICON))
+          .Build());
 
   // The title.
   AddChildView(
diff --git a/chrome/browser/ui/views/autofill_assistant/password_change/assistant_side_panel_coordinator_impl.cc b/chrome/browser/ui/views/autofill_assistant/password_change/assistant_side_panel_coordinator_impl.cc
index f93275b..4200200f 100644
--- a/chrome/browser/ui/views/autofill_assistant/password_change/assistant_side_panel_coordinator_impl.cc
+++ b/chrome/browser/ui/views/autofill_assistant/password_change/assistant_side_panel_coordinator_impl.cc
@@ -5,12 +5,16 @@
 #include "chrome/browser/ui/views/autofill_assistant/password_change/assistant_side_panel_coordinator_impl.h"
 
 #include "base/bind.h"
-#include "chrome/app/vector_icons/vector_icons.h"
+#include "chrome/browser/ui/autofill_assistant/password_change/apc_utils.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_coordinator.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_registry.h"
 
+namespace {
+constexpr int kAssistantIconSize = 16;
+}  // namespace
+
 std::unique_ptr<AssistantSidePanelCoordinator>
 AssistantSidePanelCoordinator::Create(content::WebContents* web_contents) {
   if (SidePanelRegistry::Get(web_contents)
@@ -23,16 +27,14 @@
 AssistantSidePanelCoordinatorImpl::AssistantSidePanelCoordinatorImpl(
     content::WebContents* web_contents)
     : web_contents_(web_contents) {
-  // TODO(cr/1322419): User a proper assistant icon and style once
-  // available/discovered. For now using dummmy icon.
-
   // TODO(cr/1322419): Check with designers if this string should be "Google
   // Assistant" as it is in other places. Also make make sure whether it should
   // be translated.
   SidePanelRegistry::Get(web_contents)
       ->Register(std::make_unique<SidePanelEntry>(
           SidePanelEntry::Id::kAssistant, u"Assistant",
-          ui::ImageModel::FromVectorIcon(kKeyIcon, ui::kColorIcon, 16),
+          ui::ImageModel::FromVectorIcon(GetAssistantIconOrFallback(),
+                                         ui::kColorIcon, kAssistantIconSize),
           base::BindRepeating(
               &AssistantSidePanelCoordinatorImpl::CreateSidePanelView,
               base::Unretained(this))));
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
index 31adf29..4be1a04 100644
--- a/chrome/browser/ui/views/download/download_item_view.cc
+++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -1293,11 +1293,9 @@
   dropdown_button_->SetEnabled(false);
 
   auto danger_type = model_->GetDangerType();
-  auto state =
-      enterprise_connectors::ContentAnalysisDelegateBase::FinalResult::FAILURE;
+  auto state = enterprise_connectors::FinalContentAnalysisResult::FAILURE;
   if (danger_type == download::DOWNLOAD_DANGER_TYPE_SENSITIVE_CONTENT_WARNING) {
-    state = enterprise_connectors::ContentAnalysisDelegateBase::FinalResult::
-        WARNING;
+    state = enterprise_connectors::FinalContentAnalysisResult::WARNING;
   }
 
   const char* tag =
diff --git a/chrome/browser/ui/views/extensions/blocked_action_dialog_view.cc b/chrome/browser/ui/views/extensions/blocked_action_dialog_view.cc
index bda80a4..9b6e7fc 100644
--- a/chrome/browser/ui/views/extensions/blocked_action_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/blocked_action_dialog_view.cc
@@ -4,7 +4,10 @@
 
 #include "chrome/browser/ui/views/extensions/blocked_action_dialog_view.h"
 
+#include "base/bind.h"
+#include "base/callback_forward.h"
 #include "base/feature_list.h"
+#include "chrome/browser/extensions/site_permissions_helper.h"
 #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/extensions/extensions_dialogs_utils.h"
@@ -23,8 +26,10 @@
 
 void ShowBlockedActionDialog(Browser* browser,
                              const ExtensionId& extension_id,
-                             base::OnceClosure callback) {
-  ShowBlockedActionDialogView(browser, extension_id, std::move(callback));
+                             bool show_checkbox,
+                             base::OnceCallback<void(bool)> callback) {
+  ShowBlockedActionDialogView(browser, extension_id, show_checkbox,
+                              std::move(callback));
 }
 
 }  // namespace extensions
@@ -35,10 +40,12 @@
 
 }  // namespace
 
+// }
 // static
 void ShowBlockedActionDialogView(Browser* browser,
                                  const extensions::ExtensionId& extension_id,
-                                 base::OnceClosure callback) {
+                                 bool show_checkbox,
+                                 base::OnceCallback<void(bool)> callback) {
   // TODO(crbug.com/1322796): Multiple classes use this. We should pull getting
   // an anchor view and showing a BubbleDialogDelegate into a common location.
   BrowserView* const browser_view =
@@ -50,44 +57,46 @@
   DCHECK(container);
   auto* extension = container->GetActionForId(extension_id);
 
-  std::unique_ptr<ui::DialogModel> dialog_model;
+  auto on_ok_button_clicked = [](ui::DialogModel* dialog_model,
+                                 bool did_show_checkbox,
+                                 base::OnceCallback<void(bool)> callback) {
+    bool checkbox_checked =
+        dialog_model->GetCheckboxByUniqueId(kCheckboxId)->is_checked();
+    std::move(callback).Run(did_show_checkbox && checkbox_checked);
+  };
+
+  ui::DialogModel::Builder dialog_builder;
   if (base::FeatureList::IsEnabled(features::kExtensionsMenuAccessControl)) {
     content::WebContents* web_contents =
         browser->tab_strip_model()->GetActiveWebContents();
-    dialog_model =
-        ui::DialogModel::Builder()
-            .SetTitle(l10n_util::GetStringFUTF16(
-                IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_SINGLE_EXTENSION_TITLE,
-                extension->GetActionName()))
-            .SetIcon(GetIcon(extension, web_contents))
-            .AddBodyText(ui::DialogModelLabel(l10n_util::GetStringUTF16(
-                IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_BODY_TEXT)))
-            // TODO(crbug.com/1319555): Show checkbox only when the site access
-            // can be set to "on site".
-            // TODO(crbug.com/1319555): Handle checkbox selection.
-            .AddCheckbox(
-                kCheckboxId,
-                ui::DialogModelLabel(l10n_util::GetStringUTF16(
-                    IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_CHECKBOX_LABEL)))
-            .AddOkButton(
-                std::move(callback),
-                l10n_util::GetStringUTF16(
-                    IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_OK_BUTTON_LABEL))
-            .Build();
+    dialog_builder
+        .SetTitle(l10n_util::GetStringFUTF16(
+            IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_SINGLE_EXTENSION_TITLE,
+            extension->GetActionName()))
+        .SetIcon(GetIcon(extension, web_contents))
+        .AddBodyText(ui::DialogModelLabel(l10n_util::GetStringUTF16(
+            IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_BODY_TEXT)))
+        .AddOkButton(base::BindOnce(on_ok_button_clicked,
+                                    dialog_builder.model(), show_checkbox,
+                                    std::move(callback)));
+    if (show_checkbox) {
+      dialog_builder.AddCheckbox(
+          kCheckboxId,
+          ui::DialogModelLabel(l10n_util::GetStringUTF16(
+              IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_CHECKBOX_LABEL)));
+    }
   } else {
-    dialog_model =
-        ui::DialogModel::Builder()
-            .SetTitle(l10n_util::GetStringUTF16(
-                IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_HEADING))
-            .AddOkButton(std::move(callback),
-                         l10n_util::GetStringUTF16(
-                             IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_OK_BUTTON))
-            .Build();
+    dialog_builder
+        .SetTitle(l10n_util::GetStringUTF16(
+            IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_HEADING))
+        .AddOkButton(base::BindOnce(std::move(callback), /*is_checked=*/false),
+                     l10n_util::GetStringUTF16(
+                         IDS_EXTENSION_BLOCKED_ACTION_BUBBLE_OK_BUTTON));
   }
 
   views::View* const anchor_view = container->GetViewForId(extension_id);
   auto bubble = std::make_unique<views::BubbleDialogModelHost>(
-      std::move(dialog_model),
+      dialog_builder.Build(),
       anchor_view ? anchor_view : container->GetExtensionsButton(),
       views::BubbleBorder::TOP_RIGHT);
 
diff --git a/chrome/browser/ui/views/extensions/blocked_action_dialog_view.h b/chrome/browser/ui/views/extensions/blocked_action_dialog_view.h
index 654c214..e69f492 100644
--- a/chrome/browser/ui/views/extensions/blocked_action_dialog_view.h
+++ b/chrome/browser/ui/views/extensions/blocked_action_dialog_view.h
@@ -13,6 +13,7 @@
 static void ShowBlockedActionDialogView(
     Browser* browser,
     const extensions::ExtensionId& extension_id,
-    base::OnceClosure callback);
+    bool show_checkbox,
+    base::OnceCallback<void(bool)> callback);
 
 #endif  // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_BLOCKED_ACTION_DIALOG_VIEW_H_
diff --git a/chrome/browser/ui/views/extensions/blocked_action_dialog_view_browsertest.cc b/chrome/browser/ui/views/extensions/blocked_action_dialog_view_browsertest.cc
index b75bfedd..94a5f493 100644
--- a/chrome/browser/ui/views/extensions/blocked_action_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/extensions/blocked_action_dialog_view_browsertest.cc
@@ -12,8 +12,9 @@
   // DialogBrowserTest:
   void ShowUi(const std::string& name) override {
     auto extension = InstallExtension("Extension");
+    bool show_checkbox = true;
     extensions::ShowBlockedActionDialog(browser(), extension->id(),
-                                        base::DoNothing());
+                                        show_checkbox, base::DoNothing());
   }
 };
 
diff --git a/chrome/browser/ui/views/location_bar/permission_request_chip_browsertest.cc b/chrome/browser/ui/views/location_bar/permission_request_chip_browsertest.cc
index 7f77d1bf..73b27329 100644
--- a/chrome/browser/ui/views/location_bar/permission_request_chip_browsertest.cc
+++ b/chrome/browser/ui/views/location_bar/permission_request_chip_browsertest.cc
@@ -92,6 +92,25 @@
             GetLayoutConstant(LOCATION_BAR_ELEMENT_PADDING));
 }
 
+IN_PROC_BROWSER_TEST_F(PermissionRequestChipBrowserTest,
+                       ChipIsNotShownWhenInteractingWithOmnibox) {
+  LocationBarView* lbv = GetLocationBarView(browser());
+
+  // The chip is not shown because there is no active permission request.
+  EXPECT_FALSE(lbv->chip());
+
+  // Type something in the omnibox.
+  auto* omnibox_view = lbv->GetOmniboxView();
+  omnibox_view->SetUserText(u"search query");
+  omnibox_view->model()->SetInputInProgress(true);
+
+  RequestPermission(browser());
+
+  // While the user is interacting with the omnibox, an incoming permission
+  // request will be automatically ignored. The chip is not shown.
+  EXPECT_FALSE(lbv->chip());
+}
+
 class PermissionRequestChipDialogBrowserTest : public UiBrowserTest {
  public:
   PermissionRequestChipDialogBrowserTest() {
diff --git a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
index 66c5aaa..0117d9f 100644
--- a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
+++ b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
@@ -43,6 +43,17 @@
   return !location_bar || !location_bar->IsDrawn();
 }
 
+bool IsLocationBarEditingOrEmpty(Browser* browser) {
+  DCHECK(browser);
+
+  BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
+  if (!browser_view)
+    return false;
+
+  LocationBarView* location_bar = browser_view->GetLocationBarView();
+  return location_bar && location_bar->IsEditingOrEmpty();
+}
+
 bool ShouldBubbleStartOpen(permissions::PermissionPrompt::Delegate* delegate) {
   if (base::FeatureList::IsEnabled(
           permissions::features::kPermissionChipGestureSensitive)) {
@@ -94,6 +105,11 @@
     return nullptr;
   }
 
+  // Auto-ignore the permission request if a user is typing into location bar.
+  if (IsLocationBarEditingOrEmpty(browser)) {
+    return nullptr;
+  }
+
   return std::make_unique<PermissionPromptImpl>(browser, web_contents,
                                                 delegate);
 }
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
index 561203a..b1ca3e43 100644
--- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
@@ -342,11 +342,6 @@
 content::WebUIDataSource* CreateOobeUIDataSource(
     const base::Value::Dict& localized_strings,
     const std::string& display_type) {
-  // Cannot exist for the lock screen.
-  if (display_type == OobeUI::kLockDisplay) {
-    NOTREACHED();
-  }
-
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
 
   content::WebUIDataSource* source =
@@ -422,7 +417,6 @@
 // static
 const char OobeUI::kAppLaunchSplashDisplay[] = "app-launch-splash";
 const char OobeUI::kGaiaSigninDisplay[] = "gaia-signin";
-const char OobeUI::kLockDisplay[] = "lock";
 const char OobeUI::kLoginDisplay[] = "login";
 const char OobeUI::kOobeDisplay[] = "oobe";
 
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
index a10fd264..dd827127 100644
--- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
+++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
@@ -40,10 +40,9 @@
 class OobeUI : public ui::MojoWebUIController {
  public:
   // List of known types of OobeUI. Type added as path in chrome://oobe url, for
-  // example chrome://oobe/login.
+  // example chrome://oobe/gaia-signin.
   static const char kAppLaunchSplashDisplay[];
   static const char kGaiaSigninDisplay[];
-  static const char kLockDisplay[];
   static const char kLoginDisplay[];
   static const char kOobeDisplay[];
 
diff --git a/chrome/browser/ui/webui/policy/policy_ui.cc b/chrome/browser/ui/webui/policy/policy_ui.cc
index 6b26cb6..b145691 100644
--- a/chrome/browser/ui/webui/policy/policy_ui.cc
+++ b/chrome/browser/ui/webui/policy/policy_ui.cc
@@ -14,7 +14,6 @@
 #include "components/grit/dev_ui_components_resources.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui.h"
-#include "services/network/public/mojom/content_security_policy.mojom.h"
 #include "ui/base/webui/web_ui_util.h"
 
 namespace {
@@ -84,18 +83,7 @@
   source->AddResourcePath("policy.css", IDR_POLICY_CSS);
   source->AddResourcePath("policy_base.js", IDR_POLICY_BASE_JS);
   source->AddResourcePath("policy.js", IDR_POLICY_JS);
-  source->AddResourcePath("policy_conflict.js", IDR_POLICY_POLICY_CONFLICT_JS);
-  source->AddResourcePath("policy_row.js", IDR_POLICY_POLICY_ROW_JS);
-  source->AddResourcePath("policy_precedence_row.js",
-                          IDR_POLICY_POLICY_PRECEDENCE_ROW_JS);
-  source->AddResourcePath("policy_table.js", IDR_POLICY_POLICY_TABLE_JS);
-  source->AddResourcePath("status_box.js", IDR_POLICY_STATUS_BOX_JS);
   source->SetDefaultResource(IDR_POLICY_HTML);
-
-  source->EnableReplaceI18nInJS();
-  source->OverrideContentSecurityPolicy(
-      network::mojom::CSPDirectiveName::TrustedTypes,
-      "trusted-types static-types;");
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc b/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
index 1fd76ab..882cbab 100644
--- a/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
@@ -317,13 +317,12 @@
   // Retrieve the text contents of the policy table cells for all policies.
   const std::string javascript =
       "var entries = document.getElementById('policy-ui')"
-      "  .querySelectorAll('policy-table');"
+      "  .querySelectorAll('.policy-table');"
       "var policies = [];"
       "for (var i = 0; i < entries.length; ++i) {"
-      "  var items = entries[i].shadowRoot.querySelectorAll('policy-row');"
+      "  var items = entries[i].querySelectorAll('.policy.row');"
       "  for (var j = 0; j < items.length; ++j) {"
-      "    var row = items[j].shadowRoot.querySelector('.policy.row');"
-      "    var children = row.querySelectorAll('div');"
+      "    var children = items[j].querySelectorAll('div');"
       "    var values = [];"
       "    for(var k = 0; k < children.length - 1; ++k) {"
       "      values.push(children[k].textContent.trim());"
@@ -559,13 +558,12 @@
           return;
         }
 
-        const policies = statusSection.querySelectorAll('status-box');
+        const policies = statusSection.querySelectorAll('fieldset');
         const statuses = {};
         for (let i = 0; i < policies.length; ++i) {
-          const legend = policies[i].shadowRoot.querySelector('legend')
-              .textContent;
+          const legend = policies[i].querySelector('legend').textContent;
           const entries = {};
-          const rows = policies[i].shadowRoot
+          const rows = policies[i]
             .querySelectorAll('.status-entry div:nth-child(2)');
           for (let j = 0; j < rows.length; ++j) {
             entries[rows[j].className] = rows[j].textContent.trim();
@@ -883,14 +881,8 @@
 
   // Used to retrieve the contents of the policy precedence rows.
   const std::string kJavaScript =
-      "const tables = document.querySelectorAll('policy-table');"
-      "let precedence_row = null;"
-      "tables.forEach(table => {"
-      "  let row = table.shadowRoot.querySelector('policy-precedence-row');"
-      "  if (row) {"
-      "    precedence_row = row.shadowRoot.querySelector('.value');"
-      "  }"
-      "});"
+      "var precedence_row = document.getElementById('policy-ui')"
+      "  .querySelector('.policy-table .precedence.row > .value');"
       "domAutomationController.send(precedence_row.textContent);";
 };
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc b/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
index b8fd38c..119068a 100644
--- a/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
@@ -332,8 +332,8 @@
       "smartPrivacyDesc",
       ui::SubstituteChromeOSDeviceType(IDS_OS_SETTINGS_SMART_PRIVACY_DESC));
 
-  // TODO(1294649): update this to the real link.
-  html_source->AddString("smartPrivacyLearnMoreLink", "about:blank");
+  html_source->AddString("smartPrivacyLearnMoreURL",
+                         chrome::kSmartPrivacySettingsLearnMoreURL);
 
   html_source->AddString("suggestedContentLearnMoreURL",
                          chrome::kSuggestedContentLearnMoreURL);
diff --git a/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc b/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
index 2d94714..ae9b651c 100644
--- a/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
+++ b/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
@@ -17,7 +17,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/web_applications/preinstalled_web_app_manager.h"
 #include "chrome/browser/web_applications/web_app.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
 #include "chrome/browser/web_applications/web_app_icon_manager.h"
 #include "chrome/browser/web_applications/web_app_install_manager.h"
 #include "chrome/browser/web_applications/web_app_provider.h"
@@ -39,7 +38,6 @@
 constexpr char kPreinstalledAppsUninstalledByUserConfigs[] =
     "PreinstalledAppsUninstalledByUserConfigs";
 constexpr char kExternallyManagedWebAppPrefs[] = "ExternallyManagedWebAppPrefs";
-constexpr char kCommandManager[] = "CommandManager";
 constexpr char kIconErrorLog[] = "IconErrorLog";
 constexpr char kInstallationProcessErrorLog[] = "InstallationProcessErrorLog";
 #if BUILDFLAG(IS_MAC)
@@ -67,7 +65,6 @@
   index.Append(kPreinstalledWebAppConfigs);
   index.Append(kPreinstalledAppsUninstalledByUserConfigs);
   index.Append(kExternallyManagedWebAppPrefs);
-  index.Append(kCommandManager);
   index.Append(kIconErrorLog);
   index.Append(kInstallationProcessErrorLog);
 #if BUILDFLAG(IS_MAC)
@@ -202,12 +199,6 @@
   return base::Value(std::move(root));
 }
 
-base::Value BuildCommandManagerJson(web_app::WebAppProvider& provider) {
-  base::Value root(base::Value::Type::DICTIONARY);
-  root.SetKey(kCommandManager, provider.command_manager().ToDebugValue());
-  return root;
-}
-
 base::Value BuildIconErrorLogJson(web_app::WebAppProvider& provider) {
   base::Value root(base::Value::Type::DICTIONARY);
 
@@ -305,13 +296,11 @@
   root.Append(BuildPreinstalledWebAppConfigsJson(*provider));
   root.Append(BuildExternallyManagedWebAppPrefsJson(profile));
   root.Append(BuildPreinstalledAppsUninstalledByUserJson(profile));
-  root.Append(BuildCommandManagerJson(*provider));
   root.Append(BuildIconErrorLogJson(*provider));
   root.Append(BuildInstallProcessErrorLogJson(*provider));
 #if BUILDFLAG(IS_MAC)
   root.Append(BuildAppShimRegistryLocalStorageJson());
 #endif
-  root.Append(BuildInstallProcessErrorLogJson(*provider));
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
       base::BindOnce(&BuildWebAppDiskStateJson,
diff --git a/chrome/browser/web_applications/BUILD.gn b/chrome/browser/web_applications/BUILD.gn
index 81d72c17..bfc1f59 100644
--- a/chrome/browser/web_applications/BUILD.gn
+++ b/chrome/browser/web_applications/BUILD.gn
@@ -19,8 +19,6 @@
     "commands/fetch_manifest_and_install_command.h",
     "commands/install_from_info_command.cc",
     "commands/install_from_info_command.h",
-    "commands/install_from_sync_command.cc",
-    "commands/install_from_sync_command.h",
     "commands/install_web_app_with_params_command.cc",
     "commands/install_web_app_with_params_command.h",
     "commands/run_on_os_login_command.cc",
@@ -149,8 +147,6 @@
     "web_app_launch_params.h",
     "web_app_launch_queue.cc",
     "web_app_launch_queue.h",
-    "web_app_logging.cc",
-    "web_app_logging.h",
     "web_app_origin_association_manager.cc",
     "web_app_origin_association_manager.h",
     "web_app_origin_association_task.cc",
@@ -170,8 +166,6 @@
     "web_app_sync_bridge.cc",
     "web_app_sync_bridge.h",
     "web_app_sync_install_delegate.h",
-    "web_app_system_web_app_data.cc",
-    "web_app_system_web_app_data.h",
     "web_app_system_web_app_delegate_map_utils.cc",
     "web_app_system_web_app_delegate_map_utils.h",
     "web_app_tab_helper.cc",
@@ -426,8 +420,6 @@
     "test/fake_web_app_registry_controller.h",
     "test/fake_web_app_ui_manager.cc",
     "test/fake_web_app_ui_manager.h",
-    "test/mock_data_retriever.cc",
-    "test/mock_data_retriever.h",
     "test/mock_file_utils_wrapper.cc",
     "test/mock_file_utils_wrapper.h",
     "test/mock_os_integration_manager.cc",
@@ -489,7 +481,6 @@
 
   sources = [
     "commands/clear_browsing_data_command_unittest.cc",
-    "commands/install_from_sync_command_unittest.cc",
     "commands/run_on_os_login_command_unittest.cc",
     "daily_metrics_helper_unittest.cc",
     "external_install_options_unittest.cc",
@@ -589,6 +580,7 @@
     "//components/webapps/browser:test_support",
     "//components/webapps/common:mojo_bindings",
     "//content/public/browser",
+    "//content/public/common",
     "//content/test:test_support",
     "//services/metrics/public/cpp:ukm_builders",
     "//services/preferences/public/cpp",
@@ -668,7 +660,6 @@
   sources = [
     "commands/fetch_manifest_and_install_command_browsertest.cc",
     "commands/install_from_info_command_browsertest.cc",
-    "commands/install_from_sync_command_browsertest.cc",
     "commands/install_web_app_with_params_command_browsertest.cc",
     "externally_installed_web_app_prefs_browsertest.cc",
     "externally_managed_app_manager_impl_browsertest.cc",
diff --git a/chrome/browser/web_applications/commands/install_from_sync_command.cc b/chrome/browser/web_applications/commands/install_from_sync_command.cc
deleted file mode 100644
index e45831519..0000000
--- a/chrome/browser/web_applications/commands/install_from_sync_command.cc
+++ /dev/null
@@ -1,328 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/commands/install_from_sync_command.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/callback_helpers.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/web_applications/commands/web_app_command.h"
-#include "chrome/browser/web_applications/install_bounce_metric.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
-#include "chrome/browser/web_applications/web_app_helpers.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_install_utils.h"
-#include "chrome/browser/web_applications/web_app_uninstall_job.h"
-#include "chrome/browser/web_applications/web_app_utils.h"
-#include "components/webapps/browser/install_result_code.h"
-#include "components/webapps/browser/installable/installable_metrics.h"
-#include "content/public/browser/web_contents.h"
-#include "net/http/http_status_code.h"
-
-namespace web_app {
-
-namespace {
-
-WebAppInstallFinalizer::FinalizeOptions GetFinalizerOptionForSyncInstall() {
-  WebAppInstallFinalizer::FinalizeOptions finalize_options(
-      webapps::WebappInstallSource::SYNC);
-  finalize_options.overwrite_existing_manifest_fields = true;
-  // If app is not locally installed then no OS integration like OS shortcuts.
-  finalize_options.locally_installed = AreAppsLocallyInstalledBySync();
-  finalize_options.add_to_applications_menu = AreAppsLocallyInstalledBySync();
-  finalize_options.add_to_desktop = AreAppsLocallyInstalledBySync();
-  // Never add the app to the quick launch bar after sync.
-  finalize_options.add_to_quick_launch_bar = false;
-  if (IsChromeOsDataMandatory()) {
-    finalize_options.chromeos_data.emplace();
-    finalize_options.chromeos_data->show_in_launcher =
-        AreAppsLocallyInstalledBySync();
-  }
-  return finalize_options;
-}
-
-}  // namespace
-
-InstallFromSyncCommand::Params::~Params() = default;
-
-InstallFromSyncCommand::Params::Params(
-    AppId app_id,
-    const absl::optional<std::string>& manifest_id,
-    const GURL& start_url,
-    const std::string& title,
-    const GURL& scope,
-    const absl::optional<SkColor>& theme_color,
-    const absl::optional<UserDisplayMode>& user_display_mode,
-    const std::vector<apps::IconInfo>& icons)
-    : app_id(app_id),
-      manifest_id(manifest_id),
-      start_url(start_url),
-      title(title),
-      scope(scope),
-      theme_color(theme_color),
-      user_display_mode(user_display_mode),
-      icons(icons) {}
-
-InstallFromSyncCommand::Params::Params(const Params&) = default;
-
-InstallFromSyncCommand::InstallFromSyncCommand(
-    WebAppUrlLoader* url_loader,
-    Profile* profile,
-    WebAppInstallFinalizer* finalizer,
-    WebAppRegistrar* registrar,
-    std::unique_ptr<WebAppDataRetriever> data_retriever,
-    const Params& params,
-    OnceInstallCallback install_callback)
-    : WebAppCommand(
-          WebAppCommandLock::CreateForAppAndWebContentsLock({params.app_id})),
-      url_loader_(url_loader),
-      profile_(profile),
-      finalizer_(finalizer),
-      registrar_(registrar),
-      data_retriever_(std::move(data_retriever)),
-      params_(params),
-      install_callback_(std::move(install_callback)),
-      install_error_log_entry_(true, webapps::WebappInstallSource::SYNC) {
-#if BUILDFLAG(IS_CHROMEOS)
-  DCHECK(AreAppsLocallyInstalledBySync());
-#endif
-  DCHECK(params_.start_url.is_valid());
-  fallback_install_info_ = std::make_unique<WebAppInstallInfo>();
-  fallback_install_info_->manifest_id = params_.manifest_id;
-  fallback_install_info_->start_url = params_.start_url;
-  fallback_install_info_->title = base::ASCIIToUTF16(params_.title);
-  fallback_install_info_->user_display_mode = params_.user_display_mode;
-  fallback_install_info_->scope = params_.scope;
-  fallback_install_info_->theme_color = params_.theme_color;
-  fallback_install_info_->manifest_icons = params_.icons;
-}
-
-InstallFromSyncCommand::~InstallFromSyncCommand() = default;
-
-base::Value InstallFromSyncCommand::ToDebugValue() const {
-  base::Value::Dict debug_value;
-  debug_value.Set("name", "InstallFromSyncCommand");
-  debug_value.Set("app_id", params_.app_id);
-  debug_value.Set("manifest_id", params_.manifest_id.value_or("<unset>"));
-  debug_value.Set("start_url", params_.start_url.spec());
-  debug_value.Set("error_log", base::Value(error_log_.Clone()));
-  return base::Value(std::move(debug_value));
-}
-
-void InstallFromSyncCommand::OnShutdown() {
-  ReportResultAndDestroy(
-      params_.app_id,
-      webapps::InstallResultCode::kCancelledOnWebAppProviderShuttingDown);
-}
-
-void InstallFromSyncCommand::OnSyncSourceRemoved() {
-  // Since this is a sync install command, if an uninstall is queued, just
-  // cancel this command.
-  ReportResultAndDestroy(params_.app_id,
-                         webapps::InstallResultCode::kHaltedBySyncUninstall);
-}
-
-void InstallFromSyncCommand::Start() {
-  url_loader_->LoadUrl(
-      params_.start_url, shared_web_contents(),
-      WebAppUrlLoader::UrlComparison::kIgnoreQueryParamsAndRef,
-      base::BindOnce(
-          &InstallFromSyncCommand::OnWebAppUrlLoadedGetWebAppInstallInfo,
-          weak_ptr_factory_.GetWeakPtr()));
-}
-
-void InstallFromSyncCommand::SetFallbackTriggeredForTesting(
-    base::OnceCallback<void(webapps::InstallResultCode code)> callback) {
-  fallback_triggered_for_testing_ = std::move(callback);
-}
-
-void InstallFromSyncCommand::OnWebAppUrlLoadedGetWebAppInstallInfo(
-    WebAppUrlLoader::Result result) {
-  if (result != WebAppUrlLoader::Result::kUrlLoaded) {
-    base::Value::Dict url_loader_error;
-    url_loader_error.Set("WebAppUrlLoader::Result",
-                         ConvertUrlLoaderResultToString(result));
-    error_log_.Append(std::move(url_loader_error));
-    install_error_log_entry_.LogUrlLoaderError(
-        "OnWebAppUrlLoaded", params_.start_url.spec(), result);
-  }
-
-  if (result == WebAppUrlLoader::Result::kRedirectedUrlLoaded) {
-    InstallFallback(webapps::InstallResultCode::kInstallURLRedirected);
-    return;
-  }
-
-  if (result == WebAppUrlLoader::Result::kFailedPageTookTooLong) {
-    InstallFallback(webapps::InstallResultCode::kInstallURLLoadTimeOut);
-    return;
-  }
-
-  if (result != WebAppUrlLoader::Result::kUrlLoaded) {
-    InstallFallback(webapps::InstallResultCode::kInstallURLLoadFailed);
-    return;
-  }
-
-  data_retriever_->GetWebAppInstallInfo(
-      shared_web_contents(),
-      base::BindOnce(&InstallFromSyncCommand::OnGetWebAppInstallInfo,
-                     weak_ptr_factory_.GetWeakPtr()));
-}
-
-void InstallFromSyncCommand::OnGetWebAppInstallInfo(
-    std::unique_ptr<WebAppInstallInfo> web_app_info) {
-  if (!web_app_info) {
-    InstallFallback(webapps::InstallResultCode::kGetWebAppInstallInfoFailed);
-    return;
-  }
-  DCHECK(!install_info_);
-  install_info_ = std::move(web_app_info);
-  install_info_->user_display_mode = params_.user_display_mode;
-  // Prefer the synced title to the one from the page's metadata
-  install_info_->title = base::ASCIIToUTF16(params_.title);
-
-  // Populate fallback info with the data retrieved from `GetWebAppInstallInfo`
-  fallback_install_info_->description = install_info_->description;
-  if (!install_info_->manifest_icons.empty())
-    fallback_install_info_->manifest_icons = install_info_->manifest_icons;
-  fallback_install_info_->mobile_capable = install_info_->mobile_capable;
-
-  data_retriever_->CheckInstallabilityAndRetrieveManifest(
-      shared_web_contents(), /*bypass_service_worker_check=*/true,
-      base::BindOnce(&InstallFromSyncCommand::OnDidPerformInstallableCheck,
-                     weak_ptr_factory_.GetWeakPtr()));
-}
-
-void InstallFromSyncCommand::OnDidPerformInstallableCheck(
-    blink::mojom::ManifestPtr opt_manifest,
-    const GURL& manifest_url,
-    bool valid_manifest_for_web_app,
-    bool is_installable) {
-  if (opt_manifest) {
-    UpdateWebAppInfoFromManifest(*opt_manifest, manifest_url,
-                                 install_info_.get());
-  } else {
-    // If there is no manifest, set the manifest id from the parameters.
-    install_info_->manifest_id = params_.manifest_id;
-  }
-
-  // Ensure that the manifest linked is the right one.
-  AppId generated_app_id =
-      GenerateAppId(install_info_->manifest_id, install_info_->start_url);
-  if (params_.app_id != generated_app_id) {
-    // Add the error to the log.
-    base::Value::Dict expected_id_error;
-    expected_id_error.Set("expected_app_id", params_.app_id);
-    expected_id_error.Set("app_id", generated_app_id);
-    error_log_.Append(std::move(expected_id_error));
-
-    install_error_log_entry_.LogExpectedAppIdError(
-        "OnDidPerformInstallableCheck", params_.start_url.spec(),
-        generated_app_id, params_.app_id);
-
-    InstallFallback(webapps::InstallResultCode::kExpectedAppIdCheckFailed);
-    return;
-  }
-
-  const bool manifest_has_icons = opt_manifest && !opt_manifest->icons.empty();
-
-  std::vector<GURL> icon_urls = GetValidIconUrlsToDownload(*install_info_);
-  data_retriever_->GetIcons(
-      shared_web_contents(), std::move(icon_urls),
-      /*skip_page_favicons=*/manifest_has_icons,
-      base::BindOnce(&InstallFromSyncCommand::OnIconsRetrievedFinalizeInstall,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     FinalizeMode::kNormalWebAppInfo));
-}
-
-void InstallFromSyncCommand::OnIconsRetrievedFinalizeInstall(
-    FinalizeMode mode,
-    IconsDownloadedResult result,
-    IconsMap icons_map,
-    DownloadedIconsHttpResults icons_http_results) {
-  WebAppInstallInfo* current_info = mode == FinalizeMode::kNormalWebAppInfo
-                                        ? install_info_.get()
-                                        : fallback_install_info_.get();
-  PopulateProductIcons(current_info, &icons_map);
-  PopulateOtherIcons(current_info, icons_map);
-
-  RecordDownloadedIconsHttpResultsCodeClass(
-      "WebApp.Icon.HttpStatusCodeClassOnSync", result, icons_http_results);
-  UMA_HISTOGRAM_ENUMERATION("WebApp.Icon.DownloadedResultOnSync", result);
-  RecordDownloadedIconHttpStatusCodes(
-      "WebApp.Icon.DownloadedHttpStatusCodeOnSync", icons_http_results);
-  install_error_log_entry_.LogDownloadedIconsErrors(
-      *current_info, result, icons_map, icons_http_results);
-
-  finalizer_->FinalizeInstall(
-      *current_info, GetFinalizerOptionForSyncInstall(),
-      base::BindOnce(&InstallFromSyncCommand::OnInstallFinalized,
-                     weak_ptr_factory_.GetWeakPtr(), mode));
-}
-
-void InstallFromSyncCommand::OnInstallFinalized(FinalizeMode mode,
-                                                const AppId& app_id,
-                                                webapps::InstallResultCode code,
-                                                OsHooksErrors os_hooks_errors) {
-  if (mode == FinalizeMode::kNormalWebAppInfo && !IsSuccess(code)) {
-    InstallFallback(code);
-    return;
-  }
-  ReportResultAndDestroy(app_id, code);
-}
-
-void InstallFromSyncCommand::InstallFallback(webapps::InstallResultCode code) {
-  DCHECK(!IsSuccess(code));
-  DCHECK(code != webapps::InstallResultCode::kWebContentsDestroyed);
-  DCHECK(code != webapps::InstallResultCode::kInstallTaskDestroyed);
-
-  std::vector<GURL> icon_urls =
-      GetValidIconUrlsToDownload(*fallback_install_info_);
-
-  base::UmaHistogramEnumeration("WebApp.Install.SyncFallbackInstallInitiated",
-                                code);
-
-  if (fallback_triggered_for_testing_)
-    std::move(fallback_triggered_for_testing_).Run(code);
-
-  // It is OK to skip downloading the page favicons as everything in is the URL
-  // list.
-  // TODO(dmurph): Also use favicons. https://crbug.com/1328977.
-  data_retriever_->GetIcons(
-      shared_web_contents(), std::move(icon_urls),
-      /*skip_page_favicons=*/true,
-      base::BindOnce(&InstallFromSyncCommand::OnIconsRetrievedFinalizeInstall,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     FinalizeMode::kFallbackWebAppInfo));
-}
-
-void InstallFromSyncCommand::ReportResultAndDestroy(
-    const AppId& app_id,
-    webapps::InstallResultCode code) {
-  bool success = IsSuccess(code);
-  if (success) {
-    RecordWebAppInstallationTimestamp(profile_->GetPrefs(), app_id,
-                                      webapps::WebappInstallSource::SYNC);
-  }
-  // The install event is NOT reported on purpose (e.g.
-  // `webapps::InstallableMetrics::TrackInstallEvent(source)` is not called), as
-  // a sync install is not a recordable install source.
-  DCHECK(!webapps::InstallableMetrics::IsReportableInstallSource(
-      webapps::WebappInstallSource::SYNC));
-  if (install_error_log_entry_.HasErrorDict()) {
-    command_manager()->LogToInstallManager(
-        install_error_log_entry_.TakeErrorDict());
-  }
-
-  base::UmaHistogramEnumeration("WebApp.InstallResult.Sync", code);
-  SignalCompletionAndSelfDestruct(
-      success ? CommandResult::kSuccess : CommandResult::kFailure,
-      base::BindOnce(std::move(install_callback_), app_id, code));
-}
-
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/commands/install_from_sync_command.h b/chrome/browser/web_applications/commands/install_from_sync_command.h
deleted file mode 100644
index 0b4340a7f..0000000
--- a/chrome/browser/web_applications/commands/install_from_sync_command.h
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_FROM_SYNC_COMMAND_H_
-#define CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_FROM_SYNC_COMMAND_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/web_applications/commands/web_app_command.h"
-#include "chrome/browser/web_applications/user_display_mode.h"
-#include "chrome/browser/web_applications/web_app_constants.h"
-#include "chrome/browser/web_applications/web_app_data_retriever.h"
-#include "chrome/browser/web_applications/web_app_install_finalizer.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_install_params.h"
-#include "chrome/browser/web_applications/web_app_logging.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
-#include "chrome/browser/web_applications/web_app_url_loader.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "url/gurl.h"
-
-class Profile;
-
-namespace web_app {
-
-class InstallFromSyncCommand : public WebAppCommand {
- public:
-  struct Params {
-    Params() = delete;
-    ~Params();
-    Params(const Params&);
-    Params(AppId app_id,
-           const absl::optional<std::string>& manifest_id,
-           const GURL& start_url,
-           const std::string& title,
-           const GURL& scope,
-           const absl::optional<SkColor>& theme_color,
-           const absl::optional<UserDisplayMode>& user_display_mode,
-           const std::vector<apps::IconInfo>& icons);
-    const AppId app_id;
-    const absl::optional<std::string> manifest_id;
-    const GURL start_url;
-    const std::string title;
-    const GURL scope;
-    const absl::optional<SkColor> theme_color;
-    const absl::optional<UserDisplayMode> user_display_mode;
-    const std::vector<apps::IconInfo> icons;
-  };
-  using DataRetrieverFactory =
-      base::RepeatingCallback<std::unique_ptr<WebAppDataRetriever>()>;
-
-  InstallFromSyncCommand(
-      WebAppUrlLoader* url_loader,
-      Profile* profile,
-      WebAppInstallFinalizer* finalizer,
-      WebAppRegistrar* registrar,
-      std::unique_ptr<WebAppDataRetriever> web_app_data_retriever,
-      const Params& params,
-      OnceInstallCallback install_callback);
-  ~InstallFromSyncCommand() override;
-
-  base::Value ToDebugValue() const override;
-
-  void OnSyncSourceRemoved() override;
-
-  void OnShutdown() override;
-
-  void Start() override;
-
-  void SetFallbackTriggeredForTesting(
-      base::OnceCallback<void(webapps::InstallResultCode code)> callback);
-
- private:
-  void OnWebAppUrlLoadedGetWebAppInstallInfo(WebAppUrlLoader::Result result);
-
-  void OnGetWebAppInstallInfo(std::unique_ptr<WebAppInstallInfo> web_app_info);
-
-  void OnDidPerformInstallableCheck(blink::mojom::ManifestPtr opt_manifest,
-                                    const GURL& manifest_url,
-                                    bool valid_manifest_for_web_app,
-                                    bool is_installable);
-
-  enum class FinalizeMode { kNormalWebAppInfo, kFallbackWebAppInfo };
-
-  void OnIconsRetrievedFinalizeInstall(
-      FinalizeMode mode,
-      IconsDownloadedResult result,
-      IconsMap icons_map,
-      DownloadedIconsHttpResults icons_http_results);
-
-  void OnInstallFinalized(FinalizeMode mode,
-                          const AppId& app_id,
-                          webapps::InstallResultCode code,
-                          OsHooksErrors os_hooks_errors);
-
-  void InstallFallback(webapps::InstallResultCode error_code);
-
-  void ReportResultAndDestroy(const AppId& app_id,
-                              webapps::InstallResultCode code);
-
-  const base::raw_ptr<WebAppUrlLoader> url_loader_;
-  const base::raw_ptr<Profile> profile_;
-  const base::raw_ptr<WebAppInstallFinalizer> finalizer_;
-  const base::raw_ptr<WebAppRegistrar> registrar_;
-  const std::unique_ptr<WebAppDataRetriever> data_retriever_;
-  const Params params_;
-  OnceInstallCallback install_callback_;
-
-  std::unique_ptr<WebAppInstallInfo> install_info_;
-  std::unique_ptr<WebAppInstallInfo> fallback_install_info_;
-
-  base::Value::List error_log_;
-  InstallErrorLogEntry install_error_log_entry_;
-
-  base::OnceCallback<void(webapps::InstallResultCode code)>
-      fallback_triggered_for_testing_;
-
-  base::WeakPtrFactory<InstallFromSyncCommand> weak_ptr_factory_{this};
-};
-
-}  // namespace web_app
-
-#endif  // CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_FROM_SYNC_COMMAND_H_
diff --git a/chrome/browser/web_applications/commands/install_from_sync_command_browsertest.cc b/chrome/browser/web_applications/commands/install_from_sync_command_browsertest.cc
deleted file mode 100644
index a7dde93..0000000
--- a/chrome/browser/web_applications/commands/install_from_sync_command_browsertest.cc
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/commands/install_from_sync_command.h"
-
-#include "base/test/bind.h"
-#include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h"
-#include "chrome/browser/web_applications/test/web_app_icon_test_utils.h"
-#include "chrome/browser/web_applications/user_display_mode.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
-#include "chrome/browser/web_applications/web_app_helpers.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
-#include "chrome/browser/web_applications/web_app_utils.h"
-#include "components/services/app_service/public/cpp/icon_info.h"
-#include "content/public/test/browser_test.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkColor.h"
-
-namespace web_app {
-namespace {
-
-class InstallFromSyncCommandTest : public WebAppControllerBrowserTest {
- public:
-  InstallFromSyncCommandTest() = default;
-  ~InstallFromSyncCommandTest() override = default;
-};
-
-IN_PROC_BROWSER_TEST_F(InstallFromSyncCommandTest, SimpleInstall) {
-  GURL test_url = https_server()->GetURL(
-      "/banners/"
-      "manifest_test_page.html");
-  AppId id = GenerateAppId(absl::nullopt, test_url);
-
-  auto url_loader = std::make_unique<WebAppUrlLoader>();
-  auto* provider = WebAppProvider::GetForTest(profile());
-  base::RunLoop loop;
-  InstallFromSyncCommand::Params params = InstallFromSyncCommand::Params(
-      id, absl::nullopt, test_url, "Test Title",
-      https_server()->GetURL("/banners/"), absl::nullopt,
-      UserDisplayMode::kStandalone,
-      {apps::IconInfo(https_server()->GetURL("/banners/launcher-icon-2x.png"),
-                      96)});
-  provider->command_manager().ScheduleCommand(
-      std::make_unique<InstallFromSyncCommand>(
-          url_loader.get(), profile(), &provider->install_finalizer(),
-          &provider->registrar(), std::make_unique<WebAppDataRetriever>(),
-          params,
-          base::BindLambdaForTesting(
-              [&](const AppId& app_id, webapps::InstallResultCode code) {
-                EXPECT_EQ(code, webapps::InstallResultCode::kSuccessNewInstall);
-                EXPECT_EQ(app_id, id);
-                loop.Quit();
-              })));
-  loop.Run();
-  EXPECT_TRUE(provider->registrar().IsInstalled(id));
-  EXPECT_EQ(AreAppsLocallyInstalledBySync(),
-            provider->registrar().IsLocallyInstalled(id));
-
-  SkColor icon_color =
-      IconManagerReadAppIconPixel(provider->icon_manager(), id, 96);
-  EXPECT_THAT(icon_color, testing::Eq(SkColorSetARGB(255, 0, 51, 102)));
-}
-
-}  // namespace
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/commands/install_from_sync_command_unittest.cc b/chrome/browser/web_applications/commands/install_from_sync_command_unittest.cc
deleted file mode 100644
index a1149bcb..0000000
--- a/chrome/browser/web_applications/commands/install_from_sync_command_unittest.cc
+++ /dev/null
@@ -1,679 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/commands/install_from_sync_command.h"
-
-#include <memory>
-#include <ostream>
-#include <utility>
-
-#include "base/run_loop.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/test/bind.h"
-#include "base/test/gmock_callback_support.h"
-#include "base/test/gmock_move_support.h"
-#include "chrome/browser/web_applications/test/fake_web_app_provider.h"
-#include "chrome/browser/web_applications/test/mock_data_retriever.h"
-#include "chrome/browser/web_applications/test/test_web_app_url_loader.h"
-#include "chrome/browser/web_applications/test/web_app_icon_test_utils.h"
-#include "chrome/browser/web_applications/test/web_app_install_test_utils.h"
-#include "chrome/browser/web_applications/test/web_app_test.h"
-#include "chrome/browser/web_applications/test/web_app_test_observers.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
-#include "chrome/browser/web_applications/web_app_constants.h"
-#include "chrome/browser/web_applications/web_app_data_retriever.h"
-#include "chrome/browser/web_applications/web_app_helpers.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
-#include "chrome/browser/web_applications/web_app_utils.h"
-#include "components/services/app_service/public/cpp/icon_info.h"
-#include "components/webapps/browser/install_result_code.h"
-#include "net/http/http_status_code.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "url/gurl.h"
-
-namespace apps {
-// Required for gmock matchers.
-void PrintTo(const IconInfo& info, std::ostream* os) {
-  *os << info.AsDebugValue().DebugString();
-}
-}  // namespace apps
-
-namespace web_app {
-namespace {
-
-using ::testing::ElementsAre;
-using ::testing::ElementsAreArray;
-using ::testing::Eq;
-
-SkBitmap CreateTestBitmap(SkColor color, int size) {
-  SkBitmap bitmap;
-  bitmap.allocN32Pixels(size, size);
-  bitmap.eraseColor(color);
-  return bitmap;
-}
-
-class InstallFromSyncTest : public WebAppTest {
- public:
-  const int kIconSize = 96;
-  const GURL kWebAppUrl = GURL("https://example.com/path/index.html");
-  const GURL kOtherWebAppUrl = GURL("https://example.com/path2/index.html");
-
-  const GURL kWebAppManifestStartUrl =
-      GURL("https://example.com/path/index.html");
-  const std::u16string kManifestName = u"Manifest Name";
-  const GURL kWebAppManifestUrl =
-      GURL("https://example.com/path/manifest.json");
-  const GURL kManifestIconUrl =
-      GURL("https://example.com/path/manifest_icon.png");
-  const SkColor kManifestIconColor = SK_ColorBLACK;
-
-  const std::string kFallbackTitle = "Fallback Title";
-  const GURL kFallbackIconUrl =
-      GURL("https://example.com/path/fallback_icon.png");
-  const SkColor kFallbackIconColor = SK_ColorBLUE;
-
-  const std::u16string kDocumentTitle = u"Document Title";
-  const GURL kDocumentIconUrl =
-      GURL("https://example.com/path/document_icon.png");
-  const SkColor kDocumentIconColor = SK_ColorRED;
-
-  InstallFromSyncTest() = default;
-  ~InstallFromSyncTest() override = default;
-
-  void SetUp() override {
-    WebAppTest::SetUp();
-    FakeWebAppProvider* provider = FakeWebAppProvider::Get(profile());
-    provider->SetDefaultFakeSubsystems();
-    provider->SetRunSubsystemStartupTasks(true);
-    url_loader_ = std::make_unique<TestWebAppUrlLoader>();
-    test::AwaitStartWebAppProviderAndSubsystems(profile());
-  }
-
-  void TearDown() override { WebAppTest::TearDown(); }
-
- protected:
-  struct InstallResult {
-    AppId installed_app_id;
-    webapps::InstallResultCode install_code;
-    absl::optional<webapps::InstallResultCode> install_code_before_fallback;
-  };
-
-  InstallFromSyncCommand::Params CreateParams(AppId app_id, GURL url) {
-    return InstallFromSyncCommand::Params(
-        app_id, /*manifest_id=*/absl::nullopt, url, kFallbackTitle,
-        url.GetWithoutFilename(), /*theme_color=*/absl::nullopt,
-        UserDisplayMode::kStandalone, /*icons=*/
-        {apps::IconInfo(kFallbackIconUrl, kIconSize)});
-  }
-
-  std::unique_ptr<InstallFromSyncCommand> CreateCommand(
-      std::unique_ptr<WebAppDataRetriever> data_retriever,
-      InstallFromSyncCommand::Params params,
-      OnceInstallCallback install_callback) {
-    return std::make_unique<InstallFromSyncCommand>(
-        &url_loader(), profile(), &provider()->install_finalizer(),
-        &provider()->registrar(), std::move(data_retriever), params,
-        std::move(install_callback));
-  }
-
-  InstallResult InstallFromSyncAndWait(
-      std::unique_ptr<WebAppDataRetriever> data_retriever,
-      absl::optional<GURL> opt_url = absl::nullopt) {
-    GURL url = opt_url.value_or(kWebAppUrl);
-    const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, url);
-
-    InstallResult result;
-    base::RunLoop run_loop;
-    std::unique_ptr<InstallFromSyncCommand> command = CreateCommand(
-        std::move(data_retriever), CreateParams(app_id, url),
-        base::BindLambdaForTesting(
-            [&](const AppId& id, webapps::InstallResultCode code) {
-              result.installed_app_id = id;
-              result.install_code = code;
-              run_loop.Quit();
-            }));
-    command->SetFallbackTriggeredForTesting(
-        base::BindLambdaForTesting([&](webapps::InstallResultCode code) {
-          result.install_code_before_fallback = code;
-        }));
-    command_manager().ScheduleCommand(std::move(command));
-    run_loop.Run();
-    return result;
-  }
-
-  WebAppProvider* provider() { return WebAppProvider::GetForTest(profile()); }
-
-  WebAppCommandManager& command_manager() {
-    return provider()->command_manager();
-  }
-
-  WebAppRegistrar& registrar() { return provider()->registrar(); }
-
-  TestWebAppUrlLoader& url_loader() const { return *url_loader_; }
-
-  enum class IconFetchSource { kFallback, kDocument, kManifest };
-
-  void ExpectGetIcons(MockDataRetriever* data_retriever,
-                      bool skip_page_favicons,
-                      IconFetchSource source) {
-    GURL icon_url;
-    SkColor color;
-    switch (source) {
-      case IconFetchSource::kFallback:
-        icon_url = kFallbackIconUrl;
-        color = kFallbackIconColor;
-        break;
-      case IconFetchSource::kDocument:
-        icon_url = kDocumentIconUrl;
-        color = kDocumentIconColor;
-
-        break;
-      case IconFetchSource::kManifest:
-        icon_url = kManifestIconUrl;
-        color = kManifestIconColor;
-        break;
-    }
-
-    IconsMap icons = {{icon_url, {CreateTestBitmap(color, kIconSize)}}};
-    DownloadedIconsHttpResults http_result = {
-        {icon_url, net::HttpStatusCode::HTTP_OK}};
-    EXPECT_CALL(*data_retriever,
-                GetIcons(testing::_, ElementsAre(icon_url), skip_page_favicons,
-                         base::test::IsNotNullCallback()))
-        .WillOnce(base::test::RunOnceCallback<3>(
-            IconsDownloadedResult::kCompleted, std::move(icons), http_result));
-  }
-
-  std::unique_ptr<WebAppInstallInfo> CreateSiteInstallInfo(
-      absl::optional<GURL> opt_url = absl::nullopt) {
-    GURL url = opt_url.value_or(kWebAppUrl);
-    std::unique_ptr<WebAppInstallInfo> info =
-        std::make_unique<WebAppInstallInfo>();
-    info->title = kDocumentTitle;
-    info->start_url = url;
-    info->manifest_icons = {apps::IconInfo(kDocumentIconUrl, kIconSize)};
-    return info;
-  }
-
-  blink::mojom::ManifestPtr CreateManifest(
-      bool icons,
-      absl::optional<GURL> opt_url = absl::nullopt) {
-    GURL url = opt_url.value_or(kWebAppManifestStartUrl);
-    blink::mojom::ManifestPtr manifest = blink::mojom::Manifest::New();
-    manifest->name = kManifestName;
-    manifest->start_url = url;
-    if (icons) {
-      blink::Manifest::ImageResource primary_icon;
-      primary_icon.type = u"image/png";
-      primary_icon.sizes.emplace_back(gfx::Size(kIconSize, kIconSize));
-      primary_icon.purpose.push_back(
-          blink::mojom::ManifestImageResource_Purpose::ANY);
-      primary_icon.src = GURL(kManifestIconUrl);
-      manifest->icons.push_back(primary_icon);
-    }
-    return manifest;
-  }
-
-  std::u16string GetAppName(const AppId& app_id) {
-    return base::UTF8ToUTF16(registrar().GetAppShortName(app_id));
-  }
-
-  std::unique_ptr<TestWebAppUrlLoader> url_loader_;
-};
-
-TEST_F(InstallFromSyncTest, SuccessWithManifest) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-  testing::InSequence sequence;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<1>(CreateSiteInstallInfo()));
-
-  EXPECT_CALL(*data_retriever,
-              CheckInstallabilityAndRetrieveManifest(
-                  testing::_, true, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<2>(CreateManifest(true),
-                                               kWebAppManifestUrl, true, true));
-
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/true,
-                 IconFetchSource::kManifest);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  EXPECT_FALSE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the manifest info was installed.
-  EXPECT_THAT(GetAppName(app_id), Eq(kManifestName));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kManifestIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kManifestIconColor));
-}
-
-TEST_F(InstallFromSyncTest, SuccessWithoutManifest) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-  testing::InSequence sequence;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<1>(CreateSiteInstallInfo()));
-
-  EXPECT_CALL(*data_retriever,
-              CheckInstallabilityAndRetrieveManifest(
-                  testing::_, true, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<2>(nullptr, kWebAppManifestUrl,
-                                               true, true));
-
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/false,
-                 IconFetchSource::kDocument);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  EXPECT_FALSE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the document & fallback info was installed.
-  EXPECT_THAT(registrar().GetAppShortName(app_id), Eq(kFallbackTitle));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kDocumentIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kDocumentIconColor));
-}
-
-TEST_F(InstallFromSyncTest, SuccessManifestNoIcons) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-  testing::InSequence sequence;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<1>(CreateSiteInstallInfo()));
-
-  EXPECT_CALL(*data_retriever,
-              CheckInstallabilityAndRetrieveManifest(
-                  testing::_, true, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<2>(CreateManifest(/*icons=*/false),
-                                               kWebAppManifestUrl, true, true));
-
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/false,
-                 IconFetchSource::kDocument);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  EXPECT_FALSE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the manifest was used & document icons were used.
-  EXPECT_THAT(GetAppName(app_id), Eq(kManifestName));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kDocumentIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kDocumentIconColor));
-}
-
-TEST_F(InstallFromSyncTest, FallbackUrlRedirect) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(
-      kWebAppUrl, WebAppUrlLoader::Result::kRedirectedUrlLoaded);
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/true,
-                 IconFetchSource::kFallback);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  // Error occurred.
-  ASSERT_TRUE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kInstallURLRedirected,
-            result.install_code_before_fallback.value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the fallback info was installed.
-  EXPECT_THAT(registrar().GetAppShortName(app_id), Eq(kFallbackTitle));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kFallbackIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kFallbackIconColor));
-}
-
-TEST_F(InstallFromSyncTest, FallbackWebAppInstallInfo) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-  testing::InSequence sequence;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<1>(nullptr));
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/true,
-                 IconFetchSource::kFallback);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  // Error occurred.
-  ASSERT_TRUE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kGetWebAppInstallInfoFailed,
-            result.install_code_before_fallback.value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the fallback info was installed.
-  EXPECT_THAT(registrar().GetAppShortName(app_id), Eq(kFallbackTitle));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kFallbackIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kFallbackIconColor));
-}
-
-TEST_F(InstallFromSyncTest, FallbackManifestIdMismatch) {
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-  testing::InSequence sequence;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<1>(CreateSiteInstallInfo()));
-
-  auto manifest = CreateManifest(true);
-  manifest->id = u"other_path/index.html";
-
-  EXPECT_CALL(*data_retriever,
-              CheckInstallabilityAndRetrieveManifest(
-                  testing::_, true, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<2>(std::move(manifest),
-                                               kWebAppManifestUrl, true, true));
-
-  ExpectGetIcons(data_retriever.get(), /*skip_page_favicons=*/true,
-                 IconFetchSource::kDocument);
-
-  InstallResult result = InstallFromSyncAndWait(std::move(data_retriever));
-
-  // Error occurred.
-  ASSERT_TRUE(result.install_code_before_fallback.has_value());
-  EXPECT_EQ(webapps::InstallResultCode::kExpectedAppIdCheckFailed,
-            result.install_code_before_fallback.value());
-  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_TRUE(registrar().IsInstalled(app_id));
-
-  // Check that the fallback info was installed.
-  EXPECT_THAT(registrar().GetAppShortName(app_id), Eq(kFallbackTitle));
-  EXPECT_THAT(registrar().GetAppIconInfos(app_id),
-              ElementsAre(apps::IconInfo(kDocumentIconUrl, kIconSize)));
-  SkColor icon_color = IconManagerReadAppIconPixel(provider()->icon_manager(),
-                                                   app_id, kIconSize);
-  EXPECT_THAT(icon_color, Eq(kDocumentIconColor));
-}
-
-TEST_F(InstallFromSyncTest, TwoInstalls) {
-  auto data_retriever1 =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-  auto data_retriever2 =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  {
-    testing::InSequence sequence;
-
-    // Set expectations for kWebAppUrl.
-    url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                      WebAppUrlLoader::Result::kUrlLoaded);
-    EXPECT_CALL(
-        *data_retriever1,
-        GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-        .WillOnce(
-            base::test::RunOnceCallback<1>(CreateSiteInstallInfo(kWebAppUrl)));
-
-    EXPECT_CALL(*data_retriever1,
-                CheckInstallabilityAndRetrieveManifest(
-                    testing::_, true, base::test::IsNotNullCallback()))
-        .WillOnce(base::test::RunOnceCallback<2>(
-            CreateManifest(true, kWebAppUrl), kWebAppManifestUrl, true, true));
-
-    ExpectGetIcons(data_retriever1.get(), /*skip_page_favicons=*/true,
-                   IconFetchSource::kManifest);
-
-    // Set expectations for kOtherWebAppUrl.
-    url_loader().SetNextLoadUrlResult(kOtherWebAppUrl,
-                                      WebAppUrlLoader::Result::kUrlLoaded);
-    EXPECT_CALL(
-        *data_retriever2,
-        GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-        .WillOnce(base::test::RunOnceCallback<1>(
-            CreateSiteInstallInfo(kOtherWebAppUrl)));
-
-    EXPECT_CALL(*data_retriever2,
-                CheckInstallabilityAndRetrieveManifest(
-                    testing::_, true, base::test::IsNotNullCallback()))
-        .WillOnce(base::test::RunOnceCallback<2>(
-            CreateManifest(true, kOtherWebAppUrl), kWebAppManifestUrl, true,
-            true));
-
-    ExpectGetIcons(data_retriever2.get(), /*skip_page_favicons=*/true,
-                   IconFetchSource::kManifest);
-  }
-
-  const AppId app_id1 =
-      GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-  const AppId app_id2 =
-      GenerateAppId(/*manifest_id=*/absl::nullopt, kOtherWebAppUrl);
-
-  base::RunLoop loop1;
-  base::RunLoop loop2;
-  enum class Event {
-    kApp1Installed,
-    kNotifyApp1Installed,
-    kNotifyApp1InstalledWithHooks,
-    kApp2Installed,
-    kNotifyApp2Installed,
-    kNotifyApp2InstalledWithHooks,
-  };
-
-  std::vector<Event> events;
-  std::vector<webapps::InstallResultCode> codes;
-  WebAppInstallManagerObserverAdapter observer(&provider()->install_manager());
-  observer.SetWebAppInstalledDelegate(
-      base::BindLambdaForTesting([&](const AppId& app_id) {
-        if (app_id == app_id1) {
-          events.push_back(Event::kNotifyApp1Installed);
-        } else {
-          DCHECK_EQ(app_id, app_id2);
-          events.push_back(Event::kNotifyApp2Installed);
-        }
-      }));
-  observer.SetWebAppInstalledWithOsHooksDelegate(
-      base::BindLambdaForTesting([&](const AppId& app_id) {
-        if (app_id == app_id1) {
-          events.push_back(Event::kNotifyApp1InstalledWithHooks);
-        } else {
-          DCHECK_EQ(app_id, app_id2);
-          events.push_back(Event::kNotifyApp2InstalledWithHooks);
-        }
-      }));
-
-  command_manager().ScheduleCommand(CreateCommand(
-      std::move(data_retriever1), CreateParams(app_id1, kWebAppUrl),
-      base::BindLambdaForTesting(
-          [&](const AppId& id, webapps::InstallResultCode code) {
-            events.push_back(Event::kApp1Installed);
-            codes.push_back(code);
-            loop1.Quit();
-          })));
-  command_manager().ScheduleCommand(CreateCommand(
-      std::move(data_retriever2), CreateParams(app_id2, kOtherWebAppUrl),
-      base::BindLambdaForTesting(
-          [&](const AppId& id, webapps::InstallResultCode code) {
-            events.push_back(Event::kApp2Installed);
-            codes.push_back(code);
-            loop2.Quit();
-          })));
-  loop1.Run();
-  EXPECT_TRUE(command_manager().has_web_contents_for_testing());
-  loop2.Run();
-  EXPECT_FALSE(command_manager().has_web_contents_for_testing());
-  EXPECT_TRUE(registrar().IsInstalled(app_id1));
-  EXPECT_TRUE(registrar().IsInstalled(app_id2));
-  std::vector<Event> expected;
-  if (AreAppsLocallyInstalledBySync()) {
-    expected = {
-        Event::kNotifyApp1Installed,
-        Event::kApp1Installed,
-        Event::kNotifyApp1InstalledWithHooks,
-        Event::kNotifyApp2Installed,
-        Event::kApp2Installed,
-        Event::kNotifyApp2InstalledWithHooks,
-    };
-  } else {
-    expected = {
-        Event::kNotifyApp1Installed,
-        Event::kApp1Installed,
-        Event::kNotifyApp2Installed,
-        Event::kApp2Installed,
-    };
-  }
-  EXPECT_THAT(events, ElementsAreArray(expected));
-  EXPECT_THAT(codes,
-              ElementsAre(webapps::InstallResultCode::kSuccessNewInstall,
-                          webapps::InstallResultCode::kSuccessNewInstall));
-}
-
-TEST_F(InstallFromSyncTest, Shutdown) {
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-
-  base::RunLoop loop;
-  WebAppDataRetriever::GetWebAppInstallInfoCallback callback;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(
-          [&](content::WebContents* web_contents,
-              WebAppDataRetriever::GetWebAppInstallInfoCallback arg_callback) {
-            callback = std::move(arg_callback);
-            loop.Quit();
-          });
-
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-  bool result_populated = false;
-  InstallResult result;
-  auto command =
-      CreateCommand(std::move(data_retriever), CreateParams(app_id, kWebAppUrl),
-                    base::BindLambdaForTesting(
-                        [&](const AppId& id, webapps::InstallResultCode code) {
-                          result_populated = true;
-                          result.installed_app_id = id;
-                          result.install_code = code;
-                        }));
-  command_manager().ScheduleCommand(std::move(command));
-  loop.Run();
-  command_manager().Shutdown();
-
-  // Running this should do nothing.
-  ASSERT_FALSE(callback.is_null());
-  std::move(callback).Run(CreateSiteInstallInfo());
-
-  ASSERT_TRUE(result_populated);
-  EXPECT_EQ(webapps::InstallResultCode::kCancelledOnWebAppProviderShuttingDown,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_FALSE(registrar().IsInstalled(app_id));
-}
-
-TEST_F(InstallFromSyncTest, SyncUninstall) {
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  url_loader().SetNextLoadUrlResult(kWebAppUrl,
-                                    WebAppUrlLoader::Result::kUrlLoaded);
-
-  base::RunLoop loop;
-  WebAppDataRetriever::GetWebAppInstallInfoCallback callback;
-  EXPECT_CALL(*data_retriever,
-              GetWebAppInstallInfo(testing::_, base::test::IsNotNullCallback()))
-      .WillOnce(
-          [&](content::WebContents* web_contents,
-              WebAppDataRetriever::GetWebAppInstallInfoCallback arg_callback) {
-            callback = std::move(arg_callback);
-            loop.Quit();
-          });
-
-  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kWebAppUrl);
-  bool result_populated = false;
-  InstallResult result;
-  auto command =
-      CreateCommand(std::move(data_retriever), CreateParams(app_id, kWebAppUrl),
-                    base::BindLambdaForTesting(
-                        [&](const AppId& id, webapps::InstallResultCode code) {
-                          result_populated = true;
-                          result.installed_app_id = id;
-                          result.install_code = code;
-                        }));
-  command_manager().ScheduleCommand(std::move(command));
-  loop.Run();
-  command_manager().NotifySyncSourceRemoved({app_id});
-
-  // Running this should do nothing.
-  ASSERT_FALSE(callback.is_null());
-  std::move(callback).Run(CreateSiteInstallInfo());
-
-  ASSERT_TRUE(result_populated);
-  EXPECT_EQ(webapps::InstallResultCode::kHaltedBySyncUninstall,
-            result.install_code);
-  EXPECT_EQ(result.installed_app_id, app_id);
-  EXPECT_FALSE(registrar().IsInstalled(app_id));
-}
-
-}  // namespace
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/commands/web_app_command.cc b/chrome/browser/web_applications/commands/web_app_command.cc
index 2d0a60bb..8922f3d2 100644
--- a/chrome/browser/web_applications/commands/web_app_command.cc
+++ b/chrome/browser/web_applications/commands/web_app_command.cc
@@ -6,7 +6,6 @@
 
 #include "base/atomic_sequence_num.h"
 #include "chrome/browser/web_applications/web_app_command_manager.h"
-#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h"
 #include "components/services/storage/indexed_db/locks/leveled_lock_range.h"
 
 namespace web_app {
@@ -38,24 +37,25 @@
 
 // static
 WebAppCommandLock WebAppCommandLock::CreateForFullSystemLock() {
-  LockRequestSet lock_requests = {
-      content::LeveledLockManager::LeveledLockRequest(
-          static_cast<int>(LockLevel::kStatic),
-          StringToLockRange(
-              base::NumberToString(KeysOnStaticLevel::kFullSystem)),
-          content::LeveledLockManager::LockType::kExclusive)};
+  LockRequestSet lock_requests;
+  lock_requests.emplace(
+      static_cast<int>(LockLevel::kStatic),
+      StringToLockRange(base::NumberToString(KeysOnStaticLevel::kFullSystem)),
+      content::LeveledLockManager::LockType::kExclusive);
   return WebAppCommandLock({}, LockType::kFullSystem, std::move(lock_requests));
 }
 
 // static
 WebAppCommandLock WebAppCommandLock::CreateForBackgroundWebContentsLock() {
-  LockRequestSet lock_requests = {
-      GetSharedWebContentsLock(),
-      content::LeveledLockManager::LeveledLockRequest(
-          static_cast<int>(LockLevel::kStatic),
-          StringToLockRange(
-              base::NumberToString(KeysOnStaticLevel::kFullSystem)),
-          content::LeveledLockManager::LockType::kShared)};
+  LockRequestSet lock_requests;
+  lock_requests.emplace(static_cast<int>(LockLevel::kStatic),
+                        StringToLockRange(base::NumberToString(
+                            KeysOnStaticLevel::kBackgroundWebContents)),
+                        content::LeveledLockManager::LockType::kExclusive);
+  lock_requests.emplace(
+      static_cast<int>(LockLevel::kStatic),
+      StringToLockRange(base::NumberToString(KeysOnStaticLevel::kFullSystem)),
+      content::LeveledLockManager::LockType::kShared);
   return WebAppCommandLock({}, LockType::kBackgroundWebContents,
                            std::move(lock_requests));
 }
@@ -80,13 +80,16 @@
 // static
 WebAppCommandLock WebAppCommandLock::CreateForAppAndWebContentsLock(
     base::flat_set<AppId> app_ids) {
-  LockRequestSet lock_requests = {
-      GetSharedWebContentsLock(),
-      content::LeveledLockManager::LeveledLockRequest(
-          static_cast<int>(LockLevel::kStatic),
-          StringToLockRange(
-              base::NumberToString(KeysOnStaticLevel::kFullSystem)),
-          content::LeveledLockManager::LockType::kShared)};
+  LockRequestSet lock_requests;
+  lock_requests.emplace(
+      static_cast<int>(LockLevel::kStatic),
+      StringToLockRange(base::NumberToString(KeysOnStaticLevel::kFullSystem)),
+      content::LeveledLockManager::LockType::kShared);
+
+  lock_requests.emplace(static_cast<int>(LockLevel::kStatic),
+                        StringToLockRange(base::NumberToString(
+                            KeysOnStaticLevel::kBackgroundWebContents)),
+                        content::LeveledLockManager::LockType::kExclusive);
   for (const auto& app_id : app_ids) {
     lock_requests.emplace(static_cast<int>(LockLevel::kApp),
                           StringToLockRange(app_id),
@@ -133,16 +136,6 @@
   }
 }
 
-// static
-content::LeveledLockManager::LeveledLockRequest
-WebAppCommandLock::GetSharedWebContentsLock() {
-  return content::LeveledLockManager::LeveledLockRequest(
-      {static_cast<int>(LockLevel::kStatic),
-       StringToLockRange(
-           base::NumberToString(KeysOnStaticLevel::kBackgroundWebContents)),
-       content::LeveledLockManager::LockType::kExclusive});
-}
-
 WebAppCommand::WebAppCommand(WebAppCommandLock command_lock)
     : command_lock_(std::move(command_lock)) {
   DETACH_FROM_SEQUENCE(command_sequence_checker_);
diff --git a/chrome/browser/web_applications/commands/web_app_command.h b/chrome/browser/web_applications/commands/web_app_command.h
index 52108b73..3a19cab1 100644
--- a/chrome/browser/web_applications/commands/web_app_command.h
+++ b/chrome/browser/web_applications/commands/web_app_command.h
@@ -12,7 +12,6 @@
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_id.h"
 #include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h"
-#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
@@ -81,11 +80,6 @@
                              LockType lock_type,
                              LockRequestSet lock_requests);
 
-  // Exposed for usage in the WebAppCommandManager to determine if the shared
-  // web contents can be destroyed.
-  static content::LeveledLockManager::LeveledLockRequest
-  GetSharedWebContentsLock();
-
   enum class LockLevel {
     kStatic = 0,
     kApp = 1,
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
index cb004c4..fcbaead68 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
@@ -160,9 +160,9 @@
         &icon_manager(), web_app_policy_manager_.get(),
         &controller().translation_manager());
 
-    install_manager().SetSubsystems(
-        &controller().registrar(), &controller().os_integration_manager(),
-        &controller().command_manager(), &install_finalizer());
+    install_manager().SetSubsystems(&controller().registrar(),
+                                    &controller().os_integration_manager(),
+                                    &install_finalizer());
 
     icon_manager().SetSubsystems(&controller().registrar(), &install_manager());
 
diff --git a/chrome/browser/web_applications/test/fake_web_app_registry_controller.h b/chrome/browser/web_applications/test/fake_web_app_registry_controller.h
index ec3fdc93..295ee39 100644
--- a/chrome/browser/web_applications/test/fake_web_app_registry_controller.h
+++ b/chrome/browser/web_applications/test/fake_web_app_registry_controller.h
@@ -85,7 +85,6 @@
     return *os_integration_manager_;
   }
   WebAppPolicyManager& policy_manager() { return *policy_manager_; }
-  WebAppCommandManager& command_manager() { return *command_manager_; }
 
  private:
   InstallWebAppsAfterSyncDelegate install_web_apps_after_sync_delegate_;
diff --git a/chrome/browser/web_applications/test/mock_data_retriever.cc b/chrome/browser/web_applications/test/mock_data_retriever.cc
deleted file mode 100644
index f304177..0000000
--- a/chrome/browser/web_applications/test/mock_data_retriever.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/test/mock_data_retriever.h"
-
-namespace web_app {
-
-MockDataRetriever::MockDataRetriever() = default;
-MockDataRetriever::~MockDataRetriever() = default;
-
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/test/mock_data_retriever.h b/chrome/browser/web_applications/test/mock_data_retriever.h
deleted file mode 100644
index 18bfe4b..0000000
--- a/chrome/browser/web_applications/test/mock_data_retriever.h
+++ /dev/null
@@ -1,49 +0,0 @@
-
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_WEB_APPLICATIONS_TEST_MOCK_DATA_RETRIEVER_H_
-#define CHROME_BROWSER_WEB_APPLICATIONS_TEST_MOCK_DATA_RETRIEVER_H_
-
-#include <vector>
-#include "chrome/browser/web_applications/web_app_data_retriever.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "url/gurl.h"
-
-namespace content {
-class WebContents;
-}
-
-namespace web_app {
-
-// All WebAppDataRetriever operations are async, so this class posts tasks
-// when running callbacks to simulate async behavior in tests as well.
-class MockDataRetriever : public WebAppDataRetriever {
- public:
-  MockDataRetriever();
-  ~MockDataRetriever() override;
-
-  MOCK_METHOD(void,
-              GetWebAppInstallInfo,
-              (content::WebContents * web_contents,
-               GetWebAppInstallInfoCallback callback),
-              (override));
-  MOCK_METHOD(void,
-              CheckInstallabilityAndRetrieveManifest,
-              (content::WebContents * web_contents,
-               bool bypass_service_worker_check,
-               CheckInstallabilityCallback callback),
-              (override));
-  MOCK_METHOD(void,
-              GetIcons,
-              (content::WebContents * web_contents,
-               std::vector<GURL> icon_urls,
-               bool skip_page_favicons,
-               GetIconsCallback callback),
-              (override));
-};
-
-}  // namespace web_app
-
-#endif  // CHROME_BROWSER_WEB_APPLICATIONS_TEST_MOCK_DATA_RETRIEVER_H_
diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h
index 714d571..21365b2 100644
--- a/chrome/browser/web_applications/web_app.h
+++ b/chrome/browser/web_applications/web_app.h
@@ -12,12 +12,12 @@
 
 #include "base/time/time.h"
 #include "base/values.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
 #include "chrome/browser/web_applications/user_display_mode.h"
 #include "chrome/browser/web_applications/web_app_chromeos_data.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_id.h"
 #include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
 #include "components/services/app_service/public/cpp/file_handler.h"
 #include "components/services/app_service/public/cpp/protocol_handler_info.h"
 #include "components/services/app_service/public/cpp/share_target.h"
@@ -102,7 +102,7 @@
     ClientData(const ClientData& client_data);
     base::Value AsDebugValue() const;
 
-    absl::optional<WebAppSystemWebAppData> system_web_app_data;
+    absl::optional<ash::SystemWebAppData> system_web_app_data;
   };
 
   const ClientData& client_data() const { return client_data_; }
diff --git a/chrome/browser/web_applications/web_app_command_manager.cc b/chrome/browser/web_applications/web_app_command_manager.cc
index 3d48756..c2b56ea 100644
--- a/chrome/browser/web_applications/web_app_command_manager.cc
+++ b/chrome/browser/web_applications/web_app_command_manager.cc
@@ -17,8 +17,6 @@
 #include "chrome/browser/web_applications/commands/web_app_command.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_install_task.h"
-#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h"
-#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h"
 #include "content/public/browser/web_contents.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -223,15 +221,6 @@
   DCHECK(command_it != commands_.end());
   commands_.erase(command_it);
 
-  auto lock_free =
-      lock_manager_.TestLock(WebAppCommandLock::GetSharedWebContentsLock());
-  DCHECK_NE(lock_free,
-            content::DisjointRangeLockManager::TestLockResult::kInvalid);
-  if (lock_free == content::DisjointRangeLockManager::TestLockResult::kFree) {
-    AddValueToLog(base::Value("Destroying the shared web contents."));
-    shared_web_contents_.reset();
-  }
-
   std::move(completion_callback).Run();
 
   if (commands_.empty() && run_loop_for_testing_.running())
diff --git a/chrome/browser/web_applications/web_app_command_manager.h b/chrome/browser/web_applications/web_app_command_manager.h
index fe42cb8..29f5210e 100644
--- a/chrome/browser/web_applications/web_app_command_manager.h
+++ b/chrome/browser/web_applications/web_app_command_manager.h
@@ -79,10 +79,6 @@
 
   void AwaitAllCommandsCompleteForTesting();
 
-  bool has_web_contents_for_testing() const {
-    return shared_web_contents_.get();
-  }
-
  protected:
   friend class WebAppCommand;
 
diff --git a/chrome/browser/web_applications/web_app_database.cc b/chrome/browser/web_applications/web_app_database.cc
index a41b391..4b34602 100644
--- a/chrome/browser/web_applications/web_app_database.cc
+++ b/chrome/browser/web_applications/web_app_database.cc
@@ -802,7 +802,7 @@
   }
 
   if (local_data.client_data().has_system_web_app_data()) {
-    WebAppSystemWebAppData& swa_data =
+    ash::SystemWebAppData& swa_data =
         web_app->client_data()->system_web_app_data.emplace();
 
     swa_data.system_app_type = static_cast<ash::SystemWebAppType>(
diff --git a/chrome/browser/web_applications/web_app_icon_downloader.h b/chrome/browser/web_applications/web_app_icon_downloader.h
index f4b251ff..41298e0 100644
--- a/chrome/browser/web_applications/web_app_icon_downloader.h
+++ b/chrome/browser/web_applications/web_app_icon_downloader.h
@@ -28,7 +28,7 @@
 
 // Class to help download all icons (including favicons and web app manifest
 // icons) for a tab.
-class WebAppIconDownloader : public content::WebContentsObserver {
+class WebAppIconDownloader : private content::WebContentsObserver {
  public:
   using WebAppIconDownloaderCallback =
       base::OnceCallback<void(IconsDownloadedResult result,
@@ -53,16 +53,14 @@
 
   void Start();
 
- private:
-  friend class TestWebAppIconDownloader;
+  size_t pending_requests() const { return in_progress_requests_.size(); }
 
+ private:
   // Initiates a download of the image at |url| and returns the download id.
-  // This is overridden in testing.
-  virtual int DownloadImage(const GURL& url);
+  int DownloadImage(const GURL& url);
 
   // Queries WebContents for the page's current favicon URLs.
-  // This is overridden in testing.
-  virtual const std::vector<blink::mojom::FaviconURLPtr>&
+  const std::vector<blink::mojom::FaviconURLPtr>&
   GetFaviconURLsFromWebContents();
 
   // Fetches icons for the given urls.
diff --git a/chrome/browser/web_applications/web_app_icon_downloader_unittest.cc b/chrome/browser/web_applications/web_app_icon_downloader_unittest.cc
index f59245b..7da5f46e 100644
--- a/chrome/browser/web_applications/web_app_icon_downloader_unittest.cc
+++ b/chrome/browser/web_applications/web_app_icon_downloader_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
+#include "base/test/test_future.h"
 #include "chrome/browser/web_applications/test/web_app_test.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "content/public/browser/web_contents.h"
@@ -22,9 +23,15 @@
 #include "third_party/skia/include/core/SkBitmap.h"
 
 namespace web_app {
-
 namespace {
 
+using ::testing::_;
+using ::testing::FieldsAre;
+using ::testing::IsEmpty;
+using ::testing::IsTrue;
+using ::testing::Pair;
+using ::testing::UnorderedElementsAre;
+
 // Creates valid SkBitmaps of the dimensions found in |sizes| and pushes them
 // into |bitmaps|.
 std::vector<SkBitmap> CreateTestBitmaps(const std::vector<gfx::Size>& sizes) {
@@ -39,12 +46,6 @@
 
 class WebAppIconDownloaderTest : public WebAppTest {
  public:
-  WebAppIconDownloaderTest(const WebAppIconDownloaderTest&) = delete;
-  WebAppIconDownloaderTest& operator=(const WebAppIconDownloaderTest&) = delete;
-
-  WebAppIconDownloaderTest() = default;
-  ~WebAppIconDownloaderTest() override = default;
-
   void SetUp() override {
     WebAppTest::SetUp();
 
@@ -58,190 +59,107 @@
   }
 };
 
-class WebAppIconDownloaderPrerenderTest : public WebAppIconDownloaderTest {
- public:
-  WebAppIconDownloaderPrerenderTest() {
-    scoped_feature_list_.InitWithFeatures(
-        {blink::features::kPrerender2},
-        // This feature is to run test on any bot.
-        {blink::features::kPrerender2MemoryControls});
-  }
-  ~WebAppIconDownloaderPrerenderTest() override = default;
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-}  // namespace
-
-class TestWebAppIconDownloader : public WebAppIconDownloader {
- public:
-  TestWebAppIconDownloader(content::WebContents* web_contents,
-                           std::vector<GURL> extra_favicon_urls)
-      : WebAppIconDownloader(
-            web_contents,
-            std::move(extra_favicon_urls),
-            base::BindOnce(&TestWebAppIconDownloader::DownloadsComplete,
-                           base::Unretained(this))) {}
-  TestWebAppIconDownloader(const TestWebAppIconDownloader&) = delete;
-  TestWebAppIconDownloader& operator=(const TestWebAppIconDownloader&) = delete;
-  ~TestWebAppIconDownloader() override = default;
-
-  int DownloadImage(const GURL& url) override { return id_counter_++; }
-
-  const std::vector<blink::mojom::FaviconURLPtr>&
-  GetFaviconURLsFromWebContents() override {
-    return initial_favicon_urls_;
-  }
-
-  size_t pending_requests() const { return in_progress_requests_.size(); }
-
-  void DownloadsComplete(IconsDownloadedResult result,
-                         IconsMap icons_map,
-                         DownloadedIconsHttpResults icons_http_results) {
-    icons_download_result_ = result;
-    icons_map_ = std::move(icons_map);
-    icons_http_results_ = std::move(icons_http_results);
-
-    run_loop_.Quit();
-  }
-
-  void AwaitDownloadsComplete() {
-    run_loop_.Run();
-    ASSERT_EQ(0u, pending_requests());
-  }
-
-  const IconsMap& icons_map() const { return icons_map_; }
-
-  void CompleteImageDownload(
-      int id,
-      int http_status_code,
-      const GURL& image_url,
-      const std::vector<gfx::Size>& original_bitmap_sizes) {
-    WebAppIconDownloader::DidDownloadFavicon(
-        id, http_status_code, image_url,
-        CreateTestBitmaps(original_bitmap_sizes), original_bitmap_sizes);
-  }
-
-  void UpdateFaviconURLs(
-      const std::vector<blink::mojom::FaviconURLPtr>& candidates) {
-    WebAppIconDownloader::DidUpdateFaviconURL(web_contents()->GetMainFrame(),
-                                              candidates);
-  }
-
-  void set_initial_favicon_urls(
-      const std::vector<blink::mojom::FaviconURLPtr>& urls) {
-    for (const auto& url : urls)
-      initial_favicon_urls_.push_back(url.Clone());
-  }
-
-  IconsDownloadedResult icons_download_result() const {
-    return icons_download_result_.value();
-  }
-
-  const DownloadedIconsHttpResults& icons_http_results() const {
-    return icons_http_results_;
-  }
-
- private:
-  std::vector<blink::mojom::FaviconURLPtr> initial_favicon_urls_;
-
-  IconsMap icons_map_;
-  DownloadedIconsHttpResults icons_http_results_;
-
-  int id_counter_ = 0;
-  absl::optional<IconsDownloadedResult> icons_download_result_;
-  base::RunLoop run_loop_;
-};
-
 TEST_F(WebAppIconDownloaderTest, SimpleDownload) {
-  const GURL favicon_url("http://www.google.com/favicon.ico");
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  const auto favicon_url = blink::mojom::FaviconURL::New(
+      GURL{"http://www.google.com/favicon.ico"},
+      blink::mojom::FaviconIconType::kFavicon, std::vector<gfx::Size>());
 
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
-  favicon_urls.push_back(blink::mojom::FaviconURL::New(
-      favicon_url, blink::mojom::FaviconIconType::kFavicon,
-      std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
-  EXPECT_EQ(0u, downloader.pending_requests());
+  favicon_urls.push_back(mojo::Clone(favicon_url));
+
+  web_contents_tester()->TestSetFaviconURL(mojo::Clone(favicon_urls));
+
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
 
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
+  const std::vector<gfx::Size> sizes{gfx::Size(32, 32)};
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url->icon_url,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes),
+      /*original_bitmap_sizes=*/sizes);
 
-  std::vector<gfx::Size> sizes(1, gfx::Size(32, 32));
-  downloader.CompleteImageDownload(0, 200, favicon_urls[0]->icon_url, sizes);
-  downloader.AwaitDownloadsComplete();
-
-  EXPECT_EQ(1u, downloader.icons_map().size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url).size());
-
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
-
-  EXPECT_EQ(1u, downloader.icons_http_results().size());
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url));
+  EXPECT_THAT(
+      test_future.Get(),
+      FieldsAre(
+          /*result=*/IconsDownloadedResult::kCompleted,
+          /*icons_map=*/UnorderedElementsAre(Pair(favicon_url->icon_url, _)),
+          /*icons_http_results=*/
+          UnorderedElementsAre(
+              Pair(favicon_url->icon_url, net::HttpStatusCode::HTTP_OK))));
 }
 
 TEST_F(WebAppIconDownloaderTest, NoHTTPStatusCode) {
-  const GURL favicon_url("data:image/png,");
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  const auto favicon_url = blink::mojom::FaviconURL::New(
+      GURL{"data:image/png,"}, blink::mojom::FaviconIconType::kFavicon,
+      std::vector<gfx::Size>());
+
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
 
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
-  favicon_urls.push_back(blink::mojom::FaviconURL::New(
-      favicon_url, blink::mojom::FaviconIconType::kFavicon,
-      std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
-  EXPECT_EQ(0u, downloader.pending_requests());
+  favicon_urls.push_back(mojo::Clone(favicon_url));
+  web_contents_tester()->TestSetFaviconURL(mojo::Clone(favicon_urls));
 
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
   std::vector<gfx::Size> sizes = {gfx::Size(0, 0)};
   // data: URLs have a 0 HTTP status code.
-  downloader.CompleteImageDownload(0, 0, favicon_urls[0]->icon_url, sizes);
-  downloader.AwaitDownloadsComplete();
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url->icon_url,
+      /*http_status_code=*/0,
+      /*bitmaps=*/CreateTestBitmaps(sizes),
+      /*original_bitmap_sizes=*/sizes);
 
-  EXPECT_EQ(1u, downloader.icons_map().size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url).size());
-
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted)
-      << "Should not consider data: URL or HTTP status code of 0 a failure";
-
-  EXPECT_TRUE(downloader.icons_http_results().empty());
+  EXPECT_THAT(
+      test_future.Get(),
+      FieldsAre(
+          /*result=*/IconsDownloadedResult::kCompleted,
+          /*icons_map=*/UnorderedElementsAre(Pair(favicon_url->icon_url, _)),
+          /*icons_http_results=*/IsEmpty()));
 }
 
 TEST_F(WebAppIconDownloaderTest, DownloadWithUrlsFromWebContentsNotification) {
-  const GURL favicon_url("http://www.google.com/favicon.ico");
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  const auto favicon_url = blink::mojom::FaviconURL::New(
+      GURL{"http://www.google.com/favicon.ico"},
+      blink::mojom::FaviconIconType::kFavicon, std::vector<gfx::Size>());
 
-  std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
-  favicon_urls.push_back(blink::mojom::FaviconURL::New(
-      favicon_url, blink::mojom::FaviconIconType::kFavicon,
-      std::vector<gfx::Size>()));
-  EXPECT_EQ(0u, downloader.pending_requests());
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
 
   // Start downloader before favicon URLs are loaded.
   downloader.Start();
-  EXPECT_EQ(0u, downloader.pending_requests());
 
-  downloader.UpdateFaviconURLs(favicon_urls);
-  EXPECT_EQ(1u, downloader.pending_requests());
+  std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
+  favicon_urls.push_back(mojo::Clone(favicon_url));
+
+  web_contents_tester()->TestUpdateFaviconURL(mojo::Clone(favicon_urls));
 
   std::vector<gfx::Size> sizes(1, gfx::Size(32, 32));
-  downloader.CompleteImageDownload(0, 200, favicon_urls[0]->icon_url, sizes);
-  downloader.AwaitDownloadsComplete();
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url->icon_url,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes),
+      /*original_bitmap_sizes=*/sizes);
 
-  EXPECT_EQ(1u, downloader.icons_map().size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url).size());
-
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
-
-  EXPECT_EQ(1u, downloader.icons_http_results().size());
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url));
+  EXPECT_THAT(
+      test_future.Get(),
+      FieldsAre(
+          /*result=*/IconsDownloadedResult::kCompleted,
+          /*icons_map=*/UnorderedElementsAre(Pair(favicon_url->icon_url, _)),
+          /*icons_http_results=*/
+          UnorderedElementsAre(
+              Pair(favicon_url->icon_url, net::HttpStatusCode::HTTP_OK))));
 }
 
 TEST_F(WebAppIconDownloaderTest, DownloadMultipleUrls) {
@@ -255,7 +173,11 @@
   // This is duplicated in the favicon urls and should only be downloaded once.
   extra_urls.push_back(empty_favicon);
 
-  TestWebAppIconDownloader downloader(web_contents(), extra_urls);
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), extra_urls,
+                                  test_future.GetCallback());
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       favicon_url_1, blink::mojom::FaviconIconType::kFavicon,
@@ -268,39 +190,47 @@
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       GURL("http://www.google.com/invalid.ico"),
       blink::mojom::FaviconIconType::kInvalid, std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
+
+  web_contents_tester()->TestSetFaviconURL(mojo::Clone(favicon_urls));
+
   downloader.Start();
-  EXPECT_EQ(3u, downloader.pending_requests());
 
   std::vector<gfx::Size> sizes_1(1, gfx::Size(16, 16));
-  downloader.CompleteImageDownload(0, 200, favicon_url_1, sizes_1);
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url_1,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes_1),
+      /*original_bitmap_sizes=*/sizes_1);
 
   std::vector<gfx::Size> sizes_2;
   sizes_2.emplace_back(32, 32);
   sizes_2.emplace_back(64, 64);
-  downloader.CompleteImageDownload(1, 200, favicon_url_2, sizes_2);
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url_2,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes_2),
+      /*original_bitmap_sizes=*/sizes_2);
 
   // Only 1 download should have been initiated for |empty_favicon| even though
   // the URL was in both the web app info and the favicon urls.
-  downloader.CompleteImageDownload(2, 200, empty_favicon,
-                                   std::vector<gfx::Size>());
-  downloader.AwaitDownloadsComplete();
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/empty_favicon,
+      /*http_status_code=*/200,
+      /*bitmaps=*/{},
+      /*original_bitmap_sizes=*/{});
 
-  EXPECT_EQ(3u, downloader.icons_map().size());
-  EXPECT_EQ(0u, downloader.icons_map().at(empty_favicon).size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url_1).size());
-  EXPECT_EQ(2u, downloader.icons_map().at(favicon_url_2).size());
-
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
-
-  EXPECT_EQ(3u, downloader.icons_http_results().size());
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(empty_favicon));
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url_1));
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url_2));
+  EXPECT_THAT(
+      test_future.Get(),
+      FieldsAre(
+          /*result=*/IconsDownloadedResult::kCompleted,
+          /*icons_map=*/
+          UnorderedElementsAre(Pair(empty_favicon, _), Pair(favicon_url_1, _),
+                               Pair(favicon_url_2, _)),
+          /*icons_http_results=*/
+          UnorderedElementsAre(
+              Pair(empty_favicon, net::HttpStatusCode::HTTP_OK),
+              Pair(favicon_url_1, net::HttpStatusCode::HTTP_OK),
+              Pair(favicon_url_2, net::HttpStatusCode::HTTP_OK))));
 }
 
 TEST_F(WebAppIconDownloaderTest, SkipPageFavicons) {
@@ -310,75 +240,102 @@
   std::vector<GURL> extra_urls;
   extra_urls.push_back(favicon_url_1);
 
-  TestWebAppIconDownloader downloader(web_contents(), extra_urls);
-
   // This favicon URL should be ignored.
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       favicon_url_2, blink::mojom::FaviconIconType::kFavicon,
       std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
-  downloader.SkipPageFavicons();
-  downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
-  std::vector<gfx::Size> sizes_1(1, gfx::Size(16, 16));
-  downloader.CompleteImageDownload(0, 200, favicon_url_1, sizes_1);
+  web_contents_tester()->TestSetFaviconURL(mojo::Clone(favicon_urls));
+
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), extra_urls,
+                                  test_future.GetCallback());
+  downloader.SkipPageFavicons();
+
+  downloader.Start();
+
+  const std::vector<gfx::Size> sizes_1 = {gfx::Size{16, 16}};
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url_1,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes_1),
+      /*original_bitmap_sizes=*/sizes_1);
 
   // This download should not be finished and inserted into the map.
-  std::vector<gfx::Size> sizes_2;
-  sizes_2.emplace_back(32, 32);
-  sizes_2.emplace_back(64, 64);
-  downloader.CompleteImageDownload(1, 200, favicon_url_2, sizes_2);
-  downloader.AwaitDownloadsComplete();
+  const std::vector<gfx::Size> sizes_2 = {
+      gfx::Size{32, 32},
+      gfx::Size{64, 64},
+  };
 
-  EXPECT_EQ(1u, downloader.icons_map().size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url_1).size());
-  EXPECT_EQ(0u, downloader.icons_map().count(favicon_url_2));
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url_2,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes_2),
+      /*original_bitmap_sizes=*/sizes_2);
 
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
-
-  EXPECT_EQ(1u, downloader.icons_http_results().size());
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url_1));
+  EXPECT_THAT(test_future.Get(),
+              FieldsAre(
+                  /*result=*/IconsDownloadedResult::kCompleted,
+                  /*icons_map=*/
+                  UnorderedElementsAre(Pair(favicon_url_1, _)),
+                  /*icons_http_results=*/
+                  UnorderedElementsAre(
+                      Pair(favicon_url_1, net::HttpStatusCode::HTTP_OK))));
 }
 
 TEST_F(WebAppIconDownloaderTest, PageNavigates) {
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
 
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       GURL("http://www.google.com/favicon.ico"),
       blink::mojom::FaviconIconType::kFavicon, std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
-  EXPECT_EQ(0u, downloader.pending_requests());
+  web_contents_tester()->TestSetFaviconURL(mojo::Clone(favicon_urls));
 
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
   content::NavigationSimulator::CreateRendererInitiated(
       GURL("https://foo.example"), main_rfh())
       ->Commit();
 
-  EXPECT_EQ(0u, downloader.pending_requests());
-  EXPECT_TRUE(downloader.icons_map().empty());
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kPrimaryPageChanged);
+  EXPECT_THAT(test_future.Get(),
+              FieldsAre(
+                  /*result=*/IconsDownloadedResult::kPrimaryPageChanged,
+                  /*icons_map=*/IsEmpty(),
+                  /*icons_http_results=*/_));
 }
 
 TEST_F(WebAppIconDownloaderTest, PageNavigatesAfterDownload) {
   const GURL url("http://www.google.com/icon.png");
-  TestWebAppIconDownloader downloader(web_contents(), {url});
+
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>{url},
+                                  test_future.GetCallback());
   downloader.SkipPageFavicons();
 
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
-  downloader.CompleteImageDownload(0, 200, url, {gfx::Size(32, 32)});
-  downloader.AwaitDownloadsComplete();
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
+  std::vector<gfx::Size> sizes = {gfx::Size(32, 32)};
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/url,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes),
+      /*original_bitmap_sizes=*/sizes);
+
+  EXPECT_THAT(test_future.Get(),
+              FieldsAre(
+                  /*result=*/IconsDownloadedResult::kCompleted,
+                  /*icons_map=*/_,
+                  /*icons_http_results=*/_));
 
   // Navigating the renderer after downloads have completed should not crash.
   content::NavigationSimulator::CreateRendererInitiated(
@@ -391,54 +348,70 @@
       web_contents(), GURL("https://foo.example"));
 
   const GURL favicon_url("http://www.google.com/favicon.ico");
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       favicon_url, blink::mojom::FaviconIconType::kFavicon,
       std::vector<gfx::Size>()));
 
-  downloader.set_initial_favicon_urls(favicon_urls);
-  EXPECT_EQ(0u, downloader.pending_requests());
+  web_contents_tester()->TestUpdateFaviconURL(mojo::Clone(favicon_urls));
 
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
   content::NavigationSimulator::CreateRendererInitiated(
       GURL("https://foo.example/#test"), main_rfh())
       ->CommitSameDocument();
 
-  EXPECT_EQ(1u, downloader.pending_requests());
-
   std::vector<gfx::Size> sizes(1, gfx::Size(32, 32));
-  downloader.CompleteImageDownload(0, 200, favicon_url, sizes);
-  downloader.AwaitDownloadsComplete();
+  web_contents_tester()->TestDidDownloadImage(
+      /*url=*/favicon_url,
+      /*http_status_code=*/200,
+      /*bitmaps=*/CreateTestBitmaps(sizes),
+      /*original_bitmap_sizes=*/sizes);
 
-  EXPECT_EQ(1u, downloader.icons_map().size());
-  EXPECT_EQ(1u, downloader.icons_map().at(favicon_url).size());
-
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kCompleted);
-
-  EXPECT_EQ(1u, downloader.icons_http_results().size());
-  EXPECT_EQ(net::HttpStatusCode::HTTP_OK,
-            downloader.icons_http_results().at(favicon_url));
+  EXPECT_THAT(test_future.Get(),
+              FieldsAre(
+                  /*result=*/IconsDownloadedResult::kCompleted,
+                  /*icons_map=*/UnorderedElementsAre(Pair(favicon_url, _)),
+                  /*icons_http_results=*/
+                  UnorderedElementsAre(
+                      Pair(favicon_url, net::HttpStatusCode::HTTP_OK))));
 }
 
+class WebAppIconDownloaderPrerenderTest : public WebAppIconDownloaderTest {
+ public:
+  WebAppIconDownloaderPrerenderTest() {
+    scoped_feature_list_.InitWithFeatures(
+        {blink::features::kPrerender2},
+        // This feature is to run test on any bot.
+        {blink::features::kPrerender2MemoryControls});
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
 TEST_F(WebAppIconDownloaderPrerenderTest, PrerenderedPageNavigates) {
   // Navigate to an initial page.
   NavigateAndCommit(GURL("http://foo.example"));
 
   const GURL favicon_url("http://www.google.com/favicon.ico");
-  TestWebAppIconDownloader downloader(web_contents(), std::vector<GURL>());
+  base::test::TestFuture<IconsDownloadedResult, IconsMap,
+                         DownloadedIconsHttpResults>
+      test_future;
+  WebAppIconDownloader downloader(web_contents(), std::vector<GURL>(),
+                                  test_future.GetCallback());
   std::vector<blink::mojom::FaviconURLPtr> favicon_urls;
   favicon_urls.push_back(blink::mojom::FaviconURL::New(
       favicon_url, blink::mojom::FaviconIconType::kFavicon,
       std::vector<gfx::Size>()));
-  downloader.set_initial_favicon_urls(favicon_urls);
-  EXPECT_EQ(0u, downloader.pending_requests());
 
+  web_contents_tester()->TestUpdateFaviconURL(mojo::Clone(favicon_urls));
   downloader.Start();
-  EXPECT_EQ(1u, downloader.pending_requests());
 
   // Start a prerender and navigate the test page.
   const GURL& prerender_url = GURL("http://foo.example/bar");
@@ -458,9 +431,13 @@
 
   // Ensure prerender activation cancel pending download requests.
   EXPECT_EQ(0u, downloader.pending_requests());
-  EXPECT_TRUE(downloader.icons_map().empty());
-  EXPECT_EQ(downloader.icons_download_result(),
-            IconsDownloadedResult::kPrimaryPageChanged);
+
+  EXPECT_THAT(test_future.Get(),
+              FieldsAre(
+                  /*result=*/IconsDownloadedResult::kPrimaryPageChanged,
+                  /*icons_map=*/IsEmpty(),
+                  /*icons_http_results=*/_));
 }
 
+}  // namespace
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_install_finalizer.cc b/chrome/browser/web_applications/web_app_install_finalizer.cc
index 65c2e715..12507bd 100644
--- a/chrome/browser/web_applications/web_app_install_finalizer.cc
+++ b/chrome/browser/web_applications/web_app_install_finalizer.cc
@@ -22,6 +22,7 @@
 #include "base/values.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/web_applications/isolation_prefs_utils.h"
 #include "chrome/browser/web_applications/manifest_update_task.h"
@@ -40,7 +41,6 @@
 #include "chrome/browser/web_applications/web_app_registrar.h"
 #include "chrome/browser/web_applications/web_app_registry_update.h"
 #include "chrome/browser/web_applications/web_app_sync_bridge.h"
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
 #include "chrome/browser/web_applications/web_app_translation_manager.h"
 #include "chrome/browser/web_applications/web_app_ui_manager.h"
 #include "chrome/browser/web_applications/web_app_uninstall_job.h"
diff --git a/chrome/browser/web_applications/web_app_install_finalizer.h b/chrome/browser/web_applications/web_app_install_finalizer.h
index fd901b40..53fe77a 100644
--- a/chrome/browser/web_applications/web_app_install_finalizer.h
+++ b/chrome/browser/web_applications/web_app_install_finalizer.h
@@ -13,12 +13,12 @@
 #include "base/containers/flat_set.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
 #include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
 #include "chrome/browser/web_applications/web_app_chromeos_data.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_id.h"
 #include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
 #include "chrome/browser/web_applications/web_app_uninstall_job.h"
 #include "components/webapps/browser/install_result_code.h"
 #include "components/webapps/browser/installable/installable_metrics.h"
@@ -69,7 +69,7 @@
     bool overwrite_existing_manifest_fields = true;
 
     absl::optional<WebAppChromeOsData> chromeos_data;
-    absl::optional<WebAppSystemWebAppData> system_web_app_data;
+    absl::optional<ash::SystemWebAppData> system_web_app_data;
     absl::optional<AppId> parent_app_id;
 
     // If true, OsIntegrationManager::InstallOsHooks won't be called at all,
diff --git a/chrome/browser/web_applications/web_app_install_manager.cc b/chrome/browser/web_applications/web_app_install_manager.cc
index 51fca054..d2c71f8 100644
--- a/chrome/browser/web_applications/web_app_install_manager.cc
+++ b/chrome/browser/web_applications/web_app_install_manager.cc
@@ -17,11 +17,9 @@
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/web_applications/commands/install_from_sync_command.h"
 #include "chrome/browser/web_applications/install_bounce_metric.h"
 #include "chrome/browser/web_applications/user_display_mode.h"
 #include "chrome/browser/web_applications/web_app.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_data_retriever.h"
 #include "chrome/browser/web_applications/web_app_install_finalizer.h"
@@ -104,11 +102,9 @@
 void WebAppInstallManager::SetSubsystems(
     WebAppRegistrar* registrar,
     OsIntegrationManager* os_integration_manager,
-    WebAppCommandManager* command_manager,
     WebAppInstallFinalizer* finalizer) {
   registrar_ = registrar;
   os_integration_manager_ = os_integration_manager;
-  command_manager_ = command_manager;
   finalizer_ = finalizer;
 }
 
@@ -172,6 +168,64 @@
   return weak_ptr_factory_.GetWeakPtr();
 }
 
+void WebAppInstallManager::EnqueueInstallAppFromSync(
+    const AppId& sync_app_id,
+    std::unique_ptr<WebAppInstallInfo> install_info,
+    OnceInstallCallback callback) {
+  DCHECK(started_);
+#if BUILDFLAG(IS_CHROMEOS)
+  DCHECK(AreAppsLocallyInstalledBySync());
+#endif
+
+  if (registrar_->IsInstalled(sync_app_id) ||
+      // Note that we call the callback too early here: an enqueued task has not
+      // yet installed the app. This is fine (for now) because |callback| is
+      // only used in tests.
+      IsAppIdAlreadyEnqueued(sync_app_id)) {
+    std::move(callback).Run(
+        sync_app_id, webapps::InstallResultCode::kSuccessAlreadyInstalled);
+    return;
+  }
+
+  // If sync_app_id is not installed enqueue full background installation
+  // flow.
+  GURL start_url = install_info->start_url;
+
+  auto task = std::make_unique<WebAppInstallTask>(
+      profile_, finalizer_, data_retriever_factory_.Run(), registrar_,
+      webapps::WebappInstallSource::SYNC);
+
+  task->ExpectAppId(sync_app_id);
+
+  WebAppInstallParams params;
+  params.force_reinstall = true;
+  params.override_manifest_id = install_info->manifest_id;
+  params.user_display_mode = install_info->user_display_mode;
+  params.fallback_start_url = start_url;
+  params.fallback_app_name = install_info->title;
+  // If app is not locally installed then no OS integration like OS shortcuts.
+  params.locally_installed = AreAppsLocallyInstalledBySync();
+  params.add_to_applications_menu = AreAppsLocallyInstalledBySync();
+  params.add_to_desktop = AreAppsLocallyInstalledBySync();
+  // Never add the app to the quick launch bar after sync.
+  params.add_to_quick_launch_bar = false;
+  task->SetInstallParams(params);
+
+  OnceInstallCallback task_completed_callback = base::BindOnce(
+      &WebAppInstallManager::
+          LoadAndInstallWebAppFromManifestWithFallbackCompleted_ForAppSync,
+      GetWeakPtr(), sync_app_id, std::move(install_info), std::move(callback));
+
+  base::OnceClosure start_task = base::BindOnce(
+      &WebAppInstallTask::LoadAndInstallWebAppFromManifestWithFallback,
+      task->GetWeakPtr(), start_url, EnsureWebContentsCreated(),
+      base::Unretained(url_loader_.get()),
+      base::BindOnce(&WebAppInstallManager::OnQueuedTaskCompleted, GetWeakPtr(),
+                     task.get(), std::move(task_completed_callback)));
+
+  EnqueueTask(std::move(task), std::move(start_task));
+}
+
 std::set<AppId> WebAppInstallManager::GetEnqueuedInstallAppIdsForTesting() {
   std::set<AppId> app_ids;
   if (current_queued_task_ &&
@@ -203,16 +257,23 @@
   if (!started_)
     return;
 
+  if (disable_web_app_sync_install_for_testing_)
+    return;
+
   for (WebApp* web_app : web_apps) {
     DCHECK(web_app->is_from_sync_and_pending_installation());
-    InstallFromSyncCommand::Params params = InstallFromSyncCommand::Params(
-        web_app->app_id(), web_app->manifest_id(), web_app->start_url(),
-        web_app->sync_fallback_data().name, web_app->sync_fallback_data().scope,
-        web_app->sync_fallback_data().theme_color, web_app->user_display_mode(),
-        web_app->sync_fallback_data().icon_infos);
-    command_manager_->ScheduleCommand(std::make_unique<InstallFromSyncCommand>(
-        url_loader_.get(), profile_, finalizer_.get(), registrar_.get(),
-        data_retriever_factory_.Run(), params, callback));
+
+    auto install_info = std::make_unique<WebAppInstallInfo>();
+    install_info->manifest_id = web_app->manifest_id();
+    install_info->start_url = web_app->start_url();
+    install_info->title = base::UTF8ToUTF16(web_app->sync_fallback_data().name);
+    install_info->scope = web_app->sync_fallback_data().scope;
+    install_info->theme_color = web_app->sync_fallback_data().theme_color;
+    install_info->user_display_mode = web_app->user_display_mode();
+    install_info->manifest_icons = web_app->sync_fallback_data().icon_infos;
+
+    EnqueueInstallAppFromSync(web_app->app_id(), std::move(install_info),
+                              callback);
   }
 }
 
@@ -251,6 +312,56 @@
   url_loader_ = std::move(url_loader);
 }
 
+void WebAppInstallManager::
+    LoadAndInstallWebAppFromManifestWithFallbackCompleted_ForAppSync(
+        const AppId& sync_app_id,
+        std::unique_ptr<WebAppInstallInfo> install_info,
+        OnceInstallCallback callback,
+        const AppId& web_app_id,
+        webapps::InstallResultCode code) {
+  // TODO(loyso): Record |code| for this specific case in
+  // Webapp.BookmarkAppInstalledAfterSyncResult UMA.
+  if (IsSuccess(code)) {
+    DCHECK_EQ(sync_app_id, web_app_id);
+    std::move(callback).Run(web_app_id, code);
+    return;
+  }
+
+  // The install task or web contents getting destroyed indicates we could be
+  // shutting down; don't enqueue another task.
+  if (code == webapps::InstallResultCode::kWebContentsDestroyed ||
+      code == webapps::InstallResultCode::kInstallTaskDestroyed || !started_) {
+    return;
+  }
+
+  // Install failed. Do the fallback install from info fetching just icon URLs.
+  auto task = std::make_unique<WebAppInstallTask>(
+      profile_, finalizer_, data_retriever_factory_.Run(), registrar_,
+      webapps::WebappInstallSource::SYNC);
+  // Set the expect app id for fallback install too. This can avoid duplicate
+  // installs.
+  task->ExpectAppId(sync_app_id);
+
+  WebAppInstallFinalizer::FinalizeOptions finalize_options(
+      webapps::WebappInstallSource::SYNC);
+  finalize_options.overwrite_existing_manifest_fields = true;
+  // If app is not locally installed then no OS integration like OS shortcuts.
+  finalize_options.locally_installed = AreAppsLocallyInstalledBySync();
+  finalize_options.add_to_applications_menu = AreAppsLocallyInstalledBySync();
+  finalize_options.add_to_desktop = AreAppsLocallyInstalledBySync();
+  // Never add the app to the quick launch bar after sync.
+  finalize_options.add_to_quick_launch_bar = false;
+
+  base::OnceClosure start_task = base::BindOnce(
+      &WebAppInstallTask::InstallWebAppFromInfoRetrieveIcons,
+      task->GetWeakPtr(), EnsureWebContentsCreated(), std::move(install_info),
+      finalize_options,
+      base::BindOnce(&WebAppInstallManager::OnQueuedTaskCompleted, GetWeakPtr(),
+                     task.get(), std::move(callback)));
+
+  EnqueueTask(std::move(task), std::move(start_task));
+}
+
 void WebAppInstallManager::EnqueueTask(std::unique_ptr<WebAppInstallTask> task,
                                        base::OnceClosure start_task) {
   DCHECK(web_contents_);
diff --git a/chrome/browser/web_applications/web_app_install_manager.h b/chrome/browser/web_applications/web_app_install_manager.h
index e4ce3d9..7b00a08 100644
--- a/chrome/browser/web_applications/web_app_install_manager.h
+++ b/chrome/browser/web_applications/web_app_install_manager.h
@@ -57,7 +57,6 @@
 
   void SetSubsystems(WebAppRegistrar* registrar,
                      OsIntegrationManager* os_integration_manager,
-                     WebAppCommandManager* command_manager,
                      WebAppInstallFinalizer* finalizer);
 
   // Loads |web_app_url| in a new WebContents and determines whether it has a
@@ -78,7 +77,7 @@
   // Returns the number of running web app installations.
   std::size_t GetInstallTaskCountForTesting() const;
 
-  // SyncInstallDelegate:
+  // For the new USS-based system only. SyncInstallDelegate:
   void InstallWebAppsAfterSync(std::vector<WebApp*> web_apps,
                                RepeatingInstallCallback callback) override;
   void UninstallFromSync(const std::vector<AppId>& web_apps,
@@ -128,6 +127,14 @@
       OnceInstallCallback callback);
   bool IsAppIdAlreadyEnqueued(const AppId& app_id) const;
 
+  // On failure will attempt a fallback install only loading icon URLs.
+  void LoadAndInstallWebAppFromManifestWithFallbackCompleted_ForAppSync(
+      const AppId& sync_app_id,
+      std::unique_ptr<WebAppInstallInfo> install_info,
+      OnceInstallCallback callback,
+      const AppId& web_app_id,
+      webapps::InstallResultCode code);
+
   void EnqueueTask(std::unique_ptr<WebAppInstallTask> task,
                    base::OnceClosure start_task);
   void MaybeStartQueuedTask();
@@ -184,7 +191,8 @@
   raw_ptr<WebAppRegistrar> registrar_ = nullptr;
   raw_ptr<OsIntegrationManager> os_integration_manager_ = nullptr;
   raw_ptr<WebAppInstallFinalizer> finalizer_ = nullptr;
-  raw_ptr<WebAppCommandManager> command_manager_ = nullptr;
+
+  bool disable_web_app_sync_install_for_testing_ = false;
 
   // All owned tasks.
   using Tasks = base::flat_set<std::unique_ptr<WebAppInstallTask>,
diff --git a/chrome/browser/web_applications/web_app_install_manager_unittest.cc b/chrome/browser/web_applications/web_app_install_manager_unittest.cc
index d66ea2c1a..f041bc9 100644
--- a/chrome/browser/web_applications/web_app_install_manager_unittest.cc
+++ b/chrome/browser/web_applications/web_app_install_manager_unittest.cc
@@ -51,7 +51,6 @@
 #include "components/webapps/browser/install_result_code.h"
 #include "components/webapps/browser/installable/installable_metrics.h"
 #include "components/webapps/browser/uninstall_result_code.h"
-#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared.h"
 #include "third_party/blink/public/mojom/manifest/manifest.mojom.h"
@@ -67,12 +66,87 @@
 
 namespace {
 
+constexpr SquareSizePx kDefaultImageSize = 100;
+constexpr char kIconUrl[] = "https://example.com/app.ico";
+
+std::unique_ptr<WebAppInstallInfo> ConvertWebAppToRendererWebAppInstallInfo(
+    const WebApp& app) {
+  auto install_info = std::make_unique<WebAppInstallInfo>();
+  // Most fields are expected to be populated by a manifest data in a subsequent
+  // override install process data flow. TODO(loyso): Make it more robust.
+  install_info->description = base::UTF8ToUTF16(app.untranslated_description());
+  // |user_display_mode| is a user's display mode value and it is typically
+  // populated by a UI dialog in production code. We set it here for testing
+  // purposes.
+  CHECK(app.user_display_mode().has_value());
+  install_info->user_display_mode = *app.user_display_mode();
+  return install_info;
+}
+
+std::vector<blink::Manifest::ImageResource> ConvertWebAppIconsToImageResources(
+    const WebApp& app) {
+  std::vector<blink::Manifest::ImageResource> icons;
+  for (const apps::IconInfo& icon_info : app.manifest_icons()) {
+    blink::Manifest::ImageResource icon;
+    icon.src = icon_info.url;
+    // TODO(estade): remove this cast.
+    icon.purpose.push_back(static_cast<IconPurpose>(icon_info.purpose));
+    icon.sizes.emplace_back(
+        icon_info.square_size_px.value_or(kDefaultImageSize),
+        icon_info.square_size_px.value_or(kDefaultImageSize));
+    icons.push_back(std::move(icon));
+  }
+  return icons;
+}
+
+blink::mojom::ManifestPtr ConvertWebAppToManifest(const WebApp& app) {
+  auto manifest = blink::mojom::Manifest::New();
+  manifest->start_url = app.start_url();
+  manifest->scope = app.start_url();
+  manifest->short_name = u"Short Name to be overriden.";
+  manifest->name = base::UTF8ToUTF16(app.untranslated_name());
+  if (app.theme_color()) {
+    manifest->has_theme_color = true;
+    manifest->theme_color = *app.theme_color();
+  }
+  manifest->display = app.display_mode();
+  manifest->icons = ConvertWebAppIconsToImageResources(app);
+  return manifest;
+}
+
+IconsMap ConvertWebAppIconsToIconsMap(const WebApp& app) {
+  IconsMap icons_map;
+  for (const apps::IconInfo& icon_info : app.manifest_icons()) {
+    icons_map[icon_info.url] = {CreateSquareIcon(
+        icon_info.square_size_px.value_or(kDefaultImageSize), SK_ColorBLACK)};
+  }
+  return icons_map;
+}
+
+std::unique_ptr<WebAppDataRetriever> ConvertWebAppToDataRetriever(
+    const WebApp& app) {
+  auto data_retriever = std::make_unique<FakeDataRetriever>();
+
+  data_retriever->SetRendererWebAppInstallInfo(
+      ConvertWebAppToRendererWebAppInstallInfo(app));
+  data_retriever->SetManifest(ConvertWebAppToManifest(app),
+                              /*is_installable=*/true);
+  data_retriever->SetIcons(ConvertWebAppIconsToIconsMap(app));
+
+  return std::unique_ptr<WebAppDataRetriever>(std::move(data_retriever));
+}
+
+std::unique_ptr<WebAppDataRetriever> CreateEmptyDataRetriever() {
+  auto data_retriever = std::make_unique<FakeDataRetriever>();
+  return std::unique_ptr<WebAppDataRetriever>(std::move(data_retriever));
+}
+
 std::unique_ptr<WebAppInstallTask> CreateDummyTask() {
   return std::make_unique<WebAppInstallTask>(
       /*profile=*/nullptr,
       /*install_finalizer=*/nullptr,
       /*data_retriever=*/nullptr,
-      /*registrar=*/nullptr, webapps::WebappInstallSource::EXTERNAL_DEFAULT);
+      /*registrar=*/nullptr, webapps::WebappInstallSource::SYNC);
 }
 
 // TODO(crbug.com/1194709): Retire SyncParam after Lacros ships.
@@ -118,10 +192,11 @@
     install_finalizer_ = std::make_unique<WebAppInstallFinalizer>(profile());
 
     install_manager_ = std::make_unique<WebAppInstallManager>(profile());
-    install_manager_->SetSubsystems(
-        &registrar(), &controller().os_integration_manager(),
-        &fake_registry_controller_->command_manager(),
-        install_finalizer_.get());
+    install_manager_->SetSubsystems(&registrar(),
+                                    &controller().os_integration_manager(),
+                                    install_finalizer_.get());
+
+    command_manager_ = std::make_unique<WebAppCommandManager>(profile());
 
     auto test_url_loader = std::make_unique<TestWebAppUrlLoader>();
 
@@ -146,9 +221,7 @@
   }
 
   WebAppRegistrar& registrar() { return controller().registrar(); }
-  WebAppCommandManager& command_manager() {
-    return fake_registry_controller_->command_manager();
-  }
+  WebAppCommandManager& command_manager() { return *command_manager_; }
   WebAppInstallManager& install_manager() { return *install_manager_; }
   WebAppInstallFinalizer& finalizer() { return *install_finalizer_; }
   WebAppIconManager& icon_manager() { return *icon_manager_; }
@@ -245,6 +318,21 @@
     return result;
   }
 
+  InstallResult InstallWebAppsAfterSync(std::vector<WebApp*> web_apps) {
+    InstallResult result;
+    base::RunLoop run_loop;
+    install_manager().InstallWebAppsAfterSync(
+        std::move(web_apps),
+        base::BindLambdaForTesting(
+            [&](const AppId& app_id, webapps::InstallResultCode code) {
+              result.app_id = app_id;
+              result.code = code;
+              run_loop.Quit();
+            }));
+    run_loop.Run();
+    return result;
+  }
+
   InstallResult InstallWebAppFromInfo(
       std::unique_ptr<WebAppInstallInfo> install_info,
       bool overwrite_existing_manifest_fields,
@@ -336,17 +424,10 @@
   }
 
   void DestroyManagers() {
-    if (ui_manager_)
-      ui_manager_->Shutdown();
-    if (install_manager_)
-      install_manager_->Shutdown();
-    if (icon_manager_)
-      icon_manager_->Shutdown();
-    if (install_finalizer_)
-      install_finalizer_->Shutdown();
-    if (fake_registry_controller_)
-      fake_registry_controller_->DestroySubsystems();
-
+    // The reverse order of creation:
+    if (command_manager_)
+      command_manager_->Shutdown();
+    command_manager_.reset();
     ui_manager_.reset();
     policy_manager_.reset();
     icon_manager_.reset();
@@ -380,6 +461,7 @@
   std::unique_ptr<FakeWebAppUiManager> ui_manager_;
   std::unique_ptr<ExternallyInstalledWebAppPrefs>
       externally_installed_app_prefs_;
+  std::unique_ptr<WebAppCommandManager> command_manager_;
 
   // A weak ptr. The original is owned by install_manager_.
   raw_ptr<TestWebAppUrlLoader> test_url_loader_ = nullptr;
@@ -389,6 +471,379 @@
 using WebAppInstallManagerTest_SyncOnly = WebAppInstallManagerTest;
 
 TEST_P(WebAppInstallManagerTest_SyncOnly,
+       InstallWebAppsAfterSync_TwoConcurrentInstallsAreRunInOrder) {
+  url_loader().AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded,
+                                         WebAppUrlLoader::Result::kUrlLoaded});
+
+  const GURL url1{"https://example.com/path"};
+  const AppId app1_id = GenerateAppId(/*manifest_id=*/absl::nullopt, url1);
+
+  const GURL url2{"https://example.org/path"};
+  const AppId app2_id = GenerateAppId(/*manifest_id=*/absl::nullopt, url2);
+  {
+    std::unique_ptr<WebApp> app1 = CreateWebAppFromSyncAndPendingInstallation(
+        url1, "Name1 from sync", UserDisplayMode::kStandalone, SK_ColorRED,
+        /*is_locally_installed=*/false, /*scope=*/GURL(), /*icon_infos=*/{});
+
+    std::unique_ptr<WebApp> app2 = CreateWebAppFromSyncAndPendingInstallation(
+        url2, "Name2 from sync", UserDisplayMode::kBrowser, SK_ColorGREEN,
+        /*is_locally_installed=*/true, /*scope=*/GURL(), /*icon_infos=*/{});
+
+    Registry registry;
+    registry.emplace(app1_id, std::move(app1));
+    registry.emplace(app2_id, std::move(app2));
+
+    InitRegistrarWithRegistry(registry);
+  }
+
+  // 1 InstallTask == 1 DataRetriever, their lifetime matches.
+  base::flat_set<FakeDataRetriever*> task_data_retrievers;
+
+  base::RunLoop app1_installed_run_loop;
+  base::RunLoop app2_installed_run_loop;
+
+  enum class Event {
+    Task1_Queued,
+    Task2_Queued,
+    Task1_Started,
+    Task1_Completed,
+    App1_CallbackCalled,
+    Task2_Started,
+    Task2_Completed,
+    App2_CallbackCalled,
+  };
+
+  std::vector<Event> event_order;
+
+  int task_index = 0;
+
+  install_manager().SetDataRetrieverFactoryForTesting(
+      base::BindLambdaForTesting([&]() {
+        auto data_retriever = std::make_unique<FakeDataRetriever>();
+        task_index++;
+
+        GURL start_url = task_index == 1 ? url1 : url2;
+        data_retriever->BuildDefaultDataToRetrieve(start_url,
+                                                   /*scope=*/start_url);
+
+        FakeDataRetriever* data_retriever_ptr = data_retriever.get();
+        task_data_retrievers.insert(data_retriever_ptr);
+
+        event_order.push_back(task_index == 1 ? Event::Task1_Queued
+                                              : Event::Task2_Queued);
+
+        // Every InstallTask starts with WebAppDataRetriever::GetIcons step.
+        data_retriever->SetGetIconsDelegate(base::BindLambdaForTesting(
+            [&, task_index](content::WebContents* web_contents,
+                            const std::vector<GURL>& icon_urls,
+                            bool skip_page_favicons) {
+              event_order.push_back(task_index == 1 ? Event::Task1_Started
+                                                    : Event::Task2_Started);
+              IconsMap icons_map;
+              AddIconToIconsMap(GURL(kIconUrl), icon_size::k256, SK_ColorBLUE,
+                                &icons_map);
+              return icons_map;
+            }));
+
+        // Every InstallTask ends with WebAppDataRetriever destructor.
+        data_retriever->SetDestructionCallback(
+            base::BindLambdaForTesting([&task_data_retrievers, &event_order,
+                                        data_retriever_ptr, task_index]() {
+              event_order.push_back(task_index == 1 ? Event::Task1_Completed
+                                                    : Event::Task2_Completed);
+              task_data_retrievers.erase(data_retriever_ptr);
+            }));
+
+        return std::unique_ptr<WebAppDataRetriever>(std::move(data_retriever));
+      }));
+
+  EXPECT_FALSE(install_manager().has_web_contents_for_testing());
+
+  WebApp* web_app1 =
+      controller().mutable_registrar().GetAppByIdMutable(app1_id);
+  WebApp* web_app2 =
+      controller().mutable_registrar().GetAppByIdMutable(app2_id);
+  ASSERT_TRUE(web_app1);
+  ASSERT_TRUE(web_app2);
+
+  url_loader().SetNextLoadUrlResult(url1, WebAppUrlLoader::Result::kUrlLoaded);
+  url_loader().SetNextLoadUrlResult(url2, WebAppUrlLoader::Result::kUrlLoaded);
+
+  // Enqueue a request to install the 1st app.
+  install_manager().InstallWebAppsAfterSync(
+      {web_app1},
+      base::BindLambdaForTesting(
+          [&](const AppId& installed_app_id, webapps::InstallResultCode code) {
+            EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, code);
+            EXPECT_EQ(app1_id, installed_app_id);
+            event_order.push_back(Event::App1_CallbackCalled);
+            app1_installed_run_loop.Quit();
+          }));
+
+  EXPECT_TRUE(install_manager().has_web_contents_for_testing());
+  EXPECT_EQ(0, GetNumFullyInstalledApps());
+  EXPECT_EQ(1u, task_data_retrievers.size());
+
+  // Immediately enqueue a request to install the 2nd app, WebContents is not
+  // ready.
+  install_manager().InstallWebAppsAfterSync(
+      {web_app2},
+      base::BindLambdaForTesting(
+          [&](const AppId& installed_app_id, webapps::InstallResultCode code) {
+            EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, code);
+            EXPECT_EQ(app2_id, installed_app_id);
+            event_order.push_back(Event::App2_CallbackCalled);
+            app2_installed_run_loop.Quit();
+          }));
+
+  EXPECT_TRUE(install_manager().has_web_contents_for_testing());
+  EXPECT_EQ(2u, task_data_retrievers.size());
+  EXPECT_EQ(0, GetNumFullyInstalledApps());
+
+  // Wait for the 1st app installed.
+  app1_installed_run_loop.Run();
+  EXPECT_TRUE(install_manager().has_web_contents_for_testing());
+  EXPECT_EQ(1u, task_data_retrievers.size());
+  EXPECT_EQ(1, GetNumFullyInstalledApps());
+
+  // Wait for the 2nd app installed.
+  app2_installed_run_loop.Run();
+  EXPECT_FALSE(install_manager().has_web_contents_for_testing());
+  EXPECT_EQ(0u, task_data_retrievers.size());
+  EXPECT_EQ(2, GetNumFullyInstalledApps());
+
+  const std::vector<Event> expected_event_order{
+      Event::Task1_Queued,    Event::Task2_Queued,        Event::Task1_Started,
+      Event::Task1_Completed, Event::App1_CallbackCalled, Event::Task2_Started,
+      Event::Task2_Completed, Event::App2_CallbackCalled,
+  };
+
+  EXPECT_EQ(expected_event_order, event_order);
+}
+
+TEST_P(WebAppInstallManagerTest_SyncOnly,
+       InstallWebAppsAfterSync_InstallManagerDestroyed) {
+  const GURL start_url{"https://example.com/path"};
+  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, start_url);
+
+  {
+    std::unique_ptr<WebApp> app_in_sync_install =
+        CreateWebAppFromSyncAndPendingInstallation(
+            start_url, "Name from sync", UserDisplayMode::kStandalone,
+            SK_ColorRED,
+            /*is_locally_installed=*/true, /*scope=*/GURL(), /*icon_infos=*/{});
+
+    InitRegistrarWithApp(std::move(app_in_sync_install));
+  }
+
+  base::RunLoop run_loop;
+
+  install_manager().SetDataRetrieverFactoryForTesting(
+      base::BindLambdaForTesting([&]() {
+        auto data_retriever = std::make_unique<FakeDataRetriever>();
+        data_retriever->BuildDefaultDataToRetrieve(start_url,
+                                                   /*scope=*/start_url);
+
+        // Every InstallTask starts with WebAppDataRetriever::GetIcons step.
+        data_retriever->SetGetIconsDelegate(base::BindLambdaForTesting(
+            [&](content::WebContents* web_contents,
+                const std::vector<GURL>& icon_urls, bool skip_page_favicons) {
+              run_loop.Quit();
+
+              IconsMap icons_map;
+              AddIconToIconsMap(GURL(kIconUrl), icon_size::k256, SK_ColorBLUE,
+                                &icons_map);
+              return icons_map;
+            }));
+
+        return std::unique_ptr<WebAppDataRetriever>(std::move(data_retriever));
+      }));
+
+  WebApp* web_app = controller().mutable_registrar().GetAppByIdMutable(app_id);
+
+  url_loader().AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
+  url_loader().SetNextLoadUrlResult(start_url,
+                                    WebAppUrlLoader::Result::kUrlLoaded);
+
+  bool callback_called = false;
+  install_manager().InstallWebAppsAfterSync(
+      {web_app},
+      base::BindLambdaForTesting(
+          [&](const AppId& installed_app_id, webapps::InstallResultCode code) {
+            callback_called = true;
+          }));
+  EXPECT_TRUE(install_manager().has_web_contents_for_testing());
+
+  // Wait for the task to start.
+  run_loop.Run();
+  EXPECT_TRUE(install_manager().has_web_contents_for_testing());
+
+  // Simulate Profile getting destroyed.
+  DestroyManagers();
+
+  EXPECT_FALSE(callback_called);
+}
+
+TEST_P(WebAppInstallManagerTest_SyncOnly, InstallWebAppsAfterSync_Success) {
+  const std::string url_path{"https://example.com/path"};
+  const GURL url{url_path};
+
+  bool expect_locally_installed = AreAppsLocallyInstalledBySync();
+
+  const std::unique_ptr<WebApp> expected_app =
+      test::CreateWebApp(url, WebAppManagement::kSync);
+  expected_app->SetIsFromSyncAndPendingInstallation(false);
+  expected_app->SetScope(url);
+  expected_app->SetName("Name");
+  expected_app->SetIsLocallyInstalled(expect_locally_installed);
+  expected_app->SetInstallSourceForMetrics(webapps::WebappInstallSource::SYNC);
+  expected_app->SetDescription("Description");
+  expected_app->SetThemeColor(SK_ColorCYAN);
+  expected_app->SetDisplayMode(DisplayMode::kBrowser);
+  expected_app->SetUserDisplayMode(UserDisplayMode::kStandalone);
+
+  std::vector<apps::IconInfo> manifest_icons;
+  std::vector<int> sizes;
+  for (int size : SizesToGenerate()) {
+    apps::IconInfo icon_info;
+    icon_info.square_size_px = size;
+    icon_info.url =
+        GURL{url_path + "/icon" + base::NumberToString(size) + ".png"};
+    manifest_icons.push_back(std::move(icon_info));
+    sizes.push_back(size);
+  }
+  expected_app->SetManifestIcons(std::move(manifest_icons));
+  expected_app->SetDownloadedIconSizes(IconPurpose::ANY, std::move(sizes));
+
+  {
+    WebApp::SyncFallbackData sync_fallback_data;
+    sync_fallback_data.name = "Name";
+    sync_fallback_data.theme_color = SK_ColorCYAN;
+    sync_fallback_data.scope = url;
+    sync_fallback_data.icon_infos = expected_app->manifest_icons();
+    expected_app->SetSyncFallbackData(std::move(sync_fallback_data));
+  }
+
+  ASSERT_TRUE(expected_app->user_display_mode().has_value());
+
+  std::unique_ptr<const WebApp> app_in_sync_install =
+      CreateWebAppFromSyncAndPendingInstallation(
+          expected_app->start_url(), "Name from sync",
+          expected_app->user_display_mode(), SK_ColorRED,
+          expected_app->is_locally_installed(), expected_app->scope(),
+          expected_app->manifest_icons());
+
+  // Init using a copy.
+  InitRegistrarWithApp(std::make_unique<WebApp>(*app_in_sync_install));
+
+  WebApp* app = controller().mutable_registrar().GetAppByIdMutable(
+      expected_app->app_id());
+
+  url_loader().AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
+  url_loader().SetNextLoadUrlResult(url, WebAppUrlLoader::Result::kUrlLoaded);
+
+  install_manager().SetDataRetrieverFactoryForTesting(
+      base::BindLambdaForTesting([&expected_app]() {
+        return ConvertWebAppToDataRetriever(*expected_app);
+      }));
+
+  InstallResult result = InstallWebAppsAfterSync({app});
+  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code);
+  EXPECT_EQ(app->app_id(), result.app_id);
+
+  EXPECT_EQ(1u, registrar().GetAppIds().size());
+  EXPECT_EQ(app, registrar().GetAppById(expected_app->app_id()));
+
+  EXPECT_NE(*app_in_sync_install, *app);
+  EXPECT_NE(app_in_sync_install->sync_fallback_data(),
+            app->sync_fallback_data());
+
+  EXPECT_EQ(*expected_app, *app);
+}
+
+TEST_P(WebAppInstallManagerTest_SyncOnly, InstallWebAppsAfterSync_Fallback) {
+  const GURL url{"https://example.com/path"};
+
+  bool expect_locally_installed = AreAppsLocallyInstalledBySync();
+
+  const std::unique_ptr<WebApp> expected_app =
+      test::CreateWebApp(url, WebAppManagement::kSync);
+  expected_app->SetIsFromSyncAndPendingInstallation(false);
+  expected_app->SetName("Name from sync");
+  expected_app->SetScope(url);
+  expected_app->SetDisplayMode(DisplayMode::kBrowser);
+  expected_app->SetUserDisplayMode(UserDisplayMode::kBrowser);
+  expected_app->SetIsLocallyInstalled(expect_locally_installed);
+  expected_app->SetInstallSourceForMetrics(webapps::WebappInstallSource::SYNC);
+  expected_app->SetThemeColor(SK_ColorRED);
+  // |scope| and |description| are empty here. |display_mode| is |kUndefined|.
+
+  std::vector<apps::IconInfo> manifest_icons;
+  std::vector<int> sizes;
+  for (int size : SizesToGenerate()) {
+    apps::IconInfo icon_info;
+    icon_info.square_size_px = size;
+    icon_info.url =
+        GURL{url.spec() + "/icon" + base::NumberToString(size) + ".png"};
+    manifest_icons.push_back(std::move(icon_info));
+    sizes.push_back(size);
+  }
+  expected_app->SetManifestIcons(std::move(manifest_icons));
+  expected_app->SetDownloadedIconSizes(IconPurpose::ANY, std::move(sizes));
+  expected_app->SetIsGeneratedIcon(true);
+
+  {
+    WebApp::SyncFallbackData sync_fallback_data;
+    sync_fallback_data.name = "Name from sync";
+    sync_fallback_data.theme_color = SK_ColorRED;
+    sync_fallback_data.scope = expected_app->scope();
+    sync_fallback_data.icon_infos = expected_app->manifest_icons();
+    expected_app->SetSyncFallbackData(std::move(sync_fallback_data));
+  }
+
+  std::unique_ptr<const WebApp> app_in_sync_install =
+      CreateWebAppFromSyncAndPendingInstallation(
+          expected_app->start_url(), expected_app->untranslated_name(),
+          expected_app->user_display_mode(),
+          expected_app->theme_color().value(),
+          expected_app->is_locally_installed(), expected_app->scope(),
+          expected_app->manifest_icons());
+
+  // Init using a copy.
+  InitRegistrarWithApp(std::make_unique<WebApp>(*app_in_sync_install));
+
+  WebApp* app = controller().mutable_registrar().GetAppByIdMutable(
+      expected_app->app_id());
+
+  // Simulate if the web app publisher's website is down.
+  url_loader().SetNextLoadUrlResult(
+      url, WebAppUrlLoader::Result::kFailedPageTookTooLong);
+  // about:blank will be loaded twice, one for the initial attempt and one for
+  // the fallback attempt.
+  url_loader().AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded,
+                                         WebAppUrlLoader::Result::kUrlLoaded});
+
+  install_manager().SetDataRetrieverFactoryForTesting(
+      base::BindLambdaForTesting([]() {
+        // The data retrieval stage must not be reached if url fails to load.
+        return CreateEmptyDataRetriever();
+      }));
+
+  InstallResult result = InstallWebAppsAfterSync({app});
+  EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code);
+  EXPECT_EQ(app->app_id(), result.app_id);
+
+  EXPECT_EQ(1u, registrar().GetAppIds().size());
+  EXPECT_EQ(app, registrar().GetAppById(expected_app->app_id()));
+
+  EXPECT_NE(*app_in_sync_install, *app);
+  EXPECT_EQ(app_in_sync_install->sync_fallback_data(),
+            app->sync_fallback_data());
+
+  EXPECT_EQ(*expected_app, *app);
+}
+
+TEST_P(WebAppInstallManagerTest_SyncOnly,
        UninstallFromSyncAfterRegistryUpdate) {
   std::unique_ptr<WebApp> app = test::CreateWebApp(
       GURL("https://example.com/path"), WebAppManagement::kSync);
@@ -796,13 +1251,17 @@
 
     synced_specifics_data->SetSyncFallbackData(std::move(sync_fallback_data));
 
+    // `SyncInstallDelegate::InstallWebAppsAfterSync()` must not be called.
+    controller().SetInstallWebAppsAfterSyncDelegate(base::BindLambdaForTesting(
+        [&](std::vector<WebApp*> apps_to_install,
+            FakeWebAppRegistryController::RepeatingInstallCallback callback) {
+          ADD_FAILURE();
+        }));
+
     std::vector<std::unique_ptr<WebApp>> add_synced_apps_data;
     add_synced_apps_data.push_back(std::move(synced_specifics_data));
     sync_bridge_test_utils::AddApps(controller().sync_bridge(),
                                     add_synced_apps_data);
-    // No apps installs should be triggered.
-    EXPECT_THAT(registrar().GetAppsFromSyncAndPendingInstallation(),
-                testing::IsEmpty());
   }
 
   EXPECT_EQ(web_app, registrar().GetAppById(app_id));
diff --git a/chrome/browser/web_applications/web_app_install_task.cc b/chrome/browser/web_applications/web_app_install_task.cc
index 2573198a..b5a3f7c2 100644
--- a/chrome/browser/web_applications/web_app_install_task.cc
+++ b/chrome/browser/web_applications/web_app_install_task.cc
@@ -14,6 +14,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "chrome/browser/web_applications/install_bounce_metric.h"
@@ -25,7 +26,6 @@
 #include "chrome/browser/web_applications/web_app_install_task.h"
 #include "chrome/browser/web_applications/web_app_install_utils.h"
 #include "chrome/browser/web_applications/web_app_registrar.h"
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
 #include "chrome/browser/web_applications/web_app_url_loader.h"
 #include "chrome/browser/web_applications/web_app_utils.h"
 #include "chrome/common/chrome_features.h"
@@ -77,6 +77,24 @@
 constexpr bool kAddAppsToQuickLaunchBarByDefault = true;
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
+bool IsEmptyIconBitmapsForIconUrl(const IconsMap& icons_map,
+                                  const GURL& icon_url) {
+  IconsMap::const_iterator iter = icons_map.find(icon_url);
+  if (iter == icons_map.end())
+    return true;
+
+  const std::vector<SkBitmap>& icon_bitmaps = iter->second;
+  if (icon_bitmaps.empty())
+    return true;
+
+  for (const SkBitmap& icon_bitmap : icon_bitmaps) {
+    if (!icon_bitmap.isNull() && !icon_bitmap.drawsNothing())
+      return false;
+  }
+
+  return true;
+}
+
 #if BUILDFLAG(IS_CHROMEOS)
 struct PlayStoreIntent {
   std::string app_id;
@@ -152,11 +170,9 @@
       install_finalizer_(install_finalizer),
       profile_(profile),
       registrar_(registrar),
-      install_surface_(install_surface),
-      log_entry_(/*background_installation=*/false, install_surface) {
-  DCHECK_NE(install_surface_, webapps::WebappInstallSource::SYNC);
-  // Note: background_installation in the log entry is updated later in the
-  // install method calls.
+      install_surface_(install_surface) {
+  if (base::FeatureList::IsEnabled(features::kRecordWebAppDebugInfo))
+    error_dict_ = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
 }
 
 WebAppInstallTask::~WebAppInstallTask() {
@@ -252,6 +268,28 @@
       base::BindOnce(&WebAppInstallTask::OnGetWebAppInstallInfo, GetWeakPtr()));
 }
 
+void WebAppInstallTask::LoadAndInstallWebAppFromManifestWithFallback(
+    const GURL& launch_url,
+    content::WebContents* contents,
+    WebAppUrlLoader* url_loader,
+    OnceInstallCallback install_callback) {
+  DCHECK(AreWebAppsUserInstallable(profile_));
+  CheckInstallPreconditions();
+
+  Observe(contents);
+  if (ShouldStopInstall())
+    return;
+
+  background_installation_ = true;
+  install_callback_ = std::move(install_callback);
+
+  url_loader->LoadUrl(
+      launch_url, contents,
+      WebAppUrlLoader::UrlComparison::kIgnoreQueryParamsAndRef,
+      base::BindOnce(&WebAppInstallTask::OnWebAppUrlLoadedGetWebAppInstallInfo,
+                     GetWeakPtr(), launch_url));
+}
+
 void WebAppInstallTask::LoadAndInstallSubAppFromURL(
     const GURL& install_url,
     content::WebContents* contents,
@@ -265,7 +303,6 @@
     return;
 
   background_installation_ = true;
-  log_entry_.set_background_installation(true);
   install_callback_ = std::move(install_callback);
 
   url_loader->LoadUrl(
@@ -317,7 +354,6 @@
     ApplyParamsToWebAppInstallInfo(*install_params_, *web_app_install_info);
 
   background_installation_ = true;
-  log_entry_.set_background_installation(true);
   install_callback_ = std::move(callback);
 
   RecordInstallEvent();
@@ -348,7 +384,6 @@
   SetInstallParams(install_params);
   install_callback_ = std::move(install_callback);
   background_installation_ = true;
-  log_entry_.set_background_installation(true);
 
   data_retriever_->GetWebAppInstallInfo(
       web_contents(),
@@ -363,7 +398,6 @@
 
   retrieve_info_callback_ = std::move(callback);
   background_installation_ = true;
-  log_entry_.set_background_installation(true);
   only_retrieve_web_app_install_info_ = true;
 
   web_contents_ = CreateWebContents(profile_);
@@ -402,8 +436,10 @@
 }
 
 base::Value WebAppInstallTask::TakeErrorDict() {
-  DCHECK(log_entry_.HasErrorDict());
-  return log_entry_.TakeErrorDict();
+  DCHECK(error_dict_);
+  base::Value error_dict = std::move(*error_dict_);
+  error_dict_->DictClear();
+  return error_dict;
 }
 
 void WebAppInstallTask::CheckInstallPreconditions() {
@@ -459,10 +495,8 @@
   if (ShouldStopInstall())
     return;
 
-  if (result != WebAppUrlLoader::Result::kUrlLoaded) {
-    log_entry_.LogUrlLoaderError("OnWebAppUrlLoaded", url_to_load.spec(),
-                                 result);
-  }
+  if (result != WebAppUrlLoader::Result::kUrlLoaded)
+    LogUrlLoaderError("OnWebAppUrlLoaded", url_to_load.spec(), result);
 
   if (result == WebAppUrlLoader::Result::kRedirectedUrlLoaded) {
     CallInstallCallback(AppId(),
@@ -494,10 +528,8 @@
   if (ShouldStopInstall())
     return;
 
-  if (result != WebAppUrlLoader::Result::kUrlLoaded) {
-    log_entry_.LogUrlLoaderError("OnWebAppUrlLoaded", url_to_load.spec(),
-                                 result);
-  }
+  if (result != WebAppUrlLoader::Result::kUrlLoaded)
+    LogUrlLoaderError("OnWebAppUrlLoaded", url_to_load.spec(), result);
 
   if (result == WebAppUrlLoader::Result::kRedirectedUrlLoaded) {
     CallInstallCallback(AppId(),
@@ -593,10 +625,8 @@
   Observe(contents);
 
   dialog_callback_ = std::move(dialog_callback);
-  if (dialog_callback_.is_null()) {
+  if (dialog_callback_.is_null())
     background_installation_ = true;
-    log_entry_.set_background_installation(true);
-  }
   install_callback_ = std::move(install_callback);
 
   if (install_params.has_value())
@@ -635,9 +665,8 @@
 
   // Does the app_id expectation check if requested.
   if (expected_app_id_.has_value() && *expected_app_id_ != app_id) {
-    log_entry_.LogExpectedAppIdError("OnDidPerformInstallableCheck",
-                                     web_app_info->start_url.spec(), app_id,
-                                     expected_app_id_.value());
+    LogExpectedAppIdError("OnDidPerformInstallableCheck",
+                          web_app_info->start_url.spec(), app_id);
     CallInstallCallback(std::move(app_id),
                         webapps::InstallResultCode::kExpectedAppIdCheckFailed);
     return;
@@ -787,6 +816,33 @@
 }
 #endif
 
+void WebAppInstallTask::InstallWebAppFromInfoRetrieveIcons(
+    content::WebContents* web_contents,
+    std::unique_ptr<WebAppInstallInfo> web_app_install_info,
+    WebAppInstallFinalizer::FinalizeOptions finalize_options,
+    OnceInstallCallback callback) {
+  CheckInstallPreconditions();
+
+  Observe(web_contents);
+  if (ShouldStopInstall())
+    return;
+
+  install_callback_ = std::move(callback);
+  install_surface_ = finalize_options.install_surface;
+  background_installation_ = true;
+
+  std::vector<GURL> icon_urls =
+      GetValidIconUrlsToDownload(*web_app_install_info);
+
+  // Skip downloading the page favicons as everything in is the URL list.
+  data_retriever_->GetIcons(
+      web_contents, std::move(icon_urls),
+      /*skip_page_favicons=*/true,
+      base::BindOnce(&WebAppInstallTask::OnIconsRetrieved, GetWeakPtr(),
+                     std::move(web_app_install_info),
+                     std::move(finalize_options)));
+}
+
 void WebAppInstallTask::OnIconsRetrieved(
     std::unique_ptr<WebAppInstallInfo> web_app_info,
     WebAppInstallFinalizer::FinalizeOptions finalize_options,
@@ -804,8 +860,8 @@
   PopulateOtherIcons(web_app_info.get(), icons_map);
 
   RecordDownloadedIconsResultAndHttpStatusCodes(result, icons_http_results);
-  log_entry_.LogDownloadedIconsErrors(*web_app_info, result, icons_map,
-                                      icons_http_results);
+  LogDownloadedIconsErrors(*web_app_info, result, icons_map,
+                           icons_http_results);
 
   install_finalizer_->FinalizeInstall(
       *web_app_info, std::move(finalize_options),
@@ -826,8 +882,8 @@
   PopulateOtherIcons(web_app_info.get(), icons_map);
 
   RecordDownloadedIconsResultAndHttpStatusCodes(result, icons_http_results);
-  log_entry_.LogDownloadedIconsErrors(*web_app_info, result, icons_map,
-                                      icons_http_results);
+  LogDownloadedIconsErrors(*web_app_info, result, icons_map,
+                           icons_http_results);
 
   if (background_installation_) {
     DCHECK(!dialog_callback_);
@@ -891,7 +947,9 @@
     finalize_options.add_to_applications_menu = true;
     finalize_options.add_to_desktop = true;
     finalize_options.add_to_quick_launch_bar =
-        kAddAppsToQuickLaunchBarByDefault;
+        install_surface_ == webapps::WebappInstallSource::SYNC
+            ? false
+            : kAddAppsToQuickLaunchBarByDefault;
   }
 
   install_finalizer_->FinalizeInstall(
@@ -952,12 +1010,126 @@
 void WebAppInstallTask::RecordDownloadedIconsResultAndHttpStatusCodes(
     IconsDownloadedResult result,
     const DownloadedIconsHttpResults& icons_http_results) {
-  RecordDownloadedIconsHttpResultsCodeClass(
-      "WebApp.Icon.HttpStatusCodeClassOnCreate", result, icons_http_results);
+  if (install_surface_ == webapps::WebappInstallSource::SYNC) {
+    RecordDownloadedIconsHttpResultsCodeClass(
+        "WebApp.Icon.HttpStatusCodeClassOnSync", result, icons_http_results);
 
-  UMA_HISTOGRAM_ENUMERATION("WebApp.Icon.DownloadedResultOnCreate", result);
-  RecordDownloadedIconHttpStatusCodes(
-      "WebApp.Icon.DownloadedHttpStatusCodeOnCreate", icons_http_results);
+    UMA_HISTOGRAM_ENUMERATION("WebApp.Icon.DownloadedResultOnSync", result);
+    RecordDownloadedIconHttpStatusCodes(
+        "WebApp.Icon.DownloadedHttpStatusCodeOnSync", icons_http_results);
+  } else {
+    RecordDownloadedIconsHttpResultsCodeClass(
+        "WebApp.Icon.HttpStatusCodeClassOnCreate", result, icons_http_results);
+
+    UMA_HISTOGRAM_ENUMERATION("WebApp.Icon.DownloadedResultOnCreate", result);
+    RecordDownloadedIconHttpStatusCodes(
+        "WebApp.Icon.DownloadedHttpStatusCodeOnCreate", icons_http_results);
+  }
+}
+
+void WebAppInstallTask::LogHeaderIfLogEmpty(const std::string& url) {
+  if (!error_dict_ || !error_dict_->DictEmpty())
+    return;
+
+  error_dict_->SetStringKey("!url", url);
+  error_dict_->SetIntKey("install_surface", static_cast<int>(install_surface_));
+  error_dict_->SetBoolKey("background_installation", background_installation_);
+  error_dict_->SetKey("stages", base::Value(base::Value::Type::LIST));
+
+  DCHECK(!error_dict_->DictEmpty());
+}
+
+void WebAppInstallTask::LogErrorObject(const char* stage,
+                                       const std::string& url,
+                                       base::Value object) {
+  if (!error_dict_)
+    return;
+
+  LogHeaderIfLogEmpty(url);
+
+  object.SetStringKey("!stage", stage);
+  error_dict_->FindKey("stages")->Append(std::move(object));
+}
+
+void WebAppInstallTask::LogUrlLoaderError(const char* stage,
+                                          const std::string& url,
+                                          WebAppUrlLoader::Result result) {
+  if (!error_dict_)
+    return;
+
+  base::Value url_loader_error(base::Value::Type::DICTIONARY);
+
+  url_loader_error.SetStringKey("WebAppUrlLoader::Result",
+                                ConvertUrlLoaderResultToString(result));
+
+  LogErrorObject(stage, url, std::move(url_loader_error));
+}
+
+void WebAppInstallTask::LogExpectedAppIdError(const char* stage,
+                                              const std::string& url,
+                                              const AppId& app_id) {
+  if (!error_dict_ || !expected_app_id_.has_value())
+    return;
+
+  base::Value expected_app_id_error(base::Value::Type::DICTIONARY);
+
+  expected_app_id_error.SetStringKey("expected_app_id",
+                                     expected_app_id_.value());
+  expected_app_id_error.SetStringKey("app_id", app_id);
+
+  LogErrorObject(stage, url, std::move(expected_app_id_error));
+}
+
+void WebAppInstallTask::LogDownloadedIconsErrors(
+    const WebAppInstallInfo& web_app_info,
+    IconsDownloadedResult icons_downloaded_result,
+    const IconsMap& icons_map,
+    const DownloadedIconsHttpResults& icons_http_results) {
+  if (!error_dict_)
+    return;
+
+  base::Value icon_errors(base::Value::Type::DICTIONARY);
+  {
+    // Reports errors only, omits successful entries.
+    base::Value icons_http_errors(base::Value::Type::LIST);
+
+    for (const auto& url_and_http_code : icons_http_results) {
+      const GURL& icon_url = url_and_http_code.first;
+      int http_status_code = url_and_http_code.second;
+      const char* http_code_desc = net::GetHttpReasonPhrase(
+          static_cast<net::HttpStatusCode>(http_status_code));
+
+      // If the SkBitmap for`icon_url` is missing in `icons_map` then we report
+      // this miss as an error, even for net::HttpStatusCode::HTTP_OK.
+      if (IsEmptyIconBitmapsForIconUrl(icons_map, icon_url)) {
+        base::Value icon_http_error(base::Value::Type::DICTIONARY);
+
+        icon_http_error.SetStringKey("icon_url", icon_url.spec());
+        icon_http_error.SetIntKey("http_status_code", http_status_code);
+        icon_http_error.SetStringKey("http_code_desc", http_code_desc);
+
+        icons_http_errors.Append(std::move(icon_http_error));
+      }
+    }
+
+    if (icons_downloaded_result != IconsDownloadedResult::kCompleted ||
+        !icons_http_errors.GetListDeprecated().empty()) {
+      icon_errors.SetStringKey(
+          "icons_downloaded_result",
+          IconsDownloadedResultToString(icons_downloaded_result));
+    }
+
+    if (!icons_http_errors.GetListDeprecated().empty())
+      icon_errors.SetKey("icons_http_results", std::move(icons_http_errors));
+  }
+
+  if (web_app_info.is_generated_icon)
+    icon_errors.SetBoolKey("is_generated_icon", true);
+
+  if (!icon_errors.DictEmpty()) {
+    LogErrorObject("OnIconsRetrieved", web_app_info.start_url.spec(),
+                   std::move(icon_errors));
+  }
 }
 
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_install_task.h b/chrome/browser/web_applications/web_app_install_task.h
index af93a4d..15dddaf 100644
--- a/chrome/browser/web_applications/web_app_install_task.h
+++ b/chrome/browser/web_applications/web_app_install_task.h
@@ -21,7 +21,6 @@
 #include "chrome/browser/web_applications/web_app_install_manager.h"
 #include "chrome/browser/web_applications/web_app_install_params.h"
 #include "chrome/browser/web_applications/web_app_install_utils.h"
-#include "chrome/browser/web_applications/web_app_logging.h"
 #include "chrome/browser/web_applications/web_app_url_loader.h"
 #include "components/webapps/browser/install_result_code.h"
 #include "components/webapps/browser/installable/installable_metrics.h"
@@ -103,6 +102,15 @@
       WebAppInstallDialogCallback dialog_callback,
       OnceInstallCallback callback);
 
+  // Load |launch_url| and do silent background install with
+  // |InstallWebAppFromManifestWithFallback|. Posts |LoadUrl| task to
+  // |url_loader| immediately. Doesn't memorize |url_loader| pointer.
+  void LoadAndInstallWebAppFromManifestWithFallback(
+      const GURL& launch_url,
+      content::WebContents* web_contents,
+      WebAppUrlLoader* url_loader,
+      OnceInstallCallback callback);
+
   // Load |install_url| and install SubApp. Posts |LoadUrl| task to |url_loader|
   // immediately. Doesn't memorize |url_loader| pointer.
   void LoadAndInstallSubAppFromURL(const GURL& install_url,
@@ -110,6 +118,15 @@
                                    WebAppUrlLoader* url_loader,
                                    OnceInstallCallback install_callback);
 
+  // Fetches the icon URLs in |web_app_install_info| to populate the icon
+  // bitmaps. Once fetched uses the contents of |web_app_install_info| as the
+  // entire web app installation data.
+  void InstallWebAppFromInfoRetrieveIcons(
+      content::WebContents* web_contents,
+      std::unique_ptr<WebAppInstallInfo> web_app_install_info,
+      WebAppInstallFinalizer::FinalizeOptions finalize_options,
+      OnceInstallCallback callback);
+
   // Starts a web app installation process using prefilled
   // |web_app_install_info| which holds all the data needed for installation.
   // WebAppInstallManager doesn't fetch a manifest.
@@ -269,6 +286,23 @@
       IconsDownloadedResult result,
       const DownloadedIconsHttpResults& icons_http_results);
 
+  void LogHeaderIfLogEmpty(const std::string& url);
+  void LogErrorObject(const char* stage,
+                      const std::string& url,
+                      base::Value object);
+
+  void LogUrlLoaderError(const char* stage,
+                         const std::string& url,
+                         WebAppUrlLoader::Result result);
+  void LogExpectedAppIdError(const char* stage,
+                             const std::string& url,
+                             const AppId& app_id);
+  void LogDownloadedIconsErrors(
+      const WebAppInstallInfo& web_app_info,
+      IconsDownloadedResult icons_downloaded_result,
+      const IconsMap& icons_map,
+      const DownloadedIconsHttpResults& icons_http_results);
+
   std::unique_ptr<WebAppDataRetriever> data_retriever_;
   raw_ptr<WebAppInstallFinalizer> install_finalizer_;
   const raw_ptr<Profile> profile_;
@@ -294,7 +328,7 @@
   absl::optional<WebAppInstallInfo> web_app_install_info_;
   std::unique_ptr<content::WebContents> web_contents_;
 
-  InstallErrorLogEntry log_entry_;
+  std::unique_ptr<base::Value> error_dict_;
 
   // TODO(crbug.com/1216457): Make this enum const and set its value in the
   // constructor.
diff --git a/chrome/browser/web_applications/web_app_install_task_unittest.cc b/chrome/browser/web_applications/web_app_install_task_unittest.cc
index 0fab3e1..66c12aa9 100644
--- a/chrome/browser/web_applications/web_app_install_task_unittest.cc
+++ b/chrome/browser/web_applications/web_app_install_task_unittest.cc
@@ -282,6 +282,23 @@
     return result;
   }
 
+  InstallResult LoadAndInstallWebAppFromManifestWithFallback(const GURL& url) {
+    InstallResult result;
+    base::RunLoop run_loop;
+    if (!install_task_)
+      InitializeInstallTaskAndRetriever(webapps::WebappInstallSource::SYNC);
+    install_task_->LoadAndInstallWebAppFromManifestWithFallback(
+        url, web_contents(), &url_loader(),
+        base::BindLambdaForTesting([&](const AppId& installed_app_id,
+                                       webapps::InstallResultCode code) {
+          result.app_id = installed_app_id;
+          result.code = code;
+          run_loop.Quit();
+        }));
+    run_loop.Run();
+    return result;
+  }
+
   WebAppInstallTask::WebAppInstallInfoOrErrorCode
   LoadAndRetrieveWebAppInstallInfoWithIcons(const GURL& url) {
     WebAppInstallTask::WebAppInstallInfoOrErrorCode result;
@@ -1286,6 +1303,57 @@
   }
 }
 
+TEST_F(WebAppInstallTaskTest, LoadAndInstallWebAppFromManifestWithFallback) {
+  const GURL url = GURL("https://example.com/path");
+  const AppId app_id = GenerateAppId(/*manifest_id=*/absl::nullopt, url);
+  {
+    InitializeInstallTaskAndRetriever(
+        webapps::WebappInstallSource::MENU_BROWSER_TAB);
+    CreateDefaultDataToRetrieve(url);
+    url_loader().SetNextLoadUrlResult(
+        url, WebAppUrlLoader::Result::kRedirectedUrlLoaded);
+
+    InstallResult result = LoadAndInstallWebAppFromManifestWithFallback(url);
+    EXPECT_EQ(webapps::InstallResultCode::kInstallURLRedirected, result.code);
+    EXPECT_TRUE(result.app_id.empty());
+    EXPECT_FALSE(registrar().GetAppById(app_id));
+  }
+  {
+    InitializeInstallTaskAndRetriever(
+        webapps::WebappInstallSource::MENU_BROWSER_TAB);
+    CreateDefaultDataToRetrieve(url);
+    url_loader().SetNextLoadUrlResult(
+        url, WebAppUrlLoader::Result::kFailedPageTookTooLong);
+
+    InstallResult result = LoadAndInstallWebAppFromManifestWithFallback(url);
+    EXPECT_EQ(webapps::InstallResultCode::kInstallURLLoadTimeOut, result.code);
+    EXPECT_TRUE(result.app_id.empty());
+    EXPECT_FALSE(registrar().GetAppById(app_id));
+  }
+  {
+    InitializeInstallTaskAndRetriever(
+        webapps::WebappInstallSource::MENU_BROWSER_TAB);
+    CreateDefaultDataToRetrieve(url);
+    url_loader().SetNextLoadUrlResult(url, WebAppUrlLoader::Result::kUrlLoaded);
+
+    InstallResult result = LoadAndInstallWebAppFromManifestWithFallback(url);
+    EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code);
+    EXPECT_EQ(app_id, result.app_id);
+    EXPECT_TRUE(registrar().GetAppById(app_id));
+  }
+  {
+    InitializeInstallTaskAndRetriever(
+        webapps::WebappInstallSource::MENU_BROWSER_TAB);
+    CreateDefaultDataToRetrieve(url);
+    url_loader().SetNextLoadUrlResult(url, WebAppUrlLoader::Result::kUrlLoaded);
+
+    InstallResult result = LoadAndInstallWebAppFromManifestWithFallback(url);
+    EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code);
+    EXPECT_EQ(app_id, result.app_id);
+    EXPECT_TRUE(registrar().GetAppById(app_id));
+  }
+}
+
 TEST_F(WebAppInstallTaskTest, LoadAndRetrieveWebAppInstallInfoWithIcons) {
   const GURL url = GURL("https://example.com/path");
   const GURL start_url = GURL("https://example.com/start");
diff --git a/chrome/browser/web_applications/web_app_install_utils.cc b/chrome/browser/web_applications/web_app_install_utils.cc
index 344a33f..7ec5f8c 100644
--- a/chrome/browser/web_applications/web_app_install_utils.cc
+++ b/chrome/browser/web_applications/web_app_install_utils.cc
@@ -30,6 +30,7 @@
 #include "base/time/time.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_data.h"
 #include "chrome/browser/favicon/favicon_utils.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
@@ -38,7 +39,6 @@
 #include "chrome/browser/web_applications/web_app_chromeos_data.h"
 #include "chrome/browser/web_applications/web_app_icon_generator.h"
 #include "chrome/browser/web_applications/web_app_install_params.h"
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
 #include "chrome/browser/web_applications/web_app_utils.h"
 #include "chrome/common/chrome_features.h"
 #include "components/services/app_service/public/cpp/icon_info.h"
diff --git a/chrome/browser/web_applications/web_app_logging.cc b/chrome/browser/web_applications/web_app_logging.cc
deleted file mode 100644
index ac9893c..0000000
--- a/chrome/browser/web_applications/web_app_logging.cc
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/web_app_logging.h"
-
-#include <string>
-
-#include "base/feature_list.h"
-#include "chrome/browser/web_applications/web_app_constants.h"
-#include "chrome/browser/web_applications/web_app_id.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_url_loader.h"
-#include "chrome/common/chrome_features.h"
-#include "components/webapps/browser/installable/installable_metrics.h"
-#include "net/http/http_status_code.h"
-
-namespace web_app {
-namespace {
-
-bool IsEmptyIconBitmapsForIconUrl(const IconsMap& icons_map,
-                                  const GURL& icon_url) {
-  IconsMap::const_iterator iter = icons_map.find(icon_url);
-  if (iter == icons_map.end())
-    return true;
-
-  const std::vector<SkBitmap>& icon_bitmaps = iter->second;
-  if (icon_bitmaps.empty())
-    return true;
-
-  for (const SkBitmap& icon_bitmap : icon_bitmaps) {
-    if (!icon_bitmap.isNull() && !icon_bitmap.drawsNothing())
-      return false;
-  }
-
-  return true;
-}
-
-}  // namespace
-
-InstallErrorLogEntry::InstallErrorLogEntry(
-    bool background_installation,
-    webapps::WebappInstallSource install_surface)
-    : background_installation_(background_installation),
-      install_surface_(install_surface) {
-  if (base::FeatureList::IsEnabled(features::kRecordWebAppDebugInfo))
-    error_dict_ = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
-}
-
-InstallErrorLogEntry::~InstallErrorLogEntry() = default;
-
-base::Value InstallErrorLogEntry::TakeErrorDict() {
-  DCHECK(error_dict_);
-  base::Value error_dict = std::move(*error_dict_);
-  error_dict_->DictClear();
-  return error_dict;
-}
-
-void InstallErrorLogEntry::LogUrlLoaderError(const char* stage,
-                                             const std::string& url,
-                                             WebAppUrlLoader::Result result) {
-  if (!error_dict_)
-    return;
-
-  base::Value url_loader_error(base::Value::Type::DICTIONARY);
-
-  url_loader_error.SetStringKey("WebAppUrlLoader::Result",
-                                ConvertUrlLoaderResultToString(result));
-
-  LogErrorObject(stage, url, std::move(url_loader_error));
-}
-
-void InstallErrorLogEntry::LogExpectedAppIdError(const char* stage,
-                                                 const std::string& url,
-                                                 const AppId& app_id,
-                                                 const AppId& expected_app_id) {
-  if (!error_dict_)
-    return;
-
-  base::Value expected_app_id_error(base::Value::Type::DICTIONARY);
-  expected_app_id_error.SetStringKey("expected_app_id", expected_app_id);
-  expected_app_id_error.SetStringKey("app_id", app_id);
-
-  LogErrorObject(stage, url, std::move(expected_app_id_error));
-}
-
-void InstallErrorLogEntry::LogDownloadedIconsErrors(
-    const WebAppInstallInfo& web_app_info,
-    IconsDownloadedResult icons_downloaded_result,
-    const IconsMap& icons_map,
-    const DownloadedIconsHttpResults& icons_http_results) {
-  if (!error_dict_)
-    return;
-
-  base::Value icon_errors(base::Value::Type::DICTIONARY);
-  {
-    // Reports errors only, omits successful entries.
-    base::Value icons_http_errors(base::Value::Type::LIST);
-
-    for (const auto& url_and_http_code : icons_http_results) {
-      const GURL& icon_url = url_and_http_code.first;
-      int http_status_code = url_and_http_code.second;
-      const char* http_code_desc = net::GetHttpReasonPhrase(
-          static_cast<net::HttpStatusCode>(http_status_code));
-
-      // If the SkBitmap for`icon_url` is missing in `icons_map` then we report
-      // this miss as an error, even for net::HttpStatusCode::HTTP_OK.
-      if (IsEmptyIconBitmapsForIconUrl(icons_map, icon_url)) {
-        base::Value icon_http_error(base::Value::Type::DICTIONARY);
-
-        icon_http_error.SetStringKey("icon_url", icon_url.spec());
-        icon_http_error.SetIntKey("http_status_code", http_status_code);
-        icon_http_error.SetStringKey("http_code_desc", http_code_desc);
-
-        icons_http_errors.Append(std::move(icon_http_error));
-      }
-    }
-
-    if (icons_downloaded_result != IconsDownloadedResult::kCompleted ||
-        !icons_http_errors.GetListDeprecated().empty()) {
-      icon_errors.SetStringKey(
-          "icons_downloaded_result",
-          IconsDownloadedResultToString(icons_downloaded_result));
-    }
-
-    if (!icons_http_errors.GetListDeprecated().empty())
-      icon_errors.SetKey("icons_http_results", std::move(icons_http_errors));
-  }
-
-  if (web_app_info.is_generated_icon)
-    icon_errors.SetBoolKey("is_generated_icon", true);
-
-  if (!icon_errors.DictEmpty()) {
-    LogErrorObject("OnIconsRetrieved", web_app_info.start_url.spec(),
-                   std::move(icon_errors));
-  }
-}
-
-void InstallErrorLogEntry::LogHeaderIfLogEmpty(const std::string& url) {
-  if (!error_dict_ || !error_dict_->DictEmpty())
-    return;
-
-  error_dict_->SetStringKey("!url", url);
-  error_dict_->SetIntKey("install_surface", static_cast<int>(install_surface_));
-  error_dict_->SetBoolKey("background_installation", background_installation_);
-  error_dict_->SetKey("stages", base::Value(base::Value::Type::LIST));
-}
-
-void InstallErrorLogEntry::LogErrorObject(const char* stage,
-                                          const std::string& url,
-                                          base::Value object) {
-  if (!error_dict_)
-    return;
-
-  LogHeaderIfLogEmpty(url);
-
-  object.SetStringKey("!stage", stage);
-  error_dict_->FindKey("stages")->Append(std::move(object));
-}
-
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_logging.h b/chrome/browser/web_applications/web_app_logging.h
deleted file mode 100644
index 93fa73e58..0000000
--- a/chrome/browser/web_applications/web_app_logging.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_LOGGING_H_
-#define CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_LOGGING_H_
-
-#include <memory>
-#include <string>
-
-#include "chrome/browser/web_applications/web_app_constants.h"
-#include "chrome/browser/web_applications/web_app_id.h"
-#include "chrome/browser/web_applications/web_app_install_info.h"
-#include "chrome/browser/web_applications/web_app_url_loader.h"
-#include "components/webapps/browser/installable/installable_metrics.h"
-
-namespace base {
-class Value;
-}
-
-namespace web_app {
-
-// This class is used to accumulate a single log entry
-class InstallErrorLogEntry {
- public:
-  explicit InstallErrorLogEntry(bool background_installation,
-                                webapps::WebappInstallSource install_surface);
-  ~InstallErrorLogEntry();
-
-  // The InstallWebAppTask determines this after construction, so a setter is
-  // required.
-  void set_background_installation(bool background_installation) {
-    background_installation_ = background_installation;
-  }
-
-  bool HasErrorDict() const { return !!error_dict_; }
-
-  // Collects install errors (unbounded) if the |kRecordWebAppDebugInfo|
-  // flag is enabled to be used by: chrome://web-app-internals
-  base::Value TakeErrorDict();
-
-  void LogUrlLoaderError(const char* stage,
-                         const std::string& url,
-                         WebAppUrlLoader::Result result);
-  void LogExpectedAppIdError(const char* stage,
-                             const std::string& url,
-                             const AppId& app_id,
-                             const AppId& expected_app_id);
-  void LogDownloadedIconsErrors(
-      const WebAppInstallInfo& web_app_info,
-      IconsDownloadedResult icons_downloaded_result,
-      const IconsMap& icons_map,
-      const DownloadedIconsHttpResults& icons_http_results);
-
- private:
-  void LogHeaderIfLogEmpty(const std::string& url);
-
-  void LogErrorObject(const char* stage,
-                      const std::string& url,
-                      base::Value object);
-
-  std::unique_ptr<base::Value> error_dict_;
-  bool background_installation_;
-  webapps::WebappInstallSource install_surface_;
-};
-
-}  // namespace web_app
-
-#endif  // CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_LOGGING_H_
diff --git a/chrome/browser/web_applications/web_app_provider.cc b/chrome/browser/web_applications/web_app_provider.cc
index e92c9bc..d547779 100644
--- a/chrome/browser/web_applications/web_app_provider.cc
+++ b/chrome/browser/web_applications/web_app_provider.cc
@@ -300,9 +300,9 @@
       install_manager_.get(), registrar_.get(), ui_manager_.get(),
       sync_bridge_.get(), os_integration_manager_.get(), icon_manager_.get(),
       web_app_policy_manager_.get(), translation_manager_.get());
-  install_manager_->SetSubsystems(
-      registrar_.get(), os_integration_manager_.get(), command_manager_.get(),
-      install_finalizer_.get());
+  install_manager_->SetSubsystems(registrar_.get(),
+                                  os_integration_manager_.get(),
+                                  install_finalizer_.get());
   manifest_update_manager_->SetSubsystems(
       install_manager_.get(), registrar_.get(), icon_manager_.get(),
       ui_manager_.get(), install_finalizer_.get(),
diff --git a/chrome/browser/web_applications/web_app_sync_bridge.cc b/chrome/browser/web_applications/web_app_sync_bridge.cc
index d385c573..638ddd2 100644
--- a/chrome/browser/web_applications/web_app_sync_bridge.cc
+++ b/chrome/browser/web_applications/web_app_sync_bridge.cc
@@ -18,7 +18,6 @@
 #include "base/types/pass_key.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/web_applications/commands/install_from_sync_command.h"
 #include "chrome/browser/web_applications/user_display_mode.h"
 #include "chrome/browser/web_applications/web_app.h"
 #include "chrome/browser/web_applications/web_app_command_manager.h"
@@ -688,8 +687,6 @@
   // Do a full follow up install for all remote entities that don’t exist
   // locally.
   if (!apps_to_install.empty()) {
-    // TODO(dmurph): Just call the InstallFromSync command.
-    // https://crbug.com/1328968
     install_delegate_->InstallWebAppsAfterSync(std::move(apps_to_install),
                                                base::DoNothing());
   }
diff --git a/chrome/browser/web_applications/web_app_system_web_app_data.cc b/chrome/browser/web_applications/web_app_system_web_app_data.cc
deleted file mode 100644
index 94c8eb7..0000000
--- a/chrome/browser/web_applications/web_app_system_web_app_data.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/web_app_system_web_app_data.h"
-#include <ios>
-#include <ostream>
-#include <tuple>
-
-namespace web_app {
-
-base::Value WebAppSystemWebAppData::AsDebugValue() const {
-  base::Value root(base::Value::Type::DICTIONARY);
-  root.SetIntKey("system_app_type", static_cast<int>(system_app_type));
-  return root;
-}
-
-bool operator==(const WebAppSystemWebAppData& chromeos_data1,
-                const WebAppSystemWebAppData& chromeos_data2) {
-  return chromeos_data1.system_app_type == chromeos_data2.system_app_type;
-}
-
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_system_web_app_data.h b/chrome/browser/web_applications/web_app_system_web_app_data.h
deleted file mode 100644
index 3399285..0000000
--- a/chrome/browser/web_applications/web_app_system_web_app_data.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_SYSTEM_WEB_APP_DATA_H_
-#define CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_SYSTEM_WEB_APP_DATA_H_
-
-#include "base/values.h"
-#include "chrome/browser/ash/system_web_apps/types/system_web_app_type.h"
-
-namespace web_app {
-
-struct WebAppSystemWebAppData {
-  base::Value AsDebugValue() const;
-
-  ash::SystemWebAppType system_app_type;
-};
-
-bool operator==(const WebAppSystemWebAppData& data1,
-                const WebAppSystemWebAppData& data2);
-bool operator!=(const WebAppSystemWebAppData& data1,
-                const WebAppSystemWebAppData& data2);
-
-}  // namespace web_app
-
-#endif  // CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_SYSTEM_WEB_APP_DATA_H_
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 589a64d..ade52c1 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1653587488-d60b14ae1fa4042118b0bf3b4726c920abeb5fd9.profdata
+chrome-linux-main-1653652279-7e49a0371314fee4848fa6c7fe25803951d94464.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 03564b48..e9c9af28 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1653609490-214c9b5cdb017b7b3bb5893c5de67034564867b6.profdata
+chrome-mac-arm-main-1653652279-f3ba122b98b3f07c3583a3e13e2924d041c801eb.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 19a0218..ac8964d 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1653587488-c5a2a5c4dde425a5066dbec30cf55034be208a96.profdata
+chrome-mac-main-1653652279-b776df1ece98a9c774e9b0438b2b266676c895ce.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 6c75567..8528cc3 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1653598715-9f8e6c116a08624b1864ac15fa7e6e1f1b5f72d9.profdata
+chrome-win32-main-1653641971-56e7107e7ccc4d789391f6bc377a094117b5b0d9.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index cff9fab..bb094e3 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1653598715-be0c36b77bcd6752e69788f777254325007803ab.profdata
+chrome-win64-main-1653641971-db00215fb1c60069dd72bc27b03cbd78aa9519d0.profdata
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json
index e4b0348..355e870 100644
--- a/chrome/common/extensions/api/_permission_features.json
+++ b/chrome/common/extensions/api/_permission_features.json
@@ -633,9 +633,7 @@
   },
   {
     "channel": "dev",
-    "extension_types": ["extension"],
-    "platforms": ["chromeos", "lacros"],
-    "session_types": ["kiosk"]
+    "extension_types": ["extension"]
   }],
   "notifications": [{
     // The chrome.notifications functionality listed in notifications.idl is
diff --git a/chrome/common/profiler/thread_profiler_browsertest.cc b/chrome/common/profiler/thread_profiler_browsertest.cc
index 406a0af6..7468fd2 100644
--- a/chrome/common/profiler/thread_profiler_browsertest.cc
+++ b/chrome/common/profiler/thread_profiler_browsertest.cc
@@ -161,9 +161,6 @@
 #define MAYBE_GpuProcessMainThread DISABLED_GpuProcessMainThread
 #define MAYBE_GpuProcessIOThread DISABLED_GpuProcessIOThread
 #define MAYBE_GpuProcessCompositorThread DISABLED_GpuProcessCompositorThread
-#define MAYBE_RendererProcessIOThread DISABLED_RendererProcessIOThread
-#define MAYBE_RendererProcessCompositorThread \
-  DISABLED_RendererProcessCompositorThread
 // Android doesn't have a network service process.
 #define MAYBE_NetworkServiceProcessIOThread \
   DISABLED_NetworkServiceProcessIOThread
@@ -173,8 +170,6 @@
 #define MAYBE_GpuProcessMainThread GpuProcessMainThread
 #define MAYBE_GpuProcessIOThread GpuProcessIOThread
 #define MAYBE_GpuProcessCompositorThread GpuProcessCompositorThread
-#define MAYBE_RendererProcessIOThread RendererProcessIOThread
-#define MAYBE_RendererProcessCompositorThread RendererProcessCompositorThread
 #define MAYBE_NetworkServiceProcessIOThread NetworkServiceProcessIOThread
 #endif
 
@@ -215,14 +210,13 @@
                              metrics::RENDERER_PROCESS, metrics::MAIN_THREAD));
 }
 
-IN_PROC_BROWSER_TEST_F(ThreadProfilerBrowserTest,
-                       MAYBE_RendererProcessIOThread) {
+IN_PROC_BROWSER_TEST_F(ThreadProfilerBrowserTest, RendererProcessIOThread) {
   EXPECT_TRUE(WaitForProfile(metrics::SampledProfile::PROCESS_STARTUP,
                              metrics::RENDERER_PROCESS, metrics::IO_THREAD));
 }
 
 IN_PROC_BROWSER_TEST_F(ThreadProfilerBrowserTest,
-                       MAYBE_RendererProcessCompositorThread) {
+                       RendererProcessCompositorThread) {
   EXPECT_TRUE(WaitForProfile(metrics::SampledProfile::PROCESS_STARTUP,
                              metrics::RENDERER_PROCESS,
                              metrics::COMPOSITOR_THREAD));
diff --git a/chrome/common/profiler/thread_profiler_platform_configuration.cc b/chrome/common/profiler/thread_profiler_platform_configuration.cc
index 7682a3d..f34a086 100644
--- a/chrome/common/profiler/thread_profiler_platform_configuration.cc
+++ b/chrome/common/profiler/thread_profiler_platform_configuration.cc
@@ -228,7 +228,7 @@
   // TODO(https://crbug.com/1326430): Enable for all the default processes.
   switch (process) {
     case metrics::CallStackProfileParams::Process::kRenderer:
-      return thread == metrics::CallStackProfileParams::Thread::kMain;
+      return true;
 
     default:
       return false;
diff --git a/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc b/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc
index b7d2d44..0dca841b 100644
--- a/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc
+++ b/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc
@@ -198,13 +198,13 @@
   EXPECT_TRUE(config()->IsEnabledForThread(
       metrics::CallStackProfileParams::Process::kRenderer,
       metrics::CallStackProfileParams::Thread::kMain));
-  EXPECT_FALSE(config()->IsEnabledForThread(
+  EXPECT_TRUE(config()->IsEnabledForThread(
       metrics::CallStackProfileParams::Process::kRenderer,
       metrics::CallStackProfileParams::Thread::kIo));
-  EXPECT_FALSE(config()->IsEnabledForThread(
+  EXPECT_TRUE(config()->IsEnabledForThread(
       metrics::CallStackProfileParams::Process::kRenderer,
       metrics::CallStackProfileParams::Thread::kCompositor));
-  EXPECT_FALSE(config()->IsEnabledForThread(
+  EXPECT_TRUE(config()->IsEnabledForThread(
       metrics::CallStackProfileParams::Process::kRenderer,
       metrics::CallStackProfileParams::Thread::kServiceWorker));
 
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index 9311219b..2c67a1a4 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -419,6 +419,9 @@
 const char kTimeZoneSettingsLearnMoreURL[] =
     "https://support.google.com/chromebook?p=chromebook_timezone&hl=%s";
 
+const char kSmartPrivacySettingsLearnMoreURL[] =
+    "https://support.google.com/chromebook?p=screen_privacy_m100";
+
 const char kSmbSharesLearnMoreURL[] =
     "https://support.google.com/chromebook?p=network_file_shares";
 
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
index 582a57d..1739c23 100644
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -389,6 +389,9 @@
 // The URL for the "Learn more" page for the time zone settings page.
 extern const char kTimeZoneSettingsLearnMoreURL[];
 
+// The URL for the "Learn more" page for screen privacy protections.
+extern const char kSmartPrivacySettingsLearnMoreURL[];
+
 // The URL for the "Learn more" page for the network file shares settings page.
 extern const char kSmbSharesLearnMoreURL[];
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 643d6844..33f2252 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -493,8 +493,6 @@
       "../browser/ash/login/users/avatar/fake_user_image_file_selector.h",
       "../browser/ash/login/users/fake_chrome_user_manager.cc",
       "../browser/ash/login/users/fake_chrome_user_manager.h",
-      "../browser/ash/ownership/fake_owner_settings_service.cc",
-      "../browser/ash/ownership/fake_owner_settings_service.h",
       "../browser/ash/policy/core/device_policy_cros_browser_test.cc",
       "../browser/ash/policy/core/device_policy_cros_browser_test.h",
       "../browser/ash/policy/login/signin_profile_extensions_policy_test_base.cc",
@@ -1988,6 +1986,7 @@
       "../browser/sessions/better_session_restore_browsertest.cc",
       "../browser/sessions/closed_tab_cache_browsertest.cc",
       "../browser/sessions/exit_type_service_browsertest.cc",
+      "../browser/sessions/session_id_generator_browsertest.cc",
       "../browser/sessions/session_restore_browsertest.cc",
       "../browser/sessions/session_restore_observer_browsertest.cc",
       "../browser/sessions/session_service_log_browsertest.cc",
diff --git a/chrome/test/data/webui/chromeos/os_feedback_ui/file_attachment_test.js b/chrome/test/data/webui/chromeos/os_feedback_ui/file_attachment_test.js
index 029dafb..b5cf1c26 100644
--- a/chrome/test/data/webui/chromeos/os_feedback_ui/file_attachment_test.js
+++ b/chrome/test/data/webui/chromeos/os_feedback_ui/file_attachment_test.js
@@ -5,7 +5,7 @@
 import {FileAttachmentElement} from 'chrome://os-feedback/file_attachment.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
-import {flushTasks} from '../../test_util.js';
+import {eventToPromise, flushTasks, isVisible} from '../../test_util.js';
 
 export function fileAttachmentTestSuite() {
   /** @type {?FileAttachmentElement} */
@@ -32,7 +32,7 @@
 
   /**
    * @param {string} selector
-   * @returns {Element|null}
+   * @returns {?Element}
    */
   function getElement(selector) {
     const element = page.shadowRoot.querySelector(selector);
@@ -50,9 +50,81 @@
   }
 
   // Test the page is loaded with expected HTML elements.
-  test('shareDataPageLoaded', async () => {
+  test('elementLoaded', async () => {
     await initializePage();
     // Verify the add file label is in the page.
-    assertEquals('Add file', getElementContent('#AddFileLabel'));
+    assertEquals('Add file', getElementContent('#addFileLabel'));
+    // The addFileContainer should be visible when no file is selected.
+    assertTrue(isVisible(getElement('#addFileContainer')));
+    // The replaceFileContainer should be invisible when no file is selected.
+    assertFalse(isVisible(getElement('#replaceFileContainer')));
+  });
+
+  // Test that when the add file label is clicked, the file dialog is opened.
+  test('canOpenFileDialogByClickAddFileLabel', async () => {
+    await initializePage();
+    // Verify the add file label is in the page.
+    const addFileLabel = getElement('#addFileLabel');
+    assertTrue(!!addFileLabel);
+    /**@type {!HTMLInputElement} */
+    const fileDialog =
+        /**@type {!HTMLInputElement} */ (getElement('#selectFileDialog'));
+    assertTrue(!!fileDialog);
+
+    const fileDialogClickPromise = eventToPromise('click', fileDialog);
+    let fileDialogClicked = false;
+    fileDialog.addEventListener('click', (event) => {
+      fileDialogClicked = true;
+    });
+
+    addFileLabel.click();
+
+    await fileDialogClickPromise;
+    assertTrue(fileDialogClicked);
+  });
+
+  // Test that when the replace file label is clicked, the file dialog is
+  // opened.
+  test('canOpenFileDialogByClickReplaceFileLabel', async () => {
+    await initializePage();
+    // Verify the add file label is in the page.
+    const replaceFileLabel = getElement('#replaceFileLabel');
+    assertTrue(!!replaceFileLabel);
+    /**@type {!HTMLInputElement} */
+    const fileDialog =
+        /**@type {!HTMLInputElement} */ (getElement('#selectFileDialog'));
+    assertTrue(!!fileDialog);
+
+    const fileDialogClickPromise = eventToPromise('click', fileDialog);
+    let fileDialogClicked = false;
+    fileDialog.addEventListener('click', (event) => {
+      fileDialogClicked = true;
+    });
+
+    replaceFileLabel.click();
+
+    await fileDialogClickPromise;
+    assertTrue(fileDialogClicked);
+  });
+
+  // Test that replace file section is shown after a file is selected.
+  test('showReplaceFile', async () => {
+    await initializePage();
+
+    // The addFileContainer should be visible when no file is selected.
+    assertTrue(isVisible(getElement('#addFileContainer')));
+    // The replaceFileContainer should be invisible when no file is selected.
+    assertFalse(isVisible(getElement('#replaceFileContainer')));
+
+    // Set selected file manually.
+    /** @type {!File} */
+    const fakeFile = /** @type {!File} */ ({name: 'fake.zip'});
+    page.setSelectedFileForTesting(fakeFile);
+
+    assertEquals('fake.zip', page.selectedFile.name);
+    // The addFileContainer should be invisible.
+    assertFalse(isVisible(getElement('#addFileContainer')));
+    // The replaceFileContainer should be visible.
+    assertTrue(isVisible(getElement('#replaceFileContainer')));
   });
 }
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index 2d0cf84..cf606e3 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -213,6 +213,7 @@
     "//tools/typescript/definitions/language_settings_private.d.ts",
     "//tools/typescript/definitions/management.d.ts",
     "//tools/typescript/definitions/passwords_private.d.ts",
+    "//tools/typescript/definitions/pending.d.ts",
     "//tools/typescript/definitions/settings_private.d.ts",
   ]
   deps = [ "//chrome/browser/resources/settings:build_ts" ]
diff --git a/chromeos/ash/components/network/onc/onc_certificate_pattern.cc b/chromeos/ash/components/network/onc/onc_certificate_pattern.cc
index 11d58339..1d522ad 100644
--- a/chromeos/ash/components/network/onc/onc_certificate_pattern.cc
+++ b/chromeos/ash/components/network/onc/onc_certificate_pattern.cc
@@ -18,14 +18,11 @@
 
 namespace {
 
-bool GetAsListOfStrings(const base::Value& value,
+bool GetAsListOfStrings(const base::Value::List& value,
                         std::vector<std::string>* result) {
-  if (!value.is_list())
-    return false;
-
   result->clear();
-  result->reserve(value.GetListDeprecated().size());
-  for (const auto& entry : value.GetListDeprecated()) {
+  result->reserve(value.size());
+  for (const auto& entry : value) {
     if (!entry.is_string())
       return false;
     result->push_back(entry.GetString());
@@ -79,10 +76,10 @@
 
 // static
 absl::optional<OncCertificatePattern>
-OncCertificatePattern::ReadFromONCDictionary(const base::Value& dict) {
+OncCertificatePattern::ReadFromONCDictionary(const base::Value::Dict& dict) {
   // All of these are optional.
-  const base::Value* pem_encoded_issuer_cas_value = dict.FindKeyOfType(
-      onc::client_cert::kIssuerCAPEMs, base::Value::Type::LIST);
+  const base::Value::List* pem_encoded_issuer_cas_value =
+      dict.FindList(onc::client_cert::kIssuerCAPEMs);
   std::vector<std::string> pem_encoded_issuer_cas;
   if (pem_encoded_issuer_cas_value &&
       !GetAsListOfStrings(*pem_encoded_issuer_cas_value,
@@ -90,8 +87,8 @@
     return absl::nullopt;
   }
 
-  const base::Value* enrollment_uri_list_value = dict.FindKeyOfType(
-      onc::client_cert::kEnrollmentURI, base::Value::Type::LIST);
+  const base::Value::List* enrollment_uri_list_value =
+      dict.FindList(onc::client_cert::kEnrollmentURI);
   std::vector<std::string> enrollment_uri_list;
   if (enrollment_uri_list_value &&
       !GetAsListOfStrings(*enrollment_uri_list_value, &enrollment_uri_list)) {
@@ -100,15 +97,13 @@
 
   auto issuer_pattern =
       certificate_matching::CertificatePrincipalPattern::ParseFromOptionalDict(
-          dict.FindKeyOfType(onc::client_cert::kIssuer,
-                             base::Value::Type::DICTIONARY),
+          dict.FindDict(onc::client_cert::kIssuer),
           onc::client_cert::kCommonName, onc::client_cert::kLocality,
           onc::client_cert::kOrganization,
           onc::client_cert::kOrganizationalUnit);
   auto subject_pattern =
       certificate_matching::CertificatePrincipalPattern::ParseFromOptionalDict(
-          dict.FindKeyOfType(onc::client_cert::kSubject,
-                             base::Value::Type::DICTIONARY),
+          dict.FindDict(onc::client_cert::kSubject),
           onc::client_cert::kCommonName, onc::client_cert::kLocality,
           onc::client_cert::kOrganization,
           onc::client_cert::kOrganizationalUnit);
diff --git a/chromeos/ash/components/network/onc/onc_certificate_pattern.h b/chromeos/ash/components/network/onc/onc_certificate_pattern.h
index 728195ea..42eec3c2 100644
--- a/chromeos/ash/components/network/onc/onc_certificate_pattern.h
+++ b/chromeos/ash/components/network/onc/onc_certificate_pattern.h
@@ -58,7 +58,7 @@
 
   // Reads a |OncCertificatePattern| from an ONC dictionary.
   static absl::optional<OncCertificatePattern> ReadFromONCDictionary(
-      const base::Value& dictionary);
+      const base::Value::Dict& dictionary);
 
  private:
   OncCertificatePattern(
diff --git a/chromeos/ash/components/network/onc/onc_certificate_pattern_unittest.cc b/chromeos/ash/components/network/onc/onc_certificate_pattern_unittest.cc
index eee39b7..46e57537 100644
--- a/chromeos/ash/components/network/onc/onc_certificate_pattern_unittest.cc
+++ b/chromeos/ash/components/network/onc/onc_certificate_pattern_unittest.cc
@@ -72,8 +72,8 @@
           pattern_json, base::JSON_ALLOW_TRAILING_COMMAS);
   ASSERT_TRUE(parsed_json.value) << parsed_json.error_message;
 
-  auto pattern =
-      OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+  auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+      parsed_json.value->GetDict());
   ASSERT_TRUE(pattern);
   EXPECT_FALSE(pattern.value().Empty());
 
@@ -106,8 +106,8 @@
   ASSERT_TRUE(parsed_json.value) << parsed_json.error_message;
 
   {
-    auto pattern =
-        OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+    auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+        parsed_json.value->GetDict());
     ASSERT_TRUE(pattern);
     EXPECT_FALSE(pattern.value().Empty());
 
@@ -120,8 +120,8 @@
     ASSERT_TRUE(issuer);
     issuer->SetKey("CommonName", base::Value("SomeOtherCA"));
 
-    auto pattern =
-        OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+    auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+        parsed_json.value->GetDict());
     ASSERT_TRUE(pattern);
     EXPECT_FALSE(pattern.value().Matches(*cert_, kFakePemEncodedIssuer));
   }
@@ -143,8 +143,8 @@
   ASSERT_TRUE(parsed_json.value) << parsed_json.error_message;
 
   {
-    auto pattern =
-        OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+    auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+        parsed_json.value->GetDict());
     ASSERT_TRUE(pattern);
     EXPECT_FALSE(pattern.value().Empty());
 
@@ -157,8 +157,8 @@
     ASSERT_TRUE(issuer);
     issuer->SetKey("CommonName", base::Value("B CA"));
 
-    auto pattern =
-        OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+    auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+        parsed_json.value->GetDict());
     ASSERT_TRUE(pattern);
     EXPECT_FALSE(pattern.value().Matches(*cert_, kFakePemEncodedIssuer));
   }
@@ -174,8 +174,8 @@
           pattern_json, base::JSON_ALLOW_TRAILING_COMMAS);
   ASSERT_TRUE(parsed_json.value) << parsed_json.error_message;
 
-  auto pattern =
-      OncCertificatePattern::ReadFromONCDictionary(*parsed_json.value);
+  auto pattern = OncCertificatePattern::ReadFromONCDictionary(
+      parsed_json.value->GetDict());
   ASSERT_TRUE(pattern);
   EXPECT_FALSE(pattern.value().Empty());
 
diff --git a/chromeos/crosapi/mojom/web_app_types.mojom b/chromeos/crosapi/mojom/web_app_types.mojom
index 6f71513..30e2fd3 100644
--- a/chromeos/crosapi/mojom/web_app_types.mojom
+++ b/chromeos/crosapi/mojom/web_app_types.mojom
@@ -36,7 +36,6 @@
   kInstallTaskDestroyed,
   kUpdateTaskFailed,
   [MinVersion=1] kAppNotInRegistrarAfterCommit,
-  [MinVersion=2] kHaltedBySyncUninstall,
 };
 
 // See |webapps::UninstallResultCode|.
diff --git a/chromeos/crosapi/mojom/web_app_types_mojom_traits.cc b/chromeos/crosapi/mojom/web_app_types_mojom_traits.cc
index e38944f..f512c85 100644
--- a/chromeos/crosapi/mojom/web_app_types_mojom_traits.cc
+++ b/chromeos/crosapi/mojom/web_app_types_mojom_traits.cc
@@ -69,8 +69,6 @@
     case webapps::InstallResultCode::kAppNotInRegistrarAfterCommit:
       return crosapi::mojom::WebAppInstallResultCode::
           kAppNotInRegistrarAfterCommit;
-    case webapps::InstallResultCode::kHaltedBySyncUninstall:
-      return crosapi::mojom::WebAppInstallResultCode::kHaltedBySyncUninstall;
   };
 }
 
@@ -154,9 +152,6 @@
     case crosapi::mojom::WebAppInstallResultCode::kAppNotInRegistrarAfterCommit:
       *output = webapps::InstallResultCode::kAppNotInRegistrarAfterCommit;
       return true;
-    case crosapi::mojom::WebAppInstallResultCode::kHaltedBySyncUninstall:
-      *output = webapps::InstallResultCode::kHaltedBySyncUninstall;
-      return true;
   };
 
   NOTREACHED();
diff --git a/chromeos/language/language_packs/language_pack_manager.cc b/chromeos/language/language_packs/language_pack_manager.cc
index d3251724..7aa1aaf 100644
--- a/chromeos/language/language_packs/language_pack_manager.cc
+++ b/chromeos/language/language_packs/language_pack_manager.cc
@@ -19,6 +19,14 @@
 namespace chromeos::language_packs {
 namespace {
 
+// PackResult that is returned by an invalid feature ID is specified.
+PackResult CreateInvalidDlcPackResult() {
+  return {
+      .operation_error = dlcservice::kErrorInvalidDlc,
+      .pack_state = PackResult::WRONG_ID,
+  };
+}
+
 PackResult ConvertDlcStateToPackResult(const dlcservice::DlcState& dlc_state) {
   PackResult result;
 
@@ -110,6 +118,14 @@
   return it->second;
 }
 
+void InstallDlc(const std::string& dlc_id,
+                DlcserviceClient::InstallCallback install_callback) {
+  dlcservice::InstallRequest install_request;
+  install_request.set_id(dlc_id);
+  DlcserviceClient::Get()->Install(install_request, std::move(install_callback),
+                                   base::DoNothing());
+}
+
 void OnInstallDlcComplete(OnInstallCompleteCallback callback,
                           const DlcserviceClient::InstallResult& dlc_result) {
   PackResult result;
@@ -180,19 +196,12 @@
   // If the given Language Pack doesn't exist, run callback and don't reach the
   // DLC Service.
   if (!dlc_id) {
-    PackResult result;
-    result.operation_error = dlcservice::kErrorInvalidDlc;
-    result.pack_state = PackResult::WRONG_ID;
-    std::move(callback).Run(result);
+    std::move(callback).Run(CreateInvalidDlcPackResult());
     return;
   }
 
-  dlcservice::InstallRequest install_request;
-  install_request.set_id(*dlc_id);
-  DlcserviceClient::Get()->Install(
-      install_request,
-      base::BindOnce(&OnInstallDlcComplete, std::move(callback)),
-      base::DoNothing());
+  InstallDlc(*dlc_id,
+             base::BindOnce(&OnInstallDlcComplete, std::move(callback)));
 }
 
 void LanguagePackManager::GetPackState(const std::string& feature_id,
@@ -204,10 +213,7 @@
   // If the given Language Pack doesn't exist, run callback and don't reach the
   // DLC Service.
   if (!dlc_id) {
-    PackResult result;
-    result.operation_error = dlcservice::kErrorInvalidDlc;
-    result.pack_state = PackResult::WRONG_ID;
-    std::move(callback).Run(result);
+    std::move(callback).Run(CreateInvalidDlcPackResult());
     return;
   }
 
@@ -224,10 +230,7 @@
   // If the given Language Pack doesn't exist, run callback and don't reach the
   // DLC Service.
   if (!dlc_id) {
-    PackResult result;
-    result.operation_error = dlcservice::kErrorInvalidDlc;
-    result.pack_state = PackResult::WRONG_ID;
-    std::move(callback).Run(result);
+    std::move(callback).Run(CreateInvalidDlcPackResult());
     return;
   }
 
@@ -243,19 +246,12 @@
   // If the given |feature_id| doesn't have a Base Payload, run callback and
   // don't reach the DLC Service.
   if (!dlc_id) {
-    PackResult result;
-    result.operation_error = dlcservice::kErrorInvalidDlc;
-    result.pack_state = PackResult::WRONG_ID;
-    std::move(callback).Run(result);
+    std::move(callback).Run(CreateInvalidDlcPackResult());
     return;
   }
 
-  dlcservice::InstallRequest install_request;
-  install_request.set_id(*dlc_id);
-  DlcserviceClient::Get()->Install(
-      install_request,
-      base::BindOnce(&OnInstallDlcComplete, std::move(callback)),
-      base::DoNothing());
+  InstallDlc(*dlc_id,
+             base::BindOnce(&OnInstallDlcComplete, std::move(callback)));
 }
 
 void LanguagePackManager::AddObserver(Observer* const observer) {
diff --git a/chromeos/network/client_cert_resolver_unittest.cc b/chromeos/network/client_cert_resolver_unittest.cc
index ca0963b..d424d9a 100644
--- a/chromeos/network/client_cert_resolver_unittest.cc
+++ b/chromeos/network/client_cert_resolver_unittest.cc
@@ -344,7 +344,8 @@
 
     client_cert_config->onc_source = onc_source;
     client_cert_config->client_cert_type = ::onc::client_cert::kPattern;
-    client_cert_config->pattern.ReadFromONCDictionary(*(parsed_json.value));
+    client_cert_config->pattern.ReadFromONCDictionary(
+        parsed_json.value->GetDict());
   }
 
   // Sets up a policy with a certificate pattern that matches any client cert
diff --git a/chromeos/network/client_cert_util.cc b/chromeos/network/client_cert_util.cc
index a2fcbcd..d49c71d 100644
--- a/chromeos/network/client_cert_util.cc
+++ b/chromeos/network/client_cert_util.cc
@@ -51,8 +51,9 @@
     cert_config->client_cert_type = *client_cert_type;
 
   if (cert_config->client_cert_type == ::onc::client_cert::kPattern) {
-    const base::Value* pattern_value = dict_with_client_cert.FindKeyOfType(
-        ::onc::client_cert::kClientCertPattern, base::Value::Type::DICTIONARY);
+    const base::Value::Dict* pattern_value =
+        dict_with_client_cert.GetDict().FindDict(
+            ::onc::client_cert::kClientCertPattern);
     if (pattern_value) {
       absl::optional<OncCertificatePattern> pattern =
           OncCertificatePattern::ReadFromONCDictionary(*pattern_value);
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index ee16692..1eac791a 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">Kontroleringsportaal is bespeur</translation>
 <translation id="3170673040743561620">Plaas jou dokument op die skandeerder</translation>
 <translation id="3188257591659621405">My lêers</translation>
+<translation id="319101249942218879">Avatar-prent het verander</translation>
 <translation id="3192947282887913208">Oudiolêers</translation>
 <translation id="3199982728237701504">Dokumentvoerder (twee kante)</translation>
 <translation id="320091191259649613">As jy ná opdatering steeds die kwessie sien, is dit moontlik dat die komponent onlangs gekwalifiseer het en nog nie in die databasis is nie.</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index d4a4cd5..40a2bfd 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">অন্তরীণ পোর্টাল শনাক্ত করা হয়েছে</translation>
 <translation id="3170673040743561620">স্ক্যানারে আপনার ডকুমেন্ট রাখুন</translation>
 <translation id="3188257591659621405">আমার ফাইল</translation>
+<translation id="319101249942218879">অবতারের ছবি পরিবর্তন করা হয়েছে</translation>
 <translation id="3192947282887913208">অডিও ফাইল</translation>
 <translation id="3199982728237701504">ডকুমেন্ট ফিডার (দুই পিঠের)</translation>
 <translation id="320091191259649613">আপনি যদি আপডেটের পরেও সমস্যাটি দেখতে পান, তাহলে এটা সম্ভব যে কম্পোনেন্টটি নতুনভাবে উপযুক্ত এবং এটি এখনও ডাটাবেসে তৈরি করেনি।</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index 3b9f503..eccec23 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Potvrdite informacije s uređaja</translation>
 <translation id="1662989795263954667">Zaustavljeno – nema tinte</translation>
 <translation id="1668469839109562275">Ugrađeni VPN</translation>
+<translation id="1672499492233627739">Videofeed web-kamere</translation>
 <translation id="1676557873873341166">Snimanje videozapisa</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS razrješivač je prisutan</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">OSVJEŽI</translation>
 <translation id="3009958530611748826">Odaberite folder za pohranjivanje</translation>
 <translation id="3017079585324758401">Pozadina</translation>
+<translation id="3027578600144895987">Zatvorite kameru</translation>
 <translation id="3031560714565892478">Uređaj je video kamera.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">Krajnja tačka</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb
index 7e650ad5..9b2f420 100644
--- a/chromeos/strings/chromeos_strings_en-GB.xtb
+++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Please confirm device information</translation>
 <translation id="1662989795263954667">Stopped – out of ink</translation>
 <translation id="1668469839109562275">Built-in VPN</translation>
+<translation id="1672499492233627739">Webcam video feed</translation>
 <translation id="1676557873873341166">Taking video</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS resolver present</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">REFRESH</translation>
 <translation id="3009958530611748826">Select a folder to save to</translation>
 <translation id="3017079585324758401">Background</translation>
+<translation id="3027578600144895987">Close the camera</translation>
 <translation id="3031560714565892478">Device is a video camera.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
 <translation id="3056720590588772262">Endpoint</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index f79ed2df..b3d979b0 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Potvrdite informacije uređaja</translation>
 <translation id="1662989795263954667">Zaustavljeno – nema tinte</translation>
 <translation id="1668469839109562275">Ugrađeni VPN</translation>
+<translation id="1672499492233627739">Videofeed web-kamere</translation>
 <translation id="1676557873873341166">Snimanje videozapisa</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">Prisutnost DNS prevoditelja</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">OSVJEŽI</translation>
 <translation id="3009958530611748826">Odaberite mapu za spremanje</translation>
 <translation id="3017079585324758401">Pozadina</translation>
+<translation id="3027578600144895987">Zatvorite kameru</translation>
 <translation id="3031560714565892478">Uređaj je videokamera.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">Završna točka</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index f4b6b1c9..9ff495a 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">Hitelesítési portál észlelve</translation>
 <translation id="3170673040743561620">Helyezze a dokumentumot a szkennerre</translation>
 <translation id="3188257591659621405">Saját fájlok</translation>
+<translation id="319101249942218879">Avatarkép módosítva</translation>
 <translation id="3192947282887913208">Audiofájlok</translation>
 <translation id="3199982728237701504">Dokumentumadagoló (kétoldalas)</translation>
 <translation id="320091191259649613">Ha a frissítés után továbbra is tapasztal problémát, előfordulhat, hogy a komponens jóváhagyása újonnan történt, és még nem szerepel az adatbázisban.</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 2aa0f32..6ae9090 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">デバイス情報を確認してください</translation>
 <translation id="1662989795263954667">停止 - インク切れ</translation>
 <translation id="1668469839109562275">組み込みの VPN</translation>
+<translation id="1672499492233627739">ウェブカメラの動画フィード</translation>
 <translation id="1676557873873341166">動画を撮影しています</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS Resolver の存在</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">更新</translation>
 <translation id="3009958530611748826">保存先のフォルダを選択</translation>
 <translation id="3017079585324758401">背景</translation>
+<translation id="3027578600144895987">カメラを閉じる</translation>
 <translation id="3031560714565892478">デバイスの種類はビデオカメラです。</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">エンドポイント</translation>
@@ -234,6 +236,7 @@
 <translation id="315738237743207937">キャプティブ ポータルが検出されました</translation>
 <translation id="3170673040743561620">スキャナにドキュメントを置いてください</translation>
 <translation id="3188257591659621405">マイファイル</translation>
+<translation id="319101249942218879">アバター画像を変更しました</translation>
 <translation id="3192947282887913208">音声ファイル</translation>
 <translation id="3199982728237701504">ドキュメント フィーダー(両面)</translation>
 <translation id="320091191259649613">更新しても問題が解決しない場合は、新たに資格を満たしたコンポーネントがデータベースに反映されていない可能性があります。</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index d968d65..bed810e 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">აღმოჩენილია ავტორიზაციის პორტალი</translation>
 <translation id="3170673040743561620">მოათავსეთ თქვენი დოკუმენტი სკანერზე</translation>
 <translation id="3188257591659621405">ჩემი ფაილები</translation>
+<translation id="319101249942218879">ავატარის სურათი შეცვლილია</translation>
 <translation id="3192947282887913208">აუდიო ფაილები</translation>
 <translation id="3199982728237701504">დოკუმენტების მიმწოდი (ორმხრივი)</translation>
 <translation id="320091191259649613">თუ განახლების შემდეგ პრობლემა კვლავ შეგექმნებათ, შესაძლოა, კომპონენტი ახალია და ჯერ არ მოხვედრილა მონაცემთა ბაზაში.</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb
index 4826c072..800d64c 100644
--- a/chromeos/strings/chromeos_strings_kn.xtb
+++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">ವೈ-ಫೈ ಪ್ರಾರಂಭ ಪೋರ್ಟಲ್ ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ</translation>
 <translation id="3170673040743561620">ನಿಮ್ಮ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಸ್ಕ್ಯಾನರ್‌ನ ಮೇಲಿರಿಸಿ</translation>
 <translation id="3188257591659621405">ನನ್ನ ಫೈಲ್‌ಗಳು</translation>
+<translation id="319101249942218879">ಅವತಾರ್ ಚಿತ್ರವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ</translation>
 <translation id="3192947282887913208">ಆಡಿಯೋ ಫೈಲ್‌ಗಳು</translation>
 <translation id="3199982728237701504">ಡಾಕ್ಯುಮೆಂಟ್ ಫೀಡರ್ (ಎರಡು-ಬದಿಯದ್ದು)</translation>
 <translation id="320091191259649613">ಅಪ್‌ಡೇಟ್‌ನ ನಂತರವೂ ನಿಮಗೆ ಸಮಸ್ಯೆ ಕಾಣಿಸಿಕೊಂಡರೆ, ಘಟಕವು ಹೊಸದಾಗಿ ಅರ್ಹತೆ ಪಡೆದಿರಬಹುದು ಮತ್ತು ಅದನ್ನು ಇನ್ನೂ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಸೇರಿಸಿಲ್ಲದಿರಬಹುದು.</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb
index ae4c991..b94c5f2 100644
--- a/chromeos/strings/chromeos_strings_mk.xtb
+++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Потврдете ги податоците за уредот</translation>
 <translation id="1662989795263954667">Запрено - нема мастило</translation>
 <translation id="1668469839109562275">Вградена VPN</translation>
+<translation id="1672499492233627739">Видеоактивност на веб-камерата</translation>
 <translation id="1676557873873341166">Снимање видео</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">Има DNS-одредувач</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">ОСВЕЖИ</translation>
 <translation id="3009958530611748826">Изберете папка за зачувување</translation>
 <translation id="3017079585324758401">Заднина</translation>
+<translation id="3027578600144895987">Затворете ја камерата</translation>
 <translation id="3031560714565892478">Уредот е видеокамера.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">Крајна точка</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 8cd804c..cb2f96f 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">ഉപകരണ വിവരം സ്ഥിരീകരിക്കുക</translation>
 <translation id="1662989795263954667">പ്രിന്റ് ജോലി നിർത്തി - മഷിയില്ല</translation>
 <translation id="1668469839109562275">ബിൽറ്റ് ഇൻ VPN</translation>
+<translation id="1672499492233627739">വെബ്‌ക്യാം വീഡിയോ ഫീഡ്</translation>
 <translation id="1676557873873341166">വീഡിയോ എടുക്കുന്നു</translation>
 <translation id="1703835215927279855">ലെറ്റർ</translation>
 <translation id="1706391837335750954">DNS റിസോൾവർ അവതരണം</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">റീഫ്രഷ് ചെയ്യുക</translation>
 <translation id="3009958530611748826">സംരക്ഷിക്കാൻ ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="3017079585324758401">പശ്ചാത്തലം</translation>
+<translation id="3027578600144895987">ക്യാമറ അടയ്ക്കുക</translation>
 <translation id="3031560714565892478">ഉപകരണം ഒരു വീഡിയോ ക്യാമറയാണ്.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
 <translation id="3056720590588772262">എൻഡ്പോയിന്റ്</translation>
@@ -234,6 +236,7 @@
 <translation id="315738237743207937">ക്യാപ്റ്റീവ് പോർട്ടൽ തിരിച്ചറിഞ്ഞു</translation>
 <translation id="3170673040743561620">നിങ്ങളുടെ ഡോക്യുമെന്റ് സ്‌കാനറിൽ വയ്ക്കുക</translation>
 <translation id="3188257591659621405">എൻ്റെ ഫയലുകൾ</translation>
+<translation id="319101249942218879">അവതാർ ചിത്രം മാറ്റി</translation>
 <translation id="3192947282887913208">ഓഡിയോ ഫയലുകള്‍</translation>
 <translation id="3199982728237701504">ഡോക്യുമെന്റ് ഫീഡർ (രണ്ട് വശമുള്ളത്)</translation>
 <translation id="320091191259649613">അപ്ഡേറ്റ് ചെയ്തതിന് ശേഷവും നിങ്ങൾ പ്രശ്നം നേരിടുന്നുണ്ടെങ്കിൽ, ഘടകം പുതുതായി യോഗ്യത നേടിയതും ഇതുവരെ ഡാറ്റാബേസിൽ ചേർക്കാത്തതും ആയിരിക്കാൻ സാധ്യതയുണ്ട്.</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 54a2034..13d45da 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">Дамжих портал илэрсэн</translation>
 <translation id="3170673040743561620">Сканнер дээр документоо байрлуулна уу</translation>
 <translation id="3188257591659621405">Миний файл</translation>
+<translation id="319101249942218879">Аватар зургийг өөрчилсөн</translation>
 <translation id="3192947282887913208">Аудио файлууд</translation>
 <translation id="3199982728237701504">Документыг дамжуулах тавиур (Хоёр талаар нь)</translation>
 <translation id="320091191259649613">Шинэчилсний дараа та асуудлыг харсан хэвээр байвал бүрэлдэхүүн хэсэг шаардлагыг шинээр хангасан бөгөөд өгөгдлийн баазад хараахан ороогүй байж магадгүй.</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index 07e4f3a..c43eafe 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">कॅप्टिव्ह पोर्टल डिटेक्ट केले</translation>
 <translation id="3170673040743561620">तुमचे दस्तऐवज स्कॅनरवर ठेवा</translation>
 <translation id="3188257591659621405">माझ्या फाइल</translation>
+<translation id="319101249942218879">अवतार इमेज बदला</translation>
 <translation id="3192947282887913208">ऑडिओ फाइल</translation>
 <translation id="3199982728237701504">दस्तऐवज फीडर (दोन बाजू असलेले)</translation>
 <translation id="320091191259649613">अपडेट केल्यानंतरही तुम्हाला समस्या दिसत असल्यास, असे होऊ शकते की, घटक नव्याने पात्र झाला आहे आणि त्याचा डेटाबेसमध्ये अद्याप समावेश केलेला नाही.</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index 8d1af680..dee81b3 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">ကိရိယာ၏ အချက်အလက်များ အတည်ပြုပါ</translation>
 <translation id="1662989795263954667">ရပ်သွားသည် - မင်ကုန်နေသည်</translation>
 <translation id="1668469839109562275">အသင့်ပါသော VPN</translation>
+<translation id="1672499492233627739">ဝဘ်ကမ်ဗီဒီယို ဖိဒ်</translation>
 <translation id="1676557873873341166">ဗီဒီယိုရိုက်နေသည်</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS Resolver ရှိသည်</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">ပြန်လည်စတင်ရန်</translation>
 <translation id="3009958530611748826">သိမ်းရန် ဖိုင်တွဲကို ရွေးပါ</translation>
 <translation id="3017079585324758401">နောက်ခံ</translation>
+<translation id="3027578600144895987">ကင်မရာပိတ်ရန်</translation>
 <translation id="3031560714565892478">ကိရိယာသည် ဗီဒီယိုကင်မရာ ဖြစ်သည်။</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
 <translation id="3056720590588772262">အဆုံးမှတ်</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index 406e967..9018165 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">कृपया डिभाइससम्बन्धी जानकारी पुष्टि गर्नुहोस्</translation>
 <translation id="1662989795263954667">रोकियो - प्रिन्टरको मसी सकियो</translation>
 <translation id="1668469839109562275">अन्तर्निर्मित VPN</translation>
+<translation id="1672499492233627739">वेबक्याम भिडियो फिड</translation>
 <translation id="1676557873873341166">भिडियो खिचिँदै छ</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS रिजल्भर प्रिजेन्ट</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">पुनः ताजा गर्नुहोस्</translation>
 <translation id="3009958530611748826">सुरक्षित गर्न कुनै फोल्डर चयन गर्नुहोस्</translation>
 <translation id="3017079585324758401">पृष्ठभूमि</translation>
+<translation id="3027578600144895987">क्यामेरा बन्द गर्नुहोस्</translation>
 <translation id="3031560714565892478">यो डिभाइस भिडियो क्यामेरा हो।</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
 <translation id="3056720590588772262">इन्डपोइन्ट</translation>
@@ -234,6 +236,7 @@
 <translation id="315738237743207937">क्याप्टिभ पोर्टल भेटियो</translation>
 <translation id="3170673040743561620">आफ्नो कागजात स्क्यानरमा राख्नुहोस्</translation>
 <translation id="3188257591659621405">मेरा फाइलहरू</translation>
+<translation id="319101249942218879">अवतार फोटो बदलियो</translation>
 <translation id="3192947282887913208">अडियो फाइलहरू</translation>
 <translation id="3199982728237701504">डकुमेन्ट फिडर (दुईतर्फी)</translation>
 <translation id="320091191259649613">अपडेट गरेपछि पनि समस्या आइरह्यो भने कम्पोनेन्ट भर्खरै योग्य भएकाले र डेटाबेसमा समावेश गरिनसकिएकाले त्यस्तो भएको हुन सक्छ।</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index d997967..38c18dd 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">S-a detectat un portal captiv</translation>
 <translation id="3170673040743561620">Așază documentul pe scaner</translation>
 <translation id="3188257591659621405">Fișierele mele</translation>
+<translation id="319101249942218879">Imaginea avatar a fost schimbată</translation>
 <translation id="3192947282887913208">Fișiere audio</translation>
 <translation id="3199982728237701504">Alimentator de documente (față-verso)</translation>
 <translation id="320091191259649613">Dacă problema persistă după actualizare, este posibil ca respectiva componentă să fi fost autorizată recent și să nu fi fost încă adăugată în baza de date.</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 8ad92fdd..1849c2e 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">Обнаружена страница входа</translation>
 <translation id="3170673040743561620">Положите документ в сканер.</translation>
 <translation id="3188257591659621405">Мои файлы</translation>
+<translation id="319101249942218879">Аватар изменен</translation>
 <translation id="3192947282887913208">Аудиофайлы</translation>
 <translation id="3199982728237701504">Автоподатчик документов (двусторонний)</translation>
 <translation id="320091191259649613">Если проблема не исчезла после обновления, возможно, компонент был недавно приведен в соответствие с требованиями и сведения об этом ещё не появились в базе данных.</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index 5ed9c6e..5924d4d 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -234,6 +234,7 @@
 <translation id="315738237743207937">Bol rozpoznaný prihlasovací portál</translation>
 <translation id="3170673040743561620">Položte dokument na skener</translation>
 <translation id="3188257591659621405">Moje súbory</translation>
+<translation id="319101249942218879">Obrázok avatara bol zmenený</translation>
 <translation id="3192947282887913208">Zvukové súbory</translation>
 <translation id="3199982728237701504">Podávač dokumentov (obojstranný)</translation>
 <translation id="320091191259649613">Ak bude po aktualizácii problém pretrvávať, je možné, že komponent je podľa novej klasifikácie vhodný, ale ešte sa nedostal do databázy.</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index d1cf91cf..74b6c818 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Potvrdite informacije o uređaju</translation>
 <translation id="1662989795263954667">Zaustavljeno – nema više mastila</translation>
 <translation id="1668469839109562275">Ugrađeni VPN</translation>
+<translation id="1672499492233627739">Video fid veb-kamere</translation>
 <translation id="1676557873873341166">Snima se video</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">Prisutan je DNS razrešivač</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">OSVEŽI</translation>
 <translation id="3009958530611748826">Izaberite folder za čuvanje</translation>
 <translation id="3017079585324758401">Pozadina</translation>
+<translation id="3027578600144895987">Zatvorite kameru</translation>
 <translation id="3031560714565892478">Uređaj je video kamera.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">Krajnja tačka</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index 5fe07635a..0cbdc8c 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">Потврдите информације о уређају</translation>
 <translation id="1662989795263954667">Заустављено – нема више мастила</translation>
 <translation id="1668469839109562275">Уграђени VPN</translation>
+<translation id="1672499492233627739">Видео фид веб-камере</translation>
 <translation id="1676557873873341166">Снима се видео</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">Присутан је DNS разрешивач</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">ОСВЕЖИ</translation>
 <translation id="3009958530611748826">Изаберите фолдер за чување</translation>
 <translation id="3017079585324758401">Позадина</translation>
+<translation id="3027578600144895987">Затворите камеру</translation>
 <translation id="3031560714565892478">Уређај је видео камера.</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
 <translation id="3056720590588772262">Крајња тачка</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index 2aafa9c3..1631d124 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -86,6 +86,7 @@
 <translation id="1645954272419197032">請確認裝置資訊</translation>
 <translation id="1662989795263954667">已停止 - 墨水已用完</translation>
 <translation id="1668469839109562275">內置 VPN</translation>
+<translation id="1672499492233627739">網絡攝影機視像畫面</translation>
 <translation id="1676557873873341166">正在錄影</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS 解析器存在</translation>
@@ -216,6 +217,7 @@
 <translation id="3008341117444806826">更新</translation>
 <translation id="3009958530611748826">選取儲存的資料夾</translation>
 <translation id="3017079585324758401">背景</translation>
+<translation id="3027578600144895987">閂相機</translation>
 <translation id="3031560714565892478">裝置類型係攝影機。</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
 <translation id="3056720590588772262">端點</translation>
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni
index 17b33ee..a751ab3 100644
--- a/chromeos/tast_control.gni
+++ b/chromeos/tast_control.gni
@@ -228,6 +228,13 @@
 
   # https://crbug.com/1328128
   "policy.PopupsForURLCheck.blocklist",
+
+  # https://crbug.com/1329734
+  "health.DiagnosticsList",
+  "health.DiagnosticsCancel.urandom",
+
+  # https://crbug.com/1329761
+  "policy.DefaultSerialGuardSetting",
 ]
 
 # To create filters to be used on specific builders add them like this:
@@ -236,4 +243,7 @@
 # test config as 'tast_expr_key'
 # To disable a specific test in lacros_all_tast_tests, add it the following
 # list and cite a bug.
-tast_disabled_tests_from_lacros_all = []
+tast_disabled_tests_from_lacros_all = [
+  # https://crbug.com/1329764
+  "policy.HistoryClustersVisible",
+]
diff --git a/components/autofill_assistant/browser/controller_unittest.cc b/components/autofill_assistant/browser/controller_unittest.cc
index b36eaa1..faaa1350 100644
--- a/components/autofill_assistant/browser/controller_unittest.cc
+++ b/components/autofill_assistant/browser/controller_unittest.cc
@@ -2297,8 +2297,8 @@
       CreateFencedFrame(web_contents()->GetMainFrame());
   GURL kFencedFrameUrl("https://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(kFencedFrameUrl,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   fenced_frame_rfh = navigation_simulator->GetFinalRenderFrameHost();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
diff --git a/components/autofill_assistant/browser/starter_unittest.cc b/components/autofill_assistant/browser/starter_unittest.cc
index b1534fc..84befed 100644
--- a/components/autofill_assistant/browser/starter_unittest.cc
+++ b/components/autofill_assistant/browser/starter_unittest.cc
@@ -2298,8 +2298,8 @@
   content::RenderFrameHost* fenced_frame_rfh =
       CreateFencedFrame(web_contents()->GetMainFrame());
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(GURL(kExampleDeeplink),
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(
+          GURL(kExampleDeeplink), fenced_frame_rfh);
   navigation_simulator->Start();
 }
 
diff --git a/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc b/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
index 213248b..dfb6e0e 100644
--- a/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
+++ b/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
@@ -587,8 +587,8 @@
   const GURL fenced_frame_url("https://fencedframe.test");
   MarkUrlAsAbusiveEnforce(fenced_frame_url);
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_root);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_root);
   navigation_simulator->Commit();
 
   // The popup blocker is not triggered for a fenced frame.
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
index 053a0b1..1c34628 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
@@ -193,7 +193,7 @@
 <translation id="5596627076506792578">अधिक पर्याय</translation>
 <translation id="5649053991847567735">स्वयंचलित डाउनलोड</translation>
 <translation id="5668404140385795438">झूम वाढविणे निर्बंधित करण्याची वेबसाइटची विनंती ओव्हरराइड करा</translation>
-<translation id="5677928146339483299">अवरोधित</translation>
+<translation id="5677928146339483299">ब्लॉक केले</translation>
 <translation id="5689516760719285838">स्थान</translation>
 <translation id="5690795753582697420">Android सेटिंग्जमध्ये कॅमेरा बंद केला आहे</translation>
 <translation id="5719847187258001597">हे <ph name="ORIGIN" /> किंवा त्याच्या अ‍ॅप्सनी तुमच्या होम स्क्रीनवर स्टोअर केलेला सर्व डेटा आणि कुकी साफ करेल.</translation>
@@ -212,7 +212,7 @@
 <translation id="6042308850641462728">अधिक</translation>
 <translation id="6064125863973209585">डाउनलोड पूर्ण झाले</translation>
 <translation id="6165508094623778733">अधिक जाणून घ्या</translation>
-<translation id="6177111841848151710">वर्तमान शोध इंजिनसाठी अवरोधित केले</translation>
+<translation id="6177111841848151710">सध्याच्या शोध इंजीनसाठी ब्लॉक केले</translation>
 <translation id="6177128806592000436">या साइटवरील तुमचे कनेक्शन सुरक्षित नाही</translation>
 <translation id="6181444274883918285">साइट एक्सेप्शन जोडा</translation>
 <translation id="6192792657125177640">अपवाद</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
index ebc15de..9b90c8e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
@@ -77,7 +77,7 @@
 <translation id="2687403674020088961">Bloquear todos os cookies (não recomendado)</translation>
 <translation id="2704606927547763573">Copiado</translation>
 <translation id="2717722538473713889">Endereços de e-mail</translation>
-<translation id="2750481671343847896">Sites podem exibir solicitações de login de serviços de identidade.</translation>
+<translation id="2750481671343847896">Sites podem exibir solicitações de login de serviços de identificação.</translation>
 <translation id="2785051990912111074">Essa ação vai apagar os cookies de <ph name="WEBSITE" /></translation>
 <translation id="2822354292072154809">Tem certeza de que quer redefinir todas as permissões de site para <ph name="CHOSEN_OBJECT_NAME" />?</translation>
 <translation id="2870560284913253234">Site</translation>
@@ -239,7 +239,7 @@
 <translation id="6643016212128521049">Limpar</translation>
 <translation id="6689172468748959065">Fotos do perfil</translation>
 <translation id="6697925417670533197">Downloads ativos</translation>
-<translation id="6722828510648505498">Bloquear solicitações de login de serviços de identidade.</translation>
+<translation id="6722828510648505498">Bloquear solicitações de login de serviços de identificação.</translation>
 <translation id="6746124502594467657">Mover para baixo</translation>
 <translation id="6749077623962119521">Redefinir permissões?</translation>
 <translation id="6766622839693428701">Deslize para baixo para fechar.</translation>
diff --git a/components/certificate_matching/certificate_principal_pattern.cc b/components/certificate_matching/certificate_principal_pattern.cc
index 9552b45d8..f6f0af4 100644
--- a/components/certificate_matching/certificate_principal_pattern.cc
+++ b/components/certificate_matching/certificate_principal_pattern.cc
@@ -14,9 +14,9 @@
 namespace certificate_matching {
 namespace {
 
-std::string GetOptionalStringKey(const base::Value& dictionary,
+std::string GetOptionalStringKey(const base::Value::Dict& dictionary,
                                  base::StringPiece key) {
-  auto* value = dictionary.FindStringKey(key);
+  auto* value = dictionary.FindString(key);
   return value ? *value : std::string();
 }
 
@@ -84,12 +84,12 @@
 
 // static
 CertificatePrincipalPattern CertificatePrincipalPattern::ParseFromOptionalDict(
-    const base::Value* dict,
+    const base::Value::Dict* dict,
     base::StringPiece key_common_name,
     base::StringPiece key_locality,
     base::StringPiece key_organization,
     base::StringPiece key_organization_unit) {
-  if (!dict || !dict->is_dict())
+  if (!dict)
     return CertificatePrincipalPattern();
   return CertificatePrincipalPattern(
       GetOptionalStringKey(*dict, key_common_name),
diff --git a/components/certificate_matching/certificate_principal_pattern.h b/components/certificate_matching/certificate_principal_pattern.h
index 61757117..cca19b5 100644
--- a/components/certificate_matching/certificate_principal_pattern.h
+++ b/components/certificate_matching/certificate_principal_pattern.h
@@ -9,10 +9,7 @@
 
 #include "base/component_export.h"
 #include "base/strings/string_piece_forward.h"
-
-namespace base {
-class Value;
-}
+#include "base/values.h"
 
 namespace net {
 struct CertPrincipal;
@@ -61,7 +58,7 @@
   // empty (putting no constraint on the principal field). If |value| is nullptr
   // or not a dictionary, returns an empty pattern.
   static CertificatePrincipalPattern ParseFromOptionalDict(
-      const base::Value* dict,
+      const base::Value::Dict* dict,
       base::StringPiece key_common_name,
       base::StringPiece key_locality,
       base::StringPiece key_organization,
diff --git a/components/certificate_matching/certificate_principal_pattern_unittest.cc b/components/certificate_matching/certificate_principal_pattern_unittest.cc
index dab4b49..36446bf 100644
--- a/components/certificate_matching/certificate_principal_pattern_unittest.cc
+++ b/components/certificate_matching/certificate_principal_pattern_unittest.cc
@@ -89,16 +89,8 @@
   EXPECT_TRUE(pattern.Empty());
 }
 
-TEST(CertificatePrincipalPatternTest, ParseFromNonDict) {
-  base::Value string_value("test");
-  CertificatePrincipalPattern pattern =
-      CertificatePrincipalPattern::ParseFromOptionalDict(&string_value, kKeyCN,
-                                                         kKeyL, kKeyO, kKeyOU);
-  EXPECT_TRUE(pattern.Empty());
-}
-
 TEST(CertificatePrincipalPatternTest, ParseFromEmptyDict) {
-  base::Value dict_value(base::Value::Type::DICTIONARY);
+  base::Value::Dict dict_value;
   CertificatePrincipalPattern pattern =
       CertificatePrincipalPattern::ParseFromOptionalDict(&dict_value, kKeyCN,
                                                          kKeyL, kKeyO, kKeyOU);
@@ -106,11 +98,11 @@
 }
 
 TEST(CertificatePrincipalPatternTest, Parse) {
-  base::Value dict_value(base::Value::Type::DICTIONARY);
-  dict_value.SetKey(kKeyCN, base::Value("ValueCN"));
-  dict_value.SetKey(kKeyL, base::Value("ValueL"));
-  dict_value.SetKey(kKeyO, base::Value("ValueO"));
-  dict_value.SetKey(kKeyOU, base::Value("ValueOU"));
+  base::Value::Dict dict_value;
+  dict_value.Set(kKeyCN, "ValueCN");
+  dict_value.Set(kKeyL, "ValueL");
+  dict_value.Set(kKeyO, "ValueO");
+  dict_value.Set(kKeyOU, "ValueOU");
   CertificatePrincipalPattern pattern =
       CertificatePrincipalPattern::ParseFromOptionalDict(&dict_value, kKeyCN,
                                                          kKeyL, kKeyO, kKeyOU);
diff --git a/components/content_settings/browser/page_specific_content_settings_unittest.cc b/components/content_settings/browser/page_specific_content_settings_unittest.cc
index 4e94ffd..0cba80c 100644
--- a/components/content_settings/browser/page_specific_content_settings_unittest.cc
+++ b/components/content_settings/browser/page_specific_content_settings_unittest.cc
@@ -712,8 +712,8 @@
         content::RenderFrameHostTester::For(web_contents()->GetMainFrame())
             ->AppendFencedFrame();
     std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-        content::NavigationSimulator::CreateForFencedFrame(url,
-                                                           fenced_frame_root);
+        content::NavigationSimulator::CreateRendererInitiated(
+            url, fenced_frame_root);
     navigation_simulator->Commit();
     return navigation_simulator->GetFinalRenderFrameHost();
   }
diff --git a/components/exo/wayland/BUILD.gn b/components/exo/wayland/BUILD.gn
index 631aaabf..100f5b3 100644
--- a/components/exo/wayland/BUILD.gn
+++ b/components/exo/wayland/BUILD.gn
@@ -723,7 +723,10 @@
 
 if (ozone_platform_drm) {
   test("wayland_client_integration_tests") {
-    sources = [ "clients/wayland_client_integration_tests.cc" ]
+    sources = [
+      "test/integration/buffer_checker_test.cc",
+      "test/integration/wayland_client_integration_tests_main.cc",
+    ]
     deps = [
       ":client_support",
       "//base",
diff --git a/components/exo/wayland/clients/wayland_client_integration_tests.cc b/components/exo/wayland/test/integration/buffer_checker_test.cc
similarity index 90%
rename from components/exo/wayland/clients/wayland_client_integration_tests.cc
rename to components/exo/wayland/test/integration/buffer_checker_test.cc
index c6f2522..78d2d56 100644
--- a/components/exo/wayland/clients/wayland_client_integration_tests.cc
+++ b/components/exo/wayland/test/integration/buffer_checker_test.cc
@@ -7,14 +7,11 @@
 #include <iterator>
 #include <vector>
 
-#include "base/command_line.h"
 #include "base/containers/flat_map.h"
 #include "base/containers/queue.h"
 #include "base/logging.h"
 #include "base/strings/string_util.h"
-#include "base/test/launcher/unit_test_launcher.h"
 #include "base/test/task_environment.h"
-#include "base/test/test_suite.h"
 #include "components/exo/wayland/clients/client_base.h"
 #include "components/exo/wayland/clients/client_helper.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -42,11 +39,11 @@
 
 namespace exo {
 namespace wayland {
-namespace clients {
+namespace test {
 
 namespace {
 
-class BufferCheckerTestClient : public ClientBase {
+class BufferCheckerTestClient : public ::exo::wayland::clients::ClientBase {
  public:
   explicit BufferCheckerTestClient() = default;
   ~BufferCheckerTestClient() override = default;
@@ -161,11 +158,11 @@
 };
 
 }  // namespace
-}  // namespace clients
+}  // namespace test
 }  // namespace wayland
 }  // namespace exo
 
-class IntegrationTestClientTest : public testing::Test {
+class BufferCheckerClientTest : public testing::Test {
  protected:
   void SetUp() override {
     base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
@@ -193,8 +190,8 @@
              << base::JoinString(buffer_names, ", ");
 }
 
-TEST_F(IntegrationTestClientTest, CanUseAllReportedBuffers) {
-  exo::wayland::clients::BufferCheckerTestClient client;
+TEST_F(BufferCheckerClientTest, CanUseAllReportedBuffers) {
+  exo::wayland::test::BufferCheckerTestClient client;
   auto params = base_params_;
   // Initialize no buffers when we start, wait until we've gotten the list
   params.num_buffers = 0;
@@ -203,13 +200,3 @@
   for (auto format : client.reported_formats)
     EXPECT_TRUE(client.HasAnySupportedUsages(format));
 }
-
-int main(int argc, char* argv[]) {
-  base::CommandLine::Init(argc, argv);
-  base::TestSuite test_suite(argc, argv);
-
-  // Tests may not run to completion if we do not run them serially.
-  return base::LaunchUnitTestsSerially(
-      argc, argv,
-      base::BindOnce(&base::TestSuite::Run, base::Unretained(&test_suite)));
-}
diff --git a/components/exo/wayland/test/integration/wayland_client_integration_tests_main.cc b/components/exo/wayland/test/integration/wayland_client_integration_tests_main.cc
new file mode 100644
index 0000000..4c80b62f
--- /dev/null
+++ b/components/exo/wayland/test/integration/wayland_client_integration_tests_main.cc
@@ -0,0 +1,17 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/command_line.h"
+#include "base/test/launcher/unit_test_launcher.h"
+#include "base/test/test_suite.h"
+
+int main(int argc, char* argv[]) {
+  base::CommandLine::Init(argc, argv);
+  base::TestSuite test_suite(argc, argv);
+
+  // Tests may not run to completion if we do not run them serially.
+  return base::LaunchUnitTestsSerially(
+      argc, argv,
+      base::BindOnce(&base::TestSuite::Run, base::Unretained(&test_suite)));
+}
diff --git a/components/history_clusters/core/config.cc b/components/history_clusters/core/config.cc
index 1ec6dea..3e5d8c0 100644
--- a/components/history_clusters/core/config.cc
+++ b/components/history_clusters/core/config.cc
@@ -108,6 +108,10 @@
       history_clusters::features::kOnDeviceClusteringKeywordFiltering,
       "keyword_filter_on_noisy_visits", keyword_filter_on_noisy_visits);
 
+  keyword_filter_on_search_terms = GetFieldTrialParamByFeatureAsBool(
+      history_clusters::features::kOnDeviceClusteringKeywordFiltering,
+      "keyword_filter_on_search_terms", keyword_filter_on_search_terms);
+
   non_user_visible_debug =
       base::FeatureList::IsEnabled(internal::kNonUserVisibleDebug);
 
diff --git a/components/history_clusters/core/config.h b/components/history_clusters/core/config.h
index 91b9ad9e..b6b2070e 100644
--- a/components/history_clusters/core/config.h
+++ b/components/history_clusters/core/config.h
@@ -99,6 +99,9 @@
   // cluster.
   bool keyword_filter_on_entity_aliases = false;
 
+  // If enabled, adds the search terms of the visits that have them.
+  bool keyword_filter_on_search_terms = false;
+
   // If greater than 0, the max number of aliases to include in keywords. If <=
   // 0, all aliases will be included.
   size_t max_entity_aliases_in_keywords = 0;
diff --git a/components/history_clusters/core/keyword_cluster_finalizer.cc b/components/history_clusters/core/keyword_cluster_finalizer.cc
index c119814..d75471f7 100644
--- a/components/history_clusters/core/keyword_cluster_finalizer.cc
+++ b/components/history_clusters/core/keyword_cluster_finalizer.cc
@@ -51,6 +51,12 @@
         keywords_set.insert(base::UTF8ToUTF16(category.id));
       }
     }
+
+    if (GetConfig().keyword_filter_on_search_terms &&
+        !visit.annotated_visit.content_annotations.search_terms.empty()) {
+      keywords_set.insert(
+          visit.annotated_visit.content_annotations.search_terms);
+    }
   }
   cluster.keywords =
       std::vector<std::u16string>(keywords_set.begin(), keywords_set.end());
diff --git a/components/history_clusters/core/keyword_cluster_finalizer_unittest.cc b/components/history_clusters/core/keyword_cluster_finalizer_unittest.cc
index 27d1376..6873d3a0 100644
--- a/components/history_clusters/core/keyword_cluster_finalizer_unittest.cc
+++ b/components/history_clusters/core/keyword_cluster_finalizer_unittest.cc
@@ -32,6 +32,7 @@
     config_.keyword_filter_on_noisy_visits = false;
     config_.keyword_filter_on_categories = false;
     config_.keyword_filter_on_entity_aliases = false;
+    config_.keyword_filter_on_search_terms = false;
     SetConfigForTesting(config_);
   }
 
@@ -55,6 +56,7 @@
       {"github", 1}};
   visit.annotated_visit.content_annotations.model_annotations.categories = {
       {"category", 1}};
+  visit.annotated_visit.content_annotations.search_terms = u"search";
 
   history::ClusterVisit visit2 =
       testing::CreateClusterVisit(testing::CreateDefaultAnnotatedVisit(
@@ -73,6 +75,7 @@
       {"github", 1}, {"otherentity", 1}};
   visit3.annotated_visit.content_annotations.model_annotations.categories = {
       {"category", 1}};
+  visit3.annotated_visit.content_annotations.search_terms = u"search";
 
   history::Cluster cluster;
   cluster.visits = {visit2, visit3};
@@ -91,6 +94,7 @@
     config_.keyword_filter_on_categories = true;
     config_.keyword_filter_on_entity_aliases = true;
     config_.max_entity_aliases_in_keywords = 1;
+    config_.keyword_filter_on_search_terms = true;
     SetConfigForTesting(config_);
   }
 
@@ -107,6 +111,7 @@
       {"github", 1}};
   visit.annotated_visit.content_annotations.model_annotations.categories = {
       {"category", 1}};
+  visit.annotated_visit.content_annotations.search_terms = u"search";
 
   history::ClusterVisit visit2 =
       testing::CreateClusterVisit(testing::CreateDefaultAnnotatedVisit(
@@ -125,13 +130,14 @@
       {"github", 1}, {"otherentity", 1}};
   visit3.annotated_visit.content_annotations.model_annotations.categories = {
       {"category", 1}};
+  visit3.annotated_visit.content_annotations.search_terms = u"search";
 
   history::Cluster cluster;
   cluster.visits = {visit2, visit3};
   FinalizeCluster(cluster);
   EXPECT_THAT(cluster.keywords,
               UnorderedElementsAre(u"github", u"category", u"onlyinnoisyvisit",
-                                   u"otherentity", u"git hub"));
+                                   u"otherentity", u"git hub", u"search"));
 }
 
 }  // namespace
diff --git a/components/optimization_guide/content/browser/page_text_observer_unittest.cc b/components/optimization_guide/content/browser/page_text_observer_unittest.cc
index dc1856c2..20c37a7 100644
--- a/components/optimization_guide/content/browser/page_text_observer_unittest.cc
+++ b/components/optimization_guide/content/browser/page_text_observer_unittest.cc
@@ -1223,8 +1223,8 @@
       content::RenderFrameHostTester::For(main_rfh())->AppendFencedFrame();
   GURL kFencedFrameUrl("http://fencedframe.com");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(kFencedFrameUrl,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
 
   // Add an OOPIF subframe.
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
index 21607cc6..6b6a16b6 100644
--- a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
@@ -517,11 +517,7 @@
   std::unique_ptr<NavigationSimulator> CreateNavigationSimulator(
       const std::string& url,
       content::RenderFrameHost* frame) {
-    if (WithFencedFrames() && !frame->IsInPrimaryMainFrame()) {
-      return NavigationSimulator::CreateForFencedFrame(GURL(url), frame);
-    } else {
-      return NavigationSimulator::CreateRendererInitiated(GURL(url), frame);
-    }
+    return NavigationSimulator::CreateRendererInitiated(GURL(url), frame);
   }
 
   // Returns the final RenderFrameHost after navigation commits.
diff --git a/components/page_load_metrics/browser/observers/fenced_frames_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/fenced_frames_page_load_metrics_observer_unittest.cc
index 4a46d54..013f8eda8 100644
--- a/components/page_load_metrics/browser/observers/fenced_frames_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/fenced_frames_page_load_metrics_observer_unittest.cc
@@ -86,7 +86,7 @@
           ->AppendFencedFrame();
   ASSERT_TRUE(fenced_frame_root->IsFencedFrameRoot());
 
-  auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+  auto simulator = content::NavigationSimulator::CreateRendererInitiated(
       GURL(kFencedFramesUrl), fenced_frame_root);
   ASSERT_NE(nullptr, simulator);
   simulator->Commit();
@@ -133,7 +133,7 @@
           ->AppendFencedFrame();
   ASSERT_TRUE(fenced_frame_root->IsFencedFrameRoot());
 
-  auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+  auto simulator = content::NavigationSimulator::CreateRendererInitiated(
       GURL(kFencedFramesUrl), fenced_frame_root);
   ASSERT_NE(nullptr, simulator);
   simulator->Commit();
diff --git a/components/page_load_metrics/browser/observers/use_counter_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/use_counter_page_load_metrics_observer_unittest.cc
index 0f929265..e70b7dc5 100644
--- a/components/page_load_metrics/browser/observers/use_counter_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/use_counter_page_load_metrics_observer_unittest.cc
@@ -92,7 +92,7 @@
               ->AppendFencedFrame();
       ASSERT_TRUE(fenced_frame_root->IsFencedFrameRoot());
 
-      auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+      auto simulator = content::NavigationSimulator::CreateRendererInitiated(
           GURL(kFencedFramesUrl), fenced_frame_root);
       ASSERT_NE(nullptr, simulator);
       simulator->Commit();
diff --git a/components/page_load_metrics/browser/page_load_metrics_forward_observer_unittest.cc b/components/page_load_metrics/browser/page_load_metrics_forward_observer_unittest.cc
index 26442d4b..b2ce2da 100644
--- a/components/page_load_metrics/browser/page_load_metrics_forward_observer_unittest.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_forward_observer_unittest.cc
@@ -113,7 +113,7 @@
       content::RenderFrameHostTester::For(web_contents()->GetMainFrame())
           ->AppendFencedFrame();
   {
-    auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+    auto simulator = content::NavigationSimulator::CreateRendererInitiated(
         GURL(kTestUrl), fenced_frame_root);
     ASSERT_NE(nullptr, simulator);
     simulator->Commit();
diff --git a/components/page_load_metrics/browser/page_load_tracker_unittest.cc b/components/page_load_metrics/browser/page_load_tracker_unittest.cc
index cb90fcc..89e3581 100644
--- a/components/page_load_metrics/browser/page_load_tracker_unittest.cc
+++ b/components/page_load_metrics/browser/page_load_tracker_unittest.cc
@@ -172,7 +172,7 @@
           ->AppendFencedFrame();
   {
     const char kFencedFramesUrl[] = "https://a.test/fenced_frames";
-    auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+    auto simulator = content::NavigationSimulator::CreateRendererInitiated(
         GURL(kFencedFramesUrl), fenced_frame_root);
     ASSERT_NE(nullptr, simulator);
     simulator->Commit();
@@ -191,7 +191,7 @@
   // Navigate out.
   {
     const char kFencedFramesNavigationUrl[] = "https://b.test/fenced_frames";
-    auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+    auto simulator = content::NavigationSimulator::CreateRendererInitiated(
         GURL(kFencedFramesNavigationUrl), fenced_frame_root);
     ASSERT_NE(nullptr, simulator);
     simulator->Commit();
@@ -249,7 +249,7 @@
       content::RenderFrameHostTester::For(web_contents()->GetMainFrame())
           ->AppendFencedFrame();
   {
-    auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+    auto simulator = content::NavigationSimulator::CreateRendererInitiated(
         GURL(kFencedFramesUrl), fenced_frame_root);
     ASSERT_NE(nullptr, simulator);
     simulator->Commit();
@@ -277,7 +277,7 @@
 
   // Navigate out.
   {
-    auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+    auto simulator = content::NavigationSimulator::CreateRendererInitiated(
         GURL(kTestUrl), fenced_frame_root);
     ASSERT_NE(nullptr, simulator);
     simulator->Commit();
@@ -320,7 +320,7 @@
   content::RenderFrameHost* fenced_frame_root =
       content::RenderFrameHostTester::For(web_contents()->GetMainFrame())
           ->AppendFencedFrame();
-  auto simulator = content::NavigationSimulator::CreateForFencedFrame(
+  auto simulator = content::NavigationSimulator::CreateRendererInitiated(
       GURL(kFencedFramesUrl), fenced_frame_root);
   ASSERT_NE(nullptr, simulator);
   simulator->Commit();
diff --git a/components/password_manager/content/browser/content_password_manager_driver_unittest.cc b/components/password_manager/content/browser/content_password_manager_driver_unittest.cc
index 2504640..64b2b17 100644
--- a/components/password_manager/content/browser/content_password_manager_driver_unittest.cc
+++ b/components/password_manager/content/browser/content_password_manager_driver_unittest.cc
@@ -407,8 +407,8 @@
   // Navigate a fenced frame.
   GURL fenced_frame_url = GURL("https://hostname/path?query#hash");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_root);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_root);
   navigation_simulator->Commit();
 
   autofill::FormData initial_form;
diff --git a/components/password_manager/core/browser/password_manager_metrics_util.cc b/components/password_manager/core/browser/password_manager_metrics_util.cc
index 8dd4c26..2ebc2ef 100644
--- a/components/password_manager/core/browser/password_manager_metrics_util.cc
+++ b/components/password_manager/core/browser/password_manager_metrics_util.cc
@@ -303,15 +303,25 @@
       "PasswordManager.DeleteUndecryptableLoginsReturnValue", result);
 }
 
-void LogNewlySavedPasswordIsGenerated(
-    bool value,
+void LogNewlySavedPasswordMetrics(
+    bool is_generated_password,
+    bool is_username_empty,
     PasswordAccountStorageUsageLevel account_storage_usage_level) {
   base::UmaHistogramBoolean("PasswordManager.NewlySavedPasswordIsGenerated",
-                            value);
+                            is_generated_password);
   std::string suffix = GetPasswordAccountStorageUsageLevelHistogramSuffix(
       account_storage_usage_level);
   base::UmaHistogramBoolean(
-      "PasswordManager.NewlySavedPasswordIsGenerated." + suffix, value);
+      "PasswordManager.NewlySavedPasswordIsGenerated." + suffix,
+      is_generated_password);
+
+  base::UmaHistogramBoolean(
+      "PasswordManager.NewlySavedPasswordHasEmptyUsername.Overall",
+      is_username_empty);
+  base::UmaHistogramBoolean(
+      base::StrCat({"PasswordManager.NewlySavedPasswordHasEmptyUsername.",
+                    is_generated_password ? "AutoGenerated" : "UserCreated"}),
+      is_username_empty);
 }
 
 void LogGenerationDialogChoice(GenerationDialogChoice choice,
diff --git a/components/password_manager/core/browser/password_manager_metrics_util.h b/components/password_manager/core/browser/password_manager_metrics_util.h
index 90c8de752..39fecca6 100644
--- a/components/password_manager/core/browser/password_manager_metrics_util.h
+++ b/components/password_manager/core/browser/password_manager_metrics_util.h
@@ -698,9 +698,11 @@
 void LogDeleteUndecryptableLoginsReturnValue(
     DeleteCorruptedPasswordsResult result);
 
-// Log whether a saved password was generated.
-void LogNewlySavedPasswordIsGenerated(
-    bool value,
+// Log metrics about a newly saved password (e.g. whether a saved password was
+// generated).
+void LogNewlySavedPasswordMetrics(
+    bool is_generated_password,
+    bool is_username_empty,
     PasswordAccountStorageUsageLevel account_storage_usage_level);
 
 // Log whether the generated password was accepted or rejected for generation of
diff --git a/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
index 3627fcd3..95f0312 100644
--- a/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
+++ b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
@@ -99,4 +99,33 @@
   }
 }
 
+TEST(PasswordManagerMetricsUtil, LogNewlySavedPasswordMetrics) {
+  base::HistogramTester histogram_tester;
+
+  constexpr bool kIsGeneratedPassword = true;
+  constexpr bool kIsUsernameEmpty = true;
+  LogNewlySavedPasswordMetrics(
+      /*is_generated_password=*/true, /*is_username_empty=*/true,
+      PasswordAccountStorageUsageLevel::kNotUsingAccountStorage);
+
+  histogram_tester.ExpectUniqueSample(
+      "PasswordManager.NewlySavedPasswordIsGenerated", kIsGeneratedPassword, 1);
+  histogram_tester.ExpectUniqueSample(
+      "PasswordManager.NewlySavedPasswordIsGenerated.NotUsingAccountStorage",
+      kIsGeneratedPassword, 1);
+  histogram_tester.ExpectTotalCount(
+      "PasswordManager.NewlySavedPasswordIsGenerated.UsingAccountStorage", 0);
+  histogram_tester.ExpectTotalCount(
+      "PasswordManager.NewlySavedPasswordIsGenerated.Syncing", 0);
+
+  histogram_tester.ExpectUniqueSample(
+      "PasswordManager.NewlySavedPasswordHasEmptyUsername.Overall",
+      kIsUsernameEmpty, 1);
+  histogram_tester.ExpectUniqueSample(
+      "PasswordManager.NewlySavedPasswordHasEmptyUsername.AutoGenerated",
+      kIsUsernameEmpty, 1);
+  histogram_tester.ExpectTotalCount(
+      "PasswordManager.NewlySavedPasswordHasEmptyUsername.UserCreated", 0);
+}
+
 }  // namespace password_manager::metrics_util
diff --git a/components/password_manager/core/browser/password_save_manager_impl.cc b/components/password_manager/core/browser/password_save_manager_impl.cc
index 2a403d5..d2008955 100644
--- a/components/password_manager/core/browser/password_save_manager_impl.cc
+++ b/components/password_manager/core/browser/password_save_manager_impl.cc
@@ -780,8 +780,9 @@
 #endif  // !BUILDFLAG(IS_ANDROID)
 
   if (IsNewLogin()) {
-    metrics_util::LogNewlySavedPasswordIsGenerated(
+    metrics_util::LogNewlySavedPasswordMetrics(
         pending_credentials_.type == PasswordForm::Type::kGenerated,
+        pending_credentials_.username_value.empty(),
         client_->GetPasswordFeatureManager()
             ->ComputePasswordAccountStorageUsageLevel());
     // Don't send votes if there was no observed form.
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc
index b08d068..5b7df36 100644
--- a/components/password_manager/core/common/password_manager_features.cc
+++ b/components/password_manager/core/common/password_manager_features.cc
@@ -167,13 +167,8 @@
 
 // Enables the addition of passwords in Chrome Settings.
 // TODO(crbug/1226008): Remove once it's launched.
-#if BUILDFLAG(IS_IOS)
 const base::Feature kSupportForAddPasswordsInSettings = {
     "SupportForAddPasswordsInSettings", base::FEATURE_ENABLED_BY_DEFAULT};
-#else
-const base::Feature kSupportForAddPasswordsInSettings = {
-    "SupportForAddPasswordsInSettings", base::FEATURE_DISABLED_BY_DEFAULT};
-#endif
 
 #if BUILDFLAG(IS_LINUX)
 // When enabled, all undecryptable passwords are deleted from the local database
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 02707310..497002c 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -3596,6 +3596,7 @@
 <translation id="4960597185231686653">Boolescher Parameter, der angibt, ob für die Bildschirmtastatur die Spracheingabe aktiviert ist.</translation>
 <translation id="4970046075219007744">Webanwendungen erlauben, um Zugriff auf Dateitypen über die File Handling API zu bitten</translation>
 <translation id="4970855112942626932">Browseranmeldung deaktivieren</translation>
+<translation id="4974091268178043378">Chrome OS-Farbmodus</translation>
 <translation id="4976928720873547342">Wenn du diese Richtlinie konfigurierst, werden alle angegebenen Datentypen von der Synchronisierung ausgeschlossen. Dies gilt sowohl für die <ph name="CHROME_SYNC_NAME" /> als auch für die Synchronisierung von Roaming-Profilen. Dadurch lässt sich die Größe von Roaming-Profilen reduzieren und du kannst einschränken, welche Arten von Daten auf die <ph name="CHROME_SYNC_NAME" />-Server hochgeladen werden.
 
       Aktuell werden folgende Datentypen unterstützt: „bookmarks“, „readingList“, „preferences“, „passwords“, „autofill“, „themes“, „typedUrls“, „extensions“, „apps“, „tabs“ und „wifiConfigurations“. Bei diesen Namen muss die Groß- und Kleinschreibung beachtet werden.</translation>
@@ -4346,6 +4347,7 @@
 
       Nutzer können diese Einstellung nicht ändern.</translation>
 <translation id="5848438019586925019">Algorithmus für die Generierung von Schlüsselpaaren.</translation>
+<translation id="5851248808417680865">Dunkles Design verwenden</translation>
 <translation id="585270638818921943">Nutzer daran hindern, Android-Apps aus nicht vertrauenswürdigen Quellen zu verwenden</translation>
 <translation id="5853547031212075792">Nutzern erlauben, den Nur-HTTPS-Modus zu aktivieren</translation>
 <translation id="5859344336338527083">Wenn diese Richtlinie konfiguriert ist, wird festgelegt, über welche URLs Erweiterungen, Apps und Designs installiert werden dürfen. Vor <ph name="PRODUCT_NAME" />-Version 21 konnten Nutzer auf den Link zu einer CRX-Datei klicken und die Datei nach einigen Hinweisen in <ph name="PRODUCT_NAME" /> installieren. In allen nachfolgenden Versionen müssen solche Dateien zuerst heruntergeladen und dann auf die Seite "Einstellungen" in <ph name="PRODUCT_NAME" /> gezogen werden. Anhand dieser Einstellung kann bei bestimmten URLs der alte, einfachere Installationsvorgang angewendet werden.
@@ -4512,6 +4514,7 @@
 
       Diese Richtlinie wird nur angewendet, wenn das Gerät für <ph name="PRODUCT_NAME" /> mit <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> registriert ist.
       Für <ph name="PRODUCT_OS_NAME" /> wird diese Richtlinie immer angewendet.</translation>
+<translation id="6019162469732742754">Automatischen Modus verwenden</translation>
 <translation id="6019606564278029236">Zulassen, dass Remote-Nutzer bei der Remote-Unterstützung mit geöffneten Fenstern interagieren können</translation>
 <translation id="6022948604095165524">Aktion beim Start</translation>
 <translation id="602318745029752898">Stimmen für die Sprachausgabe bei Enhanced Network in der Funktion „Vorlesen“ zulassen</translation>
@@ -5496,6 +5499,7 @@
 <translation id="7019805045859631636">Schnell</translation>
 <translation id="7025332601572838001">Konfiguriert die Nutzungsbedingungen während der ersten Ausführung für CCT</translation>
 <translation id="7026351325994257733">Erlauben, dass WLAN-Konfigurationen auf allen <ph name="PRODUCT_OS_NAME" />-Geräten und einem verbundenen Android-Smartphone synchronisiert werden.</translation>
+<translation id="7027057540229843762">Helles Design verwenden</translation>
 <translation id="7027785306666625591">Hiermit wird die Energieverwaltung in <ph name="PRODUCT_OS_NAME" /> konfiguriert.
 
       Mit diesen Richtlinien kannst du festlegen, wie <ph name="PRODUCT_OS_NAME" /> sich verhalten soll, wenn der Nutzer für einen bestimmten Zeitraum inaktiv ist.</translation>
@@ -7058,6 +7062,9 @@
 
       „http://acme.de/ABC“ stimmt nur in „IESiteListMode“ überein.</translation>
 <translation id="8736538322216687231">Minimalen eingeschränkten Modus auf YouTube erzwingen</translation>
+<translation id="8744844164152340112">Dadurch wird festgelegt, welches Design zum Rendern der Benutzeroberfläche während der OOBE (Out-of-Box-Experience) und während einer Sitzung verwendet wird.
+      Dieser automatische Modus wechselt bei Sonnenauf- und untergang zwischen dem hellen und dunklen Design.
+      Diese Richtlinie sollte Nutzern empfohlen werden, damit sie das Design in den Systemeinstellungen ändern können.</translation>
 <translation id="8745669971728319820">Mit dieser Richtlinie wird festgelegt, ob Daten zu Erweiterungen und Plug-ins gesendet werden.
 
       Wenn die Richtlinie <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> deaktiviert oder nicht konfiguriert ist, wird diese Richtlinie ignoriert.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index eb47327..d07d39e 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -3632,6 +3632,7 @@
 <translation id="4960597185231686653">Función experimental booleana que indica si el teclado en pantalla puede proporcionar entrada de voz.</translation>
 <translation id="4970046075219007744">Permitir que las aplicaciones web le soliciten al usuario acceso a determinados tipos de archivos a través de la API de File Handling</translation>
 <translation id="4970855112942626932">Inhabilitar el acceso en el navegador</translation>
+<translation id="4974091268178043378">Modo de color de ChromeOS</translation>
 <translation id="4976928720873547342">Si estableces esta política, todos los tipos de datos especificados se excluirán de la sincronización para <ph name="CHROME_SYNC_NAME" /> y de la sincronización de perfiles en roaming. Esta política puede ayudar a reducir el tamaño del perfil de roaming o limitar los tipos de datos que se suben a los servidores de <ph name="CHROME_SYNC_NAME" />.
 
       Los tipos de datos actuales para esta política son los siguientes: "bookmarks", "readingList", "preferences", "passwords", "autofill", "themes", "typedUrls", "extensions", "apps", "tabs" y "wifiConfigurations". Estos nombres distinguen mayúsculas de minúsculas.</translation>
@@ -4397,6 +4398,7 @@
 
       Los usuarios no podrán cambiar esta configuración.</translation>
 <translation id="5848438019586925019">El algoritmo para la generación del par de claves.</translation>
+<translation id="5851248808417680865">Usar el Tema oscuro</translation>
 <translation id="585270638818921943">Impide que el usuario use apps para Android de fuentes no confiables</translation>
 <translation id="5853547031212075792">Permitir que los usuarios habiliten el modo solo HTTPS</translation>
 <translation id="5859344336338527083">Si estableces esta política, se especificarán las URL que pueden instalar extensiones, apps y temas. Antes de la versión <ph name="PRODUCT_NAME" /> 21, los usuarios podían hacer clic en un vínculo que los dirigía a un archivo *.crx y <ph name="PRODUCT_NAME" /> ofrecía instalar el archivo después de unas advertencias. A partir de esa versión, este tipo de archivos debe descargarse y arrastrarse a la página de configuración de <ph name="PRODUCT_NAME" />. Esta configuración permite especificar las URL que tendrán el flujo de instalación anterior, que es más sencillo.
@@ -4573,6 +4575,7 @@
 
       Esta política solo será válida si la máquina está inscrita en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> para <ph name="PRODUCT_NAME" />.
       Esta política siempre será válida para <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="6019162469732742754">Usar el Modo automático</translation>
 <translation id="6019606564278029236">Permitir que los usuarios remotos interactúen con las ventanas con permisos elevados en sesiones de asistencia remota</translation>
 <translation id="6022948604095165524">Acción al iniciar</translation>
 <translation id="602318745029752898">Permitir las voces de texto a voz de la red mejorada en Seleccionar para pronunciar</translation>
@@ -5574,6 +5577,7 @@
 <translation id="7019805045859631636">"Fast"</translation>
 <translation id="7025332601572838001">Configura el comportamiento de las Condiciones del Servicio en la primera ejecución para CCT</translation>
 <translation id="7026351325994257733">Permite sincronizar los ajustes de la red Wi-Fi entre dispositivos con <ph name="PRODUCT_OS_NAME" /> y un teléfono Android conectado</translation>
+<translation id="7027057540229843762">Usar el Tema claro</translation>
 <translation id="7027785306666625591">Configura la administración de energía en <ph name="PRODUCT_OS_NAME" />.
 
       Estas políticas te permiten configurar el comportamiento de <ph name="PRODUCT_OS_NAME" /> cuando el usuario permanece inactivo durante cierta cantidad de tiempo.</translation>
@@ -7146,6 +7150,9 @@
 
       "http://acme.com/ABC" solo coincide en el modo "IESiteListMode".</translation>
 <translation id="8736538322216687231">Aplicar el modo restringido mínimo en YouTube</translation>
+<translation id="8744844164152340112">Controla el tema que se usa para renderizar la IU durante la OOBE y en la sesión (oscuro, claro o automático).
+      El modo automático alterna entre temas oscuros y claros de forma automática al amanecer y al atardecer.
+      Se debe recomendar esta política, lo que les da a los usuarios la posibilidad de cambiar el tema en la configuración del sistema.</translation>
 <translation id="8745669971728319820">Esta política controla el envío de los datos sobre las extensiones y los complementos.
 
       Si no estableces la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o la inhabilitas, se ignorará.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 44937962..39c2491 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -3643,6 +3643,7 @@
 <translation id="4960597185231686653">Tanda boolean menunjukkan apakah keyboard virtual dapat memberikan input suara.</translation>
 <translation id="4970046075219007744">Izinkan aplikasi web meminta pengguna memberikan akses ke berbagai jenis file melalui File Handling API</translation>
 <translation id="4970855112942626932">Nonaktifkan login browser</translation>
+<translation id="4974091268178043378">Mode warna ChromeOS</translation>
 <translation id="4976928720873547342">Jika kebijakan ini disetel, semua jenis data yang ditentukan akan dikecualikan dari sinkronisasi, baik untuk <ph name="CHROME_SYNC_NAME" /> maupun sinkronisasi profil roaming. Hal ini berguna untuk mengurangi ukuran profil roaming atau membatasi jenis data yang diupload ke Server <ph name="CHROME_SYNC_NAME" />.
 
       Jenis data saat ini untuk kebijakan ini adalah: "bookmarks", "readingList", "preferences", "passwords", "autofill", "themes", "typedUrls", "extensions", "apps", "tabs", "wifiConfigurations". Nama-nama tersebut peka huruf besar/kecil.</translation>
@@ -4405,6 +4406,7 @@
 
       Pengguna tidak dapat mengubah setelan ini.</translation>
 <translation id="5848438019586925019">Algoritme untuk pembuatan pasangan kunci.</translation>
+<translation id="5851248808417680865">Gunakan Tema gelap</translation>
 <translation id="585270638818921943">Cegah pengguna menggunakan aplikasi Android dari sumber yang tidak tepercaya</translation>
 <translation id="5853547031212075792">Izinkan pengguna mengaktifkan Mode Khusus HTTPS</translation>
 <translation id="5859344336338527083">Menyetel kebijakan akan menentukan URL mana yang dapat menginstal ekstensi, aplikasi, dan tema. Sebelum <ph name="PRODUCT_NAME" /> 21, pengguna dapat mengklik link ke file *.crx, dan <ph name="PRODUCT_NAME" /> akan menawarkan untuk menginstal file setelah menampilkan beberapa peringatan. Setelah itu, file tersebut harus didownload dan ditarik ke halaman setelan <ph name="PRODUCT_NAME" />. Setelan ini memungkinkan URL tertentu menggunakan alur penginstalan lama yang lebih mudah.
@@ -4581,6 +4583,7 @@
 
       Kebijakan ini hanya berlaku saat perangkat didaftarkan dengan <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> untuk <ph name="PRODUCT_NAME" />.
       Kebijakan ini selalu berlaku untuk <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="6019162469732742754">Gunakan Mode otomatis</translation>
 <translation id="6019606564278029236">Izinkan interaksi pengguna jarak jauh dengan jendela administrator di sesi bantuan jarak jauh</translation>
 <translation id="6022948604095165524">Tindakan saat permulaan</translation>
 <translation id="602318745029752898">Mengizinkan suara text-to-speech enhanced network di fitur Klik untuk Diucapkan</translation>
@@ -5584,6 +5587,7 @@
 <translation id="7019805045859631636">Cepat</translation>
 <translation id="7025332601572838001">Mengonfigurasi perilaku ToS saat CCT pertama kali dijalankan</translation>
 <translation id="7026351325994257733">Mengizinkan konfigurasi jaringan Wi-Fi disinkronkan di seluruh perangkat <ph name="PRODUCT_OS_NAME" /> dan ponsel Android yang terhubung.</translation>
+<translation id="7027057540229843762">Gunakan Tema terang</translation>
 <translation id="7027785306666625591">Mengonfigurasi pengelolaan daya di <ph name="PRODUCT_OS_NAME" />.
 
       Kebijakan ini memungkinkan Anda mengonfigurasi cara <ph name="PRODUCT_OS_NAME" /> berperilaku saat pengguna tetap menganggur dalam beberapa waktu.</translation>
@@ -7134,6 +7138,9 @@
 
       "http://acme.com/ABC" hanya cocok dalam mode 'IESiteListMode'.</translation>
 <translation id="8736538322216687231">Memaksa Mode Terbatas YouTube minimum</translation>
+<translation id="8744844164152340112">Mengontrol tema yang digunakan untuk merender UI selama OOBE dan dalam sesi (gelap/terang/otomatis).
+      Mode otomatis akan mengubah tema antara gelap dan terang secara otomatis saat matahari terbit dan tenggelam.
+      Kebijakan ini harus direkomendasikan, sehingga memungkinkan pengguna untuk mengubah tema di setelan sistem.</translation>
 <translation id="8745669971728319820">Kebijakan ini mengontrol apakah informasi ekstensi dan plugin akan dilaporkan atau tidak.
 
       Jika kebijakan <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> tidak disetel atau disetel ke nonaktif, kebijakan ini akan diabaikan.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 484a4e4b..ec7abcb 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -3438,6 +3438,7 @@
 <translation id="4960597185231686653">画面キーボードで音声入力を有効にするかどうかを示すブール値のフラグです。</translation>
 <translation id="4970046075219007744">File Handling API を通じたファイル形式へのアクセスをユーザーに求めることをウェブアプリに許可する</translation>
 <translation id="4970855112942626932">ブラウザのログインを無効にする</translation>
+<translation id="4974091268178043378">ChromeOS のカラーモード</translation>
 <translation id="4976928720873547342">このポリシーを設定した場合、指定したすべてのデータタイプが <ph name="CHROME_SYNC_NAME" /> とローミング プロファイルの同期から除外されます。これにより、ローミング プロファイルのサイズを抑えたり、<ph name="CHROME_SYNC_NAME" /> サーバーにアップロードされるデータのタイプを制限したりできます。
 
       現在、このポリシーで指定できるデータタイプは次のとおりです: "bookmarks"、"readingList"、"preferences"、"passwords"、"autofill"、"themes"、"typedUrls"、"extensions"、"apps"、"tabs"、"wifiConfigurations"。データタイプの名前では大文字と小文字が区別されます。</translation>
@@ -4142,6 +4143,7 @@
 
       ユーザーはこの設定を変更できません。</translation>
 <translation id="5848438019586925019">鍵ペアの生成に使用するアルゴリズムです。</translation>
+<translation id="5851248808417680865">ダークモードを使用する</translation>
 <translation id="585270638818921943">信頼できない提供元の Android アプリの使用をユーザーに許可しない</translation>
 <translation id="5853547031212075792">ユーザーに HTTPS 専用モードの有効化を許可する</translation>
 <translation id="5859344336338527083">このポリシーを設定することで、どの URL から拡張機能、アプリ、テーマのインストールを許可するかを指定できます。<ph name="PRODUCT_NAME" /> 21 より前では、*.crx ファイルのリンクをクリックすると、いくつかの警告が表示された後、<ph name="PRODUCT_NAME" /> によりファイルのインストールを申し出るメッセージが表示されました。それ以降のバージョンでは、このようなファイルは、ダウンロードしてから <ph name="PRODUCT_NAME" /> の設定ページにドラッグする必要があります。この設定を利用することで、特定の URL に以前の簡単なインストール フローを適用できます。
@@ -4306,6 +4308,7 @@
 
       <ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。
       <ph name="PRODUCT_OS_NAME" /> の場合、このポリシーは常に有効です。</translation>
+<translation id="6019162469732742754">自動モードを使用する</translation>
 <translation id="6019606564278029236">リモート ユーザーがリモート アシスタンス セッションで権限昇格ウィンドウとやり取りできるようにする</translation>
 <translation id="6022948604095165524">起動時の操作</translation>
 <translation id="602318745029752898">「選択して読み上げ」で Enhanced Network のテキスト読み上げ音声を許可する</translation>
@@ -5230,6 +5233,7 @@
 <translation id="7019805045859631636">速い</translation>
 <translation id="7025332601572838001">CCT の初回実行時の利用規約処理を設定します</translation>
 <translation id="7026351325994257733">Wi-Fi ネットワーク設定を <ph name="PRODUCT_OS_NAME" /> デバイスと接続された Android スマートフォンとの間で同期できるようにします。</translation>
+<translation id="7027057540229843762">ライトモードを使用する</translation>
 <translation id="7027785306666625591"><ph name="PRODUCT_OS_NAME" /> の電源管理を設定します。
 
       これらのポリシーでは、アイドル状態が一定時間続いたときの <ph name="PRODUCT_OS_NAME" /> の動作を設定できます。</translation>
@@ -6711,6 +6715,9 @@
 
       「http://acme.com/ABC」は [IESiteListMode] モードの場合のみ一致します。</translation>
 <translation id="8736538322216687231">YouTube で一定レベル以上の制限付きモードを強制する</translation>
+<translation id="8744844164152340112">OOBE 中とセッション中に UI のレンダリングに使用するモード(ダーク、ライト、自動)を管理します。
+      自動モードでは、日の出と日の入りに合わせてダークモードとライトモードを自動的に切り替えます。
+      このポリシーは、ユーザーがシステム設定でモードを変更する可能性を考慮して設定することをおすすめします。</translation>
 <translation id="8745669971728319820">このポリシーでは、拡張機能とプラグインの情報について、レポートを作成するかどうかを管理します。
 
       ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> を未設定のままにするか無効にすると、このポリシーは無視されます。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 2a4b7edd..38ae484 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -3637,6 +3637,7 @@
 <translation id="4960597185231686653">터치 키보드에서 음성 입력을 지원할 수 있는지 나타내는 부울 플래그입니다.</translation>
 <translation id="4970046075219007744">웹 앱에서 사용자에게 File Handling API를 통해 파일 형식 액세스 권한을 요청하도록 허용</translation>
 <translation id="4970855112942626932">브라우저 로그인 사용 중지</translation>
+<translation id="4974091268178043378">ChromeOS 색상 모드</translation>
 <translation id="4976928720873547342">정책이 설정되면 지정된 모든 데이터 유형이 <ph name="CHROME_SYNC_NAME" />와 로밍 프로필 동기화 모두에서 제외됩니다. 이렇게 하면 로밍 프로필의 크기를 줄이거나 <ph name="CHROME_SYNC_NAME" /> 서버에 업로드되는 데이터의 유형을 제한하는 데 도움이 될 수 있습니다.
 
       정책의 현재 데이터 유형은 'bookmarks', ‘readingList’, 'preferences', 'passwords', 'autofill', 'themes', 'typedUrls', 'extensions', 'apps', 'tabs', 'wifiConfigurations'입니다. 이름은 대소문자를 구분합니다.</translation>
@@ -4398,6 +4399,7 @@
 
       사용자가 이 설정을 변경할 수 없습니다.</translation>
 <translation id="5848438019586925019">키 쌍 생성을 위한 알고리즘입니다.</translation>
+<translation id="5851248808417680865">어두운 테마 사용</translation>
 <translation id="585270638818921943">사용자가 신뢰할 수 없는 출처의 Android 앱을 사용하는 것을 방지</translation>
 <translation id="5853547031212075792">사용자가 HTTPS 전용 모드를 사용 설정하도록 허용</translation>
 <translation id="5859344336338527083">정책을 설정하여 확장 프로그램, 앱, 테마를 설치할 수 있는 URL을 지정합니다. <ph name="PRODUCT_NAME" /> 21 이전에는 사용자가 *.crx 파일 링크를 클릭하면 <ph name="PRODUCT_NAME" />에서 몇 가지 경고 후 파일을 설치하도록 허용했습니다. 이후에는 파일을 다운로드하여 <ph name="PRODUCT_NAME" /> 설정 페이지로 드래그해야 합니다. 이 설정을 사용하면 특정 URL에서 더 간편한 기존의 설치 과정을 따를 수 있습니다.
@@ -4574,6 +4576,7 @@
 
       <ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다.
       <ph name="PRODUCT_OS_NAME" />의 경우 이 정책이 항상 적용됩니다.</translation>
+<translation id="6019162469732742754">자동 모드 사용</translation>
 <translation id="6019606564278029236">원격 지원 세션에서 원격 사용자가 관리자 창과 상호작용할 수 있도록 허용</translation>
 <translation id="6022948604095165524">시작 시 동작</translation>
 <translation id="602318745029752898">텍스트 읽어주기의 향상된 네트워크 텍스트 음성 변환 음성 허용</translation>
@@ -5563,6 +5566,7 @@
 <translation id="7019805045859631636">Fast</translation>
 <translation id="7025332601572838001">CCT 첫 실행 시 서비스 약관 동작 구성</translation>
 <translation id="7026351325994257733"><ph name="PRODUCT_OS_NAME" /> 기기 및 연결된 Android 휴대전화 전체에서 Wi-Fi 네트워크 구성을 동기화하도록 허용합니다.</translation>
+<translation id="7027057540229843762">밝은 테마 사용</translation>
 <translation id="7027785306666625591"><ph name="PRODUCT_OS_NAME" />에서 전원 관리를 설정합니다.
 
       이 정책으로 사용자가 일정 시간 동안 유휴 상태일 때 <ph name="PRODUCT_OS_NAME" />에서 수행할 동작을 설정할 수 있습니다.</translation>
@@ -7122,6 +7126,9 @@
 
       'http://acme.com/ABC'는 'IESiteListMode'에서만 매칭됩니다.</translation>
 <translation id="8736538322216687231">최소 YouTube 제한 모드 강제 사용</translation>
+<translation id="8744844164152340112">OOBE에서, 세션 중에 UI 렌더링에 사용할 테마를 관리합니다(어두운 테마/밝은 테마/자동).
+      자동 모드는 일출 및 일몰 시 어두운 테마와 밝은 테마를 자동으로 전환합니다.
+      사용자가 시스템 설정에서 테마를 변경할 수 있도록 이 정책을 사용하는 것이 좋습니다.</translation>
 <translation id="8745669971728319820">이 정책은 확장 프로그램 및 플러그인 데이터의 보고 여부를 제어합니다.
 
       <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 2c0f7f8..d68b2cd4 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -3620,6 +3620,7 @@
 <translation id="4960597185231686653">Логический флаг, который указывает, доступен ли голосовой ввод на экранной клавиатуре.</translation>
 <translation id="4970046075219007744">Разрешить веб-приложениям запрашивать у пользователей доступ к файлам определенных типов через File Handling API</translation>
 <translation id="4970855112942626932">Отключить вход в браузере</translation>
+<translation id="4974091268178043378">Цветовой режим Chrome OS</translation>
 <translation id="4976928720873547342">Если настроить это правило, для всех указанных в нем типов данных будет запрещена синхронизация как в сервисе "<ph name="CHROME_SYNC_NAME" />", так и в перемещаемом профиле. Таким образом можно уменьшить объем информации в перемещаемом профиле или ограничить набор типов данных, загружаемых на серверы сервиса "<ph name="CHROME_SYNC_NAME" />".
 
       В настоящее время вы можете указывать в этом правиле следующие типы данных: bookmarks, readingList, preferences, passwords, autofill, themes, typedUrls, extensions, apps, tabs, wifiConfigurations. Регистр символов в перечисленных названиях имеет значение.</translation>
@@ -4379,6 +4380,7 @@
 
       Пользователи не могут изменить эту настройку.</translation>
 <translation id="5848438019586925019">Алгоритм генерации пары ключей.</translation>
+<translation id="5851248808417680865">Использовать тёмную тему</translation>
 <translation id="585270638818921943">Запретить использование приложений для Android из ненадежных источников</translation>
 <translation id="5853547031212075792">Разрешить пользователям включать режим "Только HTTPS"</translation>
 <translation id="5859344336338527083">Правило позволяет указывать URL страниц, с которых пользователям разрешается устанавливать расширения, приложения и темы. До выпуска <ph name="PRODUCT_NAME" /> 21 пользователю достаточно было перейти по ссылке на файл CRX и пропустить несколько предупреждений <ph name="PRODUCT_NAME" />. Теперь такие файлы нужно скачивать и перетаскивать на страницу настроек<ph name="PRODUCT_NAME" />. Это правило позволяет указывать список URL, для которых будет разрешена прежняя, более простая процедура установки.
@@ -4555,6 +4557,7 @@
 
       Это правило действует только в том случае, если компьютер зарегистрирован с помощью правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />.
       Для <ph name="PRODUCT_OS_NAME" /> это правило используется всегда.</translation>
+<translation id="6019162469732742754">Использовать автоматический режим</translation>
 <translation id="6019606564278029236">Разрешить пользователям взаимодействовать с привилегированными окнами во время удаленной поддержки</translation>
 <translation id="6022948604095165524">Действие при запуске</translation>
 <translation id="602318745029752898">Это правило разрешает функции "Озвучивание при нажатии" преобразовывать текст в речь через сервис Enhanced Network</translation>
@@ -5553,6 +5556,7 @@
 <translation id="7019805045859631636">Fast</translation>
 <translation id="7025332601572838001">Настройка показа Условий использования при первом запуске для CCT</translation>
 <translation id="7026351325994257733">Разрешить синхронизацию параметров сети Wi-Fi между устройствами с <ph name="PRODUCT_OS_NAME" /> и подключенным телефоном Android</translation>
+<translation id="7027057540229843762">Использовать светлую тему</translation>
 <translation id="7027785306666625591">Настройка режима энергопотребления в <ph name="PRODUCT_OS_NAME" />
 
       Эти правила определяют режим работы <ph name="PRODUCT_OS_NAME" />, когда пользователь неактивен в течение определенного времени.</translation>
@@ -7110,6 +7114,9 @@
 
       Адрес http://acme.com/ABC считается подходящим только в режиме IESiteListMode.</translation>
 <translation id="8736538322216687231">Выбор минимального обязательного уровня Безопасного режима для YouTube</translation>
+<translation id="8744844164152340112">Определяет, какая тема будет использоваться при первичной настройке и во время сеанса: тёмная, светлая или с автоматическим переключением.
+      Если выбрать автоматический режим, тема будет меняться в зависимости от времени суток.
+      Это правило должно быть рекомендованным, чтобы пользователи могли сами выбирать тему в системных настройках.</translation>
 <translation id="8745669971728319820">Это правило определяет, сообщать ли данные расширений и плагинов.
 
       Если правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> отключено или не настроено, данное правило игнорируется.
diff --git a/components/policy/resources/webui/BUILD.gn b/components/policy/resources/webui/BUILD.gn
deleted file mode 100644
index 4259578..0000000
--- a/components/policy/resources/webui/BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2022 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//tools/polymer/html_to_js.gni")
-
-html_to_js("web_components") {
-  js_files = [
-    "policy_conflict.js",
-    "policy_row.js",
-    "policy_precedence_row.js",
-    "policy_table.js",
-    "status_box.js",
-  ]
-}
diff --git a/components/policy/resources/webui/policy.html b/components/policy/resources/webui/policy.html
index 5126fac..8675505 100644
--- a/components/policy/resources/webui/policy.html
+++ b/components/policy/resources/webui/policy.html
@@ -5,7 +5,7 @@
 <meta name="viewport" content="width=device-width, user-scalable=no">
 <title>$i18n{title}</title>
 
-<link rel="stylesheet" href="./policy.css">
+<link rel="stylesheet" href="chrome://policy/policy.css">
 <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
 
 </head>
@@ -40,6 +40,175 @@
       <!--  This is where policy tables get dynamically added. -->
     </section>
   </main>
+  <div hidden>
+    <fieldset id="status-box-template">
+      <legend class="legend"></legend>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelVersion}</div>
+        <div class="version"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelMachineEnrollmentMachineName}</div>
+        <div class="machine-enrollment-name"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelMachineEnrollmentDomain}</div>
+        <div class="machine-enrollment-domain"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelMachineEnrollmentToken}</div>
+        <div class="machine-enrollment-token"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelMachineEntrollmentDeviceId}</div>
+        <div class="machine-enrollment-device-id"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelUsername}</div>
+        <div class="username"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelManagedBy}</div>
+        <div class="managed-by"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelGaiaId}</div>
+        <div class="gaia-id"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelClientId}</div>
+        <div class="client-id"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelAssetId}</div>
+        <div class="asset-id"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelLocation}</div>
+        <div class="location"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelDirectoryApiId}</div>
+        <div class="directory-api-id"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelTimeSinceLastFetchAttempt}</div>
+        <div class="time-since-last-fetch-attempt"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelTimeSinceLastRefresh}</div>
+        <div class="time-since-last-refresh"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelRefreshInterval}</div>
+        <div class="refresh-interval"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelPoliciesPush}</div>
+        <div class="policy-push"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelStatus}</div>
+        <div class="status"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelIsAffiliated}</div>
+        <div class="is-affiliated"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelIsOffHoursActive}</div>
+        <div class="is-offhours-active"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelVersion}</div>
+        <div class="version"></div>
+      </div>
+      <div class="status-entry" hidden>
+        <div class="label">$i18n{labelLastCloudReportSentTimestamp}</div>
+        <div class="last-cloud-report-sent-timestamp"></div>
+      </div>
+    </fieldset>
+
+    <div class="policy-table" id="policy-table-template" role="table"
+         aria-labelledby="policy-header">
+      <h3 class="header" id="policy-header"></h3>
+      <p class="id"></p>
+      <div class="main">
+        <div class="header row" role="row">
+          <div class="name" role="columnheader">$i18n{headerName}</div>
+          <div class="value" role="columnheader">$i18n{headerValue}</div>
+          <div class="source" role="columnheader">$i18n{headerSource}</div>
+          <div class="scope" role="columnheader">$i18n{headerScope}</div>
+          <div class="level" role="columnheader">$i18n{headerLevel}</div>
+          <div class="messages" role="columnheader">$i18n{headerStatus}</div>
+          <div class="toggle" role="columnheader"></div>
+        </div>
+        <div class="no-policy">$i18n{noPoliciesSet}</div>
+      </div>
+    </div>
+
+    <div class="policy-conflict-data" id="policy-conflict-template"
+         role="rowgroup" hidden>
+      <div class="policy conflict row" role="row">
+          <div class="name" role="rowheader">$i18n{conflictValue}</div>
+          <div class="value" role="cell"></div>
+          <div class="source" role="cell"></div>
+          <div class="scope" role="cell"></div>
+          <div class="level" role="cell"></div>
+          <div class="messages" role="cell"></div>
+          <div class="toggle" role="cell"></div>
+      </div>
+    </div>
+
+    <div class="policy-data" id="policy-template" role="rowgroup">
+      <div class="policy row" role="row">
+        <div class="name" role="rowheader" aria-labelledby="name">
+          <a class="link" target="_blank">
+            <span id="name"></span>
+            <img src="chrome://resources/images/open_in_new.svg">
+          </a>
+        </div>
+        <div class="value" role="cell"></div>
+        <div class="source" role="cell"></div>
+        <div class="scope" role="cell"></div>
+        <div class="level" role="cell"></div>
+        <div class="messages" role="cell"></div>
+        <div class="toggle" role="cell">
+          <a is="action-link" class="show-more">$i18n{showMore}</a>
+          <a is="action-link" class="show-less" hidden>$i18n{showLess}</a>
+        </div>
+      </div>
+      <div class="value row" role="row" hidden>
+        <div class="name" role="rowheader">$i18n{value}</div>
+        <div class="value" role="cell"></div>
+        <div class="copy" role="cell">
+          <a is="action-link" class="copy-value link" role="cell">
+            <img src="chrome://resources/images/icon_copy_content.svg">
+          </a>
+        </div>
+      </div>
+      <div class="errors row" role="row" hidden>
+        <div class="name" role="rowheader">$i18n{error}</div>
+        <div class="value" role="cell"></div>
+      </div>
+      <div class="warnings row" role="row" hidden>
+        <div class="name" role="rowheader">$i18n{warning}</div>
+        <div class="value" role="cell"></div>
+      </div>
+      <div class="infos row" role="row" hidden>
+        <div class="name" role="rowheader">$i18n{info}</div>
+        <div class="value" role="cell"></div>
+      </div>
+    </div>
+
+    <div class="policy-precedence-data" id="policy-precedence-template"
+         role="rowgroup">
+      <div class="precedence row" role="row">
+          <div class="name" role="rowheader">$i18n{labelPrecedence}</div>
+          <div class="value" role="cell"></div>
+      </div>
+    </div>
+  </div>
 </body>
 
 <script type="module" src="policy.js"></script>
diff --git a/components/policy/resources/webui/policy_base.js b/components/policy/resources/webui/policy_base.js
index ba187c7..54a34474 100644
--- a/components/policy/resources/webui/policy_base.js
+++ b/components/policy/resources/webui/policy_base.js
@@ -4,14 +4,13 @@
 
 import './strings.m.js';
 import 'chrome://resources/js/action_link.js';
+
 // <if expr="is_ios">
 import 'chrome://resources/js/ios/web_ui.js';
 // </if>
 
-import './status_box.js';
-import './policy_table.js';
-
 import {addSingletonGetter, addWebUIListener} from 'chrome://resources/js/cr.m.js';
+import {define as crUiDefine} from 'chrome://resources/js/cr/ui.m.js';
 import {FocusOutlineManager} from 'chrome://resources/js/cr/ui/focus_outline_manager.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {$} from 'chrome://resources/js/util.m.js';
@@ -36,6 +35,551 @@
 let PolicyValuesResponse;
 
 /**
+ * @typedef {{
+ *    level: string,
+ *    scope: string,
+ *    source: string,
+ *    value: any,
+ * }}
+ */
+let Conflict;
+
+/**
+ * @typedef {{
+ *    ignored?: boolean,
+ *    name: string,
+ *    level: string,
+ *    link: ?string,
+ *    scope: string,
+ *    source: string,
+ *    error: string,
+ *    warning: string,
+ *    info: string,
+ *    value: any,
+ *    deprecated: ?boolean,
+ *    future: ?boolean,
+ *    allSourcesMerged: ?boolean,
+ *    conflicts: ?Array<!Conflict>,
+ *    superseded: ?Array<!Conflict>,
+ * }}
+ */
+let Policy;
+
+/**
+ * @typedef {{
+ *     id: ?string,
+ *     isExtension?: boolean,
+ *     name: string,
+ *     policies: !Array<!Policy>,
+ *     precedenceOrder: ?Array<string>,
+ * }}
+ */
+let PolicyTableModel;
+
+/**
+ * A box that shows the status of cloud policy for a device, machine or user.
+ * @constructor
+ * @extends {HTMLFieldSetElement}
+ */
+const StatusBox = crUiDefine(function() {
+  const node = $('status-box-template').cloneNode(true);
+  node.removeAttribute('id');
+  return node;
+});
+
+StatusBox.prototype = {
+  // Set up the prototype chain.
+  __proto__: HTMLFieldSetElement.prototype,
+
+  /**
+   * Initialization function for the cr.ui framework.
+   */
+  decorate() {},
+
+  /**
+   * Sets the text of a particular named label element in the status box
+   * and updates the visibility if needed.
+   * @param {string} labelName The name of the label element that is being
+   *     updated.
+   * @param {string} labelValue The new text content for the label.
+   * @param {boolean=} needsToBeShown True if we want to show the label
+   *     False otherwise.
+   */
+  setLabelAndShow_(labelName, labelValue, needsToBeShown = true) {
+    const labelElement = this.querySelector(labelName);
+    labelElement.textContent = labelValue ? ' ' + labelValue : '';
+    if (needsToBeShown) {
+      labelElement.parentElement.hidden = false;
+    }
+  },
+  /**
+   * Populate the box with the given cloud policy status.
+   * @param {string} scope The policy scope, either "device", "machine",
+   *     "user", or "updater".
+   * @param {Object} status Dictionary with information about the status.
+   */
+  initialize(scope, status) {
+    const notSpecifiedString = loadTimeData.getString('notSpecified');
+
+    // Set appropriate box legend based on status key
+    this.querySelector('.legend').textContent =
+        loadTimeData.getString(status.boxLegendKey);
+
+    if (scope === 'device') {
+      // Populate the device naming information.
+      // Populate the asset identifier.
+      this.setLabelAndShow_('.asset-id', status.assetId || notSpecifiedString);
+
+      // Populate the device location.
+      this.setLabelAndShow_('.location', status.location || notSpecifiedString);
+
+      // Populate the directory API ID.
+      this.setLabelAndShow_(
+          '.directory-api-id', status.directoryApiId || notSpecifiedString);
+      this.setLabelAndShow_('.client-id', status.clientId);
+      // For off-hours policy, indicate if it's active or not.
+      if (status.isOffHoursActive != null) {
+        this.setLabelAndShow_(
+            '.is-offhours-active',
+            loadTimeData.getString(
+                status.isOffHoursActive ? 'offHoursActive' :
+                                          'offHoursNotActive'));
+      }
+    } else if (scope === 'machine') {
+      this.setLabelAndShow_('.machine-enrollment-device-id', status.deviceId);
+      this.setLabelAndShow_(
+          '.machine-enrollment-token', status.enrollmentToken);
+      if (status.machine) {
+        this.setLabelAndShow_('.machine-enrollment-name', status.machine);
+      }
+      this.setLabelAndShow_('.machine-enrollment-domain', status.domain);
+    } else if (scope === 'updater') {
+      if (status.version) {
+        this.setLabelAndShow_('.version', status.version);
+      }
+      if (status.domain) {
+        this.setLabelAndShow_('.machine-enrollment-domain', status.domain);
+      }
+    } else {
+      // Populate the topmost item with the username.
+      this.setLabelAndShow_('.username', status.username);
+      // Populate the user gaia id.
+      this.setLabelAndShow_('.gaia-id', status.gaiaId || notSpecifiedString);
+      this.setLabelAndShow_('.client-id', status.clientId);
+      if (status.isAffiliated != null) {
+        this.setLabelAndShow_(
+            '.is-affiliated',
+            loadTimeData.getString(
+                status.isAffiliated ? 'isAffiliatedYes' : 'isAffiliatedNo'));
+      }
+    }
+
+    if (status.enterpriseDomainManager) {
+      this.setLabelAndShow_('.managed-by', status.enterpriseDomainManager);
+    }
+
+    if (status.timeSinceLastFetchAttempt) {
+      this.setLabelAndShow_(
+          '.time-since-last-fetch-attempt', status.timeSinceLastFetchAttempt);
+    }
+
+    if (status.timeSinceLastRefresh) {
+      this.setLabelAndShow_(
+          '.time-since-last-refresh', status.timeSinceLastRefresh);
+    }
+
+    if (scope !== 'updater') {
+      if (status.refreshInterval) {
+        this.setLabelAndShow_('.refresh-interval', status.refreshInterval);
+      }
+      this.setLabelAndShow_('.status', status.status);
+      this.setLabelAndShow_(
+          '.policy-push',
+          loadTimeData.getString(
+              status.policiesPushAvailable ? 'policiesPushOn' :
+                                             'policiesPushOff'));
+    }
+
+    if (status.lastCloudReportSentTimestamp) {
+      this.setLabelAndShow_(
+          '.last-cloud-report-sent-timestamp',
+          status.lastCloudReportSentTimestamp + ' (' +
+              status.timeSinceLastCloudReportSent + ')');
+    }
+  },
+};
+
+/**
+ * A single policy conflict's entry in the policy table.
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+const PolicyConflict = crUiDefine(function() {
+  const node = $('policy-conflict-template').cloneNode(true);
+  node.removeAttribute('id');
+  return node;
+});
+
+PolicyConflict.prototype = {
+  // Set up the prototype chain.
+  __proto__: HTMLDivElement.prototype,
+
+  decorate() {},
+
+  /**
+   * @param {Conflict} conflict
+   * @param {string} row_label
+   */
+  initialize(conflict, row_label) {
+    this.querySelector('.scope').textContent = loadTimeData.getString(
+        conflict.scope === 'user' ? 'scopeUser' : 'scopeDevice');
+    this.querySelector('.level').textContent = loadTimeData.getString(
+        conflict.level === 'recommended' ? 'levelRecommended' :
+                                           'levelMandatory');
+    this.querySelector('.source').textContent =
+        loadTimeData.getString(conflict.source);
+    this.querySelector('.value').textContent = conflict.value;
+    this.querySelector('.name').textContent = loadTimeData.getString(row_label);
+  }
+};
+
+/**
+ * A single policy's row entry in the policy table.
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+const PolicyRow = crUiDefine(function() {
+  const node = $('policy-template').cloneNode(true);
+  node.removeAttribute('id');
+  return node;
+});
+
+PolicyRow.prototype = {
+  // Set up the prototype chain.
+  __proto__: HTMLDivElement.prototype,
+
+  /**
+   * Initialization function for the cr.ui framework.
+   */
+  decorate() {
+    const toggle = this.querySelector('.policy.row .toggle');
+    toggle.addEventListener('click', () => this.toggleExpanded_());
+
+    const copy = this.querySelector('.copy-value');
+    copy.addEventListener('click', () => this.copyValue_());
+  },
+
+  /** @param {Policy} policy */
+  initialize(policy) {
+    /** @type {Policy} */
+    this.policy = policy;
+
+    /** @private {boolean} */
+    this.unset_ = policy.value === undefined;
+
+    /** @private {boolean} */
+    this.hasErrors_ = !!policy.error;
+
+    /** @private {boolean} */
+    this.hasWarnings_ = !!policy.warning;
+
+    /** @private {boolean} */
+    this.hasInfos_ = !!policy.info;
+
+    /** @private {boolean} */
+    this.hasConflicts_ = !!policy.conflicts;
+
+    /** @private {boolean} */
+    this.hasSuperseded_ = !!policy.superseded;
+
+    /** @private {boolean} */
+    this.isMergedValue_ = !!policy.allSourcesMerged;
+
+    /** @private {boolean} */
+    this.deprecated_ = !!policy.deprecated;
+
+    /** @private {boolean} */
+    this.future_ = !!policy.future;
+
+    // Populate the name column.
+    const nameDisplay = this.querySelector('.name .link span');
+    nameDisplay.textContent = policy.name;
+    if (policy.link) {
+      const link = this.querySelector('.name .link');
+      link.href = policy.link;
+      link.title = loadTimeData.getStringF('policyLearnMore', policy.name);
+    } else {
+      this.classList.add('no-help-link');
+    }
+
+    // Populate the remaining columns with policy scope, level and value if a
+    // value has been set. Otherwise, leave them blank.
+    if (!this.unset_) {
+      const scopeDisplay = this.querySelector('.scope');
+      scopeDisplay.textContent = loadTimeData.getString(
+          policy.scope === 'user' ? 'scopeUser' : 'scopeDevice');
+
+      const levelDisplay = this.querySelector('.level');
+      levelDisplay.textContent = loadTimeData.getString(
+          policy.level === 'recommended' ? 'levelRecommended' :
+                                           'levelMandatory');
+
+      const sourceDisplay = this.querySelector('.source');
+      sourceDisplay.textContent = loadTimeData.getString(policy.source);
+      // Reduces load on the DOM for long values;
+      const truncatedValue =
+          (policy.value && policy.value.toString().length > 256) ?
+          `${policy.value.toString().substr(0, 256)}\u2026` :
+          policy.value;
+
+      const valueDisplay = this.querySelector('.value');
+      valueDisplay.textContent = truncatedValue;
+
+      const copyLink = this.querySelector('.copy .link');
+      copyLink.title = loadTimeData.getStringF('policyCopyValue', policy.name);
+
+      const valueRowContentDisplay = this.querySelector('.value.row .value');
+      valueRowContentDisplay.textContent = policy.value;
+
+      const errorRowContentDisplay = this.querySelector('.errors.row .value');
+      errorRowContentDisplay.textContent = policy.error;
+      const warningRowContentDisplay =
+          this.querySelector('.warnings.row .value');
+      warningRowContentDisplay.textContent = policy.warning;
+      const infoRowContentDisplay = this.querySelector('.infos.row .value');
+      infoRowContentDisplay.textContent = policy.info;
+
+      const messagesDisplay = this.querySelector('.messages');
+      const errorsNotice =
+          this.hasErrors_ ? loadTimeData.getString('error') : '';
+      const deprecationNotice =
+          this.deprecated_ ? loadTimeData.getString('deprecated') : '';
+      const futureNotice = this.future_ ? loadTimeData.getString('future') : '';
+      const warningsNotice =
+          this.hasWarnings_ ? loadTimeData.getString('warning') : '';
+      const conflictsNotice = this.hasConflicts_ && !this.isMergedValue_ ?
+          loadTimeData.getString('conflict') :
+          '';
+      const ignoredNotice =
+          this.policy.ignored ? loadTimeData.getString('ignored') : '';
+      let notice =
+          [
+            errorsNotice, deprecationNotice, futureNotice, warningsNotice,
+            ignoredNotice, conflictsNotice
+          ].filter(x => !!x)
+              .join(', ') ||
+          loadTimeData.getString('ok');
+      const supersededNotice = this.hasSuperseded_ && !this.isMergedValue_ ?
+          loadTimeData.getString('superseding') :
+          '';
+      if (supersededNotice) {
+        // Include superseded notice regardless of other notices
+        notice += `, ${supersededNotice}`;
+      }
+      messagesDisplay.textContent = notice;
+
+      if (policy.conflicts) {
+        policy.conflicts.forEach(conflict => {
+          const row = new PolicyConflict();
+          row.initialize(conflict, 'conflictValue');
+          this.appendChild(row);
+        });
+      }
+      if (policy.superseded) {
+        policy.superseded.forEach(superseded => {
+          const row = new PolicyConflict();
+          row.initialize(superseded, 'supersededValue');
+          this.appendChild(row);
+        });
+      }
+    } else {
+      const messagesDisplay = this.querySelector('.messages');
+      messagesDisplay.textContent = loadTimeData.getString('unset');
+    }
+  },
+
+  /**
+   * Copies the policy's value to the clipboard.
+   * @private
+   */
+  copyValue_() {
+    const policyValueDisplay = this.querySelector('.value.row .value');
+
+    // Select the text that will be copied.
+    const selection = window.getSelection();
+    const range = window.document.createRange();
+    range.selectNodeContents(policyValueDisplay);
+    selection.removeAllRanges();
+    selection.addRange(range);
+
+    // Copy the policy value to the clipboard.
+    navigator.clipboard.writeText(policyValueDisplay.innerText).catch(error => {
+      console.error('Unable to copy policy value to clipboard:', error);
+    });
+  },
+
+  /**
+   * Toggle the visibility of an additional row containing the complete text.
+   * @private
+   */
+  toggleExpanded_() {
+    const warningRowDisplay = this.querySelector('.warnings.row');
+    const errorRowDisplay = this.querySelector('.errors.row');
+    const infoRowDisplay = this.querySelector('.infos.row');
+    const valueRowDisplay = this.querySelector('.value.row');
+    valueRowDisplay.hidden = !valueRowDisplay.hidden;
+    if (valueRowDisplay.hidden) {
+      this.classList.remove('expanded');
+    } else {
+      this.classList.add('expanded');
+    }
+
+    this.querySelector('.show-more').hidden = !valueRowDisplay.hidden;
+    this.querySelector('.show-less').hidden = valueRowDisplay.hidden;
+    if (this.hasWarnings_) {
+      warningRowDisplay.hidden = !warningRowDisplay.hidden;
+    }
+    if (this.hasErrors_) {
+      errorRowDisplay.hidden = !errorRowDisplay.hidden;
+    }
+    if (this.hasInfos_) {
+      infoRowDisplay.hidden = !infoRowDisplay.hidden;
+    }
+    this.querySelectorAll('.policy-conflict-data')
+        .forEach(row => row.hidden = !row.hidden);
+    this.querySelectorAll('.policy-superseded-data')
+        .forEach(row => row.hidden = !row.hidden);
+  },
+};
+
+/**
+ * A row describing the current policy precedence.
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+const PolicyPrecedenceRow = crUiDefine(function() {
+  const node = $('policy-precedence-template').cloneNode(true);
+  node.removeAttribute('id');
+  return node;
+});
+
+PolicyPrecedenceRow.prototype = {
+  // Set up the prototype chain.
+  __proto__: HTMLDivElement.prototype,
+
+  decorate() {},
+
+  /**
+   * @param {Array<String>} precedenceOrder Array containing ordered strings
+   *     which represent the order of policy precedence.
+   */
+  initialize(precedenceOrder) {
+    this.querySelector('.precedence.row > .value').textContent =
+        precedenceOrder.join(' > ');
+  }
+};
+
+/**
+ * A table of policies and their values.
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+const PolicyTable = crUiDefine(function() {
+  const node = $('policy-table-template').cloneNode(true);
+  node.removeAttribute('id');
+  return node;
+});
+
+
+PolicyTable.prototype = {
+  // Set up the prototype chain.
+  __proto__: HTMLDivElement.prototype,
+
+  /**
+   * Initialization function for the cr.ui framework.
+   */
+  decorate() {
+    this.policies_ = {};
+    this.filterPattern_ = '';
+  },
+
+  /** @param {PolicyTableModel} dataModel */
+  update(dataModel) {
+    // Clear policies
+    const mainContent = this.querySelector('.main');
+    const policies = this.querySelectorAll('.policy-data');
+    this.querySelector('.header').textContent = dataModel.name;
+    this.querySelector('.id').textContent = dataModel.id;
+    this.querySelector('.id').hidden = !dataModel.id;
+    policies.forEach(row => mainContent.removeChild(row));
+
+    dataModel.policies
+        .sort((a, b) => {
+          if ((a.value !== undefined && b.value !== undefined) ||
+              a.value === b.value) {
+            if (a.link !== undefined && b.link !== undefined) {
+              // Sorting the policies in ascending alpha order.
+              return a.name > b.name ? 1 : -1;
+            }
+
+            // Sorting so unknown policies are last.
+            return a.link !== undefined ? -1 : 1;
+          }
+
+          // Sorting so unset values are last.
+          return a.value !== undefined ? -1 : 1;
+        })
+        .forEach(policy => {
+          const policyRow = new PolicyRow();
+          policyRow.initialize(policy);
+          mainContent.appendChild(policyRow);
+        });
+    this.filter();
+
+    // Show the current policy precedence order in the Policy Precedence table.
+    if (dataModel.name === 'Policy Precedence') {
+      // Clear previous precedence row.
+      const precedenceRowOld = this.querySelectorAll('.policy-precedence-data');
+      precedenceRowOld.forEach(row => mainContent.removeChild(row));
+
+      const precedenceRow = new PolicyPrecedenceRow();
+      precedenceRow.initialize(dataModel.precedenceOrder);
+      mainContent.appendChild(precedenceRow);
+    }
+  },
+
+  /**
+   * Set the filter pattern. Only policies whose name contains |pattern| are
+   * shown in the policy table. The filter is case insensitive. It can be
+   * disabled by setting |pattern| to an empty string.
+   * @param {string} pattern The filter pattern.
+   */
+  setFilterPattern(pattern) {
+    this.filterPattern_ = pattern.toLowerCase();
+    this.filter();
+  },
+
+  /**
+   * Filter policies. Only policies whose name contains the filter pattern are
+   * shown in the table. Furthermore, policies whose value is not currently
+   * set are only shown if the corresponding checkbox is checked.
+   */
+  filter() {
+    const showUnset = $('show-unset').checked;
+    const policies = this.querySelectorAll('.policy-data');
+    for (let i = 0; i < policies.length; i++) {
+      const policyDisplay = policies[i];
+      policyDisplay.hidden =
+          policyDisplay.policy.value === undefined && !showUnset ||
+          policyDisplay.policy.name.toLowerCase().indexOf(
+              this.filterPattern_) === -1;
+    }
+    this.querySelector('.no-policy').hidden =
+        !!this.querySelector('.policy-data:not([hidden])');
+  },
+};
+
+/**
  * A singleton object that handles communication between browser and WebUI.
  */
 export class Page {
@@ -166,7 +710,7 @@
   createOrUpdatePolicyTable(dataModel) {
     const id = `${dataModel.name}-${dataModel.id}`;
     if (!this.policyTables[id]) {
-      this.policyTables[id] = document.createElement('policy-table');
+      this.policyTables[id] = new PolicyTable();
       this.mainSection.appendChild(this.policyTables[id]);
     }
     this.policyTables[id].update(dataModel);
@@ -189,7 +733,7 @@
 
     // Add a status box for each scope that has a cloud policy status.
     for (const scope in status) {
-      const box = document.createElement('status-box');
+      const box = new StatusBox();
       box.initialize(scope, status[scope]);
       container.appendChild(box);
       // Show the status section.
diff --git a/components/policy/resources/webui/policy_conflict.html b/components/policy/resources/webui/policy_conflict.html
deleted file mode 100644
index 3419e29b..0000000
--- a/components/policy/resources/webui/policy_conflict.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<link rel="stylesheet" href="./policy.css">
-<style>
-  :host(:not([hidden])) {
-    display: block;
-  }
-</style>
-<div class="policy conflict row" role="row">
-  <div class="name" role="rowheader">$i18n{conflictValue}</div>
-  <div class="value" role="cell"></div>
-  <div class="source" role="cell"></div>
-  <div class="scope" role="cell"></div>
-  <div class="level" role="cell"></div>
-  <div class="messages" role="cell"></div>
-  <div class="toggle" role="cell"></div>
-</div>
diff --git a/components/policy/resources/webui/policy_conflict.js b/components/policy/resources/webui/policy_conflict.js
deleted file mode 100644
index 7c11265c..0000000
--- a/components/policy/resources/webui/policy_conflict.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import './strings.m.js';
-
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {getTrustedHTML} from 'chrome://resources/js/static_types.js';
-
-/**
- * @typedef {{
- *    level: string,
- *    scope: string,
- *    source: string,
- *    value: any,
- * }}
- */
-export let Conflict;
-
-export class PolicyConflictElement extends CustomElement {
-  static get template() {
-    return getTrustedHTML`{__html_template__}`;
-  }
-
-  connectedCallback() {
-    this.setAttribute('role', 'rowgroup');
-  }
-
-  /**
-   * @param {Conflict} conflict
-   * @param {string} rowLabel
-   */
-  initialize(conflict, rowLabel) {
-    this.shadowRoot.querySelector('.scope').textContent =
-        loadTimeData.getString(
-            conflict.scope === 'user' ? 'scopeUser' : 'scopeDevice');
-    this.shadowRoot.querySelector('.level').textContent =
-        loadTimeData.getString(
-            conflict.level === 'recommended' ? 'levelRecommended' :
-                                               'levelMandatory');
-    this.shadowRoot.querySelector('.source').textContent =
-        loadTimeData.getString(conflict.source);
-    this.shadowRoot.querySelector('.value').textContent = conflict.value;
-    this.shadowRoot.querySelector('.name').textContent =
-        loadTimeData.getString(rowLabel);
-  }
-}
-
-customElements.define('policy-conflict', PolicyConflictElement);
diff --git a/components/policy/resources/webui/policy_precedence_row.html b/components/policy/resources/webui/policy_precedence_row.html
deleted file mode 100644
index 12e08d4f..0000000
--- a/components/policy/resources/webui/policy_precedence_row.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<link rel="stylesheet" href="./policy.css">
-<style>
-  :host(:not([hidden])) {
-    display: block;
-  }
-</style>
-<div class="precedence row" role="row">
-  <div class="name" role="rowheader">$i18n{labelPrecedence}</div>
-  <div class="value" role="cell"></div>
-</div>
diff --git a/components/policy/resources/webui/policy_precedence_row.js b/components/policy/resources/webui/policy_precedence_row.js
deleted file mode 100644
index bed3445..0000000
--- a/components/policy/resources/webui/policy_precedence_row.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import './strings.m.js';
-
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-import {getTrustedHTML} from 'chrome://resources/js/static_types.js';
-
-export class PolicyPrecedenceRowElement extends CustomElement {
-  static get template() {
-    return getTrustedHTML`{__html_template__}`;
-  }
-
-  connectedCallback() {
-    this.setAttribute('role', 'rowgroup');
-    this.classList.add('policy-precedence-data');
-  }
-
-  /**
-   * @param {Array<string>} precedenceOrder Array containing ordered strings
-   *     which represent the order of policy precedence.
-   */
-  initialize(precedenceOrder) {
-    this.shadowRoot.querySelector('.precedence.row > .value').textContent =
-        precedenceOrder.join(' > ');
-  }
-}
-
-customElements.define('policy-precedence-row', PolicyPrecedenceRowElement);
diff --git a/components/policy/resources/webui/policy_row.html b/components/policy/resources/webui/policy_row.html
deleted file mode 100644
index 93fb274..0000000
--- a/components/policy/resources/webui/policy_row.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<link rel="stylesheet" href="./policy.css">
-<style>
-  :host(:not([hidden])) {
-    display: block;
-  }
-</style>
-<div class="policy row" role="row">
-  <div class="name" role="rowheader" aria-labelledby="name">
-    <a class="link" target="_blank">
-      <span id="name"></span>
-      <img src="chrome://resources/images/open_in_new.svg">
-    </a>
-  </div>
-  <div class="value" role="cell"></div>
-  <div class="source" role="cell"></div>
-  <div class="scope" role="cell"></div>
-  <div class="level" role="cell"></div>
-  <div class="messages" role="cell"></div>
-  <div class="toggle" role="cell">
-    <a is="action-link" class="show-more">$i18n{showMore}</a>
-    <a is="action-link" class="show-less" hidden>$i18n{showLess}</a>
-  </div>
-</div>
-<div class="value row" role="row" hidden>
-  <div class="name" role="rowheader">$i18n{value}</div>
-  <div class="value" role="cell"></div>
-  <div class="copy" role="cell">
-    <a is="action-link" class="copy-value link" role="cell">
-      <img src="chrome://resources/images/icon_copy_content.svg">
-    </a>
-  </div>
-</div>
-<div class="errors row" role="row" hidden>
-  <div class="name" role="rowheader">$i18n{error}</div>
-  <div class="value" role="cell"></div>
-</div>
-<div class="warnings row" role="row" hidden>
-  <div class="name" role="rowheader">$i18n{warning}</div>
-  <div class="value" role="cell"></div>
-</div>
-<div class="infos row" role="row" hidden>
-  <div class="name" role="rowheader">$i18n{info}</div>
-  <div class="value" role="cell"></div>
-</div>
diff --git a/components/policy/resources/webui/policy_row.js b/components/policy/resources/webui/policy_row.js
deleted file mode 100644
index 948488c..0000000
--- a/components/policy/resources/webui/policy_row.js
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'chrome://resources/js/action_link.js';
-import './policy_conflict.js';
-import './strings.m.js';
-
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {getTrustedHTML} from 'chrome://resources/js/static_types.js';
-
-/**
- * @typedef {{
- *    ignored?: boolean,
- *    name: string,
- *    level: string,
- *    link: ?string,
- *    scope: string,
- *    source: string,
- *    error: string,
- *    warning: string,
- *    info: string,
- *    value: any,
- *    deprecated: ?boolean,
- *    future: ?boolean,
- *    allSourcesMerged: ?boolean,
- *    conflicts: ?Array<!Conflict>,
- *    superseded: ?Array<!Conflict>,
- * }}
- */
-export let Policy;
-
-export class PolicyRowElement extends CustomElement {
-  static get template() {
-    return getTrustedHTML`{__html_template__}`;
-  }
-
-  connectedCallback() {
-    const toggle = this.shadowRoot.querySelector('.policy.row .toggle');
-    toggle.addEventListener('click', () => this.toggleExpanded_());
-
-    const copy = this.shadowRoot.querySelector('.copy-value');
-    copy.addEventListener('click', () => this.copyValue_());
-
-    this.setAttribute('role', 'rowgroup');
-    this.classList.add('policy-data');
-  }
-
-  /** @param {Policy} policy */
-  initialize(policy) {
-    /** @type {Policy} */
-    this.policy = policy;
-
-    /** @private {boolean} */
-    this.unset_ = policy.value === undefined;
-
-    /** @private {boolean} */
-    this.hasErrors_ = !!policy.error;
-
-    /** @private {boolean} */
-    this.hasWarnings_ = !!policy.warning;
-
-    /** @private {boolean} */
-    this.hasInfos_ = !!policy.info;
-
-    /** @private {boolean} */
-    this.hasConflicts_ = !!policy.conflicts;
-
-    /** @private {boolean} */
-    this.hasSuperseded_ = !!policy.superseded;
-
-    /** @private {boolean} */
-    this.isMergedValue_ = !!policy.allSourcesMerged;
-
-    /** @private {boolean} */
-    this.deprecated_ = !!policy.deprecated;
-
-    /** @private {boolean} */
-    this.future_ = !!policy.future;
-
-    // Populate the name column.
-    const nameDisplay = this.shadowRoot.querySelector('.name .link span');
-    nameDisplay.textContent = policy.name;
-    if (policy.link) {
-      const link = this.shadowRoot.querySelector('.name .link');
-      link.href = policy.link;
-      link.title = loadTimeData.getStringF('policyLearnMore', policy.name);
-    } else {
-      this.classList.add('no-help-link');
-    }
-
-    // Populate the remaining columns with policy scope, level and value if a
-    // value has been set. Otherwise, leave them blank.
-    if (!this.unset_) {
-      const scopeDisplay = this.shadowRoot.querySelector('.scope');
-      scopeDisplay.textContent = loadTimeData.getString(
-          policy.scope === 'user' ? 'scopeUser' : 'scopeDevice');
-
-      const levelDisplay = this.shadowRoot.querySelector('.level');
-      levelDisplay.textContent = loadTimeData.getString(
-          policy.level === 'recommended' ? 'levelRecommended' :
-                                           'levelMandatory');
-
-      const sourceDisplay = this.shadowRoot.querySelector('.source');
-      sourceDisplay.textContent = loadTimeData.getString(policy.source);
-      // Reduces load on the DOM for long values;
-      const truncatedValue =
-          (policy.value && policy.value.toString().length > 256) ?
-          `${policy.value.toString().substr(0, 256)}\u2026` :
-          policy.value;
-
-      const valueDisplay = this.shadowRoot.querySelector('.value');
-      valueDisplay.textContent = truncatedValue;
-
-      const copyLink = this.shadowRoot.querySelector('.copy .link');
-      copyLink.title = loadTimeData.getStringF('policyCopyValue', policy.name);
-
-      const valueRowContentDisplay =
-          this.shadowRoot.querySelector('.value.row .value');
-      valueRowContentDisplay.textContent = policy.value;
-
-      const errorRowContentDisplay =
-          this.shadowRoot.querySelector('.errors.row .value');
-      errorRowContentDisplay.textContent = policy.error;
-      const warningRowContentDisplay =
-          this.shadowRoot.querySelector('.warnings.row .value');
-      warningRowContentDisplay.textContent = policy.warning;
-      const infoRowContentDisplay =
-          this.shadowRoot.querySelector('.infos.row .value');
-      infoRowContentDisplay.textContent = policy.info;
-
-      const messagesDisplay = this.shadowRoot.querySelector('.messages');
-      const errorsNotice =
-          this.hasErrors_ ? loadTimeData.getString('error') : '';
-      const deprecationNotice =
-          this.deprecated_ ? loadTimeData.getString('deprecated') : '';
-      const futureNotice = this.future_ ? loadTimeData.getString('future') : '';
-      const warningsNotice =
-          this.hasWarnings_ ? loadTimeData.getString('warning') : '';
-      const conflictsNotice = this.hasConflicts_ && !this.isMergedValue_ ?
-          loadTimeData.getString('conflict') :
-          '';
-      const ignoredNotice =
-          this.policy.ignored ? loadTimeData.getString('ignored') : '';
-      let notice =
-          [
-            errorsNotice, deprecationNotice, futureNotice, warningsNotice,
-            ignoredNotice, conflictsNotice
-          ].filter(x => !!x)
-              .join(', ') ||
-          loadTimeData.getString('ok');
-      const supersededNotice = this.hasSuperseded_ && !this.isMergedValue_ ?
-          loadTimeData.getString('superseding') :
-          '';
-      if (supersededNotice) {
-        // Include superseded notice regardless of other notices
-        notice += `, ${supersededNotice}`;
-      }
-      messagesDisplay.textContent = notice;
-
-      if (policy.conflicts) {
-        policy.conflicts.forEach(conflict => {
-          const row = document.createElement('policy-conflict');
-          row.initialize(conflict, 'conflictValue');
-          row.classList.add('policy-conflict-data');
-          this.shadowRoot.appendChild(row);
-        });
-      }
-      if (policy.superseded) {
-        policy.superseded.forEach(superseded => {
-          const row = document.createElement('policy-conflict');
-          row.initialize(superseded, 'supersededValue');
-          row.classList.add('policy-superseded-data');
-          this.shadowRoot.appendChild(row);
-        });
-      }
-    } else {
-      const messagesDisplay = this.shadowRoot.querySelector('.messages');
-      messagesDisplay.textContent = loadTimeData.getString('unset');
-    }
-  }
-
-  /**
-   * Copies the policy's value to the clipboard.
-   * @private
-   */
-  copyValue_() {
-    const policyValueDisplay =
-        this.shadowRoot.querySelector('.value.row .value');
-
-    // Select the text that will be copied.
-    const selection = window.getSelection();
-    const range = window.document.createRange();
-    range.selectNodeContents(policyValueDisplay);
-    selection.removeAllRanges();
-    selection.addRange(range);
-
-    // Copy the policy value to the clipboard.
-    navigator.clipboard.writeText(policyValueDisplay.innerText).catch(error => {
-      console.error('Unable to copy policy value to clipboard:', error);
-    });
-  }
-
-  /**
-   * Toggle the visibility of an additional row containing the complete text.
-   * @private
-   */
-  toggleExpanded_() {
-    const warningRowDisplay = this.shadowRoot.querySelector('.warnings.row');
-    const errorRowDisplay = this.shadowRoot.querySelector('.errors.row');
-    const infoRowDisplay = this.shadowRoot.querySelector('.infos.row');
-    const valueRowDisplay = this.shadowRoot.querySelector('.value.row');
-    valueRowDisplay.hidden = !valueRowDisplay.hidden;
-    this.classList.toggle('expanded', !valueRowDisplay.hidden);
-
-    this.shadowRoot.querySelector('.show-more').hidden =
-        !valueRowDisplay.hidden;
-    this.shadowRoot.querySelector('.show-less').hidden = valueRowDisplay.hidden;
-    if (this.hasWarnings_) {
-      warningRowDisplay.hidden = !warningRowDisplay.hidden;
-    }
-    if (this.hasErrors_) {
-      errorRowDisplay.hidden = !errorRowDisplay.hidden;
-    }
-    if (this.hasInfos_) {
-      infoRowDisplay.hidden = !infoRowDisplay.hidden;
-    }
-    this.shadowRoot.querySelectorAll('.policy-conflict-data')
-        .forEach(row => row.hidden = !row.hidden);
-    this.shadowRoot.querySelectorAll('.policy-superseded-data')
-        .forEach(row => row.hidden = !row.hidden);
-  }
-}
-
-customElements.define('policy-row', PolicyRowElement);
diff --git a/components/policy/resources/webui/policy_table.html b/components/policy/resources/webui/policy_table.html
deleted file mode 100644
index 041a12f..0000000
--- a/components/policy/resources/webui/policy_table.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<link rel="stylesheet" href="./policy.css">
-<div class="policy-table" role="table" aria-labelledby="policy-header">
-  <h3 class="header" id="policy-header"></h3>
-  <p class="id"></p>
-  <div class="main">
-    <div class="header row" role="row">
-      <div class="name" role="columnheader">$i18n{headerName}</div>
-      <div class="value" role="columnheader">$i18n{headerValue}</div>
-      <div class="source" role="columnheader">$i18n{headerSource}</div>
-      <div class="scope" role="columnheader">$i18n{headerScope}</div>
-      <div class="level" role="columnheader">$i18n{headerLevel}</div>
-      <div class="messages" role="columnheader">$i18n{headerStatus}</div>
-      <div class="toggle" role="columnheader"></div>
-    </div>
-    <div class="no-policy">$i18n{noPoliciesSet}</div>
-  </div>
-</div>
diff --git a/components/policy/resources/webui/policy_table.js b/components/policy/resources/webui/policy_table.js
deleted file mode 100644
index 4e3a956..0000000
--- a/components/policy/resources/webui/policy_table.js
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import './strings.m.js';
-import './policy_row.js';
-import './policy_precedence_row.js';
-
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {getTrustedHTML} from 'chrome://resources/js/static_types.js';
-
-/**
- * @typedef {{
- *     id: ?string,
- *     isExtension?: boolean,
- *     name: string,
- *     policies: !Array<!Policy>,
- *     precedenceOrder: ?Array<string>,
- * }}
- */
-export let PolicyTableModel;
-
-export class PolicyTableElement extends CustomElement {
-  static get template() {
-    return getTrustedHTML`{__html_template__}`;
-  }
-
-  constructor() {
-    super();
-
-    this.policies_ = {};
-    this.filterPattern_ = '';
-  }
-
-  /** @param {PolicyTableModel} dataModel */
-  update(dataModel) {
-    // Clear policies
-    const mainContent = this.shadowRoot.querySelector('.main');
-    const policies = this.shadowRoot.querySelectorAll('.policy-data');
-    this.shadowRoot.querySelector('.header').textContent = dataModel.name;
-    this.shadowRoot.querySelector('.id').textContent = dataModel.id;
-    this.shadowRoot.querySelector('.id').hidden = !dataModel.id;
-    policies.forEach(row => mainContent.removeChild(row));
-
-    dataModel.policies
-        .sort((a, b) => {
-          if ((a.value !== undefined && b.value !== undefined) ||
-              a.value === b.value) {
-            if (a.link !== undefined && b.link !== undefined) {
-              // Sorting the policies in ascending alpha order.
-              return a.name > b.name ? 1 : -1;
-            }
-
-            // Sorting so unknown policies are last.
-            return a.link !== undefined ? -1 : 1;
-          }
-
-          // Sorting so unset values are last.
-          return a.value !== undefined ? -1 : 1;
-        })
-        .forEach(policy => {
-          const policyRow = document.createElement('policy-row');
-          policyRow.initialize(policy);
-          mainContent.appendChild(policyRow);
-        });
-    this.filter();
-
-    // Show the current policy precedence order in the Policy Precedence table.
-    if (dataModel.name === 'Policy Precedence') {
-      // Clear previous precedence row.
-      const precedenceRowOld =
-          this.shadowRoot.querySelectorAll('.policy-precedence-data');
-      precedenceRowOld.forEach(row => mainContent.removeChild(row));
-
-      const precedenceRow = document.createElement('policy-precedence-row');
-      precedenceRow.initialize(dataModel.precedenceOrder);
-      mainContent.appendChild(precedenceRow);
-    }
-  }
-
-  /**
-   * Set the filter pattern. Only policies whose name contains |pattern| are
-   * shown in the policy table. The filter is case insensitive. It can be
-   * disabled by setting |pattern| to an empty string.
-   * @param {string} pattern The filter pattern.
-   */
-  setFilterPattern(pattern) {
-    this.filterPattern_ = pattern.toLowerCase();
-    this.filter();
-  }
-
-  /**
-   * Filter policies. Only policies whose name contains the filter pattern are
-   * shown in the table. Furthermore, policies whose value is not currently
-   * set are only shown if the corresponding checkbox is checked.
-   */
-  filter() {
-    const showUnset = document.querySelector('#show-unset').checked;
-    const policies = this.shadowRoot.querySelectorAll('.policy-data');
-    for (let i = 0; i < policies.length; i++) {
-      const policyDisplay = policies[i];
-      policyDisplay.hidden =
-          policyDisplay.policy.value === undefined && !showUnset ||
-          policyDisplay.policy.name.toLowerCase().indexOf(
-              this.filterPattern_) === -1;
-    }
-    this.shadowRoot.querySelector('.no-policy').hidden =
-        !!this.shadowRoot.querySelector('.policy-data:not([hidden])');
-  }
-}
-
-customElements.define('policy-table', PolicyTableElement);
diff --git a/components/policy/resources/webui/status_box.html b/components/policy/resources/webui/status_box.html
deleted file mode 100644
index c1dc9a6..0000000
--- a/components/policy/resources/webui/status_box.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<link rel="stylesheet" href="./policy.css">
-<fieldset>
-  <legend class="legend"></legend>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelVersion}</div>
-    <div class="version"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelMachineEnrollmentMachineName}</div>
-    <div class="machine-enrollment-name"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelMachineEnrollmentDomain}</div>
-    <div class="machine-enrollment-domain"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelMachineEnrollmentToken}</div>
-    <div class="machine-enrollment-token"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelMachineEntrollmentDeviceId}</div>
-    <div class="machine-enrollment-device-id"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelUsername}</div>
-    <div class="username"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelManagedBy}</div>
-    <div class="managed-by"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelGaiaId}</div>
-    <div class="gaia-id"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelClientId}</div>
-    <div class="client-id"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelAssetId}</div>
-    <div class="asset-id"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelLocation}</div>
-    <div class="location"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelDirectoryApiId}</div>
-    <div class="directory-api-id"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelTimeSinceLastFetchAttempt}</div>
-    <div class="time-since-last-fetch-attempt"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelTimeSinceLastRefresh}</div>
-    <div class="time-since-last-refresh"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelRefreshInterval}</div>
-    <div class="refresh-interval"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelPoliciesPush}</div>
-    <div class="policy-push"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelStatus}</div>
-    <div class="status"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelIsAffiliated}</div>
-    <div class="is-affiliated"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelIsOffHoursActive}</div>
-    <div class="is-offhours-active"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelVersion}</div>
-    <div class="version"></div>
-  </div>
-  <div class="status-entry" hidden>
-    <div class="label">$i18n{labelLastCloudReportSentTimestamp}</div>
-    <div class="last-cloud-report-sent-timestamp"></div>
-  </div>
-</fieldset>
diff --git a/components/policy/resources/webui/status_box.js b/components/policy/resources/webui/status_box.js
deleted file mode 100644
index 1ca67f08..0000000
--- a/components/policy/resources/webui/status_box.js
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import './strings.m.js';
-
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {getTrustedHTML} from 'chrome://resources/js/static_types.js';
-
-export class StatusBoxElement extends CustomElement {
-  static get template() {
-    return getTrustedHTML`{__html_template__}`;
-  }
-
-  /**
-   * Sets the text of a particular named label element in the status box
-   * and updates the visibility if needed.
-   * @param {string} labelName The name of the label element that is being
-   *     updated.
-   * @param {string} labelValue The new text content for the label.
-   * @param {boolean=} needsToBeShown True if we want to show the label
-   *     False otherwise.
-   */
-  setLabelAndShow_(labelName, labelValue, needsToBeShown = true) {
-    const labelElement = this.shadowRoot.querySelector(labelName);
-    labelElement.textContent = labelValue ? ' ' + labelValue : '';
-    if (needsToBeShown) {
-      labelElement.parentElement.hidden = false;
-    }
-  }
-
-  /**
-   * Populate the box with the given cloud policy status.
-   * @param {string} scope The policy scope, either "device", "machine",
-   *     "user", or "updater".
-   * @param {Object} status Dictionary with information about the status.
-   */
-  initialize(scope, status) {
-    const notSpecifiedString = loadTimeData.getString('notSpecified');
-
-    // Set appropriate box legend based on status key
-    this.shadowRoot.querySelector('.legend').textContent =
-        loadTimeData.getString(status.boxLegendKey);
-
-    if (scope === 'device') {
-      // Populate the device naming information.
-      // Populate the asset identifier.
-      this.setLabelAndShow_('.asset-id', status.assetId || notSpecifiedString);
-
-      // Populate the device location.
-      this.setLabelAndShow_('.location', status.location || notSpecifiedString);
-
-      // Populate the directory API ID.
-      this.setLabelAndShow_(
-          '.directory-api-id', status.directoryApiId || notSpecifiedString);
-      this.setLabelAndShow_('.client-id', status.clientId);
-      // For off-hours policy, indicate if it's active or not.
-      if (status.isOffHoursActive != null) {
-        this.setLabelAndShow_(
-            '.is-offhours-active',
-            loadTimeData.getString(
-                status.isOffHoursActive ? 'offHoursActive' :
-                                          'offHoursNotActive'));
-      }
-    } else if (scope === 'machine') {
-      this.setLabelAndShow_('.machine-enrollment-device-id', status.deviceId);
-      this.setLabelAndShow_(
-          '.machine-enrollment-token', status.enrollmentToken);
-      if (status.machine) {
-        this.setLabelAndShow_('.machine-enrollment-name', status.machine);
-      }
-      this.setLabelAndShow_('.machine-enrollment-domain', status.domain);
-    } else if (scope === 'updater') {
-      if (status.version) {
-        this.setLabelAndShow_('.version', status.version);
-      }
-      if (status.domain) {
-        this.setLabelAndShow_('.machine-enrollment-domain', status.domain);
-      }
-    } else {
-      // Populate the topmost item with the username.
-      this.setLabelAndShow_('.username', status.username);
-      // Populate the user gaia id.
-      this.setLabelAndShow_('.gaia-id', status.gaiaId || notSpecifiedString);
-      this.setLabelAndShow_('.client-id', status.clientId);
-      if (status.isAffiliated != null) {
-        this.setLabelAndShow_(
-            '.is-affiliated',
-            loadTimeData.getString(
-                status.isAffiliated ? 'isAffiliatedYes' : 'isAffiliatedNo'));
-      }
-    }
-
-    if (status.enterpriseDomainManager) {
-      this.setLabelAndShow_('.managed-by', status.enterpriseDomainManager);
-    }
-
-    if (status.timeSinceLastFetchAttempt) {
-      this.setLabelAndShow_(
-          '.time-since-last-fetch-attempt', status.timeSinceLastFetchAttempt);
-    }
-
-    if (status.timeSinceLastRefresh) {
-      this.setLabelAndShow_(
-          '.time-since-last-refresh', status.timeSinceLastRefresh);
-    }
-
-    if (scope !== 'updater') {
-      if (status.refreshInterval) {
-        this.setLabelAndShow_('.refresh-interval', status.refreshInterval);
-      }
-      this.setLabelAndShow_('.status', status.status);
-      this.setLabelAndShow_(
-          '.policy-push',
-          loadTimeData.getString(
-              status.policiesPushAvailable ? 'policiesPushOn' :
-                                             'policiesPushOff'));
-    }
-
-    if (status.lastCloudReportSentTimestamp) {
-      this.setLabelAndShow_(
-          '.last-cloud-report-sent-timestamp',
-          status.lastCloudReportSentTimestamp + ' (' +
-              status.timeSinceLastCloudReportSent + ')');
-    }
-  }
-}
-
-customElements.define('status-box', StatusBoxElement);
diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn
index 59ff209..0dc4635 100644
--- a/components/resources/BUILD.gn
+++ b/components/resources/BUILD.gn
@@ -67,10 +67,7 @@
     "dev_ui_components_resources.pak",
   ]
 
-  deps = [
-    "//components/local_state:build",
-    "//components/policy/resources/webui:web_components",
-  ]
+  deps = [ "//components/local_state:build" ]
   output_dir = "$root_gen_dir/components"
 }
 
diff --git a/components/resources/policy_resources.grdp b/components/resources/policy_resources.grdp
index 2670f27d..427d31ee 100644
--- a/components/resources/policy_resources.grdp
+++ b/components/resources/policy_resources.grdp
@@ -4,9 +4,4 @@
   <include name="IDR_POLICY_HTML" file="../policy/resources/webui/policy.html" type="BINDATA" />
   <include name="IDR_POLICY_BASE_JS" file="../policy/resources/webui/policy_base.js" preprocess="true" type="BINDATA" />
   <include name="IDR_POLICY_JS" file="../policy/resources/webui/policy.js" type="BINDATA" />
-  <include name="IDR_POLICY_POLICY_CONFLICT_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_conflict.js" use_base_dir="false" type="BINDATA" />
-  <include name="IDR_POLICY_POLICY_ROW_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_row.js" use_base_dir="false" type="BINDATA" />
-  <include name="IDR_POLICY_POLICY_PRECEDENCE_ROW_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_precedence_row.js" use_base_dir="false" type="BINDATA" />
-  <include name="IDR_POLICY_POLICY_TABLE_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_table.js" use_base_dir="false" type="BINDATA" />
-  <include name="IDR_POLICY_STATUS_BOX_JS" file="${root_gen_dir}/components/policy/resources/webui/status_box.js" use_base_dir="false" type="BINDATA" />
 </grit-part>
diff --git a/components/security_interstitials/content/security_interstitial_tab_helper_unittest.cc b/components/security_interstitials/content/security_interstitial_tab_helper_unittest.cc
index 40b4a146..99f68d3 100644
--- a/components/security_interstitials/content/security_interstitial_tab_helper_unittest.cc
+++ b/components/security_interstitials/content/security_interstitial_tab_helper_unittest.cc
@@ -260,8 +260,8 @@
       ->InitializeRenderFrameIfNeeded();
   content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh());
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_rfh);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_rfh);
   navigation_simulator->Commit();
   EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot());
   EXPECT_FALSE(blocking_page_destroyed);
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc
index 821b58a..c95e6d82 100644
--- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc
+++ b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc
@@ -105,34 +105,6 @@
   return true;
 }
 
-DisjointRangeLockManager::TestLockResult DisjointRangeLockManager::TestLock(
-    LeveledLockRequest request) {
-  if (request.level < 0 || static_cast<size_t>(request.level) >= locks_.size())
-    return TestLockResult::kInvalid;
-  if (request.range.begin >= request.range.end)
-    return TestLockResult::kInvalid;
-
-  auto& level_locks = locks_[request.level];
-
-  auto it = level_locks.find(request.range);
-  if (it == level_locks.end()) {
-    it = level_locks
-             .emplace(std::piecewise_construct,
-                      std::forward_as_tuple(request.range),
-                      std::forward_as_tuple())
-             .first;
-  }
-
-  if (!IsRangeDisjointFromNeighbors(level_locks, request.range)) {
-    level_locks.erase(it);
-    return TestLockResult::kInvalid;
-  }
-
-  Lock& lock = it->second;
-  return lock.CanBeAcquired(request.type) ? TestLockResult::kFree
-                                          : TestLockResult::kLocked;
-}
-
 void DisjointRangeLockManager::RemoveLockRange(int level,
                                                const LeveledLockRange& range) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h
index b680cd4df..23bf8d0 100644
--- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h
+++ b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h
@@ -58,10 +58,6 @@
                     base::WeakPtr<LeveledLockHolder> locks_holder,
                     LocksAcquiredCallback callback) override;
 
-  enum class TestLockResult { kInvalid, kLocked, kFree };
-  // Tests to see if the given lock request can be acquired.
-  TestLockResult TestLock(LeveledLockRequest lock_requests);
-
   // Remove the given lock range at the given level. The lock range must not be
   // in use. Use this if the lock will never be used again.
   void RemoveLockRange(int level, const LeveledLockRange& range);
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc
index c564ba2..78276b45 100644
--- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc
+++ b/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc
@@ -138,15 +138,9 @@
   base::RunLoop loop;
   {
     BarrierBuilder barrier(loop.QuitClosure());
-    EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree,
-              lock_manager.TestLock(
-                  {0, range, LeveledLockManager::LockType::kShared}));
     EXPECT_TRUE(lock_manager.AcquireLocks(
         {{0, range, LeveledLockManager::LockType::kShared}},
         locks_holder1.AsWeakPtr(), barrier.AddClosure()));
-    EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree,
-              lock_manager.TestLock(
-                  {0, range, LeveledLockManager::LockType::kShared}));
     EXPECT_TRUE(lock_manager.AcquireLocks(
         {{0, range, LeveledLockManager::LockType::kShared}},
         locks_holder2.AsWeakPtr(), barrier.AddClosure()));
@@ -186,14 +180,6 @@
   EXPECT_EQ(2ll, lock_manager.LocksHeldForTesting());
   EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting());
 
-  // Exclusive request is blocked, shared is free.
-  EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kLocked,
-            lock_manager.TestLock(
-                {0, range, LeveledLockManager::LockType::kExclusive}));
-  EXPECT_EQ(
-      DisjointRangeLockManager::TestLockResult::kFree,
-      lock_manager.TestLock({0, range, LeveledLockManager::LockType::kShared}));
-
   // Both of the following locks should be queued - the exclusive is next in
   // line, then the shared lock will come after it.
   EXPECT_TRUE(lock_manager.AcquireLocks(
@@ -231,14 +217,6 @@
   EXPECT_EQ(1ll, lock_manager.LocksHeldForTesting());
   EXPECT_EQ(1ll, lock_manager.RequestsWaitingForTesting());
 
-  // Both exclusive and shared requests are blocked.
-  EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kLocked,
-            lock_manager.TestLock(
-                {0, range, LeveledLockManager::LockType::kExclusive}));
-  EXPECT_EQ(
-      DisjointRangeLockManager::TestLockResult::kLocked,
-      lock_manager.TestLock({0, range, LeveledLockManager::LockType::kShared}));
-
   exclusive_lock3_holder.locks.clear();
 
   // Flush the task queue to propagate the lock releases and grant the exclusive
@@ -262,15 +240,9 @@
   {
     BarrierBuilder barrier(loop.QuitClosure());
     LeveledLockRange range = {IntegerKey(0), IntegerKey(1)};
-    EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree,
-              lock_manager.TestLock(
-                  {0, range, LeveledLockManager::LockType::kExclusive}));
     EXPECT_TRUE(lock_manager.AcquireLocks(
         {{0, range, LeveledLockManager::LockType::kExclusive}},
         l0_lock_holder.AsWeakPtr(), barrier.AddClosure()));
-    EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree,
-              lock_manager.TestLock(
-                  {1, range, LeveledLockManager::LockType::kExclusive}));
     EXPECT_TRUE(lock_manager.AcquireLocks(
         {{1, range, LeveledLockManager::LockType::kExclusive}},
         l1_lock_holder.AsWeakPtr(), barrier.AddClosure()));
@@ -304,9 +276,6 @@
   EXPECT_FALSE(lock_manager.AcquireLocks(
       {{-1, range1, LeveledLockManager::LockType::kShared}},
       locks_holder.AsWeakPtr(), base::DoNothing()));
-  EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid,
-            lock_manager.TestLock(
-                {-1, range1, LeveledLockManager::LockType::kShared}));
   EXPECT_TRUE(locks_holder.locks.empty());
   EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting());
   EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting());
@@ -315,9 +284,6 @@
   EXPECT_FALSE(lock_manager.AcquireLocks(
       {{4, range1, LeveledLockManager::LockType::kShared}},
       locks_holder.AsWeakPtr(), base::DoNothing()));
-  EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid,
-            lock_manager.TestLock(
-                {4, range1, LeveledLockManager::LockType::kShared}));
   EXPECT_TRUE(locks_holder.locks.empty());
   EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting());
   EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting());
@@ -327,9 +293,6 @@
   EXPECT_FALSE(lock_manager.AcquireLocks(
       {{0, range3, LeveledLockManager::LockType::kShared}},
       locks_holder.AsWeakPtr(), base::DoNothing()));
-  EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid,
-            lock_manager.TestLock(
-                {0, range3, LeveledLockManager::LockType::kShared}));
   EXPECT_TRUE(locks_holder.locks.empty());
   EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting());
   EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting());
diff --git a/components/sessions/core/session_id_generator.cc b/components/sessions/core/session_id_generator.cc
index b74b809ca..6624a1a 100644
--- a/components/sessions/core/session_id_generator.cc
+++ b/components/sessions/core/session_id_generator.cc
@@ -100,4 +100,8 @@
   last_value_ += increment;
 }
 
+bool SessionIdGenerator::IsInitializedForTest() const {
+  return local_state_ != nullptr;
+}
+
 }  // namespace sessions
diff --git a/components/sessions/core/session_id_generator.h b/components/sessions/core/session_id_generator.h
index 80a42744..19b5ecb 100644
--- a/components/sessions/core/session_id_generator.h
+++ b/components/sessions/core/session_id_generator.h
@@ -44,6 +44,9 @@
   using RandomGenerator = base::RepeatingCallback<SessionID::id_type()>;
   void SetRandomGeneratorForTest(const RandomGenerator& rand_generator);
 
+  // Used for test only, verify the SessionIdGenerator is initialized.
+  bool IsInitializedForTest() const;
+
  private:
   friend struct base::DefaultSingletonTraits<SessionIdGenerator>;
 
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index d3c10284..8ad9f12e 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -2352,7 +2352,7 @@
 <translation id="7442725080345379071">फिकट नारिंगी</translation>
 <translation id="7445762425076701745">तुम्ही कनेक्ट केलेल्या सर्व्हरची ओळख पूर्णपणे पडताळणे शक्य नाही. तुम्ही सर्व्हरशी फक्त आपल्‍या डोमेनमध्ये वैध असलेले नाव वापरून कनेक्ट केलेले आहे, ज्याची मालकी सत्यापित करण्यासाठी बाह्य सर्टिफिकेट अधिकृततेला परवानगी नाही. काही सर्टिफिकेट अधिकारी तरीही या नावांसाठी सर्टिफिकेट जारी करतील, याची खात्री करण्याचा काहीही मार्ग नाही की तुम्ही इच्छित वेबसाइटशी कनेक्ट केले आहे आणि हल्लेखोराशी नाही.</translation>
 <translation id="7451311239929941790">या समस्येविषयी <ph name="BEGIN_LINK" />अधिक जाणून घेणे<ph name="END_LINK" />.</translation>
-<translation id="7455133967321480974">सार्वत्रिक डीफॉल्‍ट वापरा (अवरोधित करा)</translation>
+<translation id="7455133967321480974">ग्लोबल डीफॉल्‍ट वापरा (ब्लॉक करा)</translation>
 <translation id="7460618730930299168">तुम्ही जे निवडले, त्यापेक्षा स्क्रीनिंग वेगळे आहे. सुरू ठेवायचे का?</translation>
 <translation id="7463075493919226237">ऑस्ट्रेलियन फुटबॉल</translation>
 <translation id="7469935732330206581">हा फॉर्म सुरक्षित नाही</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 17912cb..7fd46cf 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -69,7 +69,7 @@
 <translation id="1165039591588034296">Erro</translation>
 <translation id="1165174597379888365">A página é visitada</translation>
 <translation id="1165852471352757509">Programas não ficcionais e documentários televisivos</translation>
-<translation id="1174723505405632867">Pretende permitir que <ph name="EMBEDDED_URL" /> utilize cookies e dados de sites em <ph name="TOP_LEVEL_URL" />?
+<translation id="1174723505405632867">Permitir que <ph name="EMBEDDED_URL" /> utilize cookies e dados de sites em <ph name="TOP_LEVEL_URL" />?
 
 Se não permitir, isto será bloqueado pelas suas definições de privacidade. Isto vai permitir que o conteúdo com o qual interagiu funcione corretamente, mas pode permitir que <ph name="EMBEDDED_URL" /> monitorize a sua atividade.</translation>
 <translation id="1175364870820465910">Im&amp;primir...</translation>
@@ -94,7 +94,7 @@
 <translation id="1227224963052638717">Política desconhecida.</translation>
 <translation id="1228893227497259893">Identificador de entidade errado</translation>
 <translation id="1232569758102978740">Sem nome</translation>
-<translation id="1236081509407217141">Pretende permitir a RV?</translation>
+<translation id="1236081509407217141">Permitir a RV?</translation>
 <translation id="1238915852705750309">Antivírus e software malicioso</translation>
 <translation id="1240347957665416060">O nome do dispositivo</translation>
 <translation id="124116460088058876">Mais idiomas</translation>
@@ -997,7 +997,7 @@
 <translation id="3664782872746246217">Palavras-chave:</translation>
 <translation id="3667704023705708645">Capital de risco</translation>
 <translation id="367108335512738711">Marcadores do Chrome</translation>
-<translation id="3671540257457995106">Pretende permitir o redimensionamento?</translation>
+<translation id="3671540257457995106">Permitir o redimensionamento?</translation>
 <translation id="3675563144891642599">Terceiro rolo</translation>
 <translation id="3676592649209844519">ID do dispositivo:</translation>
 <translation id="3677008721441257057">Será que quis dizer &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
@@ -1112,7 +1112,7 @@
     a todos os pedidos, mas, de momento, não é possível aplicar essa política.</translation>
 <translation id="4006465311664329701">Métodos de pagamento, ofertas e endereços com o Google Pay</translation>
 <translation id="4009243425692662128">O conteúdo das páginas que imprime é enviado para o Google Cloud ou terceiros para análise. Por exemplo, pode ser analisado quanto a dados confidenciais.</translation>
-<translation id="4010758435855888356">Pretende permitir o acesso ao armazenamento?</translation>
+<translation id="4010758435855888356">Permitir o acesso ao armazenamento?</translation>
 <translation id="4014128326099193693">{COUNT,plural, =1{Documento PDF com {COUNT} página}other{Documento PDF com {COUNT} páginas}}</translation>
 <translation id="4023431997072828269">Uma vez que este formulário está a ser enviado através de uma ligação insegura, as suas informações vão ficar visíveis para outras pessoas.</translation>
 <translation id="4025913568718019429">Botão Gerir definições de privacidade do Google, prima Enter para visitar as definições de privacidade da sua Conta Google</translation>
@@ -2112,7 +2112,7 @@
 <translation id="6822437859461265552">Seguro de vida</translation>
 <translation id="6823746213313229853">Debates na rádio</translation>
 <translation id="6825578344716086703">Tentou aceder a <ph name="DOMAIN" />, mas o servidor apresentou um certificado assinado utilizando um algoritmo de assinatura fraco (como SHA-1). Isto significa que as credenciais de segurança apresentadas pelo servidor podem ter sido falsificadas e que o servidor pode não ser aquele que pretende (pode estar a comunicar com um utilizador mal intencionado).</translation>
-<translation id="6826993739343257035">Pretende permitir a realidade aumentada?</translation>
+<translation id="6826993739343257035">Permitir a realidade aumentada?</translation>
 <translation id="6828866289116430505">Genética</translation>
 <translation id="6831043979455480757">Traduzir</translation>
 <translation id="6833752742582340615">Guarde o seu cartão e informações de faturação na sua Conta Google para pagamentos seguros e mais rápidos</translation>
@@ -2130,7 +2130,7 @@
 <translation id="6884662655240309489">Tamanho 1</translation>
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">O Chrome simplificou esta página para facilitar a leitura. O Chrome obteve a página original através de uma ligação insegura.</translation>
-<translation id="6890443033788248019">Pretende permitir o acesso à localização?</translation>
+<translation id="6890443033788248019">Permitir o acesso à localização?</translation>
 <translation id="6891596781022320156">O nível da política não é suportado.</translation>
 <translation id="6895143722905299846">Número virtual:</translation>
 <translation id="6895330447102777224">O seu cartão foi confirmado</translation>
@@ -2482,7 +2482,7 @@
 <translation id="7758069387465995638">O software de firewall ou antivírus pode ter bloqueado a ligação.</translation>
 <translation id="7760497246331667482">Música reggae e das Caraíbas</translation>
 <translation id="776110834126722255">Descontinuada</translation>
-<translation id="7761159795823346334">Pretende permitir o acesso à câmara?</translation>
+<translation id="7761159795823346334">Permitir o acesso à câmara?</translation>
 <translation id="7761701407923456692">O certificado do servidor não corresponde ao URL.</translation>
 <translation id="7763386264682878361">Analisador de manifestos de pagamento</translation>
 <translation id="7764225426217299476">Adicionar endereço</translation>
@@ -2741,7 +2741,7 @@
 <translation id="8530813470445476232">Limpe o seu histórico de navegação, cookies, cache e muito mais nas definições do Chrome.</translation>
 <translation id="853332391023689529">Carrinhas de caixa aberta</translation>
 <translation id="8533619373899488139">Visite &lt;strong&gt;chrome://policy&lt;/strong&gt; para ver a lista dos URLs bloqueados e outras políticas aplicadas pelo administrador do sistema.</translation>
-<translation id="8539500321752640291">Pretende permitir 2 autorizações?</translation>
+<translation id="8539500321752640291">Permitir 2 autorizações?</translation>
 <translation id="8541158209346794904">Dispositivo Bluetooth</translation>
 <translation id="8542014550340843547">Agrafo triplo na parte inferior</translation>
 <translation id="8543181531796978784">Pode <ph name="BEGIN_ERROR_LINK" />comunicar um problema de deteção<ph name="END_ERROR_LINK" /> ou, se compreende os riscos para a sua segurança, <ph name="BEGIN_LINK" />aceda a este site não seguro<ph name="END_LINK" />.</translation>
@@ -2904,7 +2904,7 @@
 <translation id="9025348182339809926">(Inválido)</translation>
 <translation id="9030265603405983977">Monocromático</translation>
 <translation id="9035022520814077154">Erro de segurança</translation>
-<translation id="9036306139374661733">Pretende permitir o acesso ao microfone?</translation>
+<translation id="9036306139374661733">Permitir o acesso ao microfone?</translation>
 <translation id="9038649477754266430">Utilizar um serviço de previsão para carregar páginas mais rapidamente</translation>
 <translation id="9039213469156557790">Além disso, esta página inclui outros recursos que não são seguros. Estes recursos podem ser vistos por outros utilizadores em trânsito e modificados por um utilizador mal intencionado com o intuito de alterar o comportamento da página.</translation>
 <translation id="9040464167025094690">Botão Localizar o meu dispositivo, prima Enter para visitar localizar o seu dispositivo na Conta Google</translation>
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
index 54345af..7445c05 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
@@ -288,15 +288,9 @@
   void CreateTestNavigation(const GURL& url,
                             content::RenderFrameHost* render_frame_host) {
     DCHECK(render_frame_host);
-    if (render_frame_host->IsFencedFrameRoot()) {
-      navigation_simulator_ =
-          content::NavigationSimulator::CreateForFencedFrame(url,
-                                                             render_frame_host);
-    } else {
-      navigation_simulator_ =
-          content::NavigationSimulator::CreateRendererInitiated(
-              url, render_frame_host);
-    }
+    navigation_simulator_ =
+        content::NavigationSimulator::CreateRendererInitiated(
+            url, render_frame_host);
   }
 
   content::NavigationSimulator* navigation_simulator() {
diff --git a/components/sync/engine/sync_scheduler_impl.cc b/components/sync/engine/sync_scheduler_impl.cc
index cb46dd4..85bc915 100644
--- a/components/sync/engine/sync_scheduler_impl.cc
+++ b/components/sync/engine/sync_scheduler_impl.cc
@@ -146,8 +146,6 @@
   // call TryCanaryJob to achieve this, and note that nothing -- not even a
   // canary job -- can bypass a THROTTLED WaitInterval. The only thing that
   // has the authority to do that is the Unthrottle timer.
-  // TODO(crbug.com/1170609): Delete log trace when the flakiness is resolved.
-  LOG(WARNING) << "Server connection fixed and retrying canary job";
   TryCanaryJob();
 }
 
@@ -512,9 +510,8 @@
 }
 
 void SyncSchedulerImpl::DoPollSyncCycleJob() {
-  // TODO(crbug.com/1170609): Revert to SDVLOG(2) the flakiness is resolved.
-  LOG(WARNING) << "Polling with types "
-               << ModelTypeSetToDebugString(GetEnabledAndUnblockedTypes());
+  SDVLOG(2) << "Polling with types "
+            << ModelTypeSetToDebugString(GetEnabledAndUnblockedTypes());
   SyncCycle cycle(cycle_context_, this);
   bool success = syncer_->PollSyncShare(GetEnabledAndUnblockedTypes(), &cycle);
 
@@ -706,8 +703,6 @@
   // was just created (e.g via ScheduleNudgeImpl). The main implication is
   // that we're careful to update routing info (etc) with such potentially
   // stale canary jobs.
-  // TODO(crbug.com/1170609): Delete log trace when the flakiness is resolved.
-  LOG(WARNING) << "Unthrottling scheduler and trying canary job";
   TryCanaryJob();
 }
 
@@ -741,8 +736,6 @@
 }
 
 void SyncSchedulerImpl::ExponentialBackoffRetry() {
-  // TODO(crbug.com/1170609): Delete log trace when the flakiness is resolved.
-  LOG(WARNING) << "Retrying exponential backoff with a canary job";
   TryCanaryJob();
 }
 
diff --git a/components/translate/content/browser/per_frame_content_translate_driver.cc b/components/translate/content/browser/per_frame_content_translate_driver.cc
index dd52c3d..694c7567 100644
--- a/components/translate/content/browser/per_frame_content_translate_driver.cc
+++ b/components/translate/content/browser/per_frame_content_translate_driver.cc
@@ -221,7 +221,7 @@
   if (response_code == 0 || response_code == net::HTTP_INTERNAL_SERVER_ERROR)
     return;
 
-  if (!navigation_handle->IsInMainFrame() &&
+  if (!navigation_handle->IsInPrimaryMainFrame() &&
       translate_manager()->GetLanguageState()->translation_declined()) {
     // Some sites (such as Google map) may trigger sub-frame navigations
     // when the user interacts with the page.  We don't want to show a new
diff --git a/components/webapps/browser/install_result_code.cc b/components/webapps/browser/install_result_code.cc
index f9f4656..57f08e4 100644
--- a/components/webapps/browser/install_result_code.cc
+++ b/components/webapps/browser/install_result_code.cc
@@ -77,8 +77,6 @@
       return os << "kUpdateTaskFailed";
     case InstallResultCode::kAppNotInRegistrarAfterCommit:
       return os << "kAppNotInRegistrarAfterCommit";
-    case InstallResultCode::kHaltedBySyncUninstall:
-      return os << "kHaltedBySyncUninstall";
   }
 }
 
diff --git a/components/webapps/browser/install_result_code.h b/components/webapps/browser/install_result_code.h
index f4cdc97..b721d7df 100644
--- a/components/webapps/browser/install_result_code.h
+++ b/components/webapps/browser/install_result_code.h
@@ -80,10 +80,7 @@
   // commit.
   kAppNotInRegistrarAfterCommit = 27,
 
-  // The installation stopped due to an uninstall from sync being scheduled.
-  kHaltedBySyncUninstall = 28,
-
-  kMaxValue = kHaltedBySyncUninstall,
+  kMaxValue = kAppNotInRegistrarAfterCommit,
 };
 
 // Checks if InstallResultCode is not a failure.
diff --git a/content/browser/attribution_reporting/aggregatable_attribution_utils.cc b/content/browser/attribution_reporting/aggregatable_attribution_utils.cc
index dcd4b8c..1c83c5f 100644
--- a/content/browser/attribution_reporting/aggregatable_attribution_utils.cc
+++ b/content/browser/attribution_reporting/aggregatable_attribution_utils.cc
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "base/check.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/ranges/algorithm.h"
 #include "content/browser/aggregation_service/aggregatable_report.h"
 #include "content/browser/attribution_reporting/aggregatable_histogram_contribution.h"
@@ -21,6 +22,7 @@
 #include "content/browser/attribution_reporting/attribution_utils.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
+#include "third_party/blink/public/common/attribution_reporting/constants.h"
 
 namespace content {
 
@@ -28,7 +30,7 @@
     const AttributionFilterData& source_filter_data,
     const AttributionAggregatableSource& source,
     const AttributionAggregatableTrigger& trigger) {
-  // TODO(linnan): Log metrics for early returns.
+  int num_trigger_data_filtered = 0;
 
   AttributionAggregatableSource::Keys buckets = source.keys();
 
@@ -38,6 +40,7 @@
   for (const auto& data : trigger.trigger_data()) {
     if (!AttributionFiltersMatch(source_filter_data, data.filters(),
                                  data.not_filters())) {
+      ++num_trigger_data_filtered;
       continue;
     }
 
@@ -59,6 +62,28 @@
     contributions.emplace_back(key, value->second);
   }
 
+  if (!trigger.trigger_data().empty()) {
+    base::UmaHistogramPercentage(
+        "Conversions.AggregatableReport.FilteredTriggerDataPercentage",
+        100 * num_trigger_data_filtered / trigger.trigger_data().size());
+  }
+
+  DCHECK(!buckets.empty());
+  base::UmaHistogramPercentage(
+      "Conversions.AggregatableReport.DroppedKeysPercentage",
+      100 * (buckets.size() - contributions.size()) / buckets.size());
+
+  const int kExclusiveMaxHistogramValue = 101;
+
+  static_assert(blink::kMaxAttributionAggregatableKeysPerSourceOrTrigger <
+                    kExclusiveMaxHistogramValue,
+                "Bump the version for histogram "
+                "Conversions.AggregatableReport.NumContributionsPerReport");
+
+  base::UmaHistogramCounts100(
+      "Conversions.AggregatableReport.NumContributionsPerReport",
+      contributions.size());
+
   return contributions;
 }
 
diff --git a/content/browser/attribution_reporting/aggregatable_attribution_utils_unittest.cc b/content/browser/attribution_reporting/aggregatable_attribution_utils_unittest.cc
index 7120595..cf95f2b 100644
--- a/content/browser/attribution_reporting/aggregatable_attribution_utils_unittest.cc
+++ b/content/browser/attribution_reporting/aggregatable_attribution_utils_unittest.cc
@@ -11,6 +11,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/test/metrics/histogram_tester.h"
 #include "content/browser/attribution_reporting/aggregatable_histogram_contribution.h"
 #include "content/browser/attribution_reporting/attribution_aggregatable_source.h"
 #include "content/browser/attribution_reporting/attribution_aggregatable_trigger.h"
@@ -32,6 +33,8 @@
 }  // namespace
 
 TEST(AggregatableAttributionUtilsTest, CreateAggregatableHistogram) {
+  base::HistogramTester histograms;
+
   auto source = AttributionAggregatableSource::FromKeys(
       {{"key1", 345}, {"key2", 5}, {"key3", 123}});
   ASSERT_TRUE(source.has_value());
@@ -97,6 +100,13 @@
       ElementsAre(
           AggregatableHistogramContribution(/*key=*/1369, /*value=*/32768u),
           AggregatableHistogramContribution(/*key=*/2693, /*value=*/1664u)));
+
+  histograms.ExpectUniqueSample(
+      "Conversions.AggregatableReport.FilteredTriggerDataPercentage", 50, 1);
+  histograms.ExpectUniqueSample(
+      "Conversions.AggregatableReport.DroppedKeysPercentage", 33, 1);
+  histograms.ExpectUniqueSample(
+      "Conversions.AggregatableReport.NumContributionsPerReport", 2, 1);
 }
 
 TEST(AggregatableAttributionUtilsTest, HexEncodeAggregatableKey) {
@@ -121,4 +131,29 @@
   }
 }
 
+TEST(AggregatableAttributionUtilsTest,
+     NoTriggerData_FilteredPercentageNotRecorded) {
+  base::HistogramTester histograms;
+
+  auto source = AttributionAggregatableSource::FromKeys({{"key1", 345}});
+  ASSERT_TRUE(source.has_value());
+
+  auto trigger_mojo = blink::mojom::AttributionAggregatableTrigger::New();
+  trigger_mojo->values = {{"key2", 32768}};
+
+  absl::optional<AttributionAggregatableTrigger> trigger =
+      AttributionAggregatableTrigger::FromMojo(std::move(trigger_mojo));
+  ASSERT_TRUE(trigger.has_value());
+
+  std::vector<AggregatableHistogramContribution> contributions =
+      CreateAggregatableHistogram(AttributionFilterData(), *source, *trigger);
+
+  histograms.ExpectTotalCount(
+      "Conversions.AggregatableReport.FilteredTriggerDataPercentage", 0);
+  histograms.ExpectUniqueSample(
+      "Conversions.AggregatableReport.DroppedKeysPercentage", 100, 1);
+  histograms.ExpectUniqueSample(
+      "Conversions.AggregatableReport.NumContributionsPerReport", 0, 1);
+}
+
 }  // namespace content
diff --git a/content/browser/attribution_reporting/attribution_src_browsertest.cc b/content/browser/attribution_reporting/attribution_src_browsertest.cc
index 00c9491..a1e011f 100644
--- a/content/browser/attribution_reporting/attribution_src_browsertest.cc
+++ b/content/browser/attribution_reporting/attribution_src_browsertest.cc
@@ -9,15 +9,19 @@
 #include "base/run_loop.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_piece.h"
+#include "base/test/scoped_feature_list.h"
 #include "content/browser/attribution_reporting/attribution_manager_impl.h"
 #include "content/browser/attribution_reporting/attribution_test_utils.h"
 #include "content/public/browser/navigation_handle.h"
+#include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
 #include "content/public/test/content_browser_test_utils.h"
+#include "content/public/test/fenced_frame_test_util.h"
 #include "content/public/test/prerender_test_util.h"
+#include "content/public/test/test_frame_navigation_observer.h"
 #include "content/shell/browser/shell.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "net/dns/mock_host_resolver.h"
@@ -27,6 +31,7 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/numeric/int128.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/navigation/impression.h"
 #include "third_party/blink/public/mojom/conversions/attribution_data_host.mojom.h"
 #include "url/gurl.h"
@@ -82,6 +87,7 @@
     net::test_server::RegisterDefaultHandlers(https_server_.get());
     https_server_->ServeFilesFromSourceDirectory(
         "content/test/data/attribution_reporting");
+    https_server_->ServeFilesFromSourceDirectory("content/test/data");
     ASSERT_TRUE(https_server_->Start());
 
     mock_attribution_host_ = MockAttributionHost::Override(web_contents());
@@ -1000,4 +1006,86 @@
   EXPECT_EQ(source_data.front()->source_event_id, 5UL);
 }
 
+class AttributionSrcFencedFrameBrowserTest
+    : public AttributionSrcBrowserTest,
+      public ::testing::WithParamInterface<
+          blink::features::FencedFramesImplementationType> {
+ public:
+  AttributionSrcFencedFrameBrowserTest() {
+    switch (GetParam()) {
+      case blink::features::FencedFramesImplementationType::kMPArch:
+        fenced_frame_helper_ = std::make_unique<test::FencedFrameTestHelper>();
+        break;
+      case blink::features::FencedFramesImplementationType::kShadowDOM:
+        feature_list_.InitWithFeaturesAndParameters(
+            {{blink::features::kFencedFrames,
+              {{"implementation_type", "shadow_dom"}}},
+             {features::kPrivacySandboxAdsAPIsOverride, {}}},
+            /*disabled_features=*/{});
+        break;
+    }
+  }
+
+  ~AttributionSrcFencedFrameBrowserTest() override = default;
+
+ protected:
+  std::unique_ptr<test::FencedFrameTestHelper> fenced_frame_helper_;
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    AttributionSrcFencedFrameBrowserTest,
+    ::testing::Values(
+        blink::features::FencedFramesImplementationType::kShadowDOM,
+        blink::features::FencedFramesImplementationType::kMPArch));
+
+// TODO(crbug.com/1329240): Add test for opaque-ads mode fenced frames.
+
+IN_PROC_BROWSER_TEST_P(AttributionSrcFencedFrameBrowserTest,
+                       DefaultMode_SourceNotRegistered) {
+  GURL main_url = https_server()->GetURL("b.test", "/title1.html");
+  EXPECT_TRUE(NavigateToURL(shell(), main_url));
+
+  GURL fenced_frame_url =
+      https_server()->GetURL("b.test", "/page_with_impression_creator.html");
+
+  RenderFrameHost* parent = web_contents()->GetMainFrame();
+
+  RenderFrameHost* fenced_frame_host;
+  if (fenced_frame_helper_) {
+    fenced_frame_host =
+        fenced_frame_helper_->CreateFencedFrame(parent, fenced_frame_url);
+  } else {
+    EXPECT_TRUE(ExecJs(parent, R"(
+      var fenced_frame = document.createElement('fencedframe');
+      document.body.appendChild(fenced_frame);
+    )"));
+
+    fenced_frame_host = ChildFrameAt(parent, 0);
+
+    TestFrameNavigationObserver observer(fenced_frame_host);
+    EXPECT_TRUE(
+        ExecJs(parent, JsReplace("fenced_frame.src = $1;", fenced_frame_url)));
+    observer.Wait();
+  }
+
+  ASSERT_NE(fenced_frame_host, nullptr);
+  EXPECT_TRUE(fenced_frame_host->IsFencedFrameRoot());
+
+  EXPECT_CALL(mock_attribution_host(), RegisterDataHost).Times(0);
+
+  EXPECT_TRUE(ExecJs(
+      fenced_frame_host,
+      JsReplace(
+          "createAttributionSrcImg($1);",
+          https_server()->GetURL("c.test", "/register_source_headers.html"))));
+
+  // If a data host were registered, it would arrive in the browser process
+  // before the navigation finished.
+  EXPECT_TRUE(NavigateToURL(shell(), main_url));
+}
+
 }  // namespace content
diff --git a/content/browser/browsing_data/browsing_data_remover_impl.cc b/content/browser/browsing_data/browsing_data_remover_impl.cc
index a1717645..e84d089f 100644
--- a/content/browser/browsing_data/browsing_data_remover_impl.cc
+++ b/content/browser/browsing_data/browsing_data_remover_impl.cc
@@ -406,6 +406,8 @@
         StoragePartition::REMOVE_DATA_MASK_BACKGROUND_FETCH;
   }
   if (remove_mask & DATA_TYPE_CACHE) {
+    storage_partition_remove_mask |=
+        StoragePartition::REMOVE_DATA_MASK_INTEREST_GROUP_PERMISSIONS_CACHE;
     // Tell the shader disk cache to clear.
     base::RecordAction(UserMetricsAction("ClearBrowsingData_ShaderCache"));
     storage_partition_remove_mask |=
diff --git a/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc b/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
index 052c070..922ae9f 100644
--- a/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
+++ b/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
@@ -1300,13 +1300,16 @@
   EXPECT_TRUE(removal_data[1].remove_code_cache);
 }
 
-TEST_F(BrowsingDataRemoverImplTest, RemoveShaderCache) {
+TEST_F(BrowsingDataRemoverImplTest,
+       RemoveShaderCacheAndInterstGroupPermissionsCache) {
   BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
                                 BrowsingDataRemover::DATA_TYPE_CACHE, false);
   auto removal_data = GetStoragePartitionRemovalDataListAndReset();
   EXPECT_EQ(removal_data.size(), 2u);
-  EXPECT_EQ(removal_data[0].remove_mask,
-            StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE);
+  EXPECT_EQ(
+      removal_data[0].remove_mask,
+      StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE |
+          StoragePartition::REMOVE_DATA_MASK_INTEREST_GROUP_PERMISSIONS_CACHE);
 }
 
 TEST_F(BrowsingDataRemoverImplTest, RemoveConversions) {
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
index 6d6fba29..0e30606 100644
--- a/content/browser/devtools/protocol/page_handler.cc
+++ b/content/browser/devtools/protocol/page_handler.cc
@@ -86,8 +86,6 @@
     "Command can only be executed on top-level targets";
 constexpr char kErrorNotAttached[] = "Not attached to a page";
 constexpr char kErrorInactivePage[] = "Not attached to an active page";
-constexpr char kErrorNonTopLevelFrames[] =
-    "This is only supported for top-level frames";
 
 Binary EncodeImage(const gfx::Image& image,
                    const std::string& format,
@@ -182,14 +180,29 @@
   *top_controls_visible_height = *frame.metadata().top_controls_visible_height;
 }
 
+Response AssureTopLevelActiveFrame(RenderFrameHost* host) {
+  if (!host)
+    return Response::ServerError(kErrorNotAttached);
+
+  if (host->GetParentOrOuterDocument())
+    return Response::ServerError(kCommandIsOnlyAvailableAtTopTarget);
+
+  if (!host->IsActive())
+    return Response::ServerError(kErrorInactivePage);
+
+  return Response::Success();
+}
+
 template <typename ProtocolCallback>
 bool CanExecuteGlobalCommands(
     RenderFrameHost* host,
     const std::unique_ptr<ProtocolCallback>& callback) {
-  if (!host || host->IsInPrimaryMainFrame())
+  if (!host)
     return true;
-  callback->sendFailure(
-      Response::ServerError(kCommandIsOnlyAvailableAtTopTarget));
+  Response response = AssureTopLevelActiveFrame(host);
+  if (!response.IsError())
+    return true;
+  callback->sendFailure(response);
   return false;
 }
 
@@ -407,11 +420,9 @@
 }
 
 Response PageHandler::Close() {
-  if (!host_)
-    return Response::ServerError(kErrorNotAttached);
-
-  if (!host_->IsOutermostMainFrame())
-    return Response::ServerError(kCommandIsOnlyAvailableAtTopTarget);
+  Response response = AssureTopLevelActiveFrame(host_);
+  if (response.IsError())
+    return response;
 
   host_->DispatchBeforeUnload(RenderFrameHostImpl::BeforeUnloadType::TAB_CLOSE,
                               false);
@@ -421,14 +432,9 @@
 void PageHandler::Reload(Maybe<bool> bypassCache,
                          Maybe<std::string> script_to_evaluate_on_load,
                          std::unique_ptr<ReloadCallback> callback) {
-  if (!host_) {
-    callback->sendFailure(Response::ServerError(kErrorNotAttached));
-    return;
-  }
-
-  if (host_->GetParentOrOuterDocument()) {
-    callback->sendFailure(
-        Response::ServerError("Reload is only supported for top-level frames"));
+  Response response = AssureTopLevelActiveFrame(host_);
+  if (response.IsError()) {
+    callback->sendFailure(response);
     return;
   }
 
@@ -931,11 +937,10 @@
                                       Maybe<int> max_width,
                                       Maybe<int> max_height,
                                       Maybe<int> every_nth_frame) {
-  WebContentsImpl* web_contents = GetWebContents();
-  if (!web_contents)
-    return Response::InternalError();
-  RenderWidgetHostImpl* widget_host =
-      host_ ? host_->GetRenderWidgetHost() : nullptr;
+  Response response = AssureTopLevelActiveFrame(host_);
+  if (response.IsError())
+    return response;
+  RenderWidgetHostImpl* widget_host = host_->GetRenderWidgetHost();
   if (!widget_host)
     return Response::InternalError();
 
@@ -998,7 +1003,7 @@
 
 Response PageHandler::HandleJavaScriptDialog(bool accept,
                                              Maybe<std::string> prompt_text) {
-  Response response = AssureTopLevelActiveFrame();
+  Response response = AssureTopLevelActiveFrame(host_);
   if (response.IsError())
     return response;
 
@@ -1041,18 +1046,16 @@
       host_ ? host_->GetProcess()->GetBrowserContext() : nullptr;
   if (!browser_context)
     return Response::ServerError("Could not fetch browser context");
-  if (host_ && host_->GetParent())
-    return Response::ServerError(kCommandIsOnlyAvailableAtTopTarget);
+
+  Response response = AssureTopLevelActiveFrame(host_);
+  if (response.IsError())
+    return response;
   return browser_handler_->DoSetDownloadBehavior(behavior, browser_context,
                                                  std::move(download_path));
 }
 
 void PageHandler::GetAppManifest(
     std::unique_ptr<GetAppManifestCallback> callback) {
-  if (!host_) {
-    callback->sendFailure(Response::ServerError("Cannot retrieve manifest"));
-    return;
-  }
   if (!CanExecuteGlobalCommands(host_, callback))
     return;
   ManifestManagerHost::GetOrCreateForPage(host_->GetPage())
@@ -1079,19 +1082,6 @@
          !(++frame_counter_ % capture_every_nth_frame_);
 }
 
-Response PageHandler::AssureTopLevelActiveFrame() {
-  if (!host_)
-    return Response::ServerError(kErrorNotAttached);
-
-  if (!host_->IsActive())
-    return Response::ServerError(kErrorInactivePage);
-
-  if (host_->GetParentOrOuterDocument())
-    return Response::ServerError(kErrorNonTopLevelFrames);
-
-  return Response::Success();
-}
-
 void PageHandler::InnerSwapCompositorFrame() {
   if (!host_)
     return;
@@ -1297,7 +1287,7 @@
 Response PageHandler::SetWebLifecycleState(const std::string& state) {
   // Inactive pages(e.g., a prerendered or back-forward cached page) should not
   // affect the state.
-  Response response = AssureTopLevelActiveFrame();
+  Response response = AssureTopLevelActiveFrame(host_);
   if (response.IsError())
     return response;
 
diff --git a/content/browser/devtools/protocol/page_handler.h b/content/browser/devtools/protocol/page_handler.h
index 065763b..d74a47e 100644
--- a/content/browser/devtools/protocol/page_handler.h
+++ b/content/browser/devtools/protocol/page_handler.h
@@ -184,7 +184,6 @@
   enum EncodingFormat { PNG, JPEG };
 
   bool ShouldCaptureNextScreencastFrame();
-  Response AssureTopLevelActiveFrame();
   void NotifyScreencastVisibility(bool visible);
   void InnerSwapCompositorFrame();
   void OnFrameFromVideoConsumer(scoped_refptr<media::VideoFrame> frame);
diff --git a/content/browser/fenced_frame/fenced_frame_unittest.cc b/content/browser/fenced_frame/fenced_frame_unittest.cc
index 49d3955..50a9e4cf 100644
--- a/content/browser/fenced_frame/fenced_frame_unittest.cc
+++ b/content/browser/fenced_frame/fenced_frame_unittest.cc
@@ -34,8 +34,8 @@
   // Navigate fenced frame.
   GURL fenced_frame_url = GURL("https://fencedframe.com");
   std::unique_ptr<NavigationSimulator> navigation_simulator =
-      NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                fenced_frame_root);
+      NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                   fenced_frame_root);
   navigation_simulator->Commit();
   fenced_frame_root = static_cast<RenderFrameHostImpl*>(
       navigation_simulator->GetFinalRenderFrameHost());
@@ -54,8 +54,8 @@
   GURL fenced_frame_url =
       GURL("https://username:password@hostname/path?query#hash");
   std::unique_ptr<content::NavigationSimulator> navigation_simulator =
-      content::NavigationSimulator::CreateForFencedFrame(fenced_frame_url,
-                                                         fenced_frame_root);
+      content::NavigationSimulator::CreateRendererInitiated(fenced_frame_url,
+                                                            fenced_frame_root);
   navigation_simulator->Commit();
   EXPECT_TRUE(navigation_simulator->HasFailed());
 }
diff --git a/content/browser/interest_group/interest_group_manager_impl.cc b/content/browser/interest_group/interest_group_manager_impl.cc
index 2bac214..6631696 100644
--- a/content/browser/interest_group/interest_group_manager_impl.cc
+++ b/content/browser/interest_group/interest_group_manager_impl.cc
@@ -366,6 +366,10 @@
     SendReports();
 }
 
+void InterestGroupManagerImpl::ClearPermissionsCache() {
+  permissions_checker_.ClearCache();
+}
+
 void InterestGroupManagerImpl::SendReports() {
   if (reporting_started_ == base::TimeTicks::Min()) {
     // It appears we're staring a new reporting round; mark the time we started
diff --git a/content/browser/interest_group/interest_group_manager_impl.h b/content/browser/interest_group/interest_group_manager_impl.h
index d836e224..b478ba31 100644
--- a/content/browser/interest_group/interest_group_manager_impl.h
+++ b/content/browser/interest_group/interest_group_manager_impl.h
@@ -187,6 +187,10 @@
       network::mojom::ClientSecurityStatePtr client_security_state,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
 
+  // Clears the InterestGroupPermissionsChecker's cache of the results of
+  // .well-known fetches.
+  void ClearPermissionsCache();
+
   AuctionProcessManager& auction_process_manager() {
     return *auction_process_manager_;
   }
@@ -228,6 +232,10 @@
     return report_requests_.size();
   }
 
+  InterestGroupPermissionsChecker& permissions_checker_for_testing() {
+    return permissions_checker_;
+  }
+
  private:
   // InterestGroupUpdateManager calls private members to write updates to the
   // database.
diff --git a/content/browser/interest_group/interest_group_permissions_checker.h b/content/browser/interest_group/interest_group_permissions_checker.h
index 2b23218..3f70005d 100644
--- a/content/browser/interest_group/interest_group_permissions_checker.h
+++ b/content/browser/interest_group/interest_group_permissions_checker.h
@@ -91,6 +91,8 @@
 
   void ClearCache();
 
+  InterestGroupPermissionsCache& cache_for_testing() { return cache_; }
+
  private:
   using Permissions = InterestGroupPermissionsCache::Permissions;
 
diff --git a/content/browser/media/capture/content_capture_device_browsertest_base.cc b/content/browser/media/capture/content_capture_device_browsertest_base.cc
index a7ebae1..1cb1439 100644
--- a/content/browser/media/capture/content_capture_device_browsertest_base.cc
+++ b/content/browser/media/capture/content_capture_device_browsertest_base.cc
@@ -21,7 +21,6 @@
 #include "content/public/test/test_utils.h"
 #include "content/shell/browser/shell.h"
 #include "content/shell/common/shell_switches.h"
-#include "media/base/video_types.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_request.h"
@@ -95,7 +94,7 @@
 
   media::VideoCaptureParams params;
   params.requested_format = media::VideoCaptureFormat(
-      capture_size, kMaxFramesPerSecond, GetVideoPixelFormat());
+      capture_size, kMaxFramesPerSecond, media::PIXEL_FORMAT_I420);
   params.resolution_change_policy =
       IsFixedAspectRatioTest()
           ? media::ResolutionChangePolicy::FIXED_ASPECT_RATIO
@@ -103,11 +102,6 @@
   return params;
 }
 
-media::VideoPixelFormat
-ContentCaptureDeviceBrowserTestBase::GetVideoPixelFormat() const {
-  return media::VideoPixelFormat::PIXEL_FORMAT_I420;
-}
-
 base::TimeDelta ContentCaptureDeviceBrowserTestBase::GetMinCapturePeriod() {
   return base::Microseconds(
       base::Time::kMicrosecondsPerSecond /
diff --git a/content/browser/media/capture/content_capture_device_browsertest_base.h b/content/browser/media/capture/content_capture_device_browsertest_base.h
index cc9947d..28a0fab 100644
--- a/content/browser/media/capture/content_capture_device_browsertest_base.h
+++ b/content/browser/media/capture/content_capture_device_browsertest_base.h
@@ -11,7 +11,6 @@
 #include "build/build_config.h"
 #include "content/browser/media/capture/fake_video_capture_stack.h"
 #include "content/public/test/content_browser_test.h"
-#include "media/base/video_types.h"
 #include "media/capture/video_capture_types.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/skia/include/core/SkColor.h"
@@ -55,8 +54,6 @@
   gfx::Size GetExpectedSourceSize();
 
   // Returns capture parameters based on the captured source size.
-  // Capture format can be customized by the subclasses, see
-  // |GetVideoPixelFormat()|.
   media::VideoCaptureParams SnapshotCaptureParams();
 
   // Returns the actual minimum capture period the device is using. This should
@@ -102,9 +99,6 @@
   virtual bool IsFixedAspectRatioTest() const;
   virtual bool IsCrossSiteCaptureTest() const;
 
-  // Used to customize the video pixel format that will be used for capture.
-  virtual media::VideoPixelFormat GetVideoPixelFormat() const;
-
   // Returns the size of the original content (i.e., not including any
   // stretching/scaling being done to fit it within a video frame).
   virtual gfx::Size GetCapturedSourceSize() const = 0;
diff --git a/content/browser/media/capture/fake_video_capture_stack.cc b/content/browser/media/capture/fake_video_capture_stack.cc
index 5515600f..2af1cad 100644
--- a/content/browser/media/capture/fake_video_capture_stack.cc
+++ b/content/browser/media/capture/fake_video_capture_stack.cc
@@ -6,25 +6,17 @@
 
 #include <stdint.h>
 
-#include <memory>
 #include <utility>
 
 #include "base/bind.h"
-#include "base/callback_helpers.h"
 #include "base/memory/raw_ptr.h"
-#include "base/memory/scoped_refptr.h"
 #include "content/browser/media/capture/frame_test_util.h"
-#include "gpu/command_buffer/common/mailbox_holder.h"
-#include "gpu/ipc/common/gpu_memory_buffer_support.h"
 #include "media/base/video_frame.h"
-#include "media/base/video_types.h"
-#include "media/base/video_util.h"
 #include "media/capture/video/video_frame_receiver.h"
 #include "media/capture/video_capture_types.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkColorSpace.h"
 #include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/gpu_memory_buffer.h"
 
 namespace content {
 
@@ -55,9 +47,15 @@
     buffers_[buffer_id] = std::move(buffer_handle);
   }
 
-  scoped_refptr<media::VideoFrame> GetVideoFrameFromSharedMemory(
+  void OnFrameReadyInBuffer(
       media::ReadyFrameInBuffer frame,
-      base::ReadOnlySharedMemoryMapping mapping) {
+      std::vector<media::ReadyFrameInBuffer> scaled_frames) override {
+    const auto it = buffers_.find(frame.buffer_id);
+    CHECK(it != buffers_.end());
+
+    CHECK(it->second->is_read_only_shmem_region());
+    base::ReadOnlySharedMemoryMapping mapping =
+        it->second->get_read_only_shmem_region().Map();
     CHECK(mapping.IsValid());
 
     const auto& frame_format = media::VideoCaptureFormat(
@@ -72,12 +70,9 @@
         const_cast<uint8_t*>(static_cast<const uint8_t*>(mapping.memory())),
         mapping.size(), frame.frame_info->timestamp);
     CHECK(video_frame);
-
     video_frame->set_metadata(frame.frame_info->metadata);
-    if (frame.frame_info->color_space.has_value()) {
+    if (frame.frame_info->color_space.has_value())
       video_frame->set_color_space(frame.frame_info->color_space.value());
-    }
-
     // This destruction observer will unmap the shared memory when the
     // VideoFrame goes out-of-scope.
     video_frame->AddDestructionObserver(base::BindOnce(
@@ -88,68 +83,6 @@
         [](std::unique_ptr<Buffer::ScopedAccessPermission> access) {},
         std::move(frame.buffer_read_permission)));
 
-    return video_frame;
-  }
-
-  scoped_refptr<media::VideoFrame> GetVideoFrameFromGpuMemoryBuffer(
-      media::ReadyFrameInBuffer frame,
-      const gfx::GpuMemoryBufferHandle& gmb_handle) {
-    CHECK(!gmb_handle.is_null());
-    CHECK_EQ(frame.frame_info->pixel_format,
-             media::VideoPixelFormat::PIXEL_FORMAT_NV12);
-
-    gpu::GpuMemoryBufferSupport gmb_support;
-    std::unique_ptr<gfx::GpuMemoryBuffer> gmb =
-        gmb_support.CreateGpuMemoryBufferImplFromHandle(
-            gmb_handle.Clone(), frame.frame_info->coded_size,
-            gfx::BufferFormat::YUV_420_BIPLANAR,
-            gfx::BufferUsage::SCANOUT_VEA_CPU_READ, base::DoNothing());
-    CHECK(gmb);
-
-    gfx::Size size = gmb->GetSize();
-    gpu::MailboxHolder mailbox_holders[media::VideoFrame::kMaxPlanes];
-    auto video_frame = media::VideoFrame::WrapExternalGpuMemoryBuffer(
-        frame.frame_info->visible_rect, size, std::move(gmb), mailbox_holders,
-        base::BindOnce([](const gpu::SyncToken& token,
-                          std::unique_ptr<gfx::GpuMemoryBuffer> gmb) {}),
-        frame.frame_info->timestamp);
-    CHECK(video_frame);
-
-    video_frame->set_metadata(frame.frame_info->metadata);
-    if (frame.frame_info->color_space.has_value()) {
-      video_frame->set_color_space(frame.frame_info->color_space.value());
-    }
-
-    auto mapped_frame = media::ConvertToMemoryMappedFrame(video_frame);
-    CHECK(mapped_frame);
-
-    // This destruction observer will notify the video capture device once all
-    // downstream code is done using the VideoFrame.
-    mapped_frame->AddDestructionObserver(base::BindOnce(
-        [](std::unique_ptr<Buffer::ScopedAccessPermission> access) {},
-        std::move(frame.buffer_read_permission)));
-
-    return mapped_frame;
-  }
-
-  void OnFrameReadyInBuffer(
-      media::ReadyFrameInBuffer frame,
-      std::vector<media::ReadyFrameInBuffer> scaled_frames) override {
-    const auto it = buffers_.find(frame.buffer_id);
-    CHECK(it != buffers_.end());
-
-    CHECK(it->second->is_read_only_shmem_region() ||
-          it->second->is_gpu_memory_buffer_handle());
-
-    scoped_refptr<media::VideoFrame> video_frame = nullptr;
-    if (it->second->is_read_only_shmem_region()) {
-      video_frame = GetVideoFrameFromSharedMemory(
-          std::move(frame), it->second->get_read_only_shmem_region().Map());
-    } else {
-      video_frame = GetVideoFrameFromGpuMemoryBuffer(
-          std::move(frame), it->second->get_gpu_memory_buffer_handle());
-    }
-
     // This implementation does not forward scaled frames.
     capture_stack_->OnReceivedFrame(std::move(video_frame));
   }
@@ -222,10 +155,6 @@
 
   EXPECT_TRUE(frame->ColorSpace().IsValid());
 
-  if (on_frame_received_) {
-    on_frame_received_.Run(frame.get());
-  }
-
   frames_.emplace_back(std::move(frame));
 }
 
diff --git a/content/browser/media/capture/fake_video_capture_stack.h b/content/browser/media/capture/fake_video_capture_stack.h
index f1be3ea9..975e0c77 100644
--- a/content/browser/media/capture/fake_video_capture_stack.h
+++ b/content/browser/media/capture/fake_video_capture_stack.h
@@ -8,7 +8,6 @@
 #include <memory>
 #include <string>
 
-#include "base/callback_forward.h"
 #include "base/containers/circular_deque.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/time/time.h"
@@ -59,15 +58,6 @@
   // capture stack.
   void ExpectNoLogMessages();
 
-  using FrameReceivedCallback =
-      base::RepeatingCallback<void(media::VideoFrame*)>;
-
-  // Sets a callback that will be invoked with a pointer to VideoFrame every
-  // time new frame gets added to the queue.
-  void SetFrameReceivedCallback(FrameReceivedCallback callback) {
-    on_frame_received_ = std::move(callback);
-  }
-
  private:
   // A minimal implementation of VideoFrameReceiver that wraps buffers into
   // VideoFrame instances and forwards all relevant callbacks and data to the
@@ -83,7 +73,6 @@
   base::circular_deque<std::string> log_messages_;
   base::circular_deque<scoped_refptr<media::VideoFrame>> frames_;
   base::TimeDelta last_frame_timestamp_ = base::TimeDelta::Min();
-  FrameReceivedCallback on_frame_received_;
 };
 
 }  // namespace content
diff --git a/content/browser/media/capture/frame_test_util.cc b/content/browser/media/capture/frame_test_util.cc
index 593cf06..1ebfdf5 100644
--- a/content/browser/media/capture/frame_test_util.cc
+++ b/content/browser/media/capture/frame_test_util.cc
@@ -10,9 +10,7 @@
 
 #include "base/numerics/safe_conversions.h"
 #include "media/base/video_frame.h"
-#include "media/base/video_types.h"
 #include "third_party/skia/include/core/SkColorSpace.h"
-#include "third_party/skia/include/core/SkTypes.h"
 #include "ui/gfx/color_space.h"
 #include "ui/gfx/color_transform.h"
 #include "ui/gfx/geometry/rect.h"
@@ -40,34 +38,6 @@
   }
 }
 
-void LoadStimsFromYUV(const uint8_t y_src[],
-                      const uint16_t uv_src[],
-                      int width,
-                      TriStim stims[]) {
-// https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#nv12
-// "All of the Y samples appear first in memory as an array of unsigned char
-// values with an even number of lines. The Y plane is followed immediately by
-// an array of unsigned char values that contains packed U (Cb) and V (Cr)
-// samples. When the combined U-V array is addressed as an array of
-// little-endian WORD values, the LSBs contain the U values, and the MSBs
-// contain the V values."
-#if defined(SK_CPU_BENDIAN)
-  for (int i = 0; i < width; ++i) {
-    stims[i].SetPoint(
-        y_src[i] / 255.0f,
-        (uv_src[i / 2] >> 8) / 255.0f,  // MSB contains U values on LE
-        (uv_src[i / 2] & 0xFF) / 255.0f);
-  }
-#else
-  for (int i = 0; i < width; ++i) {
-    stims[i].SetPoint(
-        y_src[i] / 255.0f,
-        (uv_src[i / 2] & 0xFF) / 255.0f,  // LSB contains U values on LE
-        (uv_src[i / 2] >> 8) / 255.0f);
-  }
-#endif
-}
-
 // Maps [0.0,1.0]⇒[0,255], rounding to the nearest integer.
 uint8_t QuantizeAndClamp(float value) {
   return base::saturated_cast<uint8_t>(
@@ -112,24 +82,13 @@
   // Convert one row at a time.
   std::vector<gfx::ColorTransform::TriStim> stims(bitmap.width());
   for (int row = 0; row < bitmap.height(); ++row) {
-    if (frame.format() == media::VideoPixelFormat::PIXEL_FORMAT_I420) {
-      LoadStimsFromYUV(frame.visible_data(media::VideoFrame::kYPlane) +
-                           row * frame.stride(media::VideoFrame::kYPlane),
-                       frame.visible_data(media::VideoFrame::kUPlane) +
-                           (row / 2) * frame.stride(media::VideoFrame::kUPlane),
-                       frame.visible_data(media::VideoFrame::kVPlane) +
-                           (row / 2) * frame.stride(media::VideoFrame::kVPlane),
-                       bitmap.width(), stims.data());
-    } else {
-      CHECK_EQ(frame.format(), media::VideoPixelFormat::PIXEL_FORMAT_NV12);
-      LoadStimsFromYUV(
-          frame.visible_data(media::VideoFrame::kYPlane) +
-              row * frame.stride(media::VideoFrame::kYPlane),
-          reinterpret_cast<const uint16_t*>(
-              frame.visible_data(media::VideoFrame::kUVPlane) +
-              (row / 2) * frame.stride(media::VideoFrame::kUVPlane)),
-          bitmap.width(), stims.data());
-    }
+    LoadStimsFromYUV(frame.visible_data(media::VideoFrame::kYPlane) +
+                         row * frame.stride(media::VideoFrame::kYPlane),
+                     frame.visible_data(media::VideoFrame::kUPlane) +
+                         (row / 2) * frame.stride(media::VideoFrame::kUPlane),
+                     frame.visible_data(media::VideoFrame::kVPlane) +
+                         (row / 2) * frame.stride(media::VideoFrame::kVPlane),
+                     bitmap.width(), stims.data());
     transform->Transform(stims.data(), stims.size());
     StimsToN32Row(stims.data(), bitmap.width(),
                   reinterpret_cast<uint8_t*>(bitmap.getAddr32(0, row)));
diff --git a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
index dce8233..e6028a5 100644
--- a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
+++ b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
@@ -6,9 +6,7 @@
 
 #include <tuple>
 
-#include "base/bind.h"
 #include "base/run_loop.h"
-#include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "cc/test/pixel_test_utils.h"
@@ -25,17 +23,15 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test.h"
 #include "content/shell/browser/shell.h"
-#include "media/base/video_frame.h"
-#include "media/base/video_types.h"
 #include "media/base/video_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkColor.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/geometry/rect_f.h"
 
 #if BUILDFLAG(IS_WIN)
+#include "base/test/scoped_feature_list.h"
 #include "ui/aura/test/aura_test_utils.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
@@ -130,7 +126,7 @@
         }
 
         if (testing::Test::HasFailure()) {
-          ADD_FAILURE() << "Test failure occurred at this frame; PNG dump:\n"
+          ADD_FAILURE() << "Test failure occurred at this frame; PNG dump: "
                         << cc::GetPNGDataUrl(rgb_frame);
           return;
         }
@@ -151,7 +147,7 @@
           VLOG(1) << "Observed desired frame.";
           return;
         } else {
-          VLOG(3) << "PNG dump of undesired frame:\n"
+          VLOG(3) << "PNG dump of undesired frame: "
                   << cc::GetPNGDataUrl(rgb_frame);
         }
       }
@@ -415,8 +411,7 @@
 
 class WebContentsVideoCaptureDeviceBrowserTestP
     : public WebContentsVideoCaptureDeviceBrowserTest,
-      public testing::WithParamInterface<
-          std::tuple<bool, bool, bool, media::VideoPixelFormat>> {
+      public testing::WithParamInterface<std::tuple<bool, bool, bool>> {
  public:
   bool IsSoftwareCompositingTest() const override {
     return std::get<0>(GetParam());
@@ -427,9 +422,6 @@
   bool IsCrossSiteCaptureTest() const override {
     return std::get<2>(GetParam());
   }
-  media::VideoPixelFormat GetVideoPixelFormat() const override {
-    return std::get<3>(GetParam());
-  }
 };
 
 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID)
@@ -442,24 +434,7 @@
         testing::Values(false /* variable aspect ratio */,
                         true /* fixed aspect ratio */),
         testing::Values(false /* page has only a main frame */,
-                        true /* page contains a cross-site iframe */),
-        testing::Values(media::VideoPixelFormat::PIXEL_FORMAT_I420)));
-#elif BUILDFLAG(IS_MAC)
-// On MacOS, there is a newly added support for NV12-in-GMB. It relies on GPU
-// acceleration, but has a feature detection built-in if the format is
-// specified as media::VideoPixelFormat::PIXEL_FORMAT_UNKNOWN.
-INSTANTIATE_TEST_SUITE_P(
-    All,
-    WebContentsVideoCaptureDeviceBrowserTestP,
-    testing::Combine(
-        testing::Values(false /* GPU-accelerated compositing */,
-                        true /* software compositing */),
-        testing::Values(false /* variable aspect ratio */,
-                        true /* fixed aspect ratio */),
-        testing::Values(false /* page has only a main frame */,
-                        true /* page contains a cross-site iframe */),
-        testing::Values(media::VideoPixelFormat::PIXEL_FORMAT_I420,
-                        media::VideoPixelFormat::PIXEL_FORMAT_UNKNOWN)));
+                        true /* page contains a cross-site iframe */)));
 #else
 INSTANTIATE_TEST_SUITE_P(
     All,
@@ -470,9 +445,8 @@
         testing::Values(false /* variable aspect ratio */,
                         true /* fixed aspect ratio */),
         testing::Values(false /* page has only a main frame */,
-                        true /* page contains a cross-site iframe */),
-        testing::Values(media::VideoPixelFormat::PIXEL_FORMAT_I420)));
-#endif
+                        true /* page contains a cross-site iframe */)));
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 // Tests that the device successfully captures a series of content changes,
 // whether the browser is running with software compositing or GPU-accelerated
@@ -488,22 +462,6 @@
                << (IsFixedAspectRatioTest() ? "Fixed Video Aspect Ratio"
                                             : "Variable Video Aspect Ratio"));
 
-  media::VideoPixelFormat specified_format = GetVideoPixelFormat();
-  media::VideoPixelFormat expected_format = specified_format;
-  if (specified_format == media::VideoPixelFormat::PIXEL_FORMAT_UNKNOWN) {
-    if (IsSoftwareCompositingTest()) {
-      expected_format = media::VideoPixelFormat::PIXEL_FORMAT_I420;
-    } else {
-      expected_format = media::VideoPixelFormat::PIXEL_FORMAT_NV12;
-    }
-  }
-
-  capture_stack()->SetFrameReceivedCallback(base::BindRepeating(
-      [](media::VideoPixelFormat expected_format, media::VideoFrame* frame) {
-        EXPECT_EQ(frame->format(), expected_format);
-      },
-      expected_format));
-
   NavigateToInitialDocument();
   AllocateAndStartAndWaitForFirstFrame();
   EXPECT_TRUE(shell()->web_contents()->IsBeingCaptured());
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index 35fce10..570785c4 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -49,7 +49,6 @@
 #include "content/browser/renderer_host/render_process_host_impl.h"
 #include "content/browser/renderer_host/render_view_host_delegate.h"
 #include "content/browser/renderer_host/render_view_host_impl.h"
-#include "content/browser/screenlock_monitor/screenlock_monitor.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/content_browser_client.h"
@@ -2525,8 +2524,7 @@
 
   video_capture_manager_ =
       new VideoCaptureManager(std::move(video_capture_provider),
-                              base::BindRepeating(&SendVideoCaptureLogMessage),
-                              ScreenlockMonitor::Get());
+                              base::BindRepeating(&SendVideoCaptureLogMessage));
   video_capture_manager_->RegisterListener(this);
 
   // Using base::Unretained(this) is safe because |this| owns and therefore
@@ -3633,4 +3631,4 @@
   }
 }
 
-}  // namespace content
\ No newline at end of file
+}  // namespace content
diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc
index ce668fb..37de0043 100644
--- a/content/browser/renderer_host/media/video_capture_manager.cc
+++ b/content/browser/renderer_host/media/video_capture_manager.cc
@@ -76,20 +76,20 @@
 
 VideoCaptureManager::VideoCaptureManager(
     std::unique_ptr<VideoCaptureProvider> video_capture_provider,
-    base::RepeatingCallback<void(const std::string&)> emit_log_message_cb,
-    ScreenlockMonitor* monitor)
+    base::RepeatingCallback<void(const std::string&)> emit_log_message_cb)
     : video_capture_provider_(std::move(video_capture_provider)),
-      emit_log_message_cb_(std::move(emit_log_message_cb)),
-      screenlock_monitor_(monitor) {
-  if (screenlock_monitor_) {
-    screenlock_monitor_->AddObserver(this);
+      emit_log_message_cb_(std::move(emit_log_message_cb)) {
+  ScreenlockMonitor* screenlock_monitor = ScreenlockMonitor::Get();
+  if (screenlock_monitor) {
+    screenlock_monitor->AddObserver(this);
   }
 }
 
 VideoCaptureManager::~VideoCaptureManager() {
   DCHECK(device_start_request_queue_.empty());
-  if (screenlock_monitor_) {
-    screenlock_monitor_->RemoveObserver(this);
+  ScreenlockMonitor* screenlock_monitor = ScreenlockMonitor::Get();
+  if (screenlock_monitor) {
+    screenlock_monitor->RemoveObserver(this);
   }
 }
 
diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h
index 34a0e70..98e1f8a8 100644
--- a/content/browser/renderer_host/media/video_capture_manager.h
+++ b/content/browser/renderer_host/media/video_capture_manager.h
@@ -41,7 +41,6 @@
 namespace content {
 class VideoCaptureController;
 class VideoCaptureControllerEventHandler;
-class ScreenlockMonitor;
 
 // VideoCaptureManager is used to open/close, start/stop, enumerate available
 // video capture devices, and manage VideoCaptureController's.
@@ -61,8 +60,7 @@
 
   explicit VideoCaptureManager(
       std::unique_ptr<VideoCaptureProvider> video_capture_provider,
-      base::RepeatingCallback<void(const std::string&)> emit_log_message_cb,
-      ScreenlockMonitor* monitor = nullptr);
+      base::RepeatingCallback<void(const std::string&)> emit_log_message_cb);
 
   VideoCaptureManager(const VideoCaptureManager&) = delete;
   VideoCaptureManager& operator=(const VideoCaptureManager&) = delete;
@@ -337,7 +335,6 @@
 
   const std::unique_ptr<VideoCaptureProvider> video_capture_provider_;
   base::RepeatingCallback<void(const std::string&)> emit_log_message_cb_;
-  raw_ptr<ScreenlockMonitor> screenlock_monitor_;
 
   base::ObserverList<media::VideoCaptureObserver>::Unchecked capture_observers_;
 
diff --git a/content/browser/renderer_host/media/video_capture_manager_unittest.cc b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
index eb5542c..1cb48dc7 100644
--- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
@@ -274,7 +274,7 @@
         std::unique_ptr<ScreenlockMonitorSource>(screenlock_monitor_source_));
 
     vcm_ = new VideoCaptureManager(std::move(video_capture_provider),
-                                   base::DoNothing(), ScreenlockMonitor::Get());
+                                   base::DoNothing());
     const int32_t kNumberOfFakeDevices = 2;
     video_capture_device_factory_->SetToDefaultDevicesConfig(
         kNumberOfFakeDevices);
diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
index 9974afd..3aba4fa 100644
--- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
@@ -4557,7 +4557,7 @@
   RenderFrameHostImpl* fenced_frame_root = main_test_rfh()->AppendFencedFrame();
   // Navigate fenced frame.
   std::unique_ptr<NavigationSimulator> navigation_simulator =
-      NavigationSimulator::CreateForFencedFrame(kUrl2, fenced_frame_root);
+      NavigationSimulator::CreateRendererInitiated(kUrl2, fenced_frame_root);
   navigation_simulator->Commit();
 
   // Simulate the fenced frame receiving a request from a RenderFrameProxyHost
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index ab0a0bc..c2c6ae8 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -2446,6 +2446,11 @@
     }
   }
 
+  if (remove_mask_ & REMOVE_DATA_MASK_INTEREST_GROUP_PERMISSIONS_CACHE) {
+    if (interest_group_manager)
+      interest_group_manager->ClearPermissionsCache();
+  }
+
   if (remove_mask_ & REMOVE_DATA_MASK_INDEXEDDB ||
       remove_mask_ & REMOVE_DATA_MASK_WEBSQL ||
       remove_mask_ & REMOVE_DATA_MASK_FILE_SYSTEMS ||
diff --git a/content/browser/storage_partition_impl_unittest.cc b/content/browser/storage_partition_impl_unittest.cc
index 89829169..a2db9da 100644
--- a/content/browser/storage_partition_impl_unittest.cc
+++ b/content/browser/storage_partition_impl_unittest.cc
@@ -56,6 +56,8 @@
 #include "content/browser/code_cache/generated_code_cache_context.h"
 #include "content/browser/gpu/shader_cache_factory.h"
 #include "content/browser/interest_group/interest_group_manager_impl.h"
+#include "content/browser/interest_group/interest_group_permissions_cache.h"
+#include "content/browser/interest_group/interest_group_permissions_checker.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/generated_code_cache_settings.h"
@@ -903,6 +905,16 @@
                        delete_begin, delete_end, run_loop->QuitClosure());
 }
 
+void ClearInterestGroupPermissionsCache(content::StoragePartition* partition,
+                                        const base::Time delete_begin,
+                                        const base::Time delete_end,
+                                        base::RunLoop* run_loop) {
+  partition->ClearData(
+      StoragePartition::REMOVE_DATA_MASK_INTEREST_GROUP_PERMISSIONS_CACHE,
+      StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, GURL(), delete_begin,
+      delete_end, run_loop->QuitClosure());
+}
+
 bool FilterMatchesCookie(const CookieDeletionFilterPtr& filter,
                          const net::CanonicalCookie& cookie) {
   return network::DeletionFilterToInfo(filter.Clone())
@@ -1484,6 +1496,41 @@
   EXPECT_FALSE(tester.ContainsInterestGroupOwner(kOrigin));
 }
 
+TEST_F(StoragePartitionImplTest, RemoveInterestGroupPermissionsCacheForever) {
+  const url::Origin kFrameOrigin =
+      url::Origin::Create(GURL("https://host1.test:1/"));
+  const url::Origin kInterestGroupOrigin =
+      url::Origin::Create(GURL("https://host2.test:2/"));
+  const net::NetworkIsolationKey kNetworkIsolationKey(kFrameOrigin,
+                                                      kFrameOrigin);
+
+  StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
+      browser_context()->GetDefaultStoragePartition());
+  ASSERT_TRUE(partition->GetInterestGroupManager());
+
+  InterestGroupPermissionsCache& permissions_cache =
+      static_cast<InterestGroupManagerImpl*>(
+          partition->GetInterestGroupManager())
+          ->permissions_checker_for_testing()
+          .cache_for_testing();
+
+  permissions_cache.CachePermissions(InterestGroupPermissionsCache::Permissions{
+                                         /*can_join=*/true, /*can_leave=*/true},
+                                     kFrameOrigin, kInterestGroupOrigin,
+                                     kNetworkIsolationKey);
+  EXPECT_TRUE(permissions_cache.GetPermissions(
+      kFrameOrigin, kInterestGroupOrigin, kNetworkIsolationKey));
+
+  base::RunLoop run_loop;
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(&ClearInterestGroupPermissionsCache, partition,
+                                base::Time(), base::Time::Max(), &run_loop));
+  run_loop.Run();
+
+  EXPECT_FALSE(permissions_cache.GetPermissions(
+      kFrameOrigin, kInterestGroupOrigin, kNetworkIsolationKey));
+}
+
 TEST_F(StoragePartitionImplTest, RemoveUnprotectedLocalStorageForever) {
   const url::Origin kOrigin1 = url::Origin::Create(GURL("http://host1:1/"));
   const url::Origin kOrigin2 = url::Origin::Create(GURL("http://host2:1/"));
diff --git a/content/public/browser/storage_partition.h b/content/public/browser/storage_partition.h
index 4e63c64..f97a2a2 100644
--- a/content/public/browser/storage_partition.h
+++ b/content/public/browser/storage_partition.h
@@ -187,6 +187,12 @@
     // Shared storage data as part of the Shared Storage API.
     // Public explainer: https://github.com/pythagoraskitty/shared-storage
     REMOVE_DATA_MASK_SHARED_STORAGE = 1 << 14,
+    // Fairly obscure cache of .well-known responses for cross-origin
+    // joining/leaving of interest groups used by FLEDGE.
+    // Public explainer here:
+    // https://github.com/WICG/turtledove/blob/main/FLEDGE.md
+    REMOVE_DATA_MASK_INTEREST_GROUP_PERMISSIONS_CACHE = 1 << 15,
+
     REMOVE_DATA_MASK_ALL = 0xFFFFFFFF,
 
     // Corresponds to storage::kStorageTypeTemporary.
diff --git a/content/public/test/navigation_simulator.h b/content/public/test/navigation_simulator.h
index b51b409c..c77d47e 100644
--- a/content/public/test/navigation_simulator.h
+++ b/content/public/test/navigation_simulator.h
@@ -141,13 +141,6 @@
   static std::unique_ptr<NavigationSimulator> CreateFromPending(
       NavigationController& controller);
 
-  // Creates a NavigationSimulator that will be used to simulate a
-  // renderer-initiated navigation of a fenced frame root (|render_frame_host|)
-  // to |original_url|.
-  static std::unique_ptr<NavigationSimulator> CreateForFencedFrame(
-      const GURL& original_url,
-      RenderFrameHost* fenced_frame_root);
-
   virtual ~NavigationSimulator() = default;
 
   // --------------------------------------------------------------------------
diff --git a/content/public/test/web_contents_tester.h b/content/public/test/web_contents_tester.h
index cb4b81b..e5b42c2 100644
--- a/content/public/test/web_contents_tester.h
+++ b/content/public/test/web_contents_tester.h
@@ -14,6 +14,7 @@
 #include "content/public/browser/web_contents.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
+#include "third_party/blink/public/mojom/favicon/favicon_url.mojom-forward.h"
 #include "ui/base/page_transition_types.h"
 
 class GURL;
@@ -119,6 +120,14 @@
       const std::vector<SkBitmap>& bitmaps,
       const std::vector<gfx::Size>& original_bitmap_sizes) = 0;
 
+  // Simulates initial favicon urls set.
+  virtual void TestSetFaviconURL(
+      const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) = 0;
+
+  // Simulates favicon urls update.
+  virtual void TestUpdateFaviconURL(
+      const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) = 0;
+
   // Sets the return value of GetLastCommittedUrl() of TestWebContents.
   virtual void SetLastCommittedURL(const GURL& url) = 0;
 
diff --git a/content/test/data/attribution_reporting/page_with_impression_creator.html.mock-http-headers b/content/test/data/attribution_reporting/page_with_impression_creator.html.mock-http-headers
new file mode 100644
index 0000000..27f34d2
--- /dev/null
+++ b/content/test/data/attribution_reporting/page_with_impression_creator.html.mock-http-headers
@@ -0,0 +1,2 @@
+HTTP/1.1 200 OK
+Supports-Loading-Mode: fenced-frame
diff --git a/content/test/navigation_simulator_impl.cc b/content/test/navigation_simulator_impl.cc
index ad08deb..61a37fc 100644
--- a/content/test/navigation_simulator_impl.cc
+++ b/content/test/navigation_simulator_impl.cc
@@ -279,6 +279,16 @@
           static_cast<TestRenderFrameHost*>(render_frame_host)));
 
   sim->SetInitiatorFrame(render_frame_host);
+
+  if (render_frame_host->IsNestedWithinFencedFrame()) {
+    sim->set_supports_loading_mode_header("fenced-frame");
+    sim->SetTransition(ui::PAGE_TRANSITION_AUTO_SUBFRAME);
+    // When InitialNavigationEntry is enabled, set should_replace_current_entry
+    // to true, to pass the DidCommitParams check that expects the initial
+    // NavigationEntry to always be replaced.
+    sim->set_should_replace_current_entry(
+        blink::features::IsInitialNavigationEntryEnabled());
+  }
   return sim;
 }
 
@@ -324,24 +334,6 @@
   return simulator;
 }
 
-// static
-std::unique_ptr<NavigationSimulator> NavigationSimulator::CreateForFencedFrame(
-    const GURL& original_url,
-    RenderFrameHost* fenced_frame_root) {
-  DCHECK(fenced_frame_root->IsFencedFrameRoot());
-  std::unique_ptr<NavigationSimulatorImpl> simulator =
-      NavigationSimulatorImpl::CreateRendererInitiated(original_url,
-                                                       fenced_frame_root);
-  simulator->set_supports_loading_mode_header("fenced-frame");
-  simulator->SetTransition(ui::PAGE_TRANSITION_AUTO_SUBFRAME);
-  // When InitialNavigationEntry is enabled, set should_replace_current_entry to
-  // true, to pass the DidCommitParams check that expects the initial
-  // NavigationEntry to always be replaced.
-  simulator->set_should_replace_current_entry(
-      blink::features::IsInitialNavigationEntryEnabled());
-  return simulator;
-}
-
 NavigationSimulatorImpl::NavigationSimulatorImpl(
     const GURL& original_url,
     bool browser_initiated,
diff --git a/content/test/test_web_contents.cc b/content/test/test_web_contents.cc
index e631041..4b365154 100644
--- a/content/test/test_web_contents.cc
+++ b/content/test/test_web_contents.cc
@@ -33,6 +33,7 @@
 #include "content/public/test/prerender_test_util.h"
 #include "content/test/navigation_simulator_impl.h"
 #include "content/test/test_render_view_host.h"
+#include "mojo/public/cpp/bindings/clone_traits.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/page_state/page_state.h"
 #include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom.h"
@@ -180,6 +181,16 @@
   return true;
 }
 
+void TestWebContents::TestSetFaviconURL(
+    const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) {
+  GetPrimaryPage().set_favicon_urls(mojo::Clone(favicon_urls));
+}
+
+void TestWebContents::TestUpdateFaviconURL(
+    const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) {
+  GetMainFrame()->UpdateFaviconURL(mojo::Clone(favicon_urls));
+}
+
 void TestWebContents::SetLastCommittedURL(const GURL& url) {
   last_committed_url_ = url;
 }
diff --git a/content/test/test_web_contents.h b/content/test/test_web_contents.h
index c378f968..76910a69 100644
--- a/content/test/test_web_contents.h
+++ b/content/test/test_web_contents.h
@@ -90,6 +90,10 @@
       int http_status_code,
       const std::vector<SkBitmap>& bitmaps,
       const std::vector<gfx::Size>& original_bitmap_sizes) override;
+  void TestSetFaviconURL(
+      const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) override;
+  void TestUpdateFaviconURL(
+      const std::vector<blink::mojom::FaviconURLPtr>& favicon_urls) override;
   void SetLastCommittedURL(const GURL& url) override;
   void SetTitle(const std::u16string& new_title) override;
   void SetMainFrameMimeType(const std::string& mime_type) override;
diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json
index 1f88d73..388a0fa 100644
--- a/extensions/common/api/_permission_features.json
+++ b/extensions/common/api/_permission_features.json
@@ -628,9 +628,7 @@
     },
     {
       "channel": "dev",
-      "extension_types": ["extension"],
-      "platforms": ["chromeos", "lacros"],
-      "session_types": ["kiosk"]
+      "extension_types": ["extension"]
     }
   ],
   "system.storage": [
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 474bd72..bef759f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">За апошнія 7 дзён</translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
 <translation id="5433691172869980887">Імя карыстальніка скапіравана</translation>
+<translation id="5439599923922718668">Часта наведваецца</translation>
 <translation id="54401264925851789">Інфармацыя пра бяспеку старонкі</translation>
 <translation id="5443952882982198570">Крэдытныя карты</translation>
 <translation id="5457226814769348910">Адкрыць пазасеткавую версію</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 6c14ea3..6d0dceb4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -250,6 +250,7 @@
 Ako je primjenjivo, pogledajte uputstva pretraživača da saznate kako izbrisati historiju pretraživanja.</translation>
 <translation id="3080525922482950719">Možete sačuvati stranice da ih čitate kasnije ili van mreže</translation>
 <translation id="3081338492074632642">Provjerite podudara li se lozinka koju želite sačuvati s lozinkom za web lokaciju <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Automatski unos zaporki</translation>
 <translation id="3112556859945124369">Označi…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Pogledajte šta možete sinhronizirati<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Blokiraj sve</translation>
@@ -661,6 +662,7 @@
 
 Pokušajte koristiti jedinstvenu lozinku za svaku web lokaciju.</translation>
 <translation id="650279896687777322">Saznajte više...</translation>
+<translation id="6510072653668207258">Podsjeti me kasnije</translation>
 <translation id="651505212789431520">Otkazati sinhronizaciju? Sinhronizaciju možete uključiti bilo kada u Postavkama.</translation>
 <translation id="6524918542306337007">Anonimni način rada je nedostupan</translation>
 <translation id="6530992499366869131">Upozori ako su lozinke izložene prilikom narušavanja podataka</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index e1018d8..9e6841d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">7 darrers dies</translation>
 <translation id="543338862236136125">Edita la contrasenya</translation>
 <translation id="5433691172869980887">S'ha copiat el nom d'usuari</translation>
+<translation id="5439599923922718668">Visitats amb freqüència</translation>
 <translation id="54401264925851789">Informació de seguretat de la pàgina</translation>
 <translation id="5443952882982198570">Targetes de crèdit</translation>
 <translation id="5457226814769348910">Obre la versió sense connexió</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 2704659..a3890dd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Letzte 7 Tage</translation>
 <translation id="543338862236136125">Passwort ändern</translation>
 <translation id="5433691172869980887">Nutzername kopiert</translation>
+<translation id="5439599923922718668">Häufig besucht</translation>
 <translation id="54401264925851789">Sicherheitsinformationen zur Seite</translation>
 <translation id="5443952882982198570">Kreditkarten</translation>
 <translation id="5457226814769348910">Offlineversion öffnen</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 6a72911..d6ec8e1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -250,6 +250,7 @@
 See your search engine’s instructions for deleting your search history, if applicable.</translation>
 <translation id="3080525922482950719">You can save pages to read later or offline</translation>
 <translation id="3081338492074632642">Make sure that the password that you are saving matches your password for <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Auto-fill passwords</translation>
 <translation id="3112556859945124369">Mark…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />See what you can sync<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Block all</translation>
@@ -661,6 +662,7 @@
 
 Try to use a unique password for every site.</translation>
 <translation id="650279896687777322">Learn more…</translation>
+<translation id="6510072653668207258">Remind me later</translation>
 <translation id="651505212789431520">Cancel sync? You can turn on sync at any time in Settings.</translation>
 <translation id="6524918542306337007">Incognito mode is unavailable</translation>
 <translation id="6530992499366869131">Warn you if passwords are exposed in a data breach</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 747d79b..603dd73 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Viimased 7 päeva</translation>
 <translation id="543338862236136125">Muuda parooli</translation>
 <translation id="5433691172869980887">Kasutajanimi on kopeeritud</translation>
+<translation id="5439599923922718668">Sageli külastatud</translation>
 <translation id="54401264925851789">Lehe turvateave</translation>
 <translation id="5443952882982198570">Krediitkaardid</translation>
 <translation id="5457226814769348910">Ava võrguühenduseta versioon</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index a7013a8..7144be2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Huling 7 Araw</translation>
 <translation id="543338862236136125">I-edit ang password</translation>
 <translation id="5433691172869980887">Nakopya ang username</translation>
+<translation id="5439599923922718668">Madalas na Binibisita</translation>
 <translation id="54401264925851789">Impormasyon sa Seguridad ng Pahina</translation>
 <translation id="5443952882982198570">Mga Credit Card</translation>
 <translation id="5457226814769348910">Buksan sa Offline Version</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 89fa974..93917f81 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Sept derniers jours</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5433691172869980887">Nom d'utilisateur copié</translation>
+<translation id="5439599923922718668">Fréquemment consultés</translation>
 <translation id="54401264925851789">Information sur la sécurité de la page</translation>
 <translation id="5443952882982198570">Cartes de crédit</translation>
 <translation id="5457226814769348910">Ouvrir la version hors ligne</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 5f0f4c2d9..cfb2614 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Sept derniers jours</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5433691172869980887">Nom d'utilisateur copié</translation>
+<translation id="5439599923922718668">Consultés régulièrement</translation>
 <translation id="54401264925851789">Informations sur la sécurité de cette page</translation>
 <translation id="5443952882982198570">Cartes de crédit</translation>
 <translation id="5457226814769348910">Ouvrir la version hors connexion</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 6994f86..e3da1a13 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Últimos 7 días</translation>
 <translation id="543338862236136125">Editar contrasinal</translation>
 <translation id="5433691172869980887">Copiouse o nome de usuario</translation>
+<translation id="5439599923922718668">Visitas frecuentes</translation>
 <translation id="54401264925851789">Información de seguranza da páxina</translation>
 <translation id="5443952882982198570">Tarxetas de crédito</translation>
 <translation id="5457226814769348910">Abrir versión sen conexión</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 3428867..e1af98dc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -250,6 +250,7 @@
 Potražite upute za svoju tražilicu da biste saznali kako izbrisati svoju povijest pretraživanja, ako je primjenjivo.</translation>
 <translation id="3080525922482950719">Stranice možete spremati da biste ih čitali kasnije ili izvanmrežno</translation>
 <translation id="3081338492074632642">Provjerite podudara li se zaporka koju spremate sa zaporkom za <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Automatski unos zaporki</translation>
 <translation id="3112556859945124369">Označi...</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Pogledajte što možete sinkronizirati<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Blokiraj sve</translation>
@@ -661,6 +662,7 @@
 
 Pokušajte koristiti jedinstvenu zaporku za svaku web-lokaciju.</translation>
 <translation id="650279896687777322">Saznajte više...</translation>
+<translation id="6510072653668207258">Podsjeti me kasnije</translation>
 <translation id="651505212789431520">Otkazati sinkronizaciju? Sinkronizaciju možete uvijek uključiti u Postavkama.</translation>
 <translation id="6524918542306337007">Anonimni način nije dostupan</translation>
 <translation id="6530992499366869131">Upozori ako su zaporke ugrožene zbog povrede podataka</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 7f78f7e3..1d14692 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Undanfarnir 7 dagar</translation>
 <translation id="543338862236136125">Breyta aðgangsorði</translation>
 <translation id="5433691172869980887">Notandanafn afritað</translation>
+<translation id="5439599923922718668">Oft skoðað</translation>
 <translation id="54401264925851789">Öryggisupplýsingar síðu</translation>
 <translation id="5443952882982198570">Kreditkort</translation>
 <translation id="5457226814769348910">Opna útgáfu án nettengingar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 2129e19..f8e0e44 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">7 הימים האחרונים</translation>
 <translation id="543338862236136125">עריכת סיסמה</translation>
 <translation id="5433691172869980887">שם המשתמש הועתק</translation>
+<translation id="5439599923922718668">אתרים עם ביקורים תכופים</translation>
 <translation id="54401264925851789">פרטי אבטחת דף</translation>
 <translation id="5443952882982198570">כרטיסי אשראי</translation>
 <translation id="5457226814769348910">פתיחה של גרסת אופליין</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 2650719..6449ea7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -250,6 +250,7 @@
 検索履歴を削除する場合は、お使いの検索エンジンの手順をご確認ください(該当する場合)。</translation>
 <translation id="3080525922482950719">ページを保存して、後で読んだり、オフラインで読んだりできます</translation>
 <translation id="3081338492074632642">保存するパスワードが <ph name="WEBSITE" /> のパスワードと一致していることを確認してください</translation>
+<translation id="3103603146121354983">パスワードの自動入力</translation>
 <translation id="3112556859945124369">マーク...</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />同期できるアイテムを確認する<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">すべてブロック</translation>
@@ -661,6 +662,7 @@
 
 各サイトで個別のパスワードを使用することをご検討ください。</translation>
 <translation id="650279896687777322">詳細を表示...</translation>
+<translation id="6510072653668207258">後で通知する</translation>
 <translation id="651505212789431520">同期をキャンセルしますか?同期は設定でいつでもオンにできます。</translation>
 <translation id="6524918542306337007">シークレット モードは使用できません</translation>
 <translation id="6530992499366869131">データ侵害によりパスワードが漏洩した場合に警告する</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 1b4df2e..fe5d2f7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Соңғы 7 күн</translation>
 <translation id="543338862236136125">Құпия сөзді өзгерту</translation>
 <translation id="5433691172869980887">Пайдаланушының аты көшірілді</translation>
+<translation id="5439599923922718668">Жиі ашылғандар</translation>
 <translation id="54401264925851789">Беттің қауіпсіздік ақпараты</translation>
 <translation id="5443952882982198570">Несиелік карталар</translation>
 <translation id="5457226814769348910">Офлайн нұсқасын ашу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 7957746..be3c0c2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">ಕಳೆದ 7 ದಿನಗಳಲ್ಲಿ</translation>
 <translation id="543338862236136125">ಪಾಸ್‌ವರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="5433691172869980887">ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
+<translation id="5439599923922718668">ಆಗಾಗ್ಗೆ ಭೇಟಿ ನೀಡಿರುವುದು‌</translation>
 <translation id="54401264925851789">ಪುಟ ಭದ್ರತೆಯ ಮಾಹಿತಿ</translation>
 <translation id="5443952882982198570">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="5457226814769348910">ಆಫ್‌ಲೈನ್ ಆವೃತ್ತಿಯನ್ನು ತೆರೆಯಿರಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index 6ef84fe..ddd7994 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Акыркы 7 күндө</translation>
 <translation id="543338862236136125">Сырсөздү түзөтүү</translation>
 <translation id="5433691172869980887">Колдонуучунун аты көчүрүлдү</translation>
+<translation id="5439599923922718668">Көп каралгандар</translation>
 <translation id="54401264925851789">Баракчанын коопсуздук маалыматы</translation>
 <translation id="5443952882982198570">Насыя карталары</translation>
 <translation id="5457226814769348910">Оффлайн версиясын ачуу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index be36f32..34abd1c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Pastarosios 7 dienos</translation>
 <translation id="543338862236136125">Redaguoti slaptažodį</translation>
 <translation id="5433691172869980887">Naudotojo vardas nukopijuotas</translation>
+<translation id="5439599923922718668">Dažnai lankytasi</translation>
 <translation id="54401264925851789">Puslapio saugos informacija</translation>
 <translation id="5443952882982198570">Kredito kortelės</translation>
 <translation id="5457226814769348910">Atidaryti versiją neprisijungus</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 9864883b..98b072b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Pēdējās 7 dienas</translation>
 <translation id="543338862236136125">Rediģēt paroli</translation>
 <translation id="5433691172869980887">Lietotājvārds ir nokopēts.</translation>
+<translation id="5439599923922718668">Bieži apmeklētas</translation>
 <translation id="54401264925851789">Lapas drošības informācija</translation>
 <translation id="5443952882982198570">Kredītkartes</translation>
 <translation id="5457226814769348910">Atvērt bezsaistes versiju</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index b53f412..f1a1572 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -250,6 +250,7 @@
 Погледнете го упатството на пребарувачот за бришење на историјата на пребарување доколку е применливо.</translation>
 <translation id="3080525922482950719">Може да зачувувате страници за да ги читате подоцна или офлајн</translation>
 <translation id="3081338492074632642">Проверете дали лозинката што ја зачувувате се совпаѓа со лозинката за <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Автоматско пополнување лозинки</translation>
 <translation id="3112556859945124369">Означи…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Видете што може да синхронизирате<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Се блокираат сите</translation>
@@ -513,6 +514,7 @@
 <translation id="5416022985862681400">Минатите 7 дена</translation>
 <translation id="543338862236136125">Измени ја лозинката</translation>
 <translation id="5433691172869980887">Корисничкото име е копирано</translation>
+<translation id="5439599923922718668">Често посетувани</translation>
 <translation id="54401264925851789">Безбедносни информации за страницата</translation>
 <translation id="5443952882982198570">Кредитни картички</translation>
 <translation id="5457226814769348910">Отвори офлајн верзија</translation>
@@ -660,6 +662,7 @@
 
 Добро би било да користите единствена лозинка за секој сајт.</translation>
 <translation id="650279896687777322">Дознајте повеќе…</translation>
+<translation id="6510072653668207258">Потсети ме подоцна</translation>
 <translation id="651505212789431520">Да се откаже синхронизацијата? Може да ја вклучите синхронизацијата во секое време во „Поставки“.</translation>
 <translation id="6524918542306337007">Режимот „Инкогнито“ е недостапен</translation>
 <translation id="6530992499366869131">Добијте предупредување ако лозинките се откриени при упад во податоците</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index afed13d..c96e173d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -250,6 +250,7 @@
 ബാധകമെങ്കിൽ, നിങ്ങളുടെ തിരയൽ ചരിത്രം ഇല്ലാതാക്കാനുള്ള തിരയൽ യന്ത്രത്തിന്റെ നിർദ്ദേശങ്ങൾ കാണുക.</translation>
 <translation id="3080525922482950719">പിന്നീട് അല്ലെങ്കിൽ ഓഫ്‌ലൈനിൽ വായിക്കുന്നതിന് നിങ്ങൾക്ക് പേജുകൾ സംരക്ഷിക്കാനാകും</translation>
 <translation id="3081338492074632642">നിങ്ങൾ സംരക്ഷിക്കുന്ന പാസ്‌വേഡ്, <ph name="WEBSITE" />-നുള്ള പാസ്‌വേഡുമായി പൊരുത്തപ്പെടുന്നു എന്ന് ഉറപ്പാക്കുക</translation>
+<translation id="3103603146121354983">പാസ്‌വേഡുകൾ സ്വയമേവ പൂരിപ്പിക്കുക</translation>
 <translation id="3112556859945124369">അടയാളപ്പെടുത്തുക…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />നിങ്ങൾക്ക് എന്തൊക്കെ സമന്വയിപ്പിക്കാമെന്ന് കാണുക<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">എല്ലാം ബ്ലോക്ക് ചെയ്യുക</translation>
@@ -661,6 +662,7 @@
 
 ഓരോ സൈറ്റിനും വ്യത്യസ്തമായ പാസ്‌വേഡ് ഉപയോഗിക്കാൻ ശ്രമിക്കുക.</translation>
 <translation id="650279896687777322">കൂടുതലറിയുക...</translation>
+<translation id="6510072653668207258">എന്നെ പിന്നീട് ഓർമ്മിപ്പിക്കുക</translation>
 <translation id="651505212789431520">സമന്വയിപ്പിക്കൽ റദ്ദാക്കണോ? നിങ്ങൾക്ക് ഏത് സമയത്തും ക്രമീകരണത്തിൽ സമന്വയിപ്പിക്കൽ ഓണാക്കാനാവും.</translation>
 <translation id="6524918542306337007">അദൃശ്യ മോഡ് ലഭ്യമല്ല</translation>
 <translation id="6530992499366869131">പാസ്‌വേഡുകൾ, ഡാറ്റാ ലംഘനത്തിന്റെ ഭാഗമായി വെളിപ്പെട്ടാൽ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 8e6041d..8e1602a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -787,7 +787,7 @@
 <translation id="7561196759112975576">नेहमी</translation>
 <translation id="7583004045319035904">तुमचे गुप्त टॅब अनलॉक करण्यासाठी <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> वापरा.</translation>
 <translation id="7600965453749440009">कधीही <ph name="LANGUAGE" /> चा भाषांतर करु नका</translation>
-<translation id="7603852183842204213">पॉप-अप अवरोधित (<ph name="NUMBER_OF_BLOCKED_POPUPS" />)</translation>
+<translation id="7603852183842204213">(<ph name="NUMBER_OF_BLOCKED_POPUPS" />) पॉप-अप ब्लॉक केले</translation>
 <translation id="7607521702806708809">पासवर्ड हटवा</translation>
 <translation id="7638584964844754484">अयोग्य सांकेतिक पासफ्रेझ</translation>
 <translation id="7646263789464975852">मेनू → सेटिंग्ज → सुरक्षितता तपासणी</translation>
@@ -831,7 +831,7 @@
 
 वेगवेगळ्या साइटवरील तुमची ब्राउझिंग ॲक्टिव्हिटी पाहण्यासाठी साइट कुकी वापरू शकतात, उदाहरणार्थ, जाहिराती पर्सनलाइझ करण्यासाठी.</translation>
 <translation id="7966904497916178308">मानक संरक्षण सुरू आहे</translation>
-<translation id="7971521879845308059">पॉप-अप अवरोधित करा</translation>
+<translation id="7971521879845308059">पॉप-अप ब्लॉक करा</translation>
 <translation id="797413074872316787">सर्व डिव्हाइसवर सिंक आणि पर्सनलाइझ करण्यासाठी, सिंक सुरू करा.</translation>
 <translation id="7978018860671536736">३. AutoFill पासवर्ड वर टॅप करा</translation>
 <translation id="7982789257301363584">नेटवर्क</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index ddcad255..4ca2533 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -250,6 +250,7 @@
 သက်ဆိုင်မှုရှိပါက သင်၏ရှာဖွေမှတ်တမ်းကို ဖျက်ရန်အတွက် သင့်ရှာဖွေရေး အင်ဂျင်၏ ညွှန်ကြားချက်များကို ကြည့်ပါ။</translation>
 <translation id="3080525922482950719">စာမျက်နှာများကို နောက်မှဖတ်ရန် သို့မဟုတ် အော့ဖ်လိုင်းတွင်ဖတ်ရန် သိမ်းနိုင်သည်</translation>
 <translation id="3081338492074632642">သင်သိမ်းနေသည့် စကားဝှက်သည် <ph name="WEBSITE" /> အတွက် သင့်စကားဝှက်နှင့် တူညီမှု ရှိ၊ မရှိ စစ်ဆေးပါ</translation>
+<translation id="3103603146121354983">အော်တိုဖြည့် စကားဝှက်များ</translation>
 <translation id="3112556859945124369">အမှတ်အသားလုပ်ရန်…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />စင့်ခ်လုပ်နိုင်သည်များကို ကြည့်ရန်<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">အားလုံးကို ပိတ်ရန်</translation>
@@ -660,6 +661,7 @@
 
 ဝဘ်ဆိုက်တိုင်းအတွက် သီးသန့်စကားဝှက် အသုံးပြုပါ။</translation>
 <translation id="650279896687777322">ပိုမိုလေ့လာရန်...</translation>
+<translation id="6510072653668207258">နောက်မှ ကျွန်ုပ်ကို သတိပေးပါ</translation>
 <translation id="651505212789431520">စင့်ခ်လုပ်ခြင်းကို ပယ်ဖျက်လိုပါသလား။ 'ဆက်တင်များ' ထဲတွင် စင့်ခ်လုပ်ခြင်းကို အချိန်မရွေး ဖွင့်နိုင်သည်။</translation>
 <translation id="6524918542306337007">'ရုပ်ဖျက်မုဒ်' ကို မရနိုင်ပါ</translation>
 <translation id="6530992499366869131">‘ဒေတာကျိုးပေါက်မှု’ တွင် ‘စကားဝှက်များ ဖော်ထုတ်ခံရ’ သည့်အခါ သင့်ကို သတိပေးခြင်း</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 09624b3..a637a809 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -250,6 +250,7 @@
 तपाईंको सर्च इन्जिनमा खोजको इतिहास मेटाउन मिल्छ भने खोज इतिहास मेटाउन सर्च इन्जिनले उपलब्ध गराएका निर्देशनहरू हेर्नुहोस्।</translation>
 <translation id="3080525922482950719">तपाईं पृष्ठहरू सुरक्षित गरी ती पृष्ठ पछि वा इन्टरनेट नभएका बेलामा पढ्न सक्नुहुन्छ</translation>
 <translation id="3081338492074632642">तपाईंले सुरक्षित गर्न लाग्नुभएको पासवर्ड तपाईंको <ph name="WEBSITE" /> को पासवर्डसँग मेल खान्छ भन्ने कुरा सुनिश्चित गर्नुहोस्</translation>
+<translation id="3103603146121354983">पासवर्डहरू स्वतः भर्नुहोस्</translation>
 <translation id="3112556859945124369">चिन्ह लगाउनुहोस्…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />तपाईं के कस्ता कुराहरू सिंक गर्न पाउनुहुन्छ भन्ने कुरा हेर्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">सबै ब्लक गर्नुहोस्</translation>
@@ -661,6 +662,7 @@
 
 हरेक साइटमा एउटा अद्वितीय पासवर्ड प्रयोग गर्ने प्रयास गर्नुहोस्।</translation>
 <translation id="650279896687777322">थप जान्नुहोस्...</translation>
+<translation id="6510072653668207258">मलाई पछि स्मरण गराइयोस्</translation>
 <translation id="651505212789431520">सिंक गर्ने कार्य रद्द गर्ने हो? तपाईं सेटिङमा गई जुनसुकै बेला सिंक गर्ने सुविधा सक्रिय गर्न सक्नुहुन्छ।</translation>
 <translation id="6524918542306337007">इन्कोग्निटो मोड उपलब्ध छैन</translation>
 <translation id="6530992499366869131">डेटा चोरीको घटनामा पासवर्डको खुलासा हुँदा मलाई चेतावनी दिइयोस्</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 442b84d..dc1e6471 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -511,6 +511,7 @@
 <translation id="5416022985862681400">ਪਿਛਲੇ 7 ਦਿਨ</translation>
 <translation id="543338862236136125">ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="5433691172869980887">ਵਰਤੋਂਕਾਰ ਨਾਮ ਕਾਪੀ ਕੀਤਾ ਗਿਆ</translation>
+<translation id="5439599923922718668">ਅਕਸਰ ਦੇਖੀਆਂ ਜਾਣ ਵਾਲੀਆਂ</translation>
 <translation id="54401264925851789">ਸਫ਼ਾ ਸੁਰੱਖਿਆ ਜਾਣਕਾਰੀ</translation>
 <translation id="5443952882982198570">ਕ੍ਰੈਡਿਟ ਕਾਰਡ</translation>
 <translation id="5457226814769348910">ਆਫ਼ਲਾਈਨ ਵਰਜਨ ਖੋਲ੍ਹੋ</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 16fa0a2..5b01192 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Últimos sete dias</translation>
 <translation id="543338862236136125">Editar senha</translation>
 <translation id="5433691172869980887">Nome de usuário copiado</translation>
+<translation id="5439599923922718668">Visitados com frequência</translation>
 <translation id="54401264925851789">Informações de segurança</translation>
 <translation id="5443952882982198570">Cartões de crédito</translation>
 <translation id="5457226814769348910">Abrir versão off-line</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index c8738897..d7ea059b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">අන්තිම දින 7</translation>
 <translation id="543338862236136125">මුරපදය සංස්කරණ කරන්න</translation>
 <translation id="5433691172869980887">පරිශීලක නම පිටපත් කරන ලදී</translation>
+<translation id="5439599923922718668">නිතර පිවිසි</translation>
 <translation id="54401264925851789">පිටු ආරක්ෂිත තතු</translation>
 <translation id="5443952882982198570">ණය කාඩ්පත්</translation>
 <translation id="5457226814769348910">නොබැඳි අනුවාදය විවෘත කරන්න</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index 25702a0..aac679a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">7 ditët e fundit</translation>
 <translation id="543338862236136125">Redakto fjalëkalimin</translation>
 <translation id="5433691172869980887">Emri i përdoruesit u kopjua</translation>
+<translation id="5439599923922718668">Të vizituara shpesh</translation>
 <translation id="54401264925851789">Informacioni i sigurisë së faqes</translation>
 <translation id="5443952882982198570">Kartat e kreditit</translation>
 <translation id="5457226814769348910">Hap versionin jashtë linje</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 3c8d353..52c2575c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -250,6 +250,7 @@
 Pogledajte uputstva pretraživača za brisanje istorije pretrage ako je to primenjivo.</translation>
 <translation id="3080525922482950719">Možete da sačuvate stranice da biste ih čitali kasnije ili oflajn</translation>
 <translation id="3081338492074632642">Proverite da li se lozinka koju čuvate podudara sa lozinkom za <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Automatski popunite lozinke</translation>
 <translation id="3112556859945124369">Označi…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Pogledajte šta možete da sinhronizujete<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Sve je blokirano</translation>
@@ -661,6 +662,7 @@
 
 Potrudite se da koristite jedinstvenu lozinku za svaki sajt.</translation>
 <translation id="650279896687777322">Saznajte više…</translation>
+<translation id="6510072653668207258">Podseti me kasnije</translation>
 <translation id="651505212789431520">Želite li da otkažete sinhronizaciju? Možete da uključite sinhronizaciju u Podešavanjima u bilo kom trenutku.</translation>
 <translation id="6524918542306337007">Režim bez arhiviranja nije dostupan</translation>
 <translation id="6530992499366869131">Upozori me ako su lozinke otkrivene pri upadu u podatke</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index fe973a90..e48bf6397 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -250,6 +250,7 @@
 Погледајте упутства претраживача за брисање историје претраге ако је то примењиво.</translation>
 <translation id="3080525922482950719">Можете да сачувате странице да бисте их читали касније или офлајн</translation>
 <translation id="3081338492074632642">Проверите да ли се лозинка коју чувате подудара са лозинком за <ph name="WEBSITE" /></translation>
+<translation id="3103603146121354983">Аутоматски попуните лозинке</translation>
 <translation id="3112556859945124369">Означи…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Погледајте шта можете да синхронизујете<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">Све је блокирано</translation>
@@ -661,6 +662,7 @@
 
 Потрудите се да користите јединствену лозинку за сваки сајт.</translation>
 <translation id="650279896687777322">Сазнајте више…</translation>
+<translation id="6510072653668207258">Подсети ме касније</translation>
 <translation id="651505212789431520">Желите ли да откажете синхронизацију? Можете да укључите синхронизацију у Подешавањима у било ком тренутку.</translation>
 <translation id="6524918542306337007">Режим без архивирања није доступан</translation>
 <translation id="6530992499366869131">Упозори ме ако су лозинке откривене при упаду у податке</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 38f41c0d..98b24ce 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Senaste 7 dagarna</translation>
 <translation id="543338862236136125">Redigera lösenord</translation>
 <translation id="5433691172869980887">Användarnamnet har kopierats</translation>
+<translation id="5439599923922718668">Mest besökta</translation>
 <translation id="54401264925851789">Sidans säkerhetsinfo</translation>
 <translation id="5443952882982198570">Kreditkort</translation>
 <translation id="5457226814769348910">Öppna offlineversion</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 2fdf2dfe..91c947d0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Siku 7 Zilizopita</translation>
 <translation id="543338862236136125">Badilisha nenosiri</translation>
 <translation id="5433691172869980887">Jina la mtumiaji limenakiliwa</translation>
+<translation id="5439599923922718668">Zinazotembelewa mara kwa mara</translation>
 <translation id="54401264925851789">Maelezo ya Usalama wa Ukurasa</translation>
 <translation id="5443952882982198570">Kadi za Mikopo</translation>
 <translation id="5457226814769348910">Fungua Nakala ya Nje ya Mtandao</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 8fa0397..b965dd8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">கடந்த 7 நாட்கள்</translation>
 <translation id="543338862236136125">கடவுச்சொல்லை மாற்று</translation>
 <translation id="5433691172869980887">பயனர்பெயர் நகலெடுக்கப்பட்டது</translation>
+<translation id="5439599923922718668">அடிக்கடி பார்வையிட்டவை</translation>
 <translation id="54401264925851789">பக்க பாதுகாப்புத் தகவல்</translation>
 <translation id="5443952882982198570">கிரெடிட் கார்டுகள்</translation>
 <translation id="5457226814769348910">ஆஃப்லைன் பதிப்பைத் திற</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 6010cf8..26cb100 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -513,6 +513,7 @@
 <translation id="5416022985862681400">Son 7 Gün</translation>
 <translation id="543338862236136125">Şifreyi düzenle</translation>
 <translation id="5433691172869980887">Kullanıcı adı kopyalandı</translation>
+<translation id="5439599923922718668">Sık Ziyaret Edilenler</translation>
 <translation id="54401264925851789">Sayfa Güvenlik Bilgileri</translation>
 <translation id="5443952882982198570">Kredi Kartları</translation>
 <translation id="5457226814769348910">Çevrimdışı Sürümü aç</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 c98983d..d8a5701 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -250,6 +250,7 @@
 建議您查看搜尋引擎的搜尋記錄刪除指示 (如有)。</translation>
 <translation id="3080525922482950719">您可儲存網頁,以便稍後或離線閱讀</translation>
 <translation id="3081338492074632642">請確保您儲存的密碼與 <ph name="WEBSITE" /> 上的密碼相符</translation>
+<translation id="3103603146121354983">自動填入密碼</translation>
 <translation id="3112556859945124369">標示…</translation>
 <translation id="3122484138405575719"><ph name="BEGIN_LINK" />查看您可同步處理的內容<ph name="END_LINK" /></translation>
 <translation id="3131206671572504478">全部封鎖</translation>
@@ -659,6 +660,7 @@
 <translation id="6482629121755362506">已刪除 <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> 個項目</translation>
 <translation id="6497772452874122664">如果您信任 <ph name="TIME" />,可使用已儲存的其他網站密碼。請嘗試在每個網站使用不重複的密碼。</translation>
 <translation id="650279896687777322">瞭解詳情…</translation>
+<translation id="6510072653668207258">稍後提醒我</translation>
 <translation id="651505212789431520">要取消同步處理嗎?您可隨時在「設定」中開啟同步功能。</translation>
 <translation id="6524918542306337007">無法使用無痕模式</translation>
 <translation id="6530992499366869131">在密碼因資料外洩而被洩露時接收警告</translation>
diff --git a/ios/chrome/browser/ui/webui/policy/policy_ui.mm b/ios/chrome/browser/ui/webui/policy/policy_ui.mm
index 6e096bc..22910da 100644
--- a/ios/chrome/browser/ui/webui/policy/policy_ui.mm
+++ b/ios/chrome/browser/ui/webui/policy/policy_ui.mm
@@ -90,14 +90,7 @@
   source->AddResourcePath("policy.css", IDR_POLICY_CSS);
   source->AddResourcePath("policy_base.js", IDR_POLICY_BASE_JS);
   source->AddResourcePath("policy.js", IDR_POLICY_JS);
-  source->AddResourcePath("policy_conflict.js", IDR_POLICY_POLICY_CONFLICT_JS);
-  source->AddResourcePath("policy_row.js", IDR_POLICY_POLICY_ROW_JS);
-  source->AddResourcePath("policy_precedence_row.js",
-                          IDR_POLICY_POLICY_PRECEDENCE_ROW_JS);
-  source->AddResourcePath("policy_table.js", IDR_POLICY_POLICY_TABLE_JS);
-  source->AddResourcePath("status_box.js", IDR_POLICY_STATUS_BOX_JS);
   source->SetDefaultResource(IDR_POLICY_HTML);
-  source->EnableReplaceI18nInJS();
   return source;
 }
 
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 0d8322f7..437dcb1 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 @@
-3ffa9f20af779101683df99836b761fd89f43c55
\ No newline at end of file
+af58dd1dc9688f4db1b427d5bdb9c99e1be269e8
\ 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 dd83092..d4b38262 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 @@
-52e880781f1879e60a722e5997b9635d08101e49
\ No newline at end of file
+61e95def2aee7046aca1c602c1e44cbe48af588b
\ 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 d8debfb..92e48b6 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 @@
-a9a93893e61e91c2e90107b868a2c04943c809ea
\ No newline at end of file
+351d30c386f60f886511c069382b709af2281f57
\ 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 6104c66..1e55f8c5 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 @@
-8f69268988df5bef7f9eb4df06f7a3cdfa45a448
\ No newline at end of file
+65bd6c607e47f59159018ce21bbf95dd3996e64b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
index 4cd11bfa..b57f0fd 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-7c60bf5755b7e85edf6da605865a8490d46217e4
\ No newline at end of file
+b1924a005a4e9593562815c9ce3ae11bdcc995a7
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
index 247778b2..658e3b0 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-e6f2bc03dbdaad5c65ee945205af004deebd29d6
\ No newline at end of file
+aed930aecc71603ddf1d15c4437e3ec5d4390f8b
\ 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 6ffd005..51b6e83 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 @@
-ae0af028a3e73e4b57db305881e440a118c8bf07
\ No newline at end of file
+c3fbaa396c68c05d2aac8ab2518acd45038c68bc
\ 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 170ff3e..ddf1429e 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 @@
-70c9175177555752adc2fcc38431c03d8bf01321
\ No newline at end of file
+c57c75f9db526d72547603a7e87a3cd00aa89503
\ 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 0be0221..26d8e2d 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 @@
-717878862ded05ee8cc0bbd164b1d80a4a48a087
\ No newline at end of file
+708539b7db243840e48ba7588caaf06a42a7e4ae
\ 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 12ebad2..8d9a413d 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 @@
-0d8869de893986a8dc56028232fc25bc834fa320
\ No newline at end of file
+3b5beeb8de6acac3220a84461f2aa31d34e14e5f
\ No newline at end of file
diff --git a/ios/web/public/webui/url_data_source_ios.h b/ios/web/public/webui/url_data_source_ios.h
index 1924902..4387df2 100644
--- a/ios/web/public/webui/url_data_source_ios.h
+++ b/ios/web/public/webui/url_data_source_ios.h
@@ -67,10 +67,6 @@
   // TODO: nuke this and convert all callers to not replace.
   virtual bool ShouldReplaceExistingSource() const;
 
-  // Returns true if i18n replacemenents should be performed in JS files. Needed
-  // by UIs that use Web Components.
-  virtual bool ShouldReplaceI18nInJS() const;
-
   // Returns true if responses from this URLDataSourceIOS can be cached.
   virtual bool AllowCaching() const;
 
diff --git a/ios/web/public/webui/web_ui_ios_data_source.h b/ios/web/public/webui/web_ui_ios_data_source.h
index b8cee35c..b9394c45 100644
--- a/ios/web/public/webui/web_ui_ios_data_source.h
+++ b/ios/web/public/webui/web_ui_ios_data_source.h
@@ -54,10 +54,6 @@
   // URL that provides translations and dynamic data when requested.
   virtual void UseStringsJs() = 0;
 
-  // Call this to enable i18n replacements in JS files (needed by Web UIs that
-  // use Web Components).
-  virtual void EnableReplaceI18nInJS() = 0;
-
   // Adds a mapping between a path name and a resource to return.
   virtual void AddResourcePath(const std::string& path, int resource_id) = 0;
 
diff --git a/ios/web/webui/url_data_manager_ios_backend.mm b/ios/web/webui/url_data_manager_ios_backend.mm
index 4619e08..5fe5b55 100644
--- a/ios/web/webui/url_data_manager_ios_backend.mm
+++ b/ios/web/webui/url_data_manager_ios_backend.mm
@@ -332,10 +332,8 @@
                                             const std::string& mime_type) {
   set_mime_type(mime_type);
 
-  if (mime_type == "text/html" || (mime_type == "application/javascript" &&
-                                   source->ShouldReplaceI18nInJS())) {
+  if (mime_type == "text/html")
     set_source(source);
-  }
 
   NotifyHeadersComplete();
 }
diff --git a/ios/web/webui/url_data_source_ios.mm b/ios/web/webui/url_data_source_ios.mm
index f448f82a..5b975d1 100644
--- a/ios/web/webui/url_data_source_ios.mm
+++ b/ios/web/webui/url_data_source_ios.mm
@@ -39,8 +39,4 @@
   return GetWebClient()->IsAppSpecificURL(url);
 }
 
-bool URLDataSourceIOS::ShouldReplaceI18nInJS() const {
-  return false;
-}
-
 }  // namespace web
diff --git a/ios/web/webui/url_data_source_ios_impl.cc b/ios/web/webui/url_data_source_ios_impl.cc
index fef8d8f3..a8609f4 100644
--- a/ios/web/webui/url_data_source_ios_impl.cc
+++ b/ios/web/webui/url_data_source_ios_impl.cc
@@ -58,8 +58,4 @@
   return nullptr;
 }
 
-bool URLDataSourceIOSImpl::ShouldReplaceI18nInJS() const {
-  return false;
-}
-
 }  // namespace web
diff --git a/ios/web/webui/url_data_source_ios_impl.h b/ios/web/webui/url_data_source_ios_impl.h
index 2526acd..4977888 100644
--- a/ios/web/webui/url_data_source_ios_impl.h
+++ b/ios/web/webui/url_data_source_ios_impl.h
@@ -68,10 +68,6 @@
   // Replacements for i18n or null if no replacements are desired.
   virtual const ui::TemplateReplacements* GetReplacements() const;
 
-  // Whether to perform i18n replacements in JS files (needed by WebUIs that are
-  // using Web Components).
-  virtual bool ShouldReplaceI18nInJS() const;
-
  protected:
   virtual ~URLDataSourceIOSImpl();
 
diff --git a/ios/web/webui/web_ui_ios_data_source_impl.h b/ios/web/webui/web_ui_ios_data_source_impl.h
index 675d84d6..e51d584 100644
--- a/ios/web/webui/web_ui_ios_data_source_impl.h
+++ b/ios/web/webui/web_ui_ios_data_source_impl.h
@@ -34,8 +34,6 @@
       base::span<const webui::LocalizedString> strings) override;
   void AddBoolean(const std::string& name, bool value) override;
   void UseStringsJs() override;
-  void EnableReplaceI18nInJS() override;
-  bool ShouldReplaceI18nInJS() const override;
   void AddResourcePath(const std::string& path, int resource_id) override;
   void SetDefaultResource(int resource_id) override;
   void DisableDenyXFrameOptions() override;
@@ -84,7 +82,6 @@
   bool deny_xframe_options_;
   bool load_time_data_defaults_added_;
   bool replace_existing_source_;
-  bool should_replace_i18n_in_js_;
 };
 
 }  // web
diff --git a/ios/web/webui/web_ui_ios_data_source_impl.mm b/ios/web/webui/web_ui_ios_data_source_impl.mm
index b26fc7f2..4b322c7 100644
--- a/ios/web/webui/web_ui_ios_data_source_impl.mm
+++ b/ios/web/webui/web_ui_ios_data_source_impl.mm
@@ -51,9 +51,6 @@
   bool ShouldReplaceExistingSource() const override {
     return parent_->replace_existing_source_;
   }
-  bool ShouldReplaceI18nInJS() const override {
-    return parent_->ShouldReplaceI18nInJS();
-  }
   bool AllowCaching() const override { return false; }
   bool ShouldDenyXFrameOptions() const override {
     return parent_->deny_xframe_options_;
@@ -69,8 +66,7 @@
       default_resource_(-1),
       deny_xframe_options_(true),
       load_time_data_defaults_added_(false),
-      replace_existing_source_(true),
-      should_replace_i18n_in_js_(false) {}
+      replace_existing_source_(true) {}
 
 WebUIIOSDataSourceImpl::~WebUIIOSDataSourceImpl() {}
 
@@ -116,14 +112,6 @@
   use_strings_js_ = true;
 }
 
-void WebUIIOSDataSourceImpl::EnableReplaceI18nInJS() {
-  should_replace_i18n_in_js_ = true;
-}
-
-bool WebUIIOSDataSourceImpl::ShouldReplaceI18nInJS() const {
-  return should_replace_i18n_in_js_;
-}
-
 void WebUIIOSDataSourceImpl::AddResourcePath(const std::string& path,
                                              int resource_id) {
   path_to_idr_map_[path] = resource_id;
diff --git a/media/gpu/v4l2/test/av1_decoder.cc b/media/gpu/v4l2/test/av1_decoder.cc
index a0f65621..399e1cf2 100644
--- a/media/gpu/v4l2/test/av1_decoder.cc
+++ b/media/gpu/v4l2/test/av1_decoder.cc
@@ -4,8 +4,6 @@
 
 #include "media/gpu/v4l2/test/av1_decoder.h"
 
-#include <linux/media/av1-ctrls.h>
-
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "media/filters/ivf_parser.h"
@@ -20,61 +18,6 @@
               "Too many CAPTURE buffers are used. The number of CAPTURE "
               "buffers is currently assumed to be no larger than 16.");
 
-// TODO(stevecho): Remove this provision when av1-ctrls.h includes linux/bits.h.
-#ifndef BIT
-#define BIT(nr) (1U << (nr))
-#endif
-
-inline void conditionally_set_flags(__u8* flags,
-                                    const bool condition,
-                                    const bool mask) {
-  *flags |= (condition ? mask : 0);
-}
-
-// Section 5.9.11. Loop filter params syntax in AV1 spec.
-// https://aomediacodec.github.io/av1-spec/av1-spec.pdf
-// Note that |update_ref_delta| and |update_mode_delta| flags in the spec
-// are not needed for V4L2 AV1 API.
-// TODO(stevecho): sanity check data structures in libgav1 against the AV1 spec.
-void FillLoopFilterParams(struct v4l2_av1_loop_filter* v4l2_lf,
-                          const libgav1::LoopFilter& lf) {
-  conditionally_set_flags(&v4l2_lf->flags, lf.delta_enabled,
-                          V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED);
-  conditionally_set_flags(&v4l2_lf->flags, lf.delta_update,
-                          V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE);
-
-  static_assert(std::size(decltype(v4l2_lf->level){}) == libgav1::kFrameLfCount,
-                "Invalid size of loop filter level (strength) array");
-  for (size_t i = 0; i < libgav1::kFrameLfCount; i++)
-    v4l2_lf->level[i] = base::checked_cast<__u8>(lf.level[i]);
-
-  v4l2_lf->sharpness = lf.sharpness;
-
-  static_assert(std::size(decltype(v4l2_lf->ref_deltas){}) ==
-                    libgav1::kNumReferenceFrameTypes,
-                "Invalid size of ref deltas array");
-  for (size_t i = 0; i < libgav1::kNumReferenceFrameTypes; i++)
-    v4l2_lf->ref_deltas[i] = lf.ref_deltas[i];
-
-  static_assert(std::size(decltype(v4l2_lf->mode_deltas){}) ==
-                    libgav1::kLoopFilterMaxModeDeltas,
-                "Invalid size of mode deltas array");
-  for (size_t i = 0; i < libgav1::kLoopFilterMaxModeDeltas; i++)
-    v4l2_lf->mode_deltas[i] = lf.mode_deltas[i];
-}
-
-// Section 5.9.18. Loop filter delta parameters syntax.
-// Note that |delta_lf_res| in |v4l2_av1_loop_filter| corresponds to
-// |delta_lf.scale| in the frame header defined in libgav1.
-void FillLoopFilterDeltaParams(struct v4l2_av1_loop_filter* v4l2_lf,
-                               const libgav1::Delta& delta_lf) {
-  conditionally_set_flags(&v4l2_lf->flags, delta_lf.present,
-                          V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT);
-
-  v4l2_lf->delta_lf_res = delta_lf.scale;
-  v4l2_lf->delta_lf_multi = delta_lf.multi;
-}
-
 Av1Decoder::Av1Decoder(std::unique_ptr<IvfParser> ivf_parser,
                        std::unique_ptr<V4L2IoctlShim> v4l2_ioctl,
                        std::unique_ptr<V4L2Queue> OUTPUT_queue,
@@ -314,14 +257,7 @@
   }
 
   // TODO(b/228534730): add changes to prepare parameters for V4L2 AV1 stateless
-  // decoding and make VIDIOC_S_EXT_CTRLS v4l2 ioctl call
-  struct v4l2_ctrl_av1_frame_header v4l2_frame_params = {};
-
-  FillLoopFilterParams(&v4l2_frame_params.loop_filter,
-                       current_frame_header.loop_filter);
-
-  FillLoopFilterDeltaParams(&v4l2_frame_params.loop_filter,
-                            current_frame_header.delta_lf);
+  // decoding
 
   if (!v4l2_ioctl_->MediaRequestIocQueue(OUTPUT_queue_))
     LOG(FATAL) << "MEDIA_REQUEST_IOC_QUEUE failed.";
diff --git a/media/gpu/v4l2/test/av1_decoder.h b/media/gpu/v4l2/test/av1_decoder.h
index 5f8de6333..cad35a0 100644
--- a/media/gpu/v4l2/test/av1_decoder.h
+++ b/media/gpu/v4l2/test/av1_decoder.h
@@ -8,10 +8,6 @@
 #include "media/gpu/v4l2/test/v4l2_ioctl_shim.h"
 #include "media/gpu/v4l2/test/video_decoder.h"
 
-// TODO(b/234019411): Move this include to v4l2_stateless_decoder.cc
-// once the bug is fixed.
-#include <linux/media/av1-ctrls.h>
-
 #include <set>
 
 #include "media/filters/ivf_parser.h"
@@ -27,11 +23,16 @@
 #define ANALYZER_ALLOW_UNUSED(var) static_cast<void>(var);
 
 // TODO(stevecho): This is temporary until the change to define
-// V4L2_PIX_FMT_AV1 lands in videodev2.h.
+// V4L2_PIX_FMT_AV1_FRAME lands in videodev2.h.
 // https://patchwork.linuxtv.org/project/linux-media/patch/20210810220552.298140-2-daniel.almeida@collabora.com/
 #ifndef V4L2_PIX_FMT_AV1
 #define V4L2_PIX_FMT_AV1 v4l2_fourcc('A', 'V', '0', '1') /* AV1 */
 #endif
+#ifndef V4L2_PIX_FMT_AV1_FRAME
+#define V4L2_PIX_FMT_AV1_FRAME                        \
+  v4l2_fourcc('A', 'V', '1', 'F') /* AV1 parsed frame \
+                                   */
+#endif
 
 namespace media {
 
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
index a18d9db4..1173321d 100644
--- a/media/gpu/vaapi/vaapi_wrapper.cc
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -2146,21 +2146,37 @@
         sequence_checker_.CalledOnValidSequence());
   const gfx::BufferFormat buffer_format = pixmap->GetBufferFormat();
 
+  const uint32_t va_fourcc = BufferFormatToVAFourCC(buffer_format);
+  if (!va_fourcc) {
+    LOG(ERROR) << "Failed to get the VA fourcc from the buffer format";
+    return nullptr;
+  }
+
+  const size_t num_planes = pixmap->GetNumberOfPlanes();
+
   // Create a VASurface for a NativePixmap by importing the underlying dmabufs.
   const gfx::Size size = pixmap->GetBufferSize();
   VASurfaceAttribExternalBuffers va_attrib_extbuf{};
-  va_attrib_extbuf.pixel_format = BufferFormatToVAFourCC(buffer_format);
-  va_attrib_extbuf.width = size.width();
-  va_attrib_extbuf.height = size.height();
+  va_attrib_extbuf.pixel_format = va_fourcc;
+  va_attrib_extbuf.width = base::checked_cast<uint32_t>(size.width());
+  va_attrib_extbuf.height = base::checked_cast<uint32_t>(size.height());
 
-  const size_t num_planes = pixmap->GetNumberOfPlanes();
+  static_assert(std::size(va_attrib_extbuf.pitches) ==
+                std::size(va_attrib_extbuf.offsets));
+  if (num_planes > std::size(va_attrib_extbuf.pitches)) {
+    LOG(ERROR) << "Too many planes in the NativePixmap; got " << num_planes
+               << " but the maximum number is "
+               << std::size(va_attrib_extbuf.pitches);
+    return nullptr;
+  }
   for (size_t i = 0; i < num_planes; ++i) {
     va_attrib_extbuf.pitches[i] = pixmap->GetDmaBufPitch(i);
-    va_attrib_extbuf.offsets[i] = pixmap->GetDmaBufOffset(i);
+    va_attrib_extbuf.offsets[i] =
+        base::checked_cast<uint32_t>(pixmap->GetDmaBufOffset(i));
     DVLOG(4) << "plane " << i << ": pitch: " << va_attrib_extbuf.pitches[i]
              << " offset: " << va_attrib_extbuf.offsets[i];
   }
-  va_attrib_extbuf.num_planes = num_planes;
+  va_attrib_extbuf.num_planes = base::checked_cast<uint32_t>(num_planes);
 
   const int dma_buf_fd = pixmap->GetDmaBufFd(0);
   if (dma_buf_fd < 0) {
@@ -2189,7 +2205,12 @@
   DCHECK_EQ(va_attrib_extbuf.flags, 0u);
   DCHECK_EQ(va_attrib_extbuf.private_data, nullptr);
 
-  uint32_t va_format = BufferFormatToVARTFormat(buffer_format);
+  unsigned int va_format =
+      base::strict_cast<unsigned int>(BufferFormatToVARTFormat(buffer_format));
+  if (!va_format) {
+    LOG(ERROR) << "Failed to get the VA RT format from the buffer format";
+    return nullptr;
+  }
 
   if (protected_content) {
     if (GetImplementationType() == VAImplementation::kMesaGallium)
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json
index 85009ce7..acbcf50 100644
--- a/testing/buildbot/chromium.android.fyi.json
+++ b/testing/buildbot/chromium.android.fyi.json
@@ -8240,15 +8240,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
-          "--client-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--implementation-outdir",
           ".",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--client-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -8359,7 +8359,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -8750,15 +8750,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
           "--test-runner-outdir",
           ".",
           "--client-outdir",
           ".",
-          "--implementation-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--impl-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -8869,7 +8869,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index fc4bf367..055d535 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -46214,15 +46214,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
-          "--client-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--implementation-outdir",
           ".",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--client-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -46333,7 +46333,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -46724,15 +46724,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
           "--test-runner-outdir",
           ".",
           "--client-outdir",
           ".",
-          "--implementation-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--impl-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -46843,7 +46843,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -47238,15 +47238,15 @@
       {
         "args": [
           "--additional-apk=apks/ChromePublic.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
-          "--client-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--implementation-outdir",
           ".",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--client-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -47357,7 +47357,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -47748,15 +47748,15 @@
       {
         "args": [
           "--additional-apk=apks/ChromePublic.apk",
-          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
           "--test-runner-outdir",
           ".",
           "--client-outdir",
           ".",
-          "--implementation-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/AOSP_SystemWebView.apk",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--impl-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -47867,7 +47867,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -48330,15 +48330,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
-          "--client-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--implementation-outdir",
           ".",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--client-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -48449,7 +48449,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -48840,15 +48840,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
           "--client-outdir",
           ".",
-          "--implementation-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--impl-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -48959,7 +48959,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -49422,15 +49422,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
-          "--client-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--implementation-outdir",
           ".",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--client-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -49541,7 +49541,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -49932,15 +49932,15 @@
       {
         "args": [
           "--additional-apk=apks/WebLayerShellSystemWebView.apk",
-          "--webview-apk-path=apks/SystemWebView.apk",
           "--test-runner-outdir",
           ".",
           "--client-outdir",
           ".",
-          "--implementation-outdir",
-          "../../weblayer_instrumentation_test_M102/out/Release",
           "--test-expectations",
           "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--webview-apk-path=apks/SystemWebView.apk",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M102/out/Release",
           "--impl-version=102",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
@@ -50051,7 +50051,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M103",
-              "revision": "version:103.0.5060.26"
+              "revision": "version:103.0.5060.27"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index 8b37cc2..3e3c2bf7 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -5865,21 +5865,21 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5085.0",
+        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -5892,7 +5892,7 @@
         },
         "test": "interactive_ui_tests",
         "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "isolate_profile_data": true,
@@ -6030,21 +6030,21 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -6056,7 +6056,7 @@
         },
         "test": "lacros_chrome_browsertests",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "args": [
@@ -6176,21 +6176,21 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -6202,7 +6202,7 @@
         },
         "test": "lacros_chrome_browsertests_run_in_series",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "isolate_profile_data": true,
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 9b98eb7..8a75feaa 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -88037,21 +88037,21 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5085.0",
+        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -88059,7 +88059,7 @@
         },
         "test": "interactive_ui_tests",
         "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "isolate_profile_data": true,
@@ -88172,28 +88172,28 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test": "lacros_chrome_browsertests",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "args": [
@@ -88293,28 +88293,28 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "isolate_profile_data": true,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test": "lacros_chrome_browsertests_run_in_series",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "isolate_profile_data": true,
@@ -89652,20 +89652,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5085.0",
+        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -89679,7 +89679,7 @@
         },
         "test": "interactive_ui_tests",
         "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "merge": {
@@ -89817,20 +89817,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -89843,7 +89843,7 @@
         },
         "test": "lacros_chrome_browsertests",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "args": [
@@ -89963,20 +89963,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -89989,7 +89989,7 @@
         },
         "test": "lacros_chrome_browsertests_run_in_series",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "merge": {
@@ -91485,20 +91485,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5085.0",
+        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -91512,7 +91512,7 @@
         },
         "test": "interactive_ui_tests",
         "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "merge": {
@@ -91650,20 +91650,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -91676,7 +91676,7 @@
         },
         "test": "lacros_chrome_browsertests",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "args": [
@@ -91796,20 +91796,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5085.0",
+        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -91822,7 +91822,7 @@
         },
         "test": "lacros_chrome_browsertests_run_in_series",
         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       },
       {
         "merge": {
@@ -92557,20 +92557,20 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome"
         ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
-        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5085.0",
+        "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5086.0",
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v104.0.5085.0",
-              "revision": "version:104.0.5085.0"
+              "location": "lacros_version_skew_tests_v104.0.5086.0",
+              "revision": "version:104.0.5086.0"
             }
           ],
           "dimension_sets": [
@@ -92583,7 +92583,7 @@
         },
         "test": "interactive_ui_tests",
         "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/",
-        "variant_id": "Lacros version skew testing ash 104.0.5085.0"
+        "variant_id": "Lacros version skew testing ash 104.0.5086.0"
       }
     ]
   },
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index da3aa55..ce65c18e 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -22,15 +22,15 @@
   },
   'LACROS_VERSION_SKEW_CANARY': {
     'args': [
-      '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5085.0/test_ash_chrome',
+      '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5086.0/test_ash_chrome',
     ],
-    'identifier': 'Lacros version skew testing ash 104.0.5085.0',
+    'identifier': 'Lacros version skew testing ash 104.0.5086.0',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip',
-          'location': 'lacros_version_skew_tests_v104.0.5085.0',
-          'revision': 'version:104.0.5085.0',
+          'location': 'lacros_version_skew_tests_v104.0.5086.0',
+          'revision': 'version:104.0.5086.0',
         },
       ],
     },
@@ -479,23 +479,23 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M103',
-          'revision': 'version:103.0.5060.26'
+          'revision': 'version:103.0.5060.27'
         }
       ]
     }
   },
   'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
     'args': [
-      '--webview-apk-path=apks/AOSP_SystemWebView.apk',
       '--test-runner-outdir',
       '.',
       '--client-outdir',
       '.',
-      '--implementation-outdir',
-      '../../weblayer_instrumentation_test_M102/out/Release',
       '--test-expectations',
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
-      '--impl-version=102',
+      '--webview-apk-path=apks/AOSP_SystemWebView.apk',
+      '--implementation-outdir',
+      '../../weblayer_instrumentation_test_M102/out/Release',
+      '--impl-version=102'
     ],
     'identifier': 'with_impl_from_102',
     'swarming': {
@@ -503,10 +503,10 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M102',
-          'revision': 'version:102.0.5005.76',
+          'revision': 'version:102.0.5005.76'
         }
-      ],
-    },
+      ]
+    }
   },
   'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': {
     'args': [
@@ -623,23 +623,23 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M103',
-          'revision': 'version:103.0.5060.26'
+          'revision': 'version:103.0.5060.27'
         }
       ]
     }
   },
   'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
     'args': [
-      '--webview-apk-path=apks/SystemWebView.apk',
       '--test-runner-outdir',
       '.',
       '--client-outdir',
       '.',
-      '--implementation-outdir',
-      '../../weblayer_instrumentation_test_M102/out/Release',
       '--test-expectations',
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
-      '--impl-version=102',
+      '--webview-apk-path=apks/SystemWebView.apk',
+      '--implementation-outdir',
+      '../../weblayer_instrumentation_test_M102/out/Release',
+      '--impl-version=102'
     ],
     'identifier': 'with_impl_from_102',
     'swarming': {
@@ -647,10 +647,10 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M102',
-          'revision': 'version:102.0.5005.76',
+          'revision': 'version:102.0.5005.76'
         }
-      ],
-    },
+      ]
+    }
   },
   'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': {
     'args': [
@@ -767,23 +767,23 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M103',
-          'revision': 'version:103.0.5060.26'
+          'revision': 'version:103.0.5060.27'
         }
       ]
     }
   },
   'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
     'args': [
-      '--webview-apk-path=apks/SystemWebView.apk',
       '--test-runner-outdir',
       '.',
-      '--client-outdir',
-      '../../weblayer_instrumentation_test_M102/out/Release',
       '--implementation-outdir',
       '.',
       '--test-expectations',
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
-      '--client-version=102',
+      '--webview-apk-path=apks/SystemWebView.apk',
+      '--client-outdir',
+      '../../weblayer_instrumentation_test_M102/out/Release',
+      '--client-version=102'
     ],
     'identifier': 'with_client_from_102',
     'swarming': {
@@ -791,10 +791,10 @@
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M102',
-          'revision': 'version:102.0.5005.76',
+          'revision': 'version:102.0.5005.76'
         }
-      ],
-    },
+      ]
+    }
   },
   'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': {
     'args': [
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index d3c2d76..fe7426a 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -142,6 +142,9 @@
             "experiments": [
                 {
                     "name": "Enabled",
+                    "params": {
+                        "AdpfTargetDurationMs": "9"
+                    },
                     "enable_features": [
                         "Adpf"
                     ],
@@ -3550,26 +3553,6 @@
             ]
         }
     ],
-    "EarlyHintsPreloadForNavigation": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "EarlyHintsPreloadForNavigation"
-                    ]
-                }
-            ]
-        }
-    ],
     "ElementSuperRareData": [
         {
             "platforms": [
@@ -6231,25 +6214,6 @@
             ]
         }
     ],
-    "PasswordAddCredentialManuallyInDesktop": [
-        {
-            "platforms": [
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20211214",
-                    "enable_features": [
-                        "SupportForAddPasswordsInSettings"
-                    ]
-                }
-            ]
-        }
-    ],
     "PasswordChangeAndroid": [
         {
             "platforms": [
@@ -6995,6 +6959,26 @@
             ]
         }
     ],
+    "ReportFCPOnlyOnSuccessfulCommit": [
+        {
+            "platforms": [
+                "android",
+                "chromeos",
+                "chromeos_lacros",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "ReportFCPOnlyOnSuccessfulCommit"
+                    ]
+                }
+            ]
+        }
+    ],
     "SCTAuditingHashdance": [
         {
             "platforms": [
diff --git a/third_party/blink/renderer/bindings/IDLExtendedAttributes.md b/third_party/blink/renderer/bindings/IDLExtendedAttributes.md
index ebd30a8..df51bc3 100644
--- a/third_party/blink/renderer/bindings/IDLExtendedAttributes.md
+++ b/third_party/blink/renderer/bindings/IDLExtendedAttributes.md
@@ -1684,6 +1684,12 @@
 
 Method names in Blink default to being the same as the name in an IDL file. In some cases this is not possible, e.g., `delete` is a C++ reserved word. In such cases, you can explicitly specify the method name in Blink by `[ImplementedAs]`. Generally the `[ImplementedAs]` name should be in lowerCamelCase. You should _not_ use `[ImplementedAs]` simply to avoid renaming Blink methods.
 
+### [TargetOfExposed] _(i)_
+
+Summary: Interfaces specified with `[Global]` expose top-level IDL constructs specified with `[Exposed]` as JS data properties, however `[Global]` means a lot more (e.g. global object, named properties object, etc.). Interfaces specified with `[TargetOfExposed]` only expose top-level IDL constructs specified with `[Exposed]` and means nothing else.
+
+This extended attribute should be used only for pseudo namespace(-ish) objects like `globalThis.chromeos`. Consult with the bindings team before you use this extended attribute.
+
 ## Deprecated Blink-specific IDL Extended Attributes
 
 These extended attributes are _deprecated_, or are under discussion for deprecation. They should be avoided.
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
index 30c4ec66..c81539d 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -1789,6 +1789,8 @@
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_geolocation_position_error.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu.h",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_adapter_info.cc",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_adapter_info.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_adapter.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_adapter.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_bind_group.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
index 0c348c6..13b68b8 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -944,6 +944,7 @@
           "//third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame.idl",
           "//third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame_handle.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu.idl",
+          "//third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu_adapter.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu_bind_group.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu_bind_group_descriptor.idl",
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
index 97c9fe9..f6ad5db 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
@@ -409,11 +409,8 @@
     """Returns the tag type of NativeValueTraits."""
     assert isinstance(idl_type, web_idl.IdlType)
 
-    if idl_type.is_typedef:
-        if idl_type.identifier in ("EventHandler",
-                                   "OnBeforeUnloadEventHandler",
-                                   "OnErrorEventHandler"):
-            return "IDL{}".format(idl_type.identifier)
+    if idl_type.is_event_handler:
+        return "IDL{}".format(idl_type.identifier)
 
     real_type = idl_type.unwrap(typedef=True)
 
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
index 8055cd0c..4a1b9917 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
@@ -1653,12 +1653,9 @@
         return T("bindings::V8SetReturnValue(${info}, ${return_value});")
 
     return_type = cg_context.return_type
-    if return_type.is_typedef:
-        if return_type.identifier in ("EventHandler",
-                                      "OnBeforeUnloadEventHandler",
-                                      "OnErrorEventHandler"):
-            return T("bindings::V8SetReturnValue(${info}, ${return_value}, "
-                     "${isolate}, ${blink_receiver});")
+    if return_type.is_event_handler:
+        return T("bindings::V8SetReturnValue(${info}, ${return_value}, "
+                 "${isolate}, ${blink_receiver});")
 
     # [CheckSecurity=ReturnValue]
     #
@@ -1887,17 +1884,13 @@
     #   Web IDL.
     # 2. Leverage the nature of [LegacyTreatNonObjectAsNull] (ES to IDL
     #   conversion never fails).
-    if (cg_context.attribute.idl_type.is_typedef
-            and (cg_context.attribute.idl_type.identifier in (
-                "EventHandler", "OnBeforeUnloadEventHandler",
-                "OnErrorEventHandler"))):
-        body.extend([
+    if cg_context.attribute.idl_type.is_event_handler:
+        body.append(
             TextNode("""\
 EventListener* event_handler = JSEventHandler::CreateOrNull(
     ${v8_property_value},
     JSEventHandler::HandlerType::k${attribute.idl_type.identifier});\
-"""),
-        ])
+"""))
         code_generator_info = cg_context.attribute.code_generator_info
         func_name = name_style.api_func("set", cg_context.attribute.identifier)
         if code_generator_info.defined_in_partial:
@@ -5288,7 +5281,12 @@
 
     class_like = cg_context.class_like
     interface = cg_context.interface
-    global_names = class_like.extended_attributes.values_of("Global")
+    # This function produces the property installation code and we'd like to
+    # expose IDL constructs with [Exposed] not only on [Global] but also on
+    # [TargetOfExposed].
+    global_names = (
+        class_like.extended_attributes.values_of("Global") +
+        class_like.extended_attributes.values_of("TargetOfExposed"))
 
     callback_def_nodes = ListNode()
 
@@ -8010,7 +8008,13 @@
     web_idl_database = package_initializer().web_idl_database()
 
     for interface in web_idl_database.interfaces:
-        task_queue.post_task(generate_interface, interface.identifier)
+        # Use the number of attributes + constants + operations as a very rough
+        # heuristic for workload. This is by no means close-to-accurate, but is
+        # better than nothing.
+        task_queue.post_task_with_workload(
+            len(interface.attributes) + len(interface.constants) +
+            len(interface.operations), generate_interface,
+            interface.identifier)
 
     task_queue.post_task(generate_install_properties_per_feature,
                          "InstallPropertiesPerFeature",
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py b/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
index e06b401..bc9e641 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
@@ -36,17 +36,31 @@
                 self._pool_size = min(self._pool_size, 56)
             self._pool = multiprocessing.Pool(self._pool_size,
                                               package_initializer().init)
-        self._requested_tasks = []  # List of (func, args, kwargs)
+        self._requested_tasks = []  # List of (workload, func, args, kwargs)
         self._worker_tasks = []  # List of multiprocessing.pool.AsyncResult
         self._did_run = False
 
     def post_task(self, func, *args, **kwargs):
         """
-        Schedules a new task to be executed when |run| method is invoked.  This
+        Schedules a new task to be executed when |run| method is invoked. This
         method does not kick any execution, only puts a new task in the queue.
+        This task will be scheduled without any workload hint, therefore will be
+        queued in an arbitrary order. Use |post_task_with_workload| to influence
+        the order this task is scheduled in.
+        """
+        self.post_task_with_workload(0, func, *args, **kwargs)
+
+    def post_task_with_workload(self, workload, func, *args, **kwargs):
+        """
+        Schedules a new task to be executed when |run| method is invoked,
+        including a hint regarding how long this task is expected to take. This
+        method does not kick any execution, only puts a new task in the queue.
+        Tasks with higher workload values will be run first. This tries to
+        reduce the impact of long-running tasks on total wall time on
+        multiprocessor systems.
         """
         assert not self._did_run
-        self._requested_tasks.append((func, args, kwargs))
+        self._requested_tasks.append((workload, func, args, kwargs))
 
     def run(self, report_progress=None):
         """
@@ -66,16 +80,22 @@
         else:
             self._run_in_parallel(report_progress)
 
+    def _tasks_by_workload(self):
+        return sorted(
+            self._requested_tasks,
+            key=lambda task: task[0],  # workload
+            reverse=True)
+
     def _run_in_sequence(self, report_progress):
-        for index, task in enumerate(self._requested_tasks):
-            func, args, kwargs = task
+        for index, task in enumerate(self._tasks_by_workload()):
+            _, func, args, kwargs = task
             report_progress(len(self._requested_tasks), index)
             func(*args, **kwargs)
         report_progress(len(self._requested_tasks), len(self._requested_tasks))
 
     def _run_in_parallel(self, report_progress):
-        for task in self._requested_tasks:
-            func, args, kwargs = task
+        for task in self._tasks_by_workload():
+            _, func, args, kwargs = task
             self._worker_tasks.append(
                 self._pool.apply_async(func, args, kwargs))
         self._pool.close()
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py b/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
index 2522843..2e15b48 100644
--- a/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
+++ b/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
@@ -681,7 +681,11 @@
             self._ir_map.add(new_ir)
 
             assert not new_ir.exposed_constructs
-            global_names = new_ir.extended_attributes.values_of('Global')
+            # Not only [Global] but also [TargetOfExposed] will expose IDL
+            # constructs with [Exposed].
+            global_names = (
+                new_ir.extended_attributes.values_of('Global') +
+                new_ir.extended_attributes.values_of('TargetOfExposed'))
             if not global_names:
                 continue
             constructs = set()
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py b/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
index 69b8e5a..70e4ed14 100644
--- a/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
+++ b/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
@@ -464,6 +464,20 @@
         return False
 
     @property
+    def is_event_handler(self):
+        """
+        Returns True if this is an event handler type.
+
+        Event handler types are EventHandler, OnBeforeUnloadEventHandler,
+        and OnErrorEventHandler.
+        """
+
+        return (self.is_typedef
+                and self.identifier in ("EventHandler",
+                                        "OnBeforeUnloadEventHandler",
+                                        "OnErrorEventHandler"))
+
+    @property
     def is_nullable(self):
         """
         Returns True if this is a nullable type.
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
index 8743467..917c185c 100644
--- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
@@ -51,6 +51,7 @@
   (property.valid_for_marker and 'kValidForMarker' or ''),
   (property.valid_for_canvas_formatted_text and 'kValidForCanvasFormattedText' or ''),
   (property.valid_for_canvas_formatted_text_run and 'kValidForCanvasFormattedTextRun' or ''),
+  (property.valid_for_keyframe and 'kValidForKeyframe' or ''),
   (is_surrogate and 'kSurrogate' or ''),
   (property.font and 'kAffectsFont' or ''),
   (property.is_background and 'kBackground' or ''),
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index 07b04f3..83d21b3 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -1476,6 +1476,7 @@
     "paint/link_highlight_impl_test.cc",
     "paint/ng/ng_box_fragment_painter_test.cc",
     "paint/ng/ng_highlight_overlay_test.cc",
+    "paint/ng/ng_inline_paint_context_test.cc",
     "paint/ng/ng_text_fragment_painter_test.cc",
     "paint/nine_piece_image_grid_test.cc",
     "paint/object_paint_invalidator_test.cc",
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index 1c6b396..09f1520 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -629,6 +629,15 @@
       default: false,
       valid_type: "bool",
     },
+
+    // - valid_for_keyframe: true
+    //
+    // Whether the property can be used in @keyframes.
+    // https://www.w3.org/TR/css-animations-1/#typedef-keyframe-block
+    valid_for_keyframe: {
+      default: true,
+      valid_type: "bool",
+    },
   },
 
   // Members in the data objects should appear in the same order as in the
@@ -648,6 +657,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-direction",
@@ -662,6 +672,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-duration",
@@ -675,6 +686,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-fill-mode",
@@ -688,6 +700,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-iteration-count",
@@ -703,6 +716,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-name",
@@ -717,6 +731,7 @@
       valid_for_marker: true,
       tree_scoped_value: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-play-state",
@@ -730,6 +745,7 @@
       separator: ",",
       valid_for_marker: true,
       is_animation_property: true,
+      valid_for_keyframe: false,
     },
     {
       name: "animation-timeline",
@@ -6226,6 +6242,7 @@
         "animation-timeline"
       ],
       property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"],
+      valid_for_keyframe: false,
     },
     {
       name: "background",
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 df9215b..74ebbe4 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
@@ -96,6 +96,20 @@
   return name;
 }
 
+StyleRule::RuleType RuleTypeForMutableDeclaration(
+    MutableCSSPropertyValueSet* declaration) {
+  switch (declaration->CssParserMode()) {
+    case kCSSViewportRuleMode:
+      return StyleRule::kViewport;
+    case kCSSFontFaceRuleMode:
+      return StyleRule::kFontFace;
+    case kCSSKeyframeRuleMode:
+      return StyleRule::kKeyframe;
+    default:
+      return StyleRule::kStyle;
+  }
+}
+
 }  // namespace
 
 CSSParserImpl::CSSParserImpl(const CSSParserContext* context,
@@ -112,11 +126,7 @@
     bool important,
     const CSSParserContext* context) {
   STACK_UNINITIALIZED CSSParserImpl parser(context);
-  StyleRule::RuleType rule_type = StyleRule::kStyle;
-  if (declaration->CssParserMode() == kCSSViewportRuleMode)
-    rule_type = StyleRule::kViewport;
-  else if (declaration->CssParserMode() == kCSSFontFaceRuleMode)
-    rule_type = StyleRule::kFontFace;
+  StyleRule::RuleType rule_type = RuleTypeForMutableDeclaration(declaration);
   CSSTokenizer tokenizer(string);
   CSSParserTokenStream stream(tokenizer);
   CSSTokenizedValue tokenized_value = ConsumeValue(stream);
@@ -230,9 +240,7 @@
     const String& string,
     const CSSParserContext* context) {
   CSSParserImpl parser(context);
-  StyleRule::RuleType rule_type = StyleRule::kStyle;
-  if (declaration->CssParserMode() == kCSSViewportRuleMode)
-    rule_type = StyleRule::kViewport;
+  StyleRule::RuleType rule_type = RuleTypeForMutableDeclaration(declaration);
   CSSTokenizer tokenizer(string);
   CSSParserTokenStream stream(tokenizer);
   parser.ConsumeDeclarationList(stream, rule_type);
@@ -1274,7 +1282,7 @@
 
   return MakeGarbageCollected<StyleRuleKeyframe>(
       std::move(key_list),
-      CreateCSSPropertyValueSet(parsed_properties_, context_->Mode()));
+      CreateCSSPropertyValueSet(parsed_properties_, kCSSKeyframeRuleMode));
 }
 
 StyleRule* CSSParserImpl::ConsumeStyleRule(CSSParserTokenStream& stream) {
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_mode.h b/third_party/blink/renderer/core/css/parser/css_parser_mode.h
index d50d3fa..6cf3755 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_mode.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_mode.h
@@ -45,6 +45,9 @@
   // CSSOM modifications don't treat them as style rules.
   kCSSViewportRuleMode,
   kCSSFontFaceRuleMode,
+  // @keyframes rules are specially tagged in CSSPropertyValueSet so CSSOM
+  // modifications don't allow setting animation-* in their keyframes.
+  kCSSKeyframeRuleMode,
   // User agent stylesheets are parsed in standards mode but also allows
   // internal properties and values.
   kUASheetMode,
diff --git a/third_party/blink/renderer/core/css/parser/css_property_parser.cc b/third_party/blink/renderer/core/css/parser/css_property_parser.cc
index 3fa0ed0..47778e4 100644
--- a/third_party/blink/renderer/core/css/parser/css_property_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_property_parser.cc
@@ -58,6 +58,22 @@
   return value;
 }
 
+bool IsPropertyAllowedInRule(const CSSProperty& property,
+                             StyleRule::RuleType rule_type) {
+  // This function should be called only when parsing a property. Shouldn't
+  // reach here with a descriptor.
+  DCHECK(property.IsProperty());
+  switch (rule_type) {
+    case StyleRule::kStyle:
+      return true;
+    case StyleRule::kKeyframe:
+      return property.IsValidForKeyframe();
+    default:
+      NOTREACHED();
+      return false;
+  }
+}
+
 }  // namespace
 
 CSSPropertyParser::CSSPropertyParser(
@@ -87,7 +103,8 @@
   } else if (rule_type == StyleRule::kFontFace) {
     parse_success = parser.ParseFontFaceDescriptor(resolved_property);
   } else {
-    parse_success = parser.ParseValueStart(unresolved_property, important);
+    parse_success =
+        parser.ParseValueStart(unresolved_property, rule_type, important);
   }
 
   // This doesn't count UA style sheets
@@ -118,6 +135,7 @@
 }
 
 bool CSSPropertyParser::ParseValueStart(CSSPropertyID unresolved_property,
+                                        StyleRule::RuleType rule_type,
                                         bool important) {
   if (ConsumeCSSWideKeyword(unresolved_property, important))
     return true;
@@ -129,6 +147,8 @@
   // style property, it will not be a valid declaration.
   if (!property.IsProperty())
     return false;
+  if (!IsPropertyAllowedInRule(property, rule_type))
+    return false;
   bool is_shorthand = property.IsShorthand();
   DCHECK(context_);
   if (is_shorthand) {
diff --git a/third_party/blink/renderer/core/css/parser/css_property_parser.h b/third_party/blink/renderer/core/css/parser/css_property_parser.h
index cc6d801..cd9cff0b 100644
--- a/third_party/blink/renderer/core/css/parser/css_property_parser.h
+++ b/third_party/blink/renderer/core/css/parser/css_property_parser.h
@@ -66,7 +66,9 @@
                     HeapVector<CSSPropertyValue, 64>*);
 
   // TODO(timloh): Rename once the CSSParserValue-based parseValue is removed
-  bool ParseValueStart(CSSPropertyID unresolved_property, bool important);
+  bool ParseValueStart(CSSPropertyID unresolved_property,
+                       StyleRule::RuleType rule_type,
+                       bool important);
   bool ConsumeCSSWideKeyword(CSSPropertyID unresolved_property, bool important);
 
   bool ParseViewportDescriptor(CSSPropertyID prop_id, bool important);
diff --git a/third_party/blink/renderer/core/css/properties/css_property.h b/third_party/blink/renderer/core/css/properties/css_property.h
index 051d97a..c61eeae 100644
--- a/third_party/blink/renderer/core/css/properties/css_property.h
+++ b/third_party/blink/renderer/core/css/properties/css_property.h
@@ -72,6 +72,7 @@
   bool IsValidForCanvasFormattedTextRun() const {
     return flags_ & kValidForCanvasFormattedTextRun;
   }
+  bool IsValidForKeyframe() const { return flags_ & kValidForKeyframe; }
   bool IsSurrogate() const { return flags_ & kSurrogate; }
   bool AffectsFont() const { return flags_ & kAffectsFont; }
   bool IsBackground() const { return flags_ & kBackground; }
@@ -188,6 +189,8 @@
     kOverlapping = 1 << 28,
     // See legacy_overlapping in css_properties.json5.
     kLegacyOverlapping = 1 << 29,
+    // See valid_for_keyframes in css_properties.json5
+    kValidForKeyframe = 1 << 30,
   };
 
   constexpr CSSProperty(CSSPropertyID property_id,
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index 964bdfd..6a5e96c 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1346,6 +1346,13 @@
       state.StyleRef().SetHasExplicitInheritance();
     }
 
+    // Similarly, if a style went from using viewport units to not,
+    // the flags can stick around in the incremental version. This can cause
+    // invalidations when none are needed, but is otherwise harmless.
+    state.StyleRef().SetViewportUnitFlags(
+        state.StyleRef().ViewportUnitFlags() |
+        incremental_style->ViewportUnitFlags());
+
     DCHECK_EQ(g_null_atom, ComputeBaseComputedStyleDiff(incremental_style.get(),
                                                         *state.Style()));
     // The incremental style must not contain BaseData, otherwise we'd risk
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc
index 298373a..aa386f5 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc
@@ -522,7 +522,9 @@
   const MinimumThickness1 kMinimumThicknessIsOne(true);
   TextDecorationInfo decoration_info(
       offset, ink_overflow.Width(), style.GetFontBaseline(), style, scaled_font,
-      absl::nullopt, nullptr, kMinimumThicknessIsOne);
+      /* inline_context */ nullptr,
+      /* selection_text_decoration */ absl::nullopt,
+      /* decorating_box_style */ nullptr, kMinimumThicknessIsOne);
   NGTextDecorationOffset decoration_offset(decoration_info.Style(), style,
                                            nullptr);
   const Vector<AppliedTextDecoration>& decorations =
diff --git a/third_party/blink/renderer/core/paint/build.gni b/third_party/blink/renderer/core/paint/build.gni
index 30a4ed8..14084963 100644
--- a/third_party/blink/renderer/core/paint/build.gni
+++ b/third_party/blink/renderer/core/paint/build.gni
@@ -107,6 +107,7 @@
   "multi_column_set_painter.h",
   "ng/ng_box_fragment_painter.cc",
   "ng/ng_box_fragment_painter.h",
+  "ng/ng_decorating_box.h",
   "ng/ng_fieldset_painter.cc",
   "ng/ng_fieldset_painter.h",
   "ng/ng_fragment_painter.cc",
@@ -117,6 +118,7 @@
   "ng/ng_highlight_painter.h",
   "ng/ng_inline_box_fragment_painter.cc",
   "ng/ng_inline_box_fragment_painter.h",
+  "ng/ng_inline_paint_context.cc",
   "ng/ng_inline_paint_context.h",
   "ng/ng_mathml_painter.cc",
   "ng/ng_mathml_painter.h",
diff --git a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc
index 05b0651f2..b9254b9 100644
--- a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc
+++ b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc
@@ -427,10 +427,10 @@
               ? absl::optional<AppliedTextDecoration>(
                     selection_style.selection_text_decoration)
               : absl::nullopt;
-      decoration_info.emplace(local_origin, width,
-                              inline_text_box_.Root().BaselineType(),
-                              style_to_use, style_to_use.GetFont(),
-                              selection_text_decoration, decorating_box_style);
+      decoration_info.emplace(
+          local_origin, width, inline_text_box_.Root().BaselineType(),
+          style_to_use, style_to_use.GetFont(), /* inline_context */ nullptr,
+          selection_text_decoration, decorating_box_style);
       TextDecorationOffset decoration_offset(decoration_info->Style(),
                                              &inline_text_box_, decorating_box);
       text_painter.PaintDecorationsExceptLineThrough(
diff --git a/third_party/blink/renderer/core/paint/ng/ng_decorating_box.h b/third_party/blink/renderer/core/paint/ng/ng_decorating_box.h
new file mode 100644
index 0000000..8cfc1233
--- /dev/null
+++ b/third_party/blink/renderer/core/paint/ng/ng_decorating_box.h
@@ -0,0 +1,38 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_DECORATING_BOX_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_DECORATING_BOX_H_
+
+#include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
+#include "third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h"
+
+namespace blink {
+
+class ComputedStyle;
+
+// Represents a [decorating box].
+// [decorating box]: https://drafts.csswg.org/css-text-decor-3/#decorating-box
+class CORE_EXPORT NGDecoratingBox {
+ public:
+  NGDecoratingBox(const PhysicalOffset& offset_in_container,
+                  const ComputedStyle& style)
+      : offset_in_container_(offset_in_container), style_(style) {}
+  NGDecoratingBox(const NGFragmentItem& inline_box, const ComputedStyle& style)
+      : NGDecoratingBox(inline_box.OffsetInContainerFragment(), style) {
+    DCHECK(inline_box.IsInlineBox());
+    DCHECK_EQ(&inline_box.Style(), &style_);
+  }
+
+  const ComputedStyle& Style() const { return style_; }
+
+ private:
+  PhysicalOffset offset_in_container_;
+  const ComputedStyle& style_;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_DECORATING_BOX_H_
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.cc b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.cc
new file mode 100644
index 0000000..6f43ebf
--- /dev/null
+++ b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.cc
@@ -0,0 +1,35 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h"
+
+namespace blink {
+
+void NGInlinePaintContext::SetLineBox(const NGFragmentItem& line_item) {
+  DCHECK_EQ(line_item.Type(), NGFragmentItem::kLine);
+  line_item_ = &line_item;
+  decorating_boxes_.Shrink(0);
+
+  const ComputedStyle& style = line_item.Style();
+  const Vector<AppliedTextDecoration>& applied_text_decorations =
+      style.AppliedTextDecorations();
+  if (applied_text_decorations.IsEmpty())
+    return;
+
+  // The decorating box of a block container is an anonymous inline box that
+  // wraps all children of the block container.
+  // https://drafts.csswg.org/css-text-decor-3/#decorating-box
+  //
+  // Compute the offset of the non-existent anonymous inline box.
+  PhysicalOffset offset = line_item.OffsetInContainerFragment();
+  const NGPhysicalLineBoxFragment* fragment = line_item.LineBoxFragment();
+  DCHECK(fragment);
+  offset.top += fragment->Metrics().ascent;
+  offset.top -= style.GetFont().PrimaryFont()->GetFontMetrics().FixedAscent();
+
+  for (wtf_size_t i = 0; i < applied_text_decorations.size(); ++i)
+    decorating_boxes_.emplace_back(offset, style);
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h
index 779d4a3e..09285d46 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h
@@ -5,11 +5,38 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_PAINT_CONTEXT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_PAINT_CONTEXT_H_
 
+#include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/core/paint/ng/ng_decorating_box.h"
+#include "third_party/blink/renderer/platform/wtf/vector.h"
+
 namespace blink {
 
 // Carries contextual information shared across multiple inline fragments within
 // an inline formatting context.
-class NGInlinePaintContext {};
+class CORE_EXPORT NGInlinePaintContext {
+ public:
+  using DecoratingBoxList = Vector<NGDecoratingBox, 1>;
+  const DecoratingBoxList& DecoratingBoxes() const { return decorating_boxes_; }
+
+  void PushDecoratingBox(const NGFragmentItem& inline_box,
+                         const ComputedStyle& style);
+  void PopDecoratingBox() { decorating_boxes_.pop_back(); }
+
+  void SetLineBox(const NGFragmentItem& line_item);
+  void ClearLineBox() { line_item_ = nullptr; }
+
+ private:
+  DecoratingBoxList decorating_boxes_;
+  const NGFragmentItem* line_item_ = nullptr;
+};
+
+inline void NGInlinePaintContext::PushDecoratingBox(
+    const NGFragmentItem& inline_box,
+    const ComputedStyle& style) {
+  DCHECK(inline_box.IsInlineBox());
+  DCHECK_EQ(&inline_box.Style(), &style);
+  decorating_boxes_.emplace_back(inline_box, style);
+}
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context_test.cc b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context_test.cc
new file mode 100644
index 0000000..a232cae0
--- /dev/null
+++ b/third_party/blink/renderer/core/paint/ng/ng_inline_paint_context_test.cc
@@ -0,0 +1,60 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/paint/ng/ng_inline_paint_context.h"
+
+#include "testing/gmock/include/gmock/gmock.h"
+#include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h"
+#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
+
+namespace blink {
+
+class NGInlinePaintContextTest : public RenderingTest,
+                                 private ScopedLayoutNGForTest {
+ public:
+  NGInlinePaintContextTest() : ScopedLayoutNGForTest(true) {}
+
+  Vector<float> GetFontSizes(
+      const NGInlinePaintContext::DecoratingBoxList& boxes) {
+    Vector<float> font_sizes;
+    for (const NGDecoratingBox& box : boxes)
+      font_sizes.push_back(box.Style().ComputedFontSize());
+    return font_sizes;
+  }
+};
+
+TEST_F(NGInlinePaintContextTest, NestedBlocks) {
+  SetBodyInnerHTML(R"HTML(
+    <style>
+    .ul {
+      text-decoration: underline;
+      background: yellow;  /* Ensure not to cull inline boxes. */
+    }
+    </style>
+    <div class="ul" style="font-size: 40px">
+      <div id="ifc" class="ul" style="font-size: 20px">
+        <span class="ul" style="font-size: 10px">10</span>
+      </div>
+    </div>
+  )HTML");
+
+  NGInlinePaintContext context;
+  const auto* ifc = To<LayoutBlockFlow>(GetLayoutObjectByElementId("ifc"));
+  NGInlineCursor cursor(*ifc);
+  cursor.MoveToFirstLine();
+  context.SetLineBox(*cursor.Current());
+  // Two text decorations are propagated to the `ifc`. The outer one does not
+  // establish an inline formatting context, so the anonymous inline box of the
+  // `ifc` is the decorating box of both decorations.
+  EXPECT_THAT(GetFontSizes(context.DecoratingBoxes()),
+              testing::ElementsAre(20.f, 20.f));
+
+  cursor.MoveToNext();  // |cursor| should be at the `<span>`.
+  EXPECT_TRUE(cursor.Current().IsInlineBox());
+  context.PushDecoratingBox(*cursor.Current(), cursor.Current()->Style());
+  EXPECT_THAT(GetFontSizes(context.DecoratingBoxes()),
+              testing::ElementsAre(20.f, 20.f, 10.f));
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc
index 255aa4e..4f214e5c 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc
+++ b/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc
@@ -101,7 +101,8 @@
   TextDecorationInfo decoration_info(
       text_frame_rect_.offset, text_frame_rect_.size.width,
       style_.GetFontBaseline(), style_, style_.GetFont(),
-      selection_text_decoration, decorating_box_style);
+      /* inline_context */ nullptr, selection_text_decoration,
+      decorating_box_style);
 
   const NGTextDecorationOffset decoration_offset(style_, style_, nullptr);
   const auto& applied_text_decorations = style_.AppliedTextDecorations();
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc
index 473f7a9..5a9d1de 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc
+++ b/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc
@@ -74,13 +74,16 @@
     top -= scaled_font.PrimaryFont()->GetFontMetrics().FixedAscent();
     result.emplace(PhysicalOffset(decoration_rect_.offset.left, top),
                    decoration_rect_.Width(), style.GetFontBaseline(), style,
-                   scaled_font, effective_selection_decoration, nullptr,
-                   MinimumThickness1(false), scaling_factor);
+                   scaled_font, text_painter_.InlineContext(),
+                   effective_selection_decoration,
+                   /* decorating_box_style */ nullptr, MinimumThickness1(false),
+                   scaling_factor);
   } else {
     result.emplace(
         decoration_rect_.offset, decoration_rect_.Width(),
         style.GetFontBaseline(), style, text_item_.ScaledFont(),
-        effective_selection_decoration, nullptr,
+        text_painter_.InlineContext(), effective_selection_decoration,
+        /* decorating_box_style */ nullptr,
         MinimumThickness1(text_item_.Type() != NGFragmentItem::kSvgText));
   }
 }
diff --git a/third_party/blink/renderer/core/paint/text_decoration_info.cc b/third_party/blink/renderer/core/paint/text_decoration_info.cc
index a9322ea..771d864 100644
--- a/third_party/blink/renderer/core/paint/text_decoration_info.cc
+++ b/third_party/blink/renderer/core/paint/text_decoration_info.cc
@@ -124,6 +124,7 @@
     FontBaseline baseline_type,
     const ComputedStyle& style,
     const Font& scaled_font,
+    const NGInlinePaintContext* inline_context,
     const absl::optional<AppliedTextDecoration> selection_text_decoration,
     const ComputedStyle* decorating_box_style,
     MinimumThickness1 minimum_thickness1,
diff --git a/third_party/blink/renderer/core/paint/text_decoration_info.h b/third_party/blink/renderer/core/paint/text_decoration_info.h
index 245a064..cdf751be 100644
--- a/third_party/blink/renderer/core/paint/text_decoration_info.h
+++ b/third_party/blink/renderer/core/paint/text_decoration_info.h
@@ -23,6 +23,7 @@
 
 class ComputedStyle;
 class Font;
+class NGInlinePaintContext;
 class SimpleFontData;
 class TextDecorationOffsetBase;
 
@@ -48,6 +49,7 @@
       FontBaseline baseline_type,
       const ComputedStyle& style,
       const Font& scaled_font,
+      const NGInlinePaintContext* inline_context,
       const absl::optional<AppliedTextDecoration> selection_text_decoration,
       const ComputedStyle* decorating_box_style,
       MinimumThickness1 minimum_thickness1 = MinimumThickness1(true),
diff --git a/third_party/blink/renderer/core/paint/text_painter_base.h b/third_party/blink/renderer/core/paint/text_painter_base.h
index ad5d992..214c8a4 100644
--- a/third_party/blink/renderer/core/paint/text_painter_base.h
+++ b/third_party/blink/renderer/core/paint/text_painter_base.h
@@ -46,6 +46,8 @@
                   bool horizontal);
   ~TextPainterBase();
 
+  const NGInlinePaintContext* InlineContext() const { return inline_context_; }
+
   virtual void ClipDecorationsStripe(float upper,
                                      float stripe_width,
                                      float dilation) = 0;
diff --git a/third_party/blink/renderer/core/trustedtypes/generate_eventhandler_names.py b/third_party/blink/renderer/core/trustedtypes/generate_eventhandler_names.py
index 8b063fe..d9e490e 100755
--- a/third_party/blink/renderer/core/trustedtypes/generate_eventhandler_names.py
+++ b/third_party/blink/renderer/core/trustedtypes/generate_eventhandler_names.py
@@ -34,15 +34,11 @@
         parser.error("No positional arguments supported.")
 
     event_handlers = set()
-    event_handler_types = ("EventHandler", "OnBeforeUnloadEventHandler",
-                           "OnErrorEventHandler")
 
     web_idl_database = web_idl.Database.read_from_file(options.webidl)
     for interface in web_idl_database.interfaces:
         for attribute in interface.attributes:
-            idl_type = attribute.idl_type
-            if (idl_type.is_typedef
-                    and idl_type.identifier in event_handler_types):
+            if attribute.idl_type.is_event_handler:
                 event_handlers.add(attribute.identifier)
 
     license_and_header = """\
diff --git a/third_party/blink/renderer/extensions/chromeos/chromeos.idl b/third_party/blink/renderer/extensions/chromeos/chromeos.idl
index 30cf43a7..81090f9a 100644
--- a/third_party/blink/renderer/extensions/chromeos/chromeos.idl
+++ b/third_party/blink/renderer/extensions/chromeos/chromeos.idl
@@ -3,10 +3,7 @@
 // found in the LICENSE file.
 
 [
-    // Use `Global` to be able to expose other interfaces to ChromeOS. This is
-    // not the intended use of Global.
-    // TODO(yukishiino): Replace with a more appropriate extended attribute.
-    Global=ChromeOSExtensions
+    TargetOfExposed=ChromeOSExtensions
 ] interface ChromeOS {
   [RuntimeEnabled=BlinkExtensionChromeOSWindowManagement,CallWith=ExecutionContext]
   readonly attribute CrosWindowManagement windowManagement;
diff --git a/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window_management.cc b/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window_management.cc
index 9c6264fd..522dc7f 100644
--- a/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window_management.cc
+++ b/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window_management.cc
@@ -102,6 +102,7 @@
 }
 
 void CrosWindowManagement::DispatchStartEvent() {
+  DLOG(INFO) << "Dispatching event";
   DispatchEvent(*Event::Create(event_type_names::kStart));
 }
 
diff --git a/third_party/blink/renderer/modules/webgpu/BUILD.gn b/third_party/blink/renderer/modules/webgpu/BUILD.gn
index 5592b32..d8eda7f 100644
--- a/third_party/blink/renderer/modules/webgpu/BUILD.gn
+++ b/third_party/blink/renderer/modules/webgpu/BUILD.gn
@@ -16,6 +16,8 @@
     "gpu.h",
     "gpu_adapter.cc",
     "gpu_adapter.h",
+    "gpu_adapter_info.cc",
+    "gpu_adapter_info.h",
     "gpu_bind_group.cc",
     "gpu_bind_group.h",
     "gpu_bind_group_layout.cc",
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
index d8cb689..b50cf1a 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
@@ -10,9 +10,12 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_device_descriptor.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_request_adapter_options.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
+#include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/inspector/console_message.h"
 #include "third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu.h"
+#include "third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_supported_features.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_supported_limits.h"
@@ -90,6 +93,15 @@
   GetProcs().adapterGetProperties(handle_, &properties);
   is_fallback_adapter_ = properties.adapterType == WGPUAdapterType_CPU;
 
+  vendor_ = properties.vendorName;
+  architecture_ = properties.architecture;
+  if (properties.deviceID <= 0xffff) {
+    device_ = String::Format("0x%04x", properties.deviceID);
+  } else {
+    device_ = String::Format("0x%08x", properties.deviceID);
+  }
+  description_ = properties.name;
+
   WGPUSupportedLimits limits = {};
   GetProcs().adapterGetLimits(handle_, &limits);
   limits_ = MakeGarbageCollected<GPUSupportedLimits>(limits);
@@ -209,6 +221,36 @@
   return promise;
 }
 
+ScriptPromise GPUAdapter::requestAdapterInfo(
+    ScriptState* script_state,
+    const Vector<String>& unmask_hints) {
+  auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
+  ScriptPromise promise = resolver->Promise();
+
+  // If any unmask hints have been given, the method must also have been called
+  // during user activation. If not, reject the promise.
+  if (unmask_hints.size()) {
+    LocalDOMWindow* domWindow = gpu_->DomWindow();
+    if (!domWindow ||
+        !LocalFrame::HasTransientUserActivation(domWindow->GetFrame())) {
+      resolver->Reject(MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kNotAllowedError,
+          "requestAdapterInfo requires user activation if any unmaskHints are "
+          "given."));
+      return promise;
+    }
+  }
+
+  // TODO(dawn:1427): If unmask_hints are given ask the user for consent to
+  // expose more information and, if given, include device_ and description_ in
+  // the returned GPUAdapterInfo.
+  auto* adapter_info =
+      MakeGarbageCollected<GPUAdapterInfo>(vendor_, architecture_, "", "");
+  resolver->Resolve(adapter_info);
+
+  return promise;
+}
+
 void GPUAdapter::Trace(Visitor* visitor) const {
   visitor->Trace(gpu_);
   visitor->Trace(features_);
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.h b/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
index 9c507b6..983a644 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
@@ -44,6 +44,9 @@
   ScriptPromise requestDevice(ScriptState* script_state,
                               GPUDeviceDescriptor* descriptor);
 
+  ScriptPromise requestAdapterInfo(ScriptState* script_state,
+                                   const Vector<String>& unmask_hints);
+
   // Console warnings should generally be attributed to a GPUDevice, but in
   // cases where there is no device warnings can be surfaced here. It's expected
   // that very few warning will need to be shown for a given adapter, and as a
@@ -66,6 +69,11 @@
   Member<GPUSupportedLimits> limits_;
   Member<GPUSupportedFeatures> features_;
 
+  String vendor_;
+  String architecture_;
+  String device_;
+  String description_;
+
   static constexpr int kMaxAllowedConsoleWarnings = 50;
   int allowed_console_warnings_remaining_ = kMaxAllowedConsoleWarnings;
 };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl b/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
index 0d2c36c..a76d9114 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
@@ -14,4 +14,5 @@
     readonly attribute boolean isFallbackAdapter;
 
     [CallWith=ScriptState] Promise<GPUDevice> requestDevice(optional GPUDeviceDescriptor descriptor = {});
+    [CallWith=ScriptState] Promise<GPUAdapterInfo> requestAdapterInfo(optional sequence<DOMString> unmaskHints = []);
 };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.cc b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.cc
new file mode 100644
index 0000000..f4b92cd
--- /dev/null
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.cc
@@ -0,0 +1,34 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h"
+
+namespace blink {
+
+GPUAdapterInfo::GPUAdapterInfo(const String& vendor,
+                               const String& architecture,
+                               const String& device,
+                               const String& description)
+    : vendor_(vendor),
+      architecture_(architecture),
+      device_(device),
+      description_(description) {}
+
+const String& GPUAdapterInfo::vendor() const {
+  return vendor_;
+}
+
+const String& GPUAdapterInfo::architecture() const {
+  return architecture_;
+}
+
+const String& GPUAdapterInfo::device() const {
+  return device_;
+}
+
+const String& GPUAdapterInfo::description() const {
+  return description_;
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h
new file mode 100644
index 0000000..8eba07b
--- /dev/null
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h
@@ -0,0 +1,40 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_INFO_H_
+#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_INFO_H_
+
+#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
+#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+
+namespace blink {
+
+class GPUAdapterInfo : public ScriptWrappable {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  GPUAdapterInfo(const String& vendor,
+                 const String& architecture,
+                 const String& device,
+                 const String& description);
+
+  GPUAdapterInfo(const GPUAdapterInfo&) = delete;
+  GPUAdapterInfo& operator=(const GPUAdapterInfo&) = delete;
+
+  // gpu_adapter_info.idl
+  const String& vendor() const;
+  const String& architecture() const;
+  const String& device() const;
+  const String& description() const;
+
+ private:
+  String vendor_;
+  String architecture_;
+  String device_;
+  String description_;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_INFO_H_
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl
new file mode 100644
index 0000000..b19383b96
--- /dev/null
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl
@@ -0,0 +1,15 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// https://gpuweb.github.io/gpuweb/
+
+[
+    Exposed(Window WebGPU, DedicatedWorker WebGPU),
+    SecureContext
+] interface GPUAdapterInfo {
+  readonly attribute DOMString vendor;
+  readonly attribute DOMString architecture;
+  readonly attribute DOMString device;
+  readonly attribute DOMString description;
+};
diff --git a/third_party/blink/web_tests/SlowTests b/third_party/blink/web_tests/SlowTests
index 3a90e041..c2eeca9 100644
--- a/third_party/blink/web_tests/SlowTests
+++ b/third_party/blink/web_tests/SlowTests
@@ -69,8 +69,8 @@
 webkit.org/b/90488 [ Debug ] inspector-protocol/* [ Slow ]
 webkit.org/b/90488 [ Debug ] http/tests/inspector-protocol/* [ Slow ]
 
-# Conversion tests are slow on Windows
-crbug.com/1306848 [ Win ] http/tests/inspector-protocol/conversion/* [ Slow ]
+# Attribution Reporting tests are slow on Windows
+crbug.com/1306848 [ Win ] http/tests/inspector-protocol/attribution-reporting/* [ Slow ]
 
 # DevTools tests cause flakes on slow hardware in Release as well.
 crbug.com/1063051 [ Release ] http/tests/devtools/* [ Slow ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index c24387a..05e95600 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -3212,6 +3212,34 @@
 crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 [ Linux ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac11 ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac12 ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac12-arm64 ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Win ] external/wpt/css/css-lists/counter-list-item-slot-order.html [ Failure ]
+crbug.com/626703 [ Linux ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Mac11 ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Mac12 ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Mac12-arm64 ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Win ] external/wpt/css/css-lists/counter-order-display-contents.html [ Failure ]
+crbug.com/626703 [ Linux ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Mac11 ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Mac12 ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Mac12-arm64 ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Win ] external/wpt/css/css-lists/counter-slot-order-scoping.html [ Failure ]
+crbug.com/626703 [ Linux ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac11 ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac12 ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Mac12-arm64 ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
+crbug.com/626703 [ Win ] external/wpt/css/css-lists/counter-slot-order.html [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/css/css-color/color-mix-currentcolor-001.html [ Failure ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-color/color-mix-currentcolor-001.html [ Failure ]
 crbug.com/626703 [ Mac11 ] external/wpt/css/css-color/color-mix-currentcolor-001.html [ Failure ]
@@ -6925,5 +6953,5 @@
 crbug.com/1327764 inspector-protocol/overlay/overlay-persistent-overlays.js [ Failure Pass ]
 
 # Sheriff 2022-05-26
-crbug.com/1322004 http/tests/inspector-protocol/conversion/insecure-subresource.js [ Pass Timeout ]
+crbug.com/1322004 http/tests/inspector-protocol/attribution-reporting/insecure-subresource.js [ Pass Timeout ]
 crbug.com/1329596 virtual/gpu-rasterization/images/jpeg-with-non-interleaved-dc-channels.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/Version b/third_party/blink/web_tests/external/Version
index af81950..d7c6e684d 100644
--- a/third_party/blink/web_tests/external/Version
+++ b/third_party/blink/web_tests/external/Version
@@ -1 +1 @@
-Version: f6b88096240e877f8e7d49f4f275be114dc8c3d5
+Version: b45b46ee55aaf2ed2a3bc78845d71cf08da316a2
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index b1d9570..f65a496 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -87022,6 +87022,19 @@
         {}
        ]
       ],
+      "table-collapsed-borders-paint-at-boundary.tentative.html": [
+       "0227b571a248a1843e5fd5abadce177f64951caa",
+       [
+        null,
+        [
+         [
+          "/css/css-break/table/table-collapsed-borders-paint-at-boundary-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
       "table-collapsed-borders-paint-htb-ltr.html": [
        "60e146296b226faf1914715aa837a86ac497ce25",
        [
@@ -98700,6 +98713,19 @@
        ],
        {}
       ]
+     ],
+     "quotes-slot-scoping.html": [
+      "3caeabef4eccc76d8703825bf5db09e129186987",
+      [
+       null,
+       [
+        [
+         "/css/css-content/quotes-slot-scoping-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
      ]
     },
     "css-counter-styles": {
@@ -133130,6 +133156,19 @@
        {}
       ]
      ],
+     "counter-list-item-slot-order.html": [
+      "09bdb25e0f9c2d1c248086c2b5ecbbaf3b6b6480",
+      [
+       null,
+       [
+        [
+         "/css/css-lists/counter-list-item-slot-order-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "counter-list-item.html": [
       "c0b89d49fd0bb38cacb71e7d875ba29bab31da70",
       [
@@ -133143,6 +133182,19 @@
        {}
       ]
      ],
+     "counter-order-display-contents.html": [
+      "70dbc5de8ed09725d42fcce595b4d8efab093ae0",
+      [
+       null,
+       [
+        [
+         "/css/css-lists/counter-order-display-contents-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "counter-reset-increment-set-display-contents.html": [
       "6508df0da150a92e42032c546f2cf4ac6c171859",
       [
@@ -133260,6 +133312,32 @@
        {}
       ]
      ],
+     "counter-slot-order-scoping.html": [
+      "ca87761901aa0abdcc6ef6166e5775dfc3efeac2",
+      [
+       null,
+       [
+        [
+         "/css/css-lists/counter-slot-order-scoping-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "counter-slot-order.html": [
+      "e481402911c527237a71aeaae66df54085200d58",
+      [
+       null,
+       [
+        [
+         "/css/css-lists/counter-slot-order-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "foo-counter-reversed-006a.html": [
       "028f1fe19998c8eb70cc1d98d6d6f9ee852b7b03",
       [
@@ -261265,6 +261343,10 @@
        "0fde8bacc51d23a2065246727daf90fef8885f0c",
        []
       ],
+      "table-collapsed-borders-paint-at-boundary-ref.html": [
+       "04d643437fe72c60d0f5f46342e6038d9e268eb6",
+       []
+      ],
       "table-collapsed-borders-paint-htb-ltr-ref.html": [
        "1841ff582124124a97bc49046abf9ab6f2377354",
        []
@@ -262894,6 +262976,10 @@
       "8294ae672d15643b1d8eeb8c9914fa93fe4e879a",
       []
      ],
+     "quotes-slot-scoping-ref.html": [
+      "e3e907cba589deb2e2c950a0a109cc639d0d16bd",
+      []
+     ],
      "reference": {
       "quotes-001-ref.html": [
        "8e26721e03591825325d0cf3fc81bac3b0ec991b",
@@ -276528,6 +276614,14 @@
       "70d2febaae29ac4fd255c37b310d638374bd3d17",
       []
      ],
+     "counter-list-item-slot-order-ref.html": [
+      "3d045965de805bf16513ac9f6dfd6d6ab602ffc7",
+      []
+     ],
+     "counter-order-display-contents-ref.html": [
+      "a876204f6662323754546406e557a934807571ca",
+      []
+     ],
      "counter-set-001-ref.html": [
       "301197904a5af79eb5024bb7d97ac161e5ada3ad",
       []
@@ -276536,6 +276630,14 @@
       "26d11b32f64a170f65a37d572950fe37e78594bc",
       []
      ],
+     "counter-slot-order-ref.html": [
+      "a876204f6662323754546406e557a934807571ca",
+      []
+     ],
+     "counter-slot-order-scoping-ref.html": [
+      "c78bb263a935e905a07e6405de367b0a162dae2b",
+      []
+     ],
      "inline-block-list-marker-ref.html": [
       "6a36181107e81a1651d7939ebc94a525bbcc262b",
       []
@@ -494092,6 +494194,20 @@
        {}
       ]
      ],
+     "cross-document-getState-undefined.html": [
+      "cbd5cdd52ed985b4769ac805c43293ccfab9f8cb",
+      [
+       null,
+       {}
+      ]
+     ],
+     "cross-document-getState.html": [
+      "aedbc471e0540e22f67ae72715a84499165b0ed7",
+      [
+       null,
+       {}
+      ]
+     ],
      "cross-document-location-api.html": [
       "395d95c6fbe64556e9de5869fd48e368190b66a7",
       [
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html
new file mode 100644
index 0000000..9159225
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<head>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+</head>
+
+<body>
+<iframe></iframe>
+<script>
+promise_test(async t => {
+  // Wait for the page to load + one task so that navigations from here on are
+  // not done in "replace" mode.
+  await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0));
+  const iframe = document.querySelector('iframe');
+
+  iframe.srcdoc = `
+    <h1>This is a dummy page that should not store the inherited policy
+    container in this history entry</h1>
+  `;
+
+  await new Promise(resolve => iframe.onload = () => t.step_timeout(resolve, 0));
+
+  // Navigate the iframe away.
+  iframe.contentWindow.location.href = "/common/blank.html";
+  await new Promise(resolve => iframe.onload = resolve);
+
+  // Tighten the outer page's security policy.
+  const meta = document.createElement("meta");
+  meta.setAttribute("http-equiv", "Content-Security-Policy");
+  meta.setAttribute("content", "img-src 'none'");
+  document.head.append(meta);
+
+  // Navigate the iframe back to the `about:srcdoc` page (this should work
+  // independent of whether the implementation stores the srcdoc contents in the
+  // history entry or reclaims it from the attribute).
+  iframe.contentWindow.history.back();
+  await new Promise(resolve => iframe.onload = resolve);
+
+  const img = iframe.contentDocument.createElement('img');
+
+  const promise = new Promise((resolve, reject) => {
+    iframe.contentDocument.onsecuritypolicyviolation = resolve;
+    // First the security policy violation should be reported, which will finish
+    // this test. If for some reason the error event is fired without the
+    // violation being reported, something else went wrong—fail the test.
+    img.error = e => {
+      reject(new Error("The srcdoc iframe's img failed to load but not due to " +
+                       "a CSP violation"));
+    };
+    img.onload = e => {
+      reject(new Error("The srcdoc iframe's img loaded correctly, bypassing " +
+                       "the parent's update CSP"));
+    };
+  });
+  // The srcdoc iframe tries to load an image, and should generate a security
+  // policy violation.
+  img.src = "/common/square.png";
+
+  return promise;
+});
+</script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/keyframes-allowed-properties.html b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/keyframes-allowed-properties.html
new file mode 100644
index 0000000..f682920
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/keyframes-allowed-properties.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Tests which properties are allowed in @keyframes</title>
+<link rel="help" href="https://drafts.csswg.org/css-animations/#typedef-keyframe-block">
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style id=sheet>
+@keyframes foo {
+  from {
+    /* Non-animation properties are allowed */
+    margin-top: 10px;
+    /* animation-timing-function is specially allowed */
+    animation-timing-function: ease;
+    /* All other animation properties are not allowed */
+    animation-name: none;
+    animation-duration: 1s;
+    animation-iteration-count: 1;
+    animation-direction: normal;
+    animation-play-state: running;
+    animation-delay: 0s;
+    animation-fill-mode: none;
+    /* The animation shorthand is also not allowed */
+    animation: bar 1s infinite;
+  }
+}
+</style>
+<script>
+test(() => {
+  const keyframe = sheet.sheet.cssRules[0].cssRules[0];
+  const style = keyframe.style;
+  assert_equals(style.length, 2);
+  assert_equals(style.marginTop, '10px');
+  assert_equals(style.animationTimingFunction, 'ease');
+}, '@keyframes allows all non-animation properties and animation-timing-function');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping-ref.html b/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping-ref.html
new file mode 100644
index 0000000..e3e907cb
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Quote scope Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-content-3/#quote-values">
+    <style>
+      q {
+        quotes: '1''1''2''2''3''3';
+      }
+    </style>
+  </head>
+  <body>
+    <q>
+      <q>Quote</q>
+    </q>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping.html b/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping.html
new file mode 100644
index 0000000..3caeabef
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-content/quotes-slot-scoping.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Quote scope Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-content-3/#quote-values">
+    <link rel="match" href="quotes-slot-scoping-ref.html">
+  </head>
+
+  <body>
+    <div id="host">
+      <q slot="quote">Quote</q>
+    </div>
+
+    <script>
+      function makeStyle() {
+        let style = document.createElement('style');
+        style.textContent = `
+            q {
+              quotes: '1' '1' '2' '2' '3' '3';
+            }
+        `;
+         return style;
+      }
+      document.body.appendChild(makeStyle());
+
+      const shadowRoot = document
+           .getElementById('host')
+           .attachShadow({mode: 'open'});
+      shadowRoot.innerHTML = `
+      <q>
+        <slot name="quote"></slot>
+      </q>
+      `;
+      shadowRoot.appendChild(makeStyle());
+    </script>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order-ref.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order-ref.html
new file mode 100644
index 0000000..3d045965
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>HTML LI element: counter order with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <style>
+      li::before { content: counters(list-item,'.') ' '; }
+    </style>
+  </head>
+  <body>
+
+    <ol>
+    <li>One</li>
+    <li>Two</li>
+      <ol>
+        <li>Two Point One</li>
+      </ol>
+    </ol>
+
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order.html
new file mode 100644
index 0000000..09bdb25e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-list-item-slot-order.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>HTML LI element: counter order with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <link rel="match" href="counter-list-item-slot-order-ref.html">
+    <style>
+      li::before { content: counters(list-item,'.') ' '; }
+    </style>
+  </head>
+
+  <body>
+    <div id="host">
+      <li slot="list3">Two Point One</li>
+      <li slot="list2">Two</li>
+      <li slot="list1">One</li>
+    </div>
+
+    <script>
+      const shadowRoot = document
+          .getElementById('host')
+          .attachShadow({mode: 'open'});
+      shadowRoot.innerHTML = `
+          <ol>
+            <slot name="list1"></slot>
+            <slot name="list2"></slot>
+            <ol>
+                <slot name="list3"></slot>
+            </ol>
+          </ol>
+        `;
+    </script>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents-ref.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents-ref.html
new file mode 100644
index 0000000..a876204
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <style>
+      .counted {
+        counter-increment: section;
+      }
+
+      .counted::before {
+        content: "C=" counter(section) " ";
+      }
+    </style>
+  </head>
+
+  <body>
+
+  <div>
+    <div class="counted">One</div>
+    <div class="counted">Two</div>
+    <div class="counted">Three</div>
+  </div>
+
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents.html
new file mode 100644
index 0000000..70dbc5d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-order-display-contents.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order with "display: contents"</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <link rel="match" href="counter-order-display-contents-ref.html">
+  </head>
+
+  <body>
+    <style>
+      .counted {
+        counter-increment: section;
+      }
+
+      .counted::before {
+        content: "C=" counter(section) " ";
+      }
+    </style>
+    <div style="display: contents;">
+        <div class="counted">One</div>
+    </div>
+    <div style="display: contents;">
+        <div class="counted">Two</div>
+    </div>
+    <div style="display: contents;">
+        <div class="counted">Three</div>
+    </div>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-ref.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-ref.html
new file mode 100644
index 0000000..a876204
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <style>
+      .counted {
+        counter-increment: section;
+      }
+
+      .counted::before {
+        content: "C=" counter(section) " ";
+      }
+    </style>
+  </head>
+
+  <body>
+
+  <div>
+    <div class="counted">One</div>
+    <div class="counted">Two</div>
+    <div class="counted">Three</div>
+  </div>
+
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping-ref.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping-ref.html
new file mode 100644
index 0000000..c78bb26
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order and scope with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <style>
+      .counted {
+        counter-increment: section;
+      }
+
+      .reset {
+        counter-reset: section;
+      }
+
+      .counted::before {
+        content: "C=" counter(section) " ";
+      }
+    </style>
+  </head>
+
+  <body>
+
+  <div>
+    <div class="counted">One</div>
+    <div class="counted">Two</div>
+    <div class="counted">Three</div>
+    <div class="reset">Reset1</div>
+    <div class="counted">Four</div>
+    <div class="counted">Five</div>
+    <div class="counted">Six</div>
+    <div class="reset">Reset2</div>
+    <div class="counted">Seven</div>
+    <div class="counted">Eight</div>
+    <div class="counted">Nine</div>
+  </div>
+
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping.html
new file mode 100644
index 0000000..ca87761
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order-scoping.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order and scope with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <link rel="match" href="counter-slot-order-scoping-ref.html">
+  </head>
+
+  <body>
+    <div id="host">
+      <div class="counted" slot="content3">Three</div>
+      <div class="counted" slot="content1">One</div>
+
+      <div class="counted" slot="content6">Six</div>
+      <div class="counted" slot="content4">Four</div>
+
+      <div style="counter-reset: section;" slot="reset">Reset2</div>
+
+      <div class="counted" slot="content9">Nine</div>
+      <div class="counted" slot="content7">Seven</div>
+    </div>
+
+    <script>
+      function makeStyle() {
+        let style = document.createElement('style');
+        style.textContent = `
+          .counted {
+            counter-increment: section;
+          }
+
+          .counted::before {
+            content: "C=" counter(section) " ";
+          }
+        `;
+         return style;
+      }
+      document.body.appendChild(makeStyle());
+
+      const shadowRoot = document
+           .getElementById('host')
+           .attachShadow({mode: 'open'});
+      shadowRoot.innerHTML = `
+      <div>
+        <slot name="content1"></slot>
+        <div class="counted" slot="content2">Two</div>
+        <slot name="content3"></slot>
+
+        <div style="counter-reset: section;">Reset1</div>
+
+        <slot name="content4"></slot>
+        <div class="counted" slot="content5">Five</div>
+        <slot name="content6"></slot>
+
+        <slot name="reset"></slot>
+
+        <slot name="content7"></slot>
+        <div class="counted" slot="content8">Eight</div>
+        <slot name="content9"></slot>
+
+      </div>
+      `;
+      shadowRoot.appendChild(makeStyle());
+    </script>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order.html b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order.html
new file mode 100644
index 0000000..e481402
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/counter-slot-order.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS counter order and scope with Shadow DOM and SLOT</title>
+    <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
+    <link rel="help" href="https://www.w3.org/TR/css-lists-3/#inheriting-counters">
+    <link rel="match" href="counter-slot-order-ref.html">
+    <style>
+      .counted {
+        counter-increment: section;
+      }
+
+      .counted::before {
+        content: "C=" counter(section) " ";
+      }
+    </style>
+  </head>
+
+  <body>
+    <div id="host">
+      <div class="counted" slot="content3">Three</div>
+      <div class="counted" slot="content2">Two</div>
+      <div class="counted" slot="content1">One</div>
+    </div>
+
+    <script>
+      const shadowRoot = document
+          .getElementById('host')
+          .attachShadow({mode: 'open'});
+      shadowRoot.innerHTML = `
+      <div>
+        <slot name="content1"></slot>
+        <slot name="content2"></slot>
+        <slot name="content3"></slot>
+      </div>
+      `;
+    </script>
+
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-modify.html b/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-modify.html
new file mode 100644
index 0000000..8ce5d987
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-modify.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<title>Crash when going from non-viewport to viewport units</title>
+<link rel="help" href="https://crbug.com/1322613">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id="elem" style="padding-left: 1vh">Test passes if there is no crash.</div>
+
+<script>
+
+test((t) => {
+  assert_not_equals(getComputedStyle(elem).paddingLeft, '0px');
+  elem.style.paddingLeft = '0';
+  assert_equals(getComputedStyle(elem).paddingLeft, '0px');
+  elem.style.paddingLeft = '1vh';
+  assert_not_equals(getComputedStyle(elem).paddingLeft, '0px');
+});
+
+</script>
diff --git a/third_party/blink/web_tests/fast/forms/resources/utils.js b/third_party/blink/web_tests/fast/forms/resources/utils.js
new file mode 100644
index 0000000..c4f38fc
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/resources/utils.js
@@ -0,0 +1,41 @@
+'use strict';
+
+function waitForEvent(target, type, options) {
+  return new Promise((resolve, reject) => {
+    target.addEventListener(type, resolve, options);
+  });
+}
+
+function waitForAnimationFrame(w) {
+  let targetWindow = w || window;
+  return new Promise((resolve, reject) => {
+    targetWindow.requestAnimationFrame(resolve);
+  });
+}
+
+function waitForEvent(target, type, options) {
+  return new Promise((resolve, reject) => {
+    target.addEventListener(type, resolve, options);
+  });
+}
+
+function waitForLoad(target) {
+  return waitForEvent(target, 'load');
+}
+
+function timeOut(test, ms) {
+  return new Promise((resolve, reject) => {
+    test.step_timeout(resolve, ms);
+  });
+}
+
+// If an element with autofocus is connected to a document and this function
+// is called, the autofocus result is deterministic after returning from the
+// function.
+// Exception: If the document has script-blocking style sheets, this function
+// doesn't work well.
+async function waitUntilStableAutofocusState(w) {
+  let targetWindow = w || window;
+  // Awaiting one animation frame is an easy way to determine autofocus state.
+  await waitForAnimationFrame(targetWindow);
+}
diff --git a/third_party/blink/web_tests/fast/forms/state-restore-before-pageshow.html b/third_party/blink/web_tests/fast/forms/state-restore-before-pageshow.html
index 0d5028e80..eea6d40 100644
--- a/third_party/blink/web_tests/fast/forms/state-restore-before-pageshow.html
+++ b/third_party/blink/web_tests/fast/forms/state-restore-before-pageshow.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <script src="../../resources/testharness.js"></script>
 <script src="../../resources/testharnessreport.js"></script>
-<script src="../../external/wpt/html/interaction/focus/the-autofocus-attribute/resources/utils.js"></script>
+<script src="resources/utils.js"></script>
 <body>
 <iframe src="resources/state-restore-before-pageshow-frame.html"></iframe>
 <script>
diff --git a/third_party/blink/web_tests/fast/forms/state-restore-dynamic-controls.html b/third_party/blink/web_tests/fast/forms/state-restore-dynamic-controls.html
index d7254917..96aa5069 100644
--- a/third_party/blink/web_tests/fast/forms/state-restore-dynamic-controls.html
+++ b/third_party/blink/web_tests/fast/forms/state-restore-dynamic-controls.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <script src="../../resources/testharness.js"></script>
 <script src="../../resources/testharnessreport.js"></script>
-<script src="../../external/wpt/html/interaction/focus/the-autofocus-attribute/resources/utils.js"></script>
+<script src="resources/utils.js"></script>
 <body>
 <iframe src="resources/state-restore-dynamic-controls-frame.html"></iframe>
 <script>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-attributionsrc.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-attributionsrc.js
similarity index 86%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-attributionsrc.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-attributionsrc.js
index c0febca..13982289 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-attributionsrc.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-attributionsrc.js
@@ -8,7 +8,7 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'https://devtools.test:8443/inspector-protocol/conversion/resources/permissions-policy-no-conversion-measurement.php');
+      'https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/permissions-policy-no-conversion-measurement.php');
 
   await page.loadHTML(`
   <a id="adlink" href="https://a.com"
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-subresource.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-subresource.js
similarity index 72%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-subresource.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-subresource.js
index f04cde0..64de605 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/disabled-permission-policy-subresource.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-subresource.js
@@ -8,10 +8,10 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'https://devtools.test:8443/inspector-protocol/conversion/resources/permissions-policy-no-conversion-measurement.php');
+      'https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/permissions-policy-no-conversion-measurement.php');
 
   await page.loadHTML(
-      `<img src="https://devtools.test:8443/inspector-protocol/conversion/resources/register-trigger.php">`);
+      `<img src="https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/register-trigger.php">`);
 
   const issuePromise = dp.Audits.onceIssueAdded();
   const issue = await issuePromise;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-anchor-attributionsrc.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-anchor-attributionsrc.js
similarity index 100%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-anchor-attributionsrc.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-anchor-attributionsrc.js
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-attributionsrc.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-attributionsrc.js
similarity index 89%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-attributionsrc.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-attributionsrc.js
index 07c8dee..936a5c3 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-attributionsrc.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-attributionsrc.js
@@ -8,7 +8,7 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'http://devtools.test:8000/inspector-protocol/conversion/resources/impression.html');
+      'http://devtools.test:8000/inspector-protocol/attribution-reporting/resources/impression.html');
 
   await page.loadHTML(`
   <a id="adlink" href="https://a.com"
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-subresource.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-subresource.js
similarity index 73%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-subresource.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-subresource.js
index 302a9463..d5fa873 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-context-subresource.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-context-subresource.js
@@ -8,10 +8,10 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'http://devtools.test:8000/inspector-protocol/conversion/resources/impression.html');
+      'http://devtools.test:8000/inspector-protocol/attribution-reporting/resources/impression.html');
 
   await page.loadHTML(
-      `<img src="https://devtools.test:8443/inspector-protocol/conversion/resources/register-trigger.php">`);
+      `<img src="https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/register-trigger.php">`);
 
   const issuePromise = dp.Audits.onceIssueAdded();
   const issue = await issuePromise;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-subresource.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-subresource.js
similarity index 83%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-subresource.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-subresource.js
index 5b68eccb..f46aa2346 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/insecure-subresource.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/insecure-subresource.js
@@ -9,7 +9,7 @@
   await dp.Audits.enable();
 
   await page.loadHTML(
-      `<img src="http://devtools.test:8000/inspector-protocol/conversion/resources/register-trigger.php">`);
+      `<img src="http://devtools.test:8000/inspector-protocol/attribution-reporting/resources/register-trigger.php">`);
 
   const issuePromise = dp.Audits.onceIssueAdded();
   const issue = await issuePromise;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-aggregatable-source-header.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-aggregatable-source-header.js
similarity index 79%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-aggregatable-source-header.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-aggregatable-source-header.js
index 4487243..848f528 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-aggregatable-source-header.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-aggregatable-source-header.js
@@ -8,10 +8,10 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'https://devtools.test:8443/inspector-protocol/conversion/resources/impression.html');
+      'https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/impression.html');
 
   await page.loadHTML(
-      `<img attributionsrc="https://devtools.test:8443/inspector-protocol/conversion/resources/register-invalid-aggregatable-source.php">`);
+      `<img attributionsrc="https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/register-invalid-aggregatable-source.php">`);
 
   const issuePromise = dp.Audits.onceIssueAdded();
   const issue = await issuePromise;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-source-header.js b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-source-header.js
similarity index 79%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-source-header.js
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-source-header.js
index a9ae837e..ec710305 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/invalid-source-header.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/invalid-source-header.js
@@ -8,10 +8,10 @@
 
   await dp.Audits.enable();
   await page.navigate(
-      'https://devtools.test:8443/inspector-protocol/conversion/resources/impression.html');
+      'https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/impression.html');
 
   await page.loadHTML(
-      `<img attributionsrc="https://devtools.test:8443/inspector-protocol/conversion/resources/register-invalid-source.php">`);
+      `<img attributionsrc="https://devtools.test:8443/inspector-protocol/attribution-reporting/resources/register-invalid-source.php">`);
 
   const issuePromise = dp.Audits.onceIssueAdded();
   const issue = await issuePromise;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/permissions-policy-no-conversion-measurement.php b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/permissions-policy-no-conversion-measurement.php
similarity index 100%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/permissions-policy-no-conversion-measurement.php
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/permissions-policy-no-conversion-measurement.php
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-invalid-aggregatable-source.php b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-invalid-aggregatable-source.php
similarity index 100%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-invalid-aggregatable-source.php
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-invalid-aggregatable-source.php
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-invalid-source.php b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-invalid-source.php
similarity index 100%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-invalid-source.php
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-invalid-source.php
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-trigger.php b/third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-trigger.php
similarity index 100%
rename from third_party/blink/web_tests/http/tests/inspector-protocol/conversion/resources/register-trigger.php
rename to third_party/blink/web_tests/http/tests/inspector-protocol/attribution-reporting/resources/register-trigger.php
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https.js b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https.js
index f3992aa..15e2355 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https.js
@@ -1,7 +1,8 @@
-(async function (testRunner) {
-  const { session, dp } = await testRunner.startURL('resources/page-with-fenced-frame.php',
-    'Tests that global commands such as captureSnapshot, captureScreenshot, or getAppManifest'+
-    'returns an error with Fenced Frame target');
+(async function(testRunner) {
+  const {session, dp} = await testRunner.startURL(
+      'resources/page-with-fenced-frame.php',
+      'Tests that global commands such as captureSnapshot, captureScreenshot, getAppManifest, startScreencast, or setDownloadBehavior ' +
+          'returns an error with Fenced Frame target');
   await dp.Page.enable();
 
   dp.Target.setAutoAttach({ autoAttach: true, waitForDebuggerOnStart: false, flatten: true });
@@ -24,6 +25,8 @@
   await checkCommand('Page.captureSnapshot', {});
   await checkCommand('Page.captureScreenshot', {});
   await checkCommand('Page.getAppManifest', {});
+  await checkCommand('Page.startScreencast', {});
+  await checkCommand('Page.setDownloadBehavior', {behavior: 'deny'});
 
   testRunner.completeTest();
 });
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt
new file mode 100644
index 0000000..b817744
--- /dev/null
+++ b/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL iframe-srcdoc-history-inheritance promise_test: Unhandled rejection with value: object "Error: The srcdoc iframe's img loaded correctly, bypassing the parent's update CSP"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/css/cssom/rule-restrictions-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/css/cssom/rule-restrictions-expected.txt
index 9e10e10..75023037e24 100644
--- a/third_party/blink/web_tests/platform/generic/external/wpt/css/cssom/rule-restrictions-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/external/wpt/css/cssom/rule-restrictions-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 FAIL @page assert_equals: Transform doesn't quite apply to pages expected 1 but got 2
-FAIL @keyframe assert_equals: animation-name doesn't apply to keyframes expected 1 but got 2
+PASS @keyframe
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/disabled-permission-policy-attributionsrc-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-attributionsrc-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/disabled-permission-policy-attributionsrc-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-attributionsrc-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/disabled-permission-policy-subresource-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-subresource-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/disabled-permission-policy-subresource-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/disabled-permission-policy-subresource-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-anchor-attributionsrc-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-anchor-attributionsrc-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-anchor-attributionsrc-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-anchor-attributionsrc-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-context-attributionsrc-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-context-attributionsrc-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-context-attributionsrc-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-context-attributionsrc-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-context-subresource-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-context-subresource-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-context-subresource-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-context-subresource-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-subresource-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-subresource-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/insecure-subresource-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/insecure-subresource-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/invalid-aggregatable-source-header-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/invalid-aggregatable-source-header-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/invalid-aggregatable-source-header-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/invalid-aggregatable-source-header-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/invalid-source-header-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/invalid-source-header-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/conversion/invalid-source-header-expected.txt
rename to third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/attribution-reporting/invalid-source-header-expected.txt
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https-expected.txt
index 5ba5be5..0d86bae 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/global-commands-fenced-frame.https-expected.txt
@@ -1,5 +1,7 @@
-Tests that global commands such as captureSnapshot, captureScreenshot, or getAppManifestreturns an error with Fenced Frame target
+Tests that global commands such as captureSnapshot, captureScreenshot, getAppManifest, startScreencast, or setDownloadBehavior returns an error with Fenced Frame target
 Page.captureSnapshot: Command can only be executed on top-level targets
 Page.captureScreenshot: Command can only be executed on top-level targets
 Page.getAppManifest: Command can only be executed on top-level targets
+Page.startScreencast: Command can only be executed on top-level targets
+Page.setDownloadBehavior: Command can only be executed on top-level targets
 
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/handleJavaScriptDialog-fenced-frame.https-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/handleJavaScriptDialog-fenced-frame.https-expected.txt
index 13a764a..97365efa 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/handleJavaScriptDialog-fenced-frame.https-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/handleJavaScriptDialog-fenced-frame.https-expected.txt
@@ -1,4 +1,4 @@
 Tests that Page.handleJavaScriptDialog() in a fenced frame is not allowed.
 Page.handleJavaScriptDialog() from a fenced frame:
-PASS: This is only supported for top-level frames
+PASS: Command can only be executed on top-level targets
 
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/reload-fenced-frame.https-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/reload-fenced-frame.https-expected.txt
index 4bb1f18..7fae9152 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/reload-fenced-frame.https-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/reload-fenced-frame.https-expected.txt
@@ -1,4 +1,4 @@
 Tests that Page.reload() in a fenced frame is not allowed.
 Page.reload() from a fenced frame:
-PASS: Reload is only supported for top-level frames
+PASS: Command can only be executed on top-level targets
 
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/setWebLifecycleState-fenced-frame.https-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/setWebLifecycleState-fenced-frame.https-expected.txt
index c2f10b7..00fd07a 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/setWebLifecycleState-fenced-frame.https-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/fenced-frame/setWebLifecycleState-fenced-frame.https-expected.txt
@@ -1,4 +1,4 @@
 Tests that Page.setWebLifecycleState() in a fenced frame is not allowed.
 Page.setWebLifecycleState() from a fenced frame:
-PASS: This is only supported for top-level frames
+PASS: Command can only be executed on top-level targets
 
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/main-target-commands-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/main-target-commands-expected.txt
index 2303c09d..3ae8f29 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/main-target-commands-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/main-target-commands-expected.txt
@@ -1,6 +1,6 @@
 Tests for certain commands are only available at the top-level target
 Page.captureSnapshot: Command can only be executed on top-level targets
 Page.captureScreenshot: Command can only be executed on top-level targets
-Page.startScreencast: Internal error
+Page.startScreencast: Command can only be executed on top-level targets
 Page.setDownloadBehavior: Command can only be executed on top-level targets
 
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html b/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html
index 150ef761..8baefb3 100644
--- a/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html
+++ b/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html
@@ -2161,8 +2161,8 @@
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:index_buffer_OOB:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:vertex_buffer_OOB:*'>
-<meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:last_buffer_setting_take_account:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:buffer_binding_overlap:*'>
+<meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,draw:last_buffer_setting_take_account:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,x_y_width_height_nonnegative:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,xy_rect_contained_in_attachment:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,depth_rangeAndOrder:*'>
diff --git a/third_party/libgav1/README.chromium b/third_party/libgav1/README.chromium
index e5bef9d..7e26175f 100644
--- a/third_party/libgav1/README.chromium
+++ b/third_party/libgav1/README.chromium
@@ -2,9 +2,9 @@
 Short Name: libgav1
 URL: https://chromium.googlesource.com/codecs/libgav1/
 Version: 0
-Date: Monday May 16 2022
+Date: Thursday May 26 2022
 Branch: master
-Commit: 76a86fcb8cdc93d651eb0f001c3ffda9c290c420
+Commit: 38ca0c62d9079820bbb872d81738770c0a28ae6d
 License: Apache 2.0
 License File: src/LICENSE
 Security Critical: yes
diff --git a/third_party/webgpu-cts/resource_files.txt b/third_party/webgpu-cts/resource_files.txt
index 812c137c..f9b6c36 100644
--- a/third_party/webgpu-cts/resource_files.txt
+++ b/third_party/webgpu-cts/resource_files.txt
@@ -1,6 +1,8 @@
 Di-3d.png
 README.md
+red-green.bt2020.vp9.webm
 red-green.bt601.vp9.webm
+red-green.bt709.vp9.webm
 red-green.mp4
 red-green.theora.ogv
 red-green.webmvp8.webm
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 3ad316d8..1a4b452e 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -98234,7 +98234,6 @@
   <int value="25" label="InstallTaskDestroyed"/>
   <int value="26" label="UpdateTaskFailed"/>
   <int value="27" label="AppNotInRegistrarAfterCommit"/>
-  <int value="28" label="HaltedBySyncUninstall"/>
 </enum>
 
 <enum name="WebAppInstallSource">
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index eca3a8f..cf270c87 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -10543,7 +10543,6 @@
 <histogram_suffixes name="WebappType" separator=".">
   <suffix name="Default" label="Default-installed app"/>
   <suffix name="Policy" label="Policy-installed app"/>
-  <suffix name="Sync" label="Sync-installed app"/>
   <suffix base="true" name="System" label="System-installed app"/>
   <affected-histogram name="Webapp.InstallResult"/>
 </histogram_suffixes>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index 53fcd1c..af921a5 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -3284,6 +3284,43 @@
   </summary>
 </histogram>
 
+<histogram name="Conversions.AggregatableReport.DroppedKeysPercentage"
+    units="%" expires_after="2022-11-23">
+  <owner>linnan@chromium.org</owner>
+  <owner>johnidel@chromium.org</owner>
+  <owner>measurement-api-dev+metrics@google.com</owner>
+  <summary>
+    Measures the percentage of aggregation keys dropped per trigger. Recorded
+    when creating the aggregatable histogram. Not recorded if no aggregation
+    keys were declared.
+  </summary>
+</histogram>
+
+<histogram name="Conversions.AggregatableReport.FilteredTriggerDataPercentage"
+    units="%" expires_after="2022-11-23">
+  <owner>linnan@chromium.org</owner>
+  <owner>johnidel@chromium.org</owner>
+  <owner>measurement-api-dev+metrics@google.com</owner>
+  <summary>
+    Measures the percentage of aggregatable trigger data filtered per trigger.
+    Recorded when creating the aggregatable histogram. Not recorded if no
+    trigger data was declared. This is effectively how many trigger side
+    dimensions the reporter declared, but were not used for histogram
+    generation.
+  </summary>
+</histogram>
+
+<histogram name="Conversions.AggregatableReport.NumContributionsPerReport"
+    units="contribution" expires_after="2022-11-23">
+  <owner>linnan@chromium.org</owner>
+  <owner>johnidel@chromium.org</owner>
+  <owner>measurement-api-dev+metrics@google.com</owner>
+  <summary>
+    Measures the number of aggregatable histogram contributions per report.
+    Recorded when creating the aggregatable histogram.
+  </summary>
+</histogram>
+
 <histogram name="Conversions.AggregatableReport.ReportSendOutcome"
     enum="ConversionReportSendOutcome" expires_after="2022-11-13">
   <obsolete>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml
index 1dccf59..ab60b6b 100644
--- a/tools/metrics/histograms/metadata/password/histograms.xml
+++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -1900,6 +1900,18 @@
   </summary>
 </histogram>
 
+<histogram
+    name="PasswordManager.NewlySavedPasswordHasEmptyUsername.{PasswordType}"
+    enum="Boolean" expires_after="2022-10-23">
+  <owner>khamutov@google.com</owner>
+  <owner>kolos@chromium.org</owner>
+  <summary>
+    Whether a newly saved password has an empty username. Recorded right before
+    a new credential is commited to the store.
+  </summary>
+  <token key="PasswordType" variants="PasswordType"/>
+</histogram>
+
 <histogram name="PasswordManager.NewlySavedPasswordIsGenerated"
     enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2022-10-23">
   <owner>nepper@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/webapps/histograms.xml b/tools/metrics/histograms/metadata/webapps/histograms.xml
index 3a94437..f0c956a0 100644
--- a/tools/metrics/histograms/metadata/webapps/histograms.xml
+++ b/tools/metrics/histograms/metadata/webapps/histograms.xml
@@ -438,19 +438,6 @@
   </summary>
 </histogram>
 
-<histogram name="WebApp.Install.SyncFallbackInstallInitiated"
-    enum="WebAppInstallResultCode" expires_after="M110">
-  <owner>dmurph@chromium.org</owner>
-  <owner>desktop-pwas-team@google.com</owner>
-  <summary>
-    This is recorded when a web app install from the sync system fails and the
-    fallback install is initiated. Sync installations happen when the sync
-    system tells the local client that a web app has been installed on the
-    profile on a different device. This often happens during startup. The value
-    is the error code for the regular install flow.
-  </summary>
-</histogram>
-
 <histogram name="Webapp.Install.UninstallEvent" enum="WebappUninstallSource"
     expires_after="2022-08-14">
   <owner>dmurph@chromium.org</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 3b80a51..9a9aed8 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,16 +5,16 @@
             "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "win": {
-            "hash": "bf1e019be579d5602acdd94a058aa88379866c1d",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/105e4c338e523b1974bfffb2422262736b91336e/trace_processor_shell.exe"
+            "hash": "0f0f7c039258a6034f576ed6a7054cfa9d1ee0bc",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/fecea55a5bc59c274e8200d06cd68260832d5591/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893",
             "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "mac": {
-            "hash": "0033d86be5f8a2574ade41cf2ab22286b09e1699",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/105e4c338e523b1974bfffb2422262736b91336e/trace_processor_shell"
+            "hash": "b4aca317482f24db77dd1027f8c5a9a25d42edac",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/fecea55a5bc59c274e8200d06cd68260832d5591/trace_processor_shell"
         },
         "mac_arm64": {
             "hash": "e1ad4861384b06d911a65f035317914b8cc975c6",
diff --git a/tools/style_variable_generator/base_generator.py b/tools/style_variable_generator/base_generator.py
index 0efa4e2..16215e0 100644
--- a/tools/style_variable_generator/base_generator.py
+++ b/tools/style_variable_generator/base_generator.py
@@ -10,7 +10,7 @@
 from style_variable_generator import path_overrides
 from style_variable_generator.color import Color
 from style_variable_generator.opacity import Opacity
-import copy
+from style_variable_generator.model import Modes, VariableType, ModeKeyedModel, OpacityModel, ColorModel, TypographyModel
 
 _FILE_PATH = os.path.dirname(os.path.realpath(__file__))
 
@@ -23,228 +23,6 @@
 sys.path.insert(1, _JINJA2_PATH)
 import jinja2
 
-
-class Modes:
-    LIGHT = 'light'
-    DARK = 'dark'
-    DEBUG = 'debug'
-    # The mode that colors will fallback to when not specified in a
-    # non-default mode. An error will be raised if a color in any mode is
-    # not specified in the default mode.
-    DEFAULT = LIGHT
-    ALL = [LIGHT, DARK, DEBUG]
-
-
-RESERVED_SUFFIXES = ['_' + s for s in Modes.ALL + ['rgb', 'inverted']]
-
-
-class VariableType:
-    COLOR = 'color'
-    OPACITY = 'opacity'
-    TYPOGRAPHY = 'typography'
-    UNTYPED_CSS = 'untyped_css'
-    ALL = [
-        COLOR,
-        OPACITY,
-        TYPOGRAPHY,
-        UNTYPED_CSS,
-    ]
-
-
-class ModeKeyedModel(object):
-    def __init__(self, generator):
-        self.variables = collections.OrderedDict()
-        self.generator = generator
-
-    def Add(self, name, value_obj, context):
-        self.generator.SetVariableContext(name, context)
-        if name not in self.variables:
-            self.variables[name] = {}
-
-        if isinstance(value_obj, dict):
-            for mode in value_obj:
-                value = self._CreateValue(value_obj[mode])
-                if mode == 'default':
-                    mode = Modes.DEFAULT
-                assert mode in Modes.ALL and mode not in self.variables[name]
-                self.variables[name][mode] = value
-        else:
-            self.variables[name][Modes.DEFAULT] = self._CreateValue(value_obj)
-
-    # Returns the value that |name| will have in |mode|. Resolves to the default
-    # mode's value if the a value for |mode| isn't specified. Always returns a
-    # value.
-    def Resolve(self, name, mode):
-        if mode in self.variables[name]:
-            return self.variables[name][mode]
-
-        return self.variables[name][Modes.DEFAULT]
-
-    def Flatten(self, resolve_missing=False):
-        '''Builds a name to variable dictionary for each mode.
-        If |resolve_missing| is true, colors that aren't specified in |mode|
-        will be resolved to their default mode value.'''
-        flattened = {}
-        for mode in Modes.ALL:
-            variables = collections.OrderedDict()
-            for name, mode_values in self.items():
-                if resolve_missing:
-                    variables[name] = self.Resolve(name, mode)
-                else:
-                    if mode in mode_values:
-                        variables[name] = mode_values[mode]
-            flattened[mode] = variables
-
-        return flattened
-
-    def keys(self):
-        return self.variables.keys()
-
-    def items(self):
-        return self.variables.items()
-
-    def __getitem__(self, key):
-        return self.variables[key]
-
-
-class OpacityModel(ModeKeyedModel):
-    '''A dictionary of opacity names to their values in each mode.
-       e.g OpacityModel['disabled_opacity'][Modes.LIGHT] = Opacity(...)
-    '''
-
-    def __init__(self, generator):
-        super(OpacityModel, self).__init__(generator)
-
-    # Returns a float from 0-1 representing the concrete value of |opacity|.
-    def ResolveOpacity(self, opacity, mode):
-        if opacity.a != -1:
-            return opacity
-
-        return self.ResolveOpacity(self.Resolve(opacity.var, mode), mode)
-
-    def _CreateValue(self, value):
-        return Opacity(value)
-
-
-class ColorModel(ModeKeyedModel):
-    '''A dictionary of color names to their values in each mode.
-       e.g ColorModel['blue'][Modes.LIGHT] = Color(...)
-    '''
-
-    def __init__(self, generator, opacity_model):
-        super(ColorModel, self).__init__(generator)
-        self.opacity_model = opacity_model
-
-    def Add(self, name, value_obj, context):
-        # If a color has generate_per_mode set, a separate variable will be
-        # created for each mode, suffixed by mode name.
-        # (e.g my_color_light, my_color_debug)
-        generate_per_mode = False
-
-        # If a color has generate_inverted set, a |color_name|_inverted will be
-        # generated which uses the dark color for light mode and vice versa.
-        generate_inverted = False
-        if isinstance(value_obj, dict):
-            generate_per_mode = value_obj.pop('generate_per_mode', None)
-            generate_inverted = value_obj.pop('generate_inverted', None)
-        elif self._CreateValue(value_obj).blended_colors:
-            # A blended color could evaluate to different colors in different
-            # modes, so add it to all the modes.
-            value_obj = {mode: value_obj for mode in Modes.ALL}
-
-        generated_context = dict(context)
-        generated_context['generated'] = True
-
-        if generate_per_mode or generate_inverted:
-            for mode, value in value_obj.items():
-                per_mode_name = name + '_' + mode
-                ModeKeyedModel.Add(self, per_mode_name, value,
-                                   generated_context)
-                value_obj[mode] = '$' + per_mode_name
-        if generate_inverted:
-            if Modes.LIGHT not in value_obj or Modes.DARK not in value_obj:
-                raise ValueError(
-                    'generate_inverted requires both dark and light modes to be'
-                    ' set')
-            ModeKeyedModel.Add(
-                self, name + '_inverted', {
-                    Modes.LIGHT: '$' + name + '_dark',
-                    Modes.DARK: '$' + name + '_light'
-                }, generated_context)
-
-        ModeKeyedModel.Add(self, name, value_obj, context)
-
-    # Returns a Color that is the final RGBA value for |name| in |mode|.
-    def ResolveToRGBA(self, name, mode):
-        return self._ResolveColorToRGBA(self.Resolve(name, mode), mode)
-
-    # Returns a Color that is the final RGBA value for |color| in |mode|.
-    def _ResolveColorToRGBA(self, color, mode):
-        if color.var:
-            return self.ResolveToRGBA(color.var, mode)
-
-        if len(color.blended_colors) == 2:
-            return self._BlendColors(color.blended_colors[0],
-                                     color.blended_colors[1], mode)
-
-        result = Color()
-        assert color.opacity
-        result.opacity = self.opacity_model.ResolveOpacity(color.opacity, mode)
-
-        rgb = color
-        if color.rgb_var:
-            rgb = self.ResolveToRGBA(color.RGBVarToVar(), mode)
-
-        (result.r, result.g, result.b) = (rgb.r, rgb.g, rgb.b)
-        return result
-
-    # Returns a Color that is the final RGBA value for |color_a| over |color_b|
-    # in |mode|.
-    def _BlendColors(self, color_a, color_b, mode):
-        # TODO(b/206887565): Check for circular references.
-        color_a_res = self._ResolveColorToRGBA(color_a, mode)
-        (alpha_a, r_a, g_a, b_a) = (color_a_res.opacity.a, color_a_res.r,
-                                    color_a_res.g, color_a_res.b)
-        color_b_res = self._ResolveColorToRGBA(color_b, mode)
-        (alpha_b, r_b, g_b, b_b) = (color_b_res.opacity.a, color_b_res.r,
-                                    color_b_res.g, color_b_res.b)
-
-        # Blend using the formula for "A over B" from
-        # https://wikipedia.org/wiki/Alpha_compositing.
-        alpha_out = alpha_a + (alpha_b * (1 - alpha_a))
-        r_out = round(
-            (r_a * alpha_a + r_b * alpha_b * (1 - alpha_a)) / alpha_out)
-        g_out = round(
-            (g_a * alpha_a + g_b * alpha_b * (1 - alpha_a)) / alpha_out)
-        b_out = round(
-            (b_a * alpha_a + b_b * alpha_b * (1 - alpha_a)) / alpha_out)
-
-        result = Color()
-        (result.r, result.g, result.b) = (r_out, g_out, b_out)
-        result.opacity = Opacity(alpha_out)
-        return result
-
-    def _CreateValue(self, value):
-        return Color(value)
-
-
-class TypographyModel(object):
-    def __init__(self):
-        self.font_families = collections.OrderedDict()
-        self.typefaces = collections.OrderedDict()
-
-    def AddFontFamily(self, name, value):
-        assert name.startswith('font_family_')
-        self.font_families[name] = value
-
-    def AddTypeface(self, name, value_obj):
-        assert value_obj['font_family']
-        assert value_obj['font_size']
-        assert value_obj['font_weight']
-        assert value_obj['line_height']
-        self.typefaces[name] = value_obj
-
-
 class BaseGenerator:
     '''A generic style variable generator.
 
@@ -434,6 +212,8 @@
                 raise ValueError("Cannot find opacity %s referenced by %s" %
                                  (name, referrer))
 
+        RESERVED_SUFFIXES = ['_' + s for s in Modes.ALL + ['rgb', 'inverted']]
+
         # Check all colors in all modes refer to colors that exist in the
         # default mode.
         for name, mode_values in colors.items():
diff --git a/tools/style_variable_generator/model.py b/tools/style_variable_generator/model.py
new file mode 100644
index 0000000..b745621
--- /dev/null
+++ b/tools/style_variable_generator/model.py
@@ -0,0 +1,226 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import collections
+from style_variable_generator.color import Color
+from style_variable_generator.opacity import Opacity
+import copy
+
+
+class Modes:
+    LIGHT = 'light'
+    DARK = 'dark'
+    DEBUG = 'debug'
+    # The mode that colors will fallback to when not specified in a
+    # non-default mode. An error will be raised if a color in any mode is
+    # not specified in the default mode.
+    DEFAULT = LIGHT
+    ALL = [LIGHT, DARK, DEBUG]
+
+
+class VariableType:
+    COLOR = 'color'
+    OPACITY = 'opacity'
+    TYPOGRAPHY = 'typography'
+    UNTYPED_CSS = 'untyped_css'
+    ALL = [
+        COLOR,
+        OPACITY,
+        TYPOGRAPHY,
+        UNTYPED_CSS,
+    ]
+
+
+class ModeKeyedModel(object):
+    def __init__(self, generator):
+        self.variables = collections.OrderedDict()
+        self.generator = generator
+
+    def Add(self, name, value_obj, context):
+        self.generator.SetVariableContext(name, context)
+        if name not in self.variables:
+            self.variables[name] = {}
+
+        if isinstance(value_obj, dict):
+            for mode in value_obj:
+                value = self._CreateValue(value_obj[mode])
+                if mode == 'default':
+                    mode = Modes.DEFAULT
+                assert mode in Modes.ALL and mode not in self.variables[name]
+                self.variables[name][mode] = value
+        else:
+            self.variables[name][Modes.DEFAULT] = self._CreateValue(value_obj)
+
+    # Returns the value that |name| will have in |mode|. Resolves to the default
+    # mode's value if the a value for |mode| isn't specified. Always returns a
+    # value.
+    def Resolve(self, name, mode):
+        if mode in self.variables[name]:
+            return self.variables[name][mode]
+
+        return self.variables[name][Modes.DEFAULT]
+
+    def Flatten(self, resolve_missing=False):
+        '''Builds a name to variable dictionary for each mode.
+        If |resolve_missing| is true, colors that aren't specified in |mode|
+        will be resolved to their default mode value.'''
+        flattened = {}
+        for mode in Modes.ALL:
+            variables = collections.OrderedDict()
+            for name, mode_values in self.items():
+                if resolve_missing:
+                    variables[name] = self.Resolve(name, mode)
+                else:
+                    if mode in mode_values:
+                        variables[name] = mode_values[mode]
+            flattened[mode] = variables
+
+        return flattened
+
+    def keys(self):
+        return self.variables.keys()
+
+    def items(self):
+        return self.variables.items()
+
+    def __getitem__(self, key):
+        return self.variables[key]
+
+
+class OpacityModel(ModeKeyedModel):
+    '''A dictionary of opacity names to their values in each mode.
+       e.g OpacityModel['disabled_opacity'][Modes.LIGHT] = Opacity(...)
+    '''
+
+    def __init__(self, generator):
+        super(OpacityModel, self).__init__(generator)
+
+    # Returns a float from 0-1 representing the concrete value of |opacity|.
+    def ResolveOpacity(self, opacity, mode):
+        if opacity.a != -1:
+            return opacity
+
+        return self.ResolveOpacity(self.Resolve(opacity.var, mode), mode)
+
+    def _CreateValue(self, value):
+        return Opacity(value)
+
+
+class ColorModel(ModeKeyedModel):
+    '''A dictionary of color names to their values in each mode.
+       e.g ColorModel['blue'][Modes.LIGHT] = Color(...)
+    '''
+
+    def __init__(self, generator, opacity_model):
+        super(ColorModel, self).__init__(generator)
+        self.opacity_model = opacity_model
+
+    def Add(self, name, value_obj, context):
+        # If a color has generate_per_mode set, a separate variable will be
+        # created for each mode, suffixed by mode name.
+        # (e.g my_color_light, my_color_debug)
+        generate_per_mode = False
+
+        # If a color has generate_inverted set, a |color_name|_inverted will be
+        # generated which uses the dark color for light mode and vice versa.
+        generate_inverted = False
+        if isinstance(value_obj, dict):
+            generate_per_mode = value_obj.pop('generate_per_mode', None)
+            generate_inverted = value_obj.pop('generate_inverted', None)
+        elif self._CreateValue(value_obj).blended_colors:
+            # A blended color could evaluate to different colors in different
+            # modes, so add it to all the modes.
+            value_obj = {mode: value_obj for mode in Modes.ALL}
+
+        generated_context = dict(context)
+        generated_context['generated'] = True
+
+        if generate_per_mode or generate_inverted:
+            for mode, value in value_obj.items():
+                per_mode_name = name + '_' + mode
+                ModeKeyedModel.Add(self, per_mode_name, value,
+                                   generated_context)
+                value_obj[mode] = '$' + per_mode_name
+        if generate_inverted:
+            if Modes.LIGHT not in value_obj or Modes.DARK not in value_obj:
+                raise ValueError(
+                    'generate_inverted requires both dark and light modes to be'
+                    ' set')
+            ModeKeyedModel.Add(
+                self, name + '_inverted', {
+                    Modes.LIGHT: '$' + name + '_dark',
+                    Modes.DARK: '$' + name + '_light'
+                }, generated_context)
+
+        ModeKeyedModel.Add(self, name, value_obj, context)
+
+    # Returns a Color that is the final RGBA value for |name| in |mode|.
+    def ResolveToRGBA(self, name, mode):
+        return self._ResolveColorToRGBA(self.Resolve(name, mode), mode)
+
+    # Returns a Color that is the final RGBA value for |color| in |mode|.
+    def _ResolveColorToRGBA(self, color, mode):
+        if color.var:
+            return self.ResolveToRGBA(color.var, mode)
+
+        if len(color.blended_colors) == 2:
+            return self._BlendColors(color.blended_colors[0],
+                                     color.blended_colors[1], mode)
+
+        result = Color()
+        assert color.opacity
+        result.opacity = self.opacity_model.ResolveOpacity(color.opacity, mode)
+
+        rgb = color
+        if color.rgb_var:
+            rgb = self.ResolveToRGBA(color.RGBVarToVar(), mode)
+
+        (result.r, result.g, result.b) = (rgb.r, rgb.g, rgb.b)
+        return result
+
+    # Returns a Color that is the final RGBA value for |color_a| over |color_b|
+    # in |mode|.
+    def _BlendColors(self, color_a, color_b, mode):
+        # TODO(b/206887565): Check for circular references.
+        color_a_res = self._ResolveColorToRGBA(color_a, mode)
+        (alpha_a, r_a, g_a, b_a) = (color_a_res.opacity.a, color_a_res.r,
+                                    color_a_res.g, color_a_res.b)
+        color_b_res = self._ResolveColorToRGBA(color_b, mode)
+        (alpha_b, r_b, g_b, b_b) = (color_b_res.opacity.a, color_b_res.r,
+                                    color_b_res.g, color_b_res.b)
+
+        # Blend using the formula for "A over B" from
+        # https://wikipedia.org/wiki/Alpha_compositing.
+        alpha_out = alpha_a + (alpha_b * (1 - alpha_a))
+        r_out = round(
+            (r_a * alpha_a + r_b * alpha_b * (1 - alpha_a)) / alpha_out)
+        g_out = round(
+            (g_a * alpha_a + g_b * alpha_b * (1 - alpha_a)) / alpha_out)
+        b_out = round(
+            (b_a * alpha_a + b_b * alpha_b * (1 - alpha_a)) / alpha_out)
+
+        result = Color()
+        (result.r, result.g, result.b) = (r_out, g_out, b_out)
+        result.opacity = Opacity(alpha_out)
+        return result
+
+    def _CreateValue(self, value):
+        return Color(value)
+
+
+class TypographyModel(object):
+    def __init__(self):
+        self.font_families = collections.OrderedDict()
+        self.typefaces = collections.OrderedDict()
+
+    def AddFontFamily(self, name, value):
+        assert name.startswith('font_family_')
+        self.font_families[name] = value
+
+    def AddTypeface(self, name, value_obj):
+        assert value_obj['font_family']
+        assert value_obj['font_size']
+        assert value_obj['font_weight']
+        assert value_obj['line_height']
+        self.typefaces[name] = value_obj
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp
index 6a5735f..fe1c1fd 100644
--- a/ui/chromeos/file_manager_strings.grdp
+++ b/ui/chromeos/file_manager_strings.grdp
@@ -662,6 +662,9 @@
   <message name="IDS_FILE_BROWSER_EXTRACT_ITEMS_REMAINING" desc="File Manager status message. 'Item' is used here as a generic term for file or directory.">
     Extracting <ph name="NUMBER_OF_ITEMS">$1<ex>3</ex></ph> items...
   </message>
+  <message name="IDS_FILE_BROWSER_EXTRACT_FILE_NAME_LONG" desc="File Manager status message including destination folder when extracting one file.">
+    Extracting <ph name="FILE_NAME">$1<ex>movie.avi</ex></ph> to <ph name="FOLDER_NAME">$2<ex>images</ex></ph>
+  </message>
   <message name="IDS_FILE_BROWSER_TIME_REMAINING_ESTIMATE"
            desc="The progress panel message indicating estimate of remaining time of a file operation. The time will be in 1 part (hour or minute) like '2 hours' or '3 min'.">
     About <ph name="REMAINING_TIME">$1<ex>1 min</ex></ph> remaining
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_EXTRACT_FILE_NAME_LONG.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_EXTRACT_FILE_NAME_LONG.png.sha1
new file mode 100644
index 0000000..9684b7b2
--- /dev/null
+++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_EXTRACT_FILE_NAME_LONG.png.sha1
@@ -0,0 +1 @@
+29d04211ae8d452b7a032da1f9272d704f5560c8
\ No newline at end of file
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
index c10771a..50309cf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Раздзяляльнасць відарыса</translation>
 <translation id="1972984168337863910">Разгарнуць панэлі водгукаў для файлаў</translation>
 <translation id="1995337122023280937">Адкрыць месцазнаходжанне файла</translation>
+<translation id="1996806196681857869">Сціснуты архіў Z</translation>
 <translation id="2001796770603320721">Кіраваць на Дыску</translation>
 <translation id="2009067268969781306">Фармаціраванне дыска прывядзе да выдалення ўсіх захаваных на ім даных. Гэта дзеянне нельга адрабіць.</translation>
 <translation id="2025955442973426285">Тыгрынья</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329">Элементаў: <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Параметры сартавання</translation>
+<translation id="5985041959109124139">Сціснуты архіў Z у фармаце TAR</translation>
 <translation id="6007237601604674381">Не ўдалося перамясціць. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Сетка Ethernet</translation>
 <translation id="60357267506638014">Чэшская QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Панджабі</translation>
 <translation id="6224240818060029162">Дацкая</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" />: фармаціраванне</translation>
+<translation id="6224665423283788195">Сціснуты архіў Zstandard</translation>
 <translation id="6227235786875481728">Не атрымалася прайграць файл.</translation>
 <translation id="6241349547798190358">Нідэрландская (Бельгія)</translation>
 <translation id="6267547857941397424">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, зарад акумулятара тэлефона – <ph name="BATTERY_STATUS" />%, падключыцца</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Нарвежская</translation>
 <translation id="6528513914570774834">Дазволіць іншым карыстальнікам прылады выкарыстоўваць гэту сетку</translation>
 <translation id="653019979737152879">Ідзе сінхранізацыя файла "<ph name="FILE_NAME" />"...</translation>
+<translation id="6530595303336443929">Сціснуты архіў Zstandard у фармаце TAR</translation>
 <translation id="6549689063733911810">Нядаўнія</translation>
 <translation id="6558280019477628686">Адбылася памылка. Некаторыя элементы маглі не выдаліцца.</translation>
 <translation id="656398493051028875">Ідзе выдаленне файла "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
index 6db06f4..641b0e2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Resolució de la imatge</translation>
 <translation id="1972984168337863910">Desplega els taulers amb informació dels fitxers</translation>
 <translation id="1995337122023280937">Ves a la ubicació del fitxer</translation>
+<translation id="1996806196681857869">Arxiu comprimit Z</translation>
 <translation id="2001796770603320721">Gestiona a Drive</translation>
 <translation id="2009067268969781306">En formatar una unitat, se'n suprimeixen totes les dades que s'hi hagin emmagatzemat. Aquesta acció no es pot desfer.</translation>
 <translation id="2025955442973426285">Tigrinya</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> elements</translation>
 <translation id="5957366693331451795">dispositius Chromebox</translation>
 <translation id="5982621672636444458">Ordena les opcions</translation>
+<translation id="5985041959109124139">Arxiu comprimit tar Z</translation>
 <translation id="6007237601604674381">El trasllat ha fallat. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Xarxa Ethernet</translation>
 <translation id="60357267506638014">QWERTY txec</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Panjabi</translation>
 <translation id="6224240818060029162">Danès</translation>
 <translation id="6224253798271602650">Formata <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Arxiu comprimit Zstandard</translation>
 <translation id="6227235786875481728">No s'ha pogut reproduir aquest fitxer.</translation>
 <translation id="6241349547798190358">Neerlandès (Bèlgica)</translation>
 <translation id="6267547857941397424">Xarxa <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, <ph name="SIGNAL_STRENGTH" />% d'intensitat del senyal, <ph name="BATTERY_STATUS" />% de bateria al telèfon, connecta</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Noruec</translation>
 <translation id="6528513914570774834">Permet que els altres usuaris d'aquest dispositiu facin servir aquesta xarxa</translation>
 <translation id="653019979737152879">S'està sincronitzant <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Arxiu comprimit tar Zstandard</translation>
 <translation id="6549689063733911810">Recent</translation>
 <translation id="6558280019477628686">S'ha produït un error. És possible que alguns elements no s'hagin suprimit.</translation>
 <translation id="656398493051028875">S'està suprimint "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
index 11d4b96..4449f66 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Bildauflösung</translation>
 <translation id="1972984168337863910">Erweiterte Dateiinformationen maximieren</translation>
 <translation id="1995337122023280937">Zum Dateispeicherort</translation>
+<translation id="1996806196681857869">Z-komprimiertes Archiv</translation>
 <translation id="2001796770603320721">In Drive verwalten</translation>
 <translation id="2009067268969781306">Durch die Formatierung eines Laufwerks werden alle darauf gespeicherten Daten gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.</translation>
 <translation id="2025955442973426285">Tigrinya</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> Elemente</translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">Sortieroptionen</translation>
+<translation id="5985041959109124139">Z-komprimiertes TAR-Archiv</translation>
 <translation id="6007237601604674381">Fehler beim Verschieben. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet-Netzwerk</translation>
 <translation id="60357267506638014">Tschechisch – QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Punjabi</translation>
 <translation id="6224240818060029162">Dänisch</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> formatieren</translation>
+<translation id="6224665423283788195">Zstandard-komprimiertes Archiv</translation>
 <translation id="6227235786875481728">Diese Datei kann nicht wiedergegeben werden.</translation>
 <translation id="6241349547798190358">Niederländisch (Belgien)</translation>
 <translation id="6267547857941397424">Netzwerk <ph name="NETWORK_INDEX" /> von <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" /> %, Smartphone-Akku bei <ph name="BATTERY_STATUS" /> %, Verbinden</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norwegisch</translation>
 <translation id="6528513914570774834">Anderen Nutzern des Geräts erlauben, dieses Netzwerk zu verwenden</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> wird synchronisiert...</translation>
+<translation id="6530595303336443929">Zstandard-komprimiertes TAR-Archiv</translation>
 <translation id="6549689063733911810">Zuletzt geöffnet</translation>
 <translation id="6558280019477628686">Ein Fehler ist aufgetreten. Einige Elemente wurden möglicherweise nicht gelöscht.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" wird gelöscht...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_et.xtb b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
index 4fa2ea9..c7b0a6f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_et.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Kujutise eraldusvõime</translation>
 <translation id="1972984168337863910">Laienda failide tagasisidepaneele</translation>
 <translation id="1995337122023280937">Ava faili asukoht</translation>
+<translation id="1996806196681857869">Z-vormingus tihendatud arhiiv</translation>
 <translation id="2001796770603320721">Halda Drive'is</translation>
 <translation id="2009067268969781306">Ketta vormindamisel kustutatakse kõik sellel olevad andmed. Seda toimingut ei saa tagasi võtta.</translation>
 <translation id="2025955442973426285">tigrinja</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> üksust</translation>
 <translation id="5957366693331451795">Chromeboxid</translation>
 <translation id="5982621672636444458">Sortimisvalikud</translation>
+<translation id="5985041959109124139">Z-vormingus tihendatud TAR-arhiiv</translation>
 <translation id="6007237601604674381">Teisaldamine ebaõnnestus. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Etherneti-võrk</translation>
 <translation id="60357267506638014">Tšehhi QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">pandžabi</translation>
 <translation id="6224240818060029162">taani</translation>
 <translation id="6224253798271602650">Ketta <ph name="DRIVE_NAME" /> vormindamine</translation>
+<translation id="6224665423283788195">Zstandard-vormingus tihendatud arhiiv</translation>
 <translation id="6227235786875481728">Faili ei saanud esitada.</translation>
 <translation id="6241349547798190358">hollandi (Belgia)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_INDEX" />. võrk <ph name="NETWORK_COUNT" />-st, <ph name="PHONE_NAME" />, <ph name="SIGNAL_STRENGTH" />, signaalitugevus: <ph name="BATTERY_STATUS" />%, telefoni aku: %, ühenda</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">norra keel</translation>
 <translation id="6528513914570774834">Luba teistel selle seadme kasutajatel seda võrku kasutada</translation>
 <translation id="653019979737152879">Faili <ph name="FILE_NAME" /> sünkroonimine ...</translation>
+<translation id="6530595303336443929">Zstandard-vormingus tihendatud TAR-arhiiv</translation>
 <translation id="6549689063733911810">Hiljutised</translation>
 <translation id="6558280019477628686">Ilmnes viga. Mõnda üksust ei pruugitud kustutada.</translation>
 <translation id="656398493051028875">Faili „<ph name="FILENAME" />” kustutamine ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
index 5d2ea0c2..a9cfce3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Resolution ng larawan</translation>
 <translation id="1972984168337863910">I-expand ang mga panel ng feedback ng mga file</translation>
 <translation id="1995337122023280937">Pumunta sa lokasyon ng file</translation>
+<translation id="1996806196681857869">Z compressed archive</translation>
 <translation id="2001796770603320721">Pamahalaan sa Drive</translation>
 <translation id="2009067268969781306">Kapag nag-format ng drive, made-delete ang lahat ng data na naka-store doon. Hindi puwedeng i-undo ang pagkilos na ito.</translation>
 <translation id="2025955442973426285">Tigrinya</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> item</translation>
 <translation id="5957366693331451795">Mga Chromebox</translation>
 <translation id="5982621672636444458">Mga opsyon sa pag-uuri</translation>
+<translation id="5985041959109124139">Z compressed tar archive</translation>
 <translation id="6007237601604674381">Nabigo ang paglipat. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet network</translation>
 <translation id="60357267506638014">Czech QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Punjabi</translation>
 <translation id="6224240818060029162">Danish</translation>
 <translation id="6224253798271602650">I-format ang <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Zstandard compressed archive</translation>
 <translation id="6227235786875481728">Hindi ma-play ang file na ito.</translation>
 <translation id="6241349547798190358">Dutch (Belgium)</translation>
 <translation id="6267547857941397424">Network <ph name="NETWORK_INDEX" /> sa <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" />%, Baterya ng Telepono <ph name="BATTERY_STATUS" />%, Kumonekta</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norwegian</translation>
 <translation id="6528513914570774834">Payagan ang iba pang user ng device na ito na gamitin ang network na ito</translation>
 <translation id="653019979737152879">Sini-sync ang <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Zstandard compressed tar archive</translation>
 <translation id="6549689063733911810">Kamakailan</translation>
 <translation id="6558280019477628686">Nagka-error. Maaaring may ilang item na hindi na-delete.</translation>
 <translation id="656398493051028875">Tinatanggal ang "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
index 9b7f460..8c71da6 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Résolution de l'image</translation>
 <translation id="1972984168337863910">Développer les panneaux de commentaires sur les fichiers</translation>
 <translation id="1995337122023280937">Accéder au dossier du fichier</translation>
+<translation id="1996806196681857869">Archive compressée Z</translation>
 <translation id="2001796770603320721">Gérer dans Google Disque</translation>
 <translation id="2009067268969781306">Le formatage d'un lecteur effacera toutes les données qu'il contient. Cette action est irréversible.</translation>
 <translation id="2025955442973426285">Tigrina</translation>
@@ -590,6 +591,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> éléments</translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Options de tri</translation>
+<translation id="5985041959109124139">Archive tar compressée Z</translation>
 <translation id="6007237601604674381">Le déplacement a échoué. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Réseau Ethernet</translation>
 <translation id="60357267506638014">QWERTY tchèque</translation>
@@ -620,6 +622,7 @@
 <translation id="6220423280121890987">Panjabi</translation>
 <translation id="6224240818060029162">Danois</translation>
 <translation id="6224253798271602650">Formater <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Archive compressée Zstandard</translation>
 <translation id="6227235786875481728">Impossible de lire ce fichier.</translation>
 <translation id="6241349547798190358">Néerlandais (Belgique)</translation>
 <translation id="6267547857941397424">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, pile du téléphone : <ph name="BATTERY_STATUS" /> %, connexion</translation>
@@ -647,6 +650,7 @@
 <translation id="6509122719576673235">Norvégien</translation>
 <translation id="6528513914570774834">Autoriser d'autres utilisateurs de cet appareil à utiliser ce réseau</translation>
 <translation id="653019979737152879">Synchronisation de <ph name="FILE_NAME" /> en cours...</translation>
+<translation id="6530595303336443929">Archive tar compressée Zstandard</translation>
 <translation id="6549689063733911810">Récent</translation>
 <translation id="6558280019477628686">Une erreur s'est produite. Il est possible que certains éléments n'aient pas été supprimés.</translation>
 <translation id="656398493051028875">Suppression de « <ph name="FILENAME" /> » en cours...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
index 5634746..4ee063cd 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Résolution de l'image</translation>
 <translation id="1972984168337863910">Développer les panneaux de commentaires sur les fichiers</translation>
 <translation id="1995337122023280937">Accéder à l'emplacement du fichier</translation>
+<translation id="1996806196681857869">Archive compressée au format Z</translation>
 <translation id="2001796770603320721">Gérer dans Drive</translation>
 <translation id="2009067268969781306">Le formatage d'une clé entraîne la suppression de toutes les données qui y sont stockées. Cette action est irréversible.</translation>
 <translation id="2025955442973426285">Tigrinya</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> éléments</translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Options de tri</translation>
+<translation id="5985041959109124139">Archive TAR compressée au format Z</translation>
 <translation id="6007237601604674381">Échec du transfert. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Réseau Ethernet</translation>
 <translation id="60357267506638014">QWERTY tchèque</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Pendjabi</translation>
 <translation id="6224240818060029162">Danois</translation>
 <translation id="6224253798271602650">Formater <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Archive compressée au format Zstandard</translation>
 <translation id="6227235786875481728">Impossible de lire ce fichier.</translation>
 <translation id="6241349547798190358">Néerlandais (Belgique)</translation>
 <translation id="6267547857941397424">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, batterie du téléphone à <ph name="BATTERY_STATUS" /> %, connexion</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norvégien</translation>
 <translation id="6528513914570774834">Autoriser les autres utilisateurs de cet appareil à employer ce réseau</translation>
 <translation id="653019979737152879">Synchronisation de <ph name="FILE_NAME" /> en cours…</translation>
+<translation id="6530595303336443929">Archive TAR compressée au format Zstandard</translation>
 <translation id="6549689063733911810">Récents</translation>
 <translation id="6558280019477628686">Une erreur s'est produite. Il se peut que certains éléments n'aient pas été supprimés.</translation>
 <translation id="656398493051028875">Suppression de "<ph name="FILENAME" />" en cours...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
index c9b34bd5..40e90e22 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Resolución da imaxe</translation>
 <translation id="1972984168337863910">Despregar paneis de comentarios de ficheiros</translation>
 <translation id="1995337122023280937">Ir á localización do ficheiro</translation>
+<translation id="1996806196681857869">Arquivo comprimido mediante Z</translation>
 <translation id="2001796770603320721">Xestionar contido en Drive</translation>
 <translation id="2009067268969781306">Ao formatar unha unidade, eliminaranse todos os datos que conteña. Esta acción non se pode desfacer.</translation>
 <translation id="2025955442973426285">Tigriña</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> elementos</translation>
 <translation id="5957366693331451795">Dispositivos Chromebox</translation>
 <translation id="5982621672636444458">Opcións de ordenación</translation>
+<translation id="5985041959109124139">Arquivo tar comprimido mediante Z</translation>
 <translation id="6007237601604674381">Non se puido mover. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Rede Ethernet</translation>
 <translation id="60357267506638014">QWERTY checo</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Panxabí</translation>
 <translation id="6224240818060029162">Dinamarqués</translation>
 <translation id="6224253798271602650">Formatar o <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Arquivo comprimido mediante Zstandard</translation>
 <translation id="6227235786875481728">Non se puido reproducir este ficheiro.</translation>
 <translation id="6241349547798190358">Neerlandés (Bélxica)</translation>
 <translation id="6267547857941397424">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /> %, batería do teléfono ao <ph name="BATTERY_STATUS" /> %, conectar</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Noruegués</translation>
 <translation id="6528513914570774834">Permitir que outros usuarios deste dispositivo utilicen esta rede</translation>
 <translation id="653019979737152879">Sincronizando <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Arquivo tar comprimido mediante Zstandard</translation>
 <translation id="6549689063733911810">Recente</translation>
 <translation id="6558280019477628686">Produciuse un erro. É posible que non se eliminen algúns elementos.</translation>
 <translation id="656398493051028875">Eliminando "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
index 435ff96..75150c0 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Upplausn myndar</translation>
 <translation id="1972984168337863910">Stækka svæði með ábendingum fyrir skrár</translation>
 <translation id="1995337122023280937">Fara í staðsetningu skráar</translation>
+<translation id="1996806196681857869">Z-þjöppuð geymsla</translation>
 <translation id="2001796770603320721">Stjórna á Drive</translation>
 <translation id="2009067268969781306">Þegar drif er forsniðið eyðast öll gögn af því. Ekki er hægt að afturkalla þessa aðgerð.</translation>
 <translation id="2025955442973426285">Tigriníska</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> atriði</translation>
 <translation id="5957366693331451795">Chromebox tæki</translation>
 <translation id="5982621672636444458">Röðunarvalkostir</translation>
+<translation id="5985041959109124139">Z-þjöppuð tar-geymsla</translation>
 <translation id="6007237601604674381">Mistókst að færa. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet</translation>
 <translation id="60357267506638014">Tékkneskt QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Púnjabí</translation>
 <translation id="6224240818060029162">Danska</translation>
 <translation id="6224253798271602650">Forsníða <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Zstandard-þjöppuð geymsla</translation>
 <translation id="6227235786875481728">Ekki tókst að spila þessa skrá.</translation>
 <translation id="6241349547798190358">Hollenska (Belgía)</translation>
 <translation id="6267547857941397424">Netkerfi <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, <ph name="SIGNAL_STRENGTH" />% sendistyrkur, <ph name="BATTERY_STATUS" />% hleðsla á rafhlöðu símans, tengjast</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Norskt</translation>
 <translation id="6528513914570774834">Heimila öðrum notendum tækisins að nota þetta netkerfi</translation>
 <translation id="653019979737152879">Samstillir <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Zstandard-þjöppuð tar-geymsla</translation>
 <translation id="6549689063733911810">Nýlegt</translation>
 <translation id="6558280019477628686">Villa kom upp. Hugsanlega tókst ekki að eyða einhverjum atriðum.</translation>
 <translation id="656398493051028875">Eyðir „<ph name="FILENAME" />“...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
index e2c1531..d5f1c26 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">רזולוציית תמונה</translation>
 <translation id="1972984168337863910">הרחבת חלוניות המשוב של קבצים</translation>
 <translation id="1995337122023280937">מעבר אל מיקום הקובץ</translation>
+<translation id="1996806196681857869">‏ארכיון דחוס מסוג Z</translation>
 <translation id="2001796770603320721">‏ניהול ב-Drive</translation>
 <translation id="2009067268969781306">פירמוט של התקן אחסון מוחק את כל הנתונים שמאוחסנים בו. לא ניתן לבטל את הפעולה הזו.</translation>
 <translation id="2025955442973426285">תיגרינית</translation>
@@ -590,6 +591,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> פריטים</translation>
 <translation id="5957366693331451795">‏מכשירי Chromebox</translation>
 <translation id="5982621672636444458">אפשרויות מיון</translation>
+<translation id="5985041959109124139">‏ארכיון TAR דחוס מסוג Z</translation>
 <translation id="6007237601604674381">ההעברה נכשלה. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">‏רשת Ethernet</translation>
 <translation id="60357267506638014">‏צ'כית - QWERTY</translation>
@@ -620,6 +622,7 @@
 <translation id="6220423280121890987">פונג'בית</translation>
 <translation id="6224240818060029162">דנית</translation>
 <translation id="6224253798271602650">פירמוט של <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">‏ארכיון דחוס מסוג Zstandard</translation>
 <translation id="6227235786875481728">לא ניתן להפעיל קובץ זה.</translation>
 <translation id="6241349547798190358">הולנדית (בלגיה)</translation>
 <translation id="6267547857941397424">‏רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />,‏ <ph name="PHONE_NAME" />, עוצמת האות: ‎<ph name="SIGNAL_STRENGTH" />%‎, סוללת הטלפון: ‎<ph name="BATTERY_STATUS" />%‎, התחברות</translation>
@@ -647,6 +650,7 @@
 <translation id="6509122719576673235">נורווגית</translation>
 <translation id="6528513914570774834">אישור למשתמשים האחרים במכשיר הזה להשתמש ברשת הזו</translation>
 <translation id="653019979737152879">הסנכרון של <ph name="FILE_NAME" /> מתבצע...</translation>
+<translation id="6530595303336443929">‏ארכיון TAR דחוס מסוג Zstandard</translation>
 <translation id="6549689063733911810">מהזמן האחרון</translation>
 <translation id="6558280019477628686">אירעה שגיאה. ייתכן שפריטים מסוימים לא נמחקו.</translation>
 <translation id="656398493051028875">מחיקת "<ph name="FILENAME" />" מתבצעת...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
index 19d09a10..25ba839 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Кескін ажыратымдылығы</translation>
 <translation id="1972984168337863910">Файлдар пікірі панельдерін жаю</translation>
 <translation id="1995337122023280937">Файл орнына өту</translation>
+<translation id="1996806196681857869">Z сығылған мұрағаты</translation>
 <translation id="2001796770603320721">Drive қызметінде басқару</translation>
 <translation id="2009067268969781306">Дискіні форматтасаңыз, онда сақталған деректердің барлығы өшіп қалады. Бұл әрекеттен бас тарту мүмкін емес.</translation>
 <translation id="2025955442973426285">Тигринья</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> элемент</translation>
 <translation id="5957366693331451795">Chromebox құрылғылары</translation>
 <translation id="5982621672636444458">Сұрыптау параметрлері</translation>
+<translation id="5985041959109124139">Z сығылған TAR мұрағаты</translation>
 <translation id="6007237601604674381">Жылжыту сәтсіз аяқталды. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet желісі</translation>
 <translation id="60357267506638014">Чех QWERTY пернетақтасы</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Панджаб</translation>
 <translation id="6224240818060029162">Дат</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> жадын форматтау</translation>
+<translation id="6224665423283788195">Zstandard сығылған мұрағаты</translation>
 <translation id="6227235786875481728">Бқұл файлды ойнату мүмкін болмады.</translation>
 <translation id="6241349547798190358">Нидерланд (Бельгия)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> желі, <ph name="PHONE_NAME" />, сигнал күші: <ph name="SIGNAL_STRENGTH" />%, телефон батареясы: <ph name="BATTERY_STATUS" />%, қосылу</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">норвег</translation>
 <translation id="6528513914570774834">Бұл құрылғының басқа пайдаланушыларына осы желіні пайдалануға рұқсат ету</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> синхрондалуда…</translation>
+<translation id="6530595303336443929">Zstandard сығылған TAR мұрағаты</translation>
 <translation id="6549689063733911810">Соңғы</translation>
 <translation id="6558280019477628686">Қате пайда болды. Кейбір элементтер жойылмаған болуы мүмкін.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" жойылуда…</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index 2df3083..539a4cc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -117,6 +117,7 @@
 <translation id="1942765061641586207">ಚಿತ್ರದ ರೆಸಲ್ಯೂಷನ್‌‌</translation>
 <translation id="1972984168337863910">ಫೈಲ್‌ಗಳ ಪ್ರತಿಕ್ರಿಯೆ ಫಲಕಗಳನ್ನು ವಿಸ್ತರಿಸಿ</translation>
 <translation id="1995337122023280937">ಫೈಲ್ ಸ್ಥಳಕ್ಕೆ ಹೋಗಿ</translation>
+<translation id="1996806196681857869">Z ಕುಗ್ಗಿಸಲಾದ ಆರ್ಕೈವ್</translation>
 <translation id="2001796770603320721">ಡ್ರೈವ್‌ನಲ್ಲಿ ನಿರ್ವಹಿಸಿ</translation>
 <translation id="2009067268969781306">ಡ್ರೈವ್ ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವುದರಿಂದ, ಅದರಲ್ಲಿ ಸಂಗ್ರಣೆಯಾಗಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಪಡಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="2025955442973426285">ಟಿಗ್ರಿನ್ಯಾ</translation>
@@ -585,6 +586,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> ಐಟಂಗಳು</translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">ಆಯ್ಕೆಗಳನ್ನು ವಿಂಗಡಿಸು</translation>
+<translation id="5985041959109124139">Z ಕುಗ್ಗಿಸಲಾದ tar ಆರ್ಕೈವ್</translation>
 <translation id="6007237601604674381">ಸರಿಸುವುದು ವಿಫಲವಾಗಿದೆ. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">ಈಥರ್‌ನೆಟ್ ನೆಟ್‌ವರ್ಕ್</translation>
 <translation id="60357267506638014">ಜೆಕ್ QWERTY</translation>
@@ -615,6 +617,7 @@
 <translation id="6220423280121890987">ಪಂಜಾಬಿ</translation>
 <translation id="6224240818060029162">ಡ್ಯಾನಿಶ್</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ</translation>
+<translation id="6224665423283788195">Z ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕುಗ್ಗಿಸಲಾದ ಆರ್ಕೈವ್</translation>
 <translation id="6227235786875481728">ಈ ಫೈಲ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗಿಲ್ಲ.</translation>
 <translation id="6241349547798190358">ಡಚ್ (ಬೆಲ್ಜಿಯಂ)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_COUNT" /> ರಲ್ಲಿ <ph name="NETWORK_INDEX" /> ನೆಟ್‌ವರ್ಕ್, <ph name="PHONE_NAME" />, ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />%, ಫೋನ್ ಬ್ಯಾಟರಿ <ph name="BATTERY_STATUS" />%, ಕನೆಕ್ಟ್</translation>
@@ -642,6 +645,7 @@
 <translation id="6509122719576673235">ನಾರ್ವೆಜಿಯನ್</translation>
 <translation id="6528513914570774834">ಈ ನೆಟ್‌ವರ್ಕ್ ಬಳಸಲು, ಈ ಸಾಧನದ ಇತರ ಬಳಕೆದಾರರಿಗೆ ಅವಕಾಶ ನೀಡಿ</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> ಸಿಂಕ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
+<translation id="6530595303336443929">Z ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕುಗ್ಗಿಸಲಾದ tar ಆರ್ಕೈವ್</translation>
 <translation id="6549689063733911810">ಇತ್ತೀಚಿನದು</translation>
 <translation id="6558280019477628686">ದೋಷ ಸಂಭವಿಸಿದೆ. ಕೆಲವು ಐಟಂಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" ಅಳಿಸಲಾಗುತ್ತಿದೆ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
index 9f0ee4b..a3bfa605 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Сүрөттүн чечилиши</translation>
 <translation id="1972984168337863910">Файлдардын маалымат камтылган панелдерин жайып көрсөтүү</translation>
 <translation id="1995337122023280937">Файл жайгашкан папкага өтүү</translation>
+<translation id="1996806196681857869">ZIP менен кысылган архив</translation>
 <translation id="2001796770603320721">Google Drive'да ачуу</translation>
 <translation id="2009067268969781306">Дискти форматтасаңыз, анда сакталган бардык маалыматтар өчүрүлөт. Бул аракетти артка кайтаруу мүмкүн эмес.</translation>
 <translation id="2025955442973426285">Тигринче</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> элемент</translation>
 <translation id="5957366693331451795">Chromebox түзмөктөрү</translation>
 <translation id="5982621672636444458">Иреттөө опциясы</translation>
+<translation id="5985041959109124139">Z менен кысылган tar архиви</translation>
 <translation id="6007237601604674381">Жылдырылбай калды. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet тармагы</translation>
 <translation id="60357267506638014">Чехче QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Пунжабиче</translation>
 <translation id="6224240818060029162">Датча</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> форматталсын</translation>
+<translation id="6224665423283788195">Zstandard менен кысылган архив</translation>
 <translation id="6227235786875481728">Бул файл ойнотулган жок.</translation>
 <translation id="6241349547798190358">Голландча (Бельгия)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_COUNT" /> ичинен <ph name="NETWORK_INDEX" />-тармак, <ph name="PHONE_NAME" />, Сигналдын күчү <ph name="SIGNAL_STRENGTH" />%, Телефондун батареясы <ph name="BATTERY_STATUS" />%, Туташуу</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Норвежче</translation>
 <translation id="6528513914570774834">Бул түзмөктү колдонгон кишилерге ушул тармакты колдонууга уруксат берилсин</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" />… шайкештештирилүүдө</translation>
+<translation id="6530595303336443929">Z менен кысылган tar архиви</translation>
 <translation id="6549689063733911810">Акыркы</translation>
 <translation id="6558280019477628686">Ката кетти. Айрым элементтер өчкөн жок окшойт.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />"… жок кылуу</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
index 6e5075aa..f892f68 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Vaizdo skyra</translation>
 <translation id="1972984168337863910">Išskleisti failų atsiliepimų skydelius</translation>
 <translation id="1995337122023280937">Eiti į failo vietą</translation>
+<translation id="1996806196681857869">Z suglaudintas archyvas</translation>
 <translation id="2001796770603320721">Tvarkyti Diske</translation>
 <translation id="2009067268969781306">Formatuojant atmintuką bus ištrinti visi jame saugomi duomenys. Šio veiksmo anuliuoti negalima.</translation>
 <translation id="2025955442973426285">Tigrinų k.</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329">Elementų: <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Rūšiuoti parinktis</translation>
+<translation id="5985041959109124139">Z suglaudintas TAR archyvas</translation>
 <translation id="6007237601604674381">Nepavyko perkelti. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Eterneto tinklas</translation>
 <translation id="60357267506638014">Čekiška QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Pendžabų k.</translation>
 <translation id="6224240818060029162">Danų k.</translation>
 <translation id="6224253798271602650">Formatuoti: <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Z standarto suglaudintas archyvas</translation>
 <translation id="6227235786875481728">Nepavyko paleisti šio failo.</translation>
 <translation id="6241349547798190358">Nyderlandų k. (Belgija)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_INDEX" /> tinklas iš <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, signalo stiprumas <ph name="SIGNAL_STRENGTH" /> %, telefono akumuliatorius <ph name="BATTERY_STATUS" /> %, prisijungti</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norvegų</translation>
 <translation id="6528513914570774834">Leisti kitiems šio įrenginio naudotojams naudoti šį tinklą</translation>
 <translation id="653019979737152879">Sinchronizuojamas failas „<ph name="FILE_NAME" />“...</translation>
+<translation id="6530595303336443929">Z standarto suglaudintas TAR archyvas</translation>
 <translation id="6549689063733911810">Naujausi</translation>
 <translation id="6558280019477628686">Įvyko klaida. Kai kurie elementai galėjo nebūti ištrinti.</translation>
 <translation id="656398493051028875">Ištrinamas failas „<ph name="FILENAME" />“...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
index 2a47cb6..4483037 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Attēla izšķirtspēja</translation>
 <translation id="1972984168337863910">Notiek failu atsauksmju paneļu izvēršana</translation>
 <translation id="1995337122023280937">Pāriet uz faila atrašanās vietu</translation>
+<translation id="1996806196681857869">Z saspiests arhīvs</translation>
 <translation id="2001796770603320721">Pārvaldīt Diskā</translation>
 <translation id="2009067268969781306">Formatējot disku, tiks dzēsti visi tajā uzglabātie dati. Šo darbību nevar atsaukt.</translation>
 <translation id="2025955442973426285">Tigrinja</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329">Vienumu skaits: <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Kārtošanas iespējas</translation>
+<translation id="5985041959109124139">Z saspiests Tar arhīvs</translation>
 <translation id="6007237601604674381">Pārvietošana neizdevās. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet tīkls</translation>
 <translation id="60357267506638014">Čehu QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Pandžabu</translation>
 <translation id="6224240818060029162">Dāņu</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> formatēšana</translation>
+<translation id="6224665423283788195">Zstandard saspiests arhīvs</translation>
 <translation id="6227235786875481728">Šo failu nevarēja demonstrēt.</translation>
 <translation id="6241349547798190358">Holandiešu (Beļģija)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_INDEX" />. tīkls no <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, signāla stiprums: <ph name="SIGNAL_STRENGTH" />%, tālruņa akumulatora statuss: <ph name="BATTERY_STATUS" />%, savienojums</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norvēģu valoda</translation>
 <translation id="6528513914570774834">Atļaut citiem lietotājiem šajā ierīcē izmantot šo tīklu</translation>
 <translation id="653019979737152879">Notiek faila <ph name="FILE_NAME" /> sinhronizēšana...</translation>
+<translation id="6530595303336443929">Zstandard saspiests Tar arhīvs</translation>
 <translation id="6549689063733911810">Pēdējie</translation>
 <translation id="6558280019477628686">Radās kļūda. Iespējams, netika izdzēsti daži vienumi.</translation>
 <translation id="656398493051028875">Notiek faila “<ph name="FILENAME" />” dzēšana...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
index a78cf48..f76c539 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Резолуција на слика</translation>
 <translation id="1972984168337863910">Проширете ги таблите со повратни информации за датотеките</translation>
 <translation id="1995337122023280937">Оди на локацијата на датотеката</translation>
+<translation id="1996806196681857869">Архива компримирана со Z</translation>
 <translation id="2001796770603320721">Управување во Drive</translation>
 <translation id="2009067268969781306">Форматирањето на USB-дискот ќе ги избрише сите податоци складирани во него. Дејството не може да се врати.</translation>
 <translation id="2025955442973426285">тигрејски</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> ставки</translation>
 <translation id="5957366693331451795">Уреди Chromebox</translation>
 <translation id="5982621672636444458">Подреди опции</translation>
+<translation id="5985041959109124139">tar-архива компримирана со Z</translation>
 <translation id="6007237601604674381">Потегот не успеа. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Етернет-мрежа</translation>
 <translation id="60357267506638014">чешка QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">пенџапски</translation>
 <translation id="6224240818060029162">дански</translation>
 <translation id="6224253798271602650">Форматирање на <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Архива компримирана со ZST</translation>
 <translation id="6227235786875481728">Датотеката не може да се репродуцира.</translation>
 <translation id="6241349547798190358">холандски (Белгија)</translation>
 <translation id="6267547857941397424">Мрежа <ph name="NETWORK_INDEX" /> од <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /> %, батерија на телефонот: <ph name="BATTERY_STATUS" /> %, поврзи</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">норвешки</translation>
 <translation id="6528513914570774834">Дозволи други корисници на уредов да ја користат мрежава</translation>
 <translation id="653019979737152879">Се синхронизира <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">tar-архива компримирана со ZST</translation>
 <translation id="6549689063733911810">Неодамнешни</translation>
 <translation id="6558280019477628686">Грешка. Некои ставки може да не се избришани.</translation>
 <translation id="656398493051028875">Се брише „<ph name="FILENAME" />“...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
index b7b43685..d4e3b746 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">ਚਿੱਤਰ ਰੈਜ਼ੋਲਿਊਸ਼ਨ</translation>
 <translation id="1972984168337863910">ਫ਼ਾਈਲਾਂ ਦੇ ਪ੍ਰਤੀਕਰਮ ਪੈਨਲਾਂ ਦਾ ਵਿਸਤਾਰ ਕਰੋ</translation>
 <translation id="1995337122023280937">ਫ਼ਾਈਲ ਟਿਕਾਣੇ 'ਤੇ ਜਾਓ</translation>
+<translation id="1996806196681857869">Z ਨਪੀੜਿਆ ਪੁਰਾਲੇਖ</translation>
 <translation id="2001796770603320721">'ਡਰਾਈਵ' ਵਿੱਚ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="2009067268969781306">ਕਿਸੇ ਡਰਾਈਵ ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਨਾਲ ਇਸ 'ਤੇ ਸਟੋਰ ਕੀਤਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ। ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation>
 <translation id="2025955442973426285">ਟਿਗਰੀਨਿਆ</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> ਆਈਟਮਾਂ</translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">ਵਿਕਲਪ ਕ੍ਰਮਬੱਧ ਕਰੋ</translation>
+<translation id="5985041959109124139">Z ਨਪੀੜਿਆ tar ਪੁਰਾਲੇਖ</translation>
 <translation id="6007237601604674381">ਮੂਵ ਅਸਫਲ। <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ</translation>
 <translation id="60357267506638014">ਚੈਕ QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">ਪੰਜਾਬੀ</translation>
 <translation id="6224240818060029162">ਡੈਨਿਸ਼</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> ਨੂੰ ਫਾਰਮੈਟ ਕਰੋ</translation>
+<translation id="6224665423283788195">Zstandard ਨਪੀੜਿਆ ਪੁਰਾਲੇਖ</translation>
 <translation id="6227235786875481728">ਇਹ ਫਾਈਲ ਪਲੇ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।</translation>
 <translation id="6241349547798190358">ਡੱਚ (ਬੈਲਜੀਅਮ)</translation>
 <translation id="6267547857941397424">ਨੈੱਟਵਰਕ <ph name="NETWORK_COUNT" /> ਵਿੱਚੋਂ <ph name="NETWORK_INDEX" />, <ph name="PHONE_NAME" />, ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ <ph name="SIGNAL_STRENGTH" />%, ਫ਼ੋਨ ਦੀ ਬੈਟਰੀ <ph name="BATTERY_STATUS" />%, ਕਨੈਕਟ ਕਰੋ</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">ਨਾਰਵੇਜੀਅਨ</translation>
 <translation id="6528513914570774834">ਇਸ ਡੀਵਾਈਸ ਦੇ ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਇਸ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> ਨੂੰ ਸਿੰਕ ਕਰ ਰਿਹਾ ਹੈ...</translation>
+<translation id="6530595303336443929">Zstandard ਨਪੀੜਿਆ tar ਪੁਰਾਲੇਖ</translation>
 <translation id="6549689063733911810">ਹਾਲੀਆ</translation>
 <translation id="6558280019477628686">ਕੋਈ ਗੜਬੜ ਹੋਈ। ਸ਼ਾਇਦ ਕੁਝ ਆਈਟਮਾਂ ਮਿਟਾਈਆਂ ਨਹੀਂ ਗਈਆਂ ਹਨ।</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" ਨੂੰ ਮਿਟਾ ਰਿਹਾ ਹੈ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index 0cb17f02c..d7d2476 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Resolução da imagem</translation>
 <translation id="1972984168337863910">Expandir painéis de feedback de arquivos</translation>
 <translation id="1995337122023280937">Acessar local do arquivo</translation>
+<translation id="1996806196681857869">Arquivo compactado em Z</translation>
 <translation id="2001796770603320721">Gerenciar no Drive</translation>
 <translation id="2009067268969781306">A formatação de uma unidade excluirá todos os dados armazenados nela. Esta ação não pode ser desfeita.</translation>
 <translation id="2025955442973426285">Tigrínia</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> itens</translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">Opções de classificação</translation>
+<translation id="5985041959109124139">Arquivo tar compactado em Z</translation>
 <translation id="6007237601604674381">Falha na transferência. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Rede Ethernet</translation>
 <translation id="60357267506638014">QWERTY Tcheco</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Punjabi</translation>
 <translation id="6224240818060029162">Dinamarquês</translation>
 <translation id="6224253798271602650">Formatar <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Arquivo compactado em Zstandard</translation>
 <translation id="6227235786875481728">Não foi possível reproduzir este arquivo.</translation>
 <translation id="6241349547798190358">Holandês (Bélgica)</translation>
 <translation id="6267547857941397424">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />%, bateria do smartphone em <ph name="BATTERY_STATUS" />%, conectar</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norueguês</translation>
 <translation id="6528513914570774834">Permitir que outros usuários deste dispositivo usem esta rede</translation>
 <translation id="653019979737152879">Sincronizando <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Arquivo tar compactado em Zstandard</translation>
 <translation id="6549689063733911810">Recentes</translation>
 <translation id="6558280019477628686">Ocorreu um erro. Alguns itens podem não ter sido excluídos.</translation>
 <translation id="656398493051028875">Excluindo "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_si.xtb b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
index 85bd302..7c22474b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_si.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">රූප විභේදනය</translation>
 <translation id="1972984168337863910">ගොනු ප්‍රතිපෝෂණ පැනල් දිග හරින්න</translation>
 <translation id="1995337122023280937">ගොනු ස්ථානයට යන්න</translation>
+<translation id="1996806196681857869">Z සම්පීඩිත සංරක්ෂිතය</translation>
 <translation id="2001796770603320721">Drive හි කළමනාකරණය කරන්න</translation>
 <translation id="2009067268969781306">ධාවකයක් ආකෘති කිරීම එහි ගබඩා කර ඇති සියලුම දත්ත මකා දමයි. මෙම ක්‍රියාව අස් කළ නොහැක.</translation>
 <translation id="2025955442973426285">ටිග්රින්යා</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329">අයිතම <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">අනුපිළිවෙලට සකසන්න විකල්ප</translation>
+<translation id="5985041959109124139">Z සම්පීඩිත tar සංරක්ෂිතය</translation>
 <translation id="6007237601604674381">චලනය අසාර්ථකයි. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">ඊතර්නෙට් ජාලය</translation>
 <translation id="60357267506638014">චෙක් QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">පන්ජාබි</translation>
 <translation id="6224240818060029162">ඩෙන්මාර්ක</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> ආකෘති කරන්න</translation>
+<translation id="6224665423283788195">Zසම්මත සම්පීඩිත සංරක්ෂිතය</translation>
 <translation id="6227235786875481728">මෙම ගොනුව වාදනය කළ නොහැකි විය.</translation>
 <translation id="6241349547798190358">ලන්දේසි (බෙල්ජියම)</translation>
 <translation id="6267547857941397424"><ph name="NETWORK_COUNT" />න් <ph name="NETWORK_INDEX" /> වැනි ජාලය, <ph name="PHONE_NAME" />, සංඥා ප්‍රබලතාව <ph name="SIGNAL_STRENGTH" />%, දුරකථන බැටරිය <ph name="BATTERY_STATUS" />%, සබඳින්න</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Norwegian</translation>
 <translation id="6528513914570774834">මෙම උපාංගයේ වෙනත් පරිශීලකයින්ට මෙම ජාලය භාවිතා කිරීමට ඉඩ දෙන්න</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> සමමු වෙමින්...</translation>
+<translation id="6530595303336443929">Zසම්මත සම්පීඩිත tar සංරක්ෂිතය</translation>
 <translation id="6549689063733911810">මෑත</translation>
 <translation id="6558280019477628686">දෝෂයක් සිදු විය. සමහර අයිතම මැකී නොතිබීමට ඉඩ ඇත.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" මැකෙමින්...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
index 05773a1..98ee997 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Rezolucioni i imazhit</translation>
 <translation id="1972984168337863910">Zgjero panelet e komenteve të skedarëve</translation>
 <translation id="1995337122023280937">Shko te vendndodhja e skedarit</translation>
+<translation id="1996806196681857869">Arkiv i ngjeshur Z</translation>
 <translation id="2001796770603320721">Menaxhoje te "Disku"</translation>
 <translation id="2009067268969781306">Formatimi i një disku do të fshijë të gjitha të dhënat e ruajtura në të. Ky veprim nuk mund të zhbëhet.</translation>
 <translation id="2025955442973426285">Tigrinja</translation>
@@ -588,6 +589,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> artikuj</translation>
 <translation id="5957366693331451795">Pajisjet Chromebox</translation>
 <translation id="5982621672636444458">Opsionet e renditjes</translation>
+<translation id="5985041959109124139">Arkiv i ngjeshur tar Z</translation>
 <translation id="6007237601604674381">Lëvizja dështoi. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Rrjeti i eternetit</translation>
 <translation id="60357267506638014">Tastierë çeke QWERTY</translation>
@@ -618,6 +620,7 @@
 <translation id="6220423280121890987">Panxhabi</translation>
 <translation id="6224240818060029162">Danisht</translation>
 <translation id="6224253798271602650">Formato <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Arkiv i ngjeshur Zstandard</translation>
 <translation id="6227235786875481728">Ky skedar nuk mund të luhej.</translation>
 <translation id="6241349547798190358">Holandisht (Belgjikë)</translation>
 <translation id="6267547857941397424">Rrjeti <ph name="NETWORK_INDEX" /> nga <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />%, bateria e telefonit <ph name="BATTERY_STATUS" />%, lidhu</translation>
@@ -645,6 +648,7 @@
 <translation id="6509122719576673235">Norvegjisht</translation>
 <translation id="6528513914570774834">Lejo që përdoruesit e tjerë të kësaj pajisjeje të përdorin këtë rrjet</translation>
 <translation id="653019979737152879">Po sinkronizon <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Arkivi i ngjeshur tar Zstandard</translation>
 <translation id="6549689063733911810">Të fundit</translation>
 <translation id="6558280019477628686">Ndodhi një gabim. Disa artikuj mund të mos jenë fshirë.</translation>
 <translation id="656398493051028875">Po fshin "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index c6096d65..8b4279c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Bildupplösning</translation>
 <translation id="1972984168337863910">Utöka panel med information om filåtgärder</translation>
 <translation id="1995337122023280937">Gå till filens plats</translation>
+<translation id="1996806196681857869">Z-komprimerat arkiv</translation>
 <translation id="2001796770603320721">Hantera i Drive</translation>
 <translation id="2009067268969781306">Om du formaterar en enhet raderas all data som lagras på den. Det går inte att ångra åtgärden.</translation>
 <translation id="2025955442973426285">tigrinja</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> objekt</translation>
 <translation id="5957366693331451795">Chromebox-modeller</translation>
 <translation id="5982621672636444458">Sorteringsalternativ</translation>
+<translation id="5985041959109124139">Z-komprimerat tar-arkiv</translation>
 <translation id="6007237601604674381">Flytten misslyckades. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet-nätverk</translation>
 <translation id="60357267506638014">Tjeckiska (QWERTY)</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">punjabi</translation>
 <translation id="6224240818060029162">danska</translation>
 <translation id="6224253798271602650">Formatera <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Zstandard-komprimerat arkiv</translation>
 <translation id="6227235786875481728">Det gick inte att spela upp filen.</translation>
 <translation id="6241349547798190358">nederländska (Belgien)</translation>
 <translation id="6267547857941397424">Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> %, telefonens batterinivå <ph name="BATTERY_STATUS" /> %, anslut</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">norska</translation>
 <translation id="6528513914570774834">Tillåt att andra användare på den här enheten kan använda det här nätverket</translation>
 <translation id="653019979737152879">Synkroniserar <ph name="FILE_NAME" /> ...</translation>
+<translation id="6530595303336443929">Zstandard-komprimerat tar-arkiv</translation>
 <translation id="6549689063733911810">Senaste</translation>
 <translation id="6558280019477628686">Ett fel uppstod. Vissa objekt kanske inte har raderats.</translation>
 <translation id="656398493051028875"><ph name="FILENAME" /> tas bort ...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
index 9213713..3742f92 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Ubora wa picha</translation>
 <translation id="1972984168337863910">Panua vidirisha vya maoni ya faili</translation>
 <translation id="1995337122023280937">Nenda mahali faili ilipo</translation>
+<translation id="1996806196681857869">Faili iliyobanwa na Z</translation>
 <translation id="2001796770603320721">Dhibiti katika Hifadhi ya Google</translation>
 <translation id="2009067268969781306">Hatua ya kubadilisha muundo wa hifadhi itafuta data yote iliyomo. Kitendo hiki hakiwezi kutenduliwa.</translation>
 <translation id="2025955442973426285">Kitigrinya</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329">Faili <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="5957366693331451795">Chromebox</translation>
 <translation id="5982621672636444458">Chaguo za kupanga</translation>
+<translation id="5985041959109124139">Faili ya tar iliyobanwa na Z</translation>
 <translation id="6007237601604674381">Kusogezwa kumeshindika. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Mtandao wa Ethaneti</translation>
 <translation id="60357267506638014">QWERTY ya Kicheki</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Kipunjabi</translation>
 <translation id="6224240818060029162">Kidenmaki</translation>
 <translation id="6224253798271602650">Badilisha muundo <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Faili iliyobanwa na Zstandard</translation>
 <translation id="6227235786875481728">Faili hii isingeweza kuchezwa.</translation>
 <translation id="6241349547798190358">Kiholanzi (Ubelgiji)</translation>
 <translation id="6267547857941397424">Mtandao wa <ph name="NETWORK_INDEX" /> kati ya <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />%, Betri ya Simu <ph name="BATTERY_STATUS" />%, Unganisha</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Kinorwei</translation>
 <translation id="6528513914570774834">Waruhusu watumiaji wengine wa kifaa hiki kutumia mtandao huu</translation>
 <translation id="653019979737152879">Inasawazisha <ph name="FILE_NAME" />...</translation>
+<translation id="6530595303336443929">Faili ya tar iliyobanwa na Zstandard</translation>
 <translation id="6549689063733911810">Za hivi karibuni</translation>
 <translation id="6558280019477628686">Hitilafu imetokea. Huenda baadhi ya vipengee havijafutwa.</translation>
 <translation id="656398493051028875">Inafuta "<ph name="FILENAME" />"...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index f546de1..edf859df 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">படத் தெளிவுத்திறன்</translation>
 <translation id="1972984168337863910">ஃபைல்கள்  காட்டப்படும் பேனல்களை விரிக்கும்</translation>
 <translation id="1995337122023280937">ஃபைலின் இடத்திற்குச் செல்</translation>
+<translation id="1996806196681857869">Z சுருக்கப்பட்ட காப்பகம்</translation>
 <translation id="2001796770603320721">இயக்ககத்தில் நிர்வகி</translation>
 <translation id="2009067268969781306">இயக்ககத்தை ஃபார்மேட் செய்தால் அதில் சேமிக்கப்பட்டுள்ள தரவு அனைத்தும் நீக்கப்படும். அவற்றைத் திரும்பப் பெற முடியாது.</translation>
 <translation id="2025955442973426285">டிக்ரின்யா</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் </translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">வரிசைப்படுத்தல் விருப்பங்கள்</translation>
+<translation id="5985041959109124139">Z சுருக்கப்பட்ட tar காப்பகம்</translation>
 <translation id="6007237601604674381">நகர்வு தோல்வி. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">ஈத்தர்நெட் நெட்வொர்க்</translation>
 <translation id="60357267506638014">செக் க்வெர்டி</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">பஞ்சாபி</translation>
 <translation id="6224240818060029162">டேனிஷ்</translation>
 <translation id="6224253798271602650"><ph name="DRIVE_NAME" /> சாதனத்தை ஃபார்மேட் செய்</translation>
+<translation id="6224665423283788195">Zstandard சுருக்கப்பட்ட காப்பகம்</translation>
 <translation id="6227235786875481728">இந்த ஃபைலை இயக்க முடியாது.</translation>
 <translation id="6241349547798190358">டச்சு (பெல்ஜியம்)</translation>
 <translation id="6267547857941397424">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />%, மொபைல் பேட்டரி: <ph name="BATTERY_STATUS" />%, இணை</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">நார்வேஜியன்</translation>
 <translation id="6528513914570774834">இந்தச் சாதனத்தின் பிற பயனர்களையும் இந்த நெட்வொர்க்கைப் பயன்படுத்த அனுமதி</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> ஐ ஒத்திசைக்கிறது...</translation>
+<translation id="6530595303336443929">Zstandard சுருக்கப்பட்ட tar காப்பகம்</translation>
 <translation id="6549689063733911810">சமீபத்தியவை</translation>
 <translation id="6558280019477628686">பிழை ஏற்பட்டது. சில உருப்படிகள் நீக்கப்படாமல் இருக்கக்கூடும்.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" ஐ நீக்குகிறது...</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
index 8c0d0487d..78da13e8 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -121,6 +121,7 @@
 <translation id="1942765061641586207">Resim çözünürlüğü</translation>
 <translation id="1972984168337863910">Dosyalar geri bildirim panellerini genişlet</translation>
 <translation id="1995337122023280937">Dosya konumuna git</translation>
+<translation id="1996806196681857869">Z sıkıştırılmış arşivi</translation>
 <translation id="2001796770603320721">Drive'da Yönet</translation>
 <translation id="2009067268969781306">Bir sürücünün biçimlendirilmesi, üzerinde depolanan tüm verileri siler. Bu işlem geri alınamaz.</translation>
 <translation id="2025955442973426285">Tigrinya dili</translation>
@@ -589,6 +590,7 @@
 <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> öğe</translation>
 <translation id="5957366693331451795">Chromebox'lar</translation>
 <translation id="5982621672636444458">Sıralama seçenekleri</translation>
+<translation id="5985041959109124139">Z sıkıştırılmış tar arşivi</translation>
 <translation id="6007237601604674381">Taşıma başarısız oldu. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="6011074160056912900">Ethernet ağı</translation>
 <translation id="60357267506638014">Çekçe QWERTY</translation>
@@ -619,6 +621,7 @@
 <translation id="6220423280121890987">Pencapça</translation>
 <translation id="6224240818060029162">Danca</translation>
 <translation id="6224253798271602650">Biçimlendir: <ph name="DRIVE_NAME" /></translation>
+<translation id="6224665423283788195">Zstandard sıkıştırılmış arşivi</translation>
 <translation id="6227235786875481728">Bu dosya oynatılamadı.</translation>
 <translation id="6241349547798190358">Felemenkçe (Belçika)</translation>
 <translation id="6267547857941397424">Ağ <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, %<ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, %<ph name="BATTERY_STATUS" /> Telefon Pili, Bağlan</translation>
@@ -646,6 +649,7 @@
 <translation id="6509122719576673235">Norveççe</translation>
 <translation id="6528513914570774834">Bu cihazın diğer kullanıcılarının bu ağı kullanmalarına izin verin</translation>
 <translation id="653019979737152879"><ph name="FILE_NAME" /> senkronize ediliyor...</translation>
+<translation id="6530595303336443929">Zstandard sıkıştırılmış tar arşivi</translation>
 <translation id="6549689063733911810">En son</translation>
 <translation id="6558280019477628686">Bir hata oluştu. Bazı öğeler silinmemiş olabilir.</translation>
 <translation id="656398493051028875">"<ph name="FILENAME" />" siliniyor...</translation>
diff --git a/ui/file_manager/file_manager/foreground/css/file_manager.css b/ui/file_manager/file_manager/foreground/css/file_manager.css
index c3b541e..204bd3e 100644
--- a/ui/file_manager/file_manager/foreground/css/file_manager.css
+++ b/ui/file_manager/file_manager/foreground/css/file_manager.css
@@ -1436,7 +1436,7 @@
   padding-top: calc(20px + 16px);
 }
 
-body[type='full-page'] .thumbnail-frame > .img-container {
+body.files-ng .thumbnail-frame > .img-container {
   position: relative;
 }
 
diff --git a/ui/file_manager/file_manager/foreground/js/directory_model.js b/ui/file_manager/file_manager/foreground/js/directory_model.js
index a18a988..39b33ae6 100644
--- a/ui/file_manager/file_manager/foreground/js/directory_model.js
+++ b/ui/file_manager/file_manager/foreground/js/directory_model.js
@@ -1076,6 +1076,14 @@
   }
 
   /**
+   * Gets the current MyFilesEntry.
+   * @return {FilesAppDirEntry} myFilesEntry
+   */
+  getMyFiles() {
+    return this.myFilesEntry_;
+  }
+
+  /**
    * Sets the current MyFilesEntry.
    * @param {FilesAppDirEntry} myFilesEntry
    */
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
index bf7f7c3..2fee3d4 100644
--- a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
+++ b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
@@ -2090,7 +2090,7 @@
  */
 CommandHandler.COMMANDS_['extract-all'] = new (class extends FilesCommand {
   execute(event, fileManager) {
-    const dirEntry = fileManager.getCurrentDirectoryEntry();
+    let dirEntry = fileManager.getCurrentDirectoryEntry();
     if (!dirEntry ||
         !fileManager.getSelection().entries.every(
             CommandUtil.shouldShowMenuItemsForEntry.bind(
@@ -2100,6 +2100,9 @@
 
     const selectionEntries = fileManager.getSelection().entries;
     if (util.isExtractArchiveEnabled()) {
+      if (fileManager.directoryModel.isReadOnly()) {
+        dirEntry = fileManager.directoryModel.getMyFiles();
+      }
       startIOTask(
           chrome.fileManagerPrivate.IOTaskType.EXTRACT, selectionEntries,
           {destinationFolder: /** @type {!DirectoryEntry} */ (dirEntry)});
@@ -2116,8 +2119,7 @@
     const dirEntry = fileManager.getCurrentDirectoryEntry();
     const selection = fileManager.getSelection();
 
-    if (!dirEntry || fileManager.directoryModel.isReadOnly() || !selection ||
-        selection.totalCount === 0) {
+    if (!dirEntry || !selection || selection.totalCount === 0) {
       event.command.setHidden(true);
       event.canExecute = false;
     } else {
diff --git a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js
index 5fdc2e6..9f8a5d0 100644
--- a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js
@@ -88,6 +88,15 @@
         chrome.fileManagerPrivate.RecentFileType.AUDIO);
 
     /**
+     * @private {!HTMLElement|null}
+     * @const
+     */
+    this.documentFilterButton_ = util.isRecentsFilterV2Enabled() ?
+        this.createFilterButton_(
+            chrome.fileManagerPrivate.RecentFileType.DOCUMENT) :
+        null;
+
+    /**
      * @private {!HTMLElement}
      * @const
      */
@@ -101,15 +110,6 @@
     this.videoFilterButton_ = this.createFilterButton_(
         chrome.fileManagerPrivate.RecentFileType.VIDEO);
 
-    /**
-     * @private {!HTMLElement|null}
-     * @const
-     */
-    this.documentFilterButton_ = util.isRecentsFilterV2Enabled() ?
-        this.createFilterButton_(
-            chrome.fileManagerPrivate.RecentFileType.DOCUMENT) :
-        null;
-
     this.directoryModel_.addEventListener(
         'directory-changed', this.onCurrentDirectoryChanged_.bind(this));
 
diff --git a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js
index 2e2e799..0cfd629f 100644
--- a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js
+++ b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js
@@ -147,9 +147,9 @@
 
   assertEquals(buttons[0].textContent, 'All');
   assertEquals(buttons[1].textContent, 'Audio');
-  assertEquals(buttons[2].textContent, 'Images');
-  assertEquals(buttons[3].textContent, 'Videos');
-  assertEquals(buttons[4].textContent, 'Documents');
+  assertEquals(buttons[2].textContent, 'Documents');
+  assertEquals(buttons[3].textContent, 'Images');
+  assertEquals(buttons[4].textContent, 'Videos');
 }
 
 /**
@@ -309,21 +309,21 @@
   buttons[2].click();
   assertEquals(
       recentEntry.recentFileType,
-      chrome.fileManagerPrivate.RecentFileType.IMAGE);
+      chrome.fileManagerPrivate.RecentFileType.DOCUMENT);
   assertTrue(window.isRescanCalled);
   window.isRescanCalled = false;
 
   buttons[3].click();
   assertEquals(
       recentEntry.recentFileType,
-      chrome.fileManagerPrivate.RecentFileType.VIDEO);
+      chrome.fileManagerPrivate.RecentFileType.IMAGE);
   assertTrue(window.isRescanCalled);
   window.isRescanCalled = false;
 
   buttons[4].click();
   assertEquals(
       recentEntry.recentFileType,
-      chrome.fileManagerPrivate.RecentFileType.DOCUMENT);
+      chrome.fileManagerPrivate.RecentFileType.VIDEO);
   assertTrue(window.isRescanCalled);
   window.isRescanCalled = false;
 
diff --git a/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js b/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
index e7c7cc83..cbb4014 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
@@ -151,7 +151,9 @@
                 strf('FILE_COPIED', source);
           }
           if (item.type === ProgressItemType.EXTRACT) {
-            return strf('FILE_EXTRACTED', source);
+            return hasDestination ?
+                strf('EXTRACT_FILE_NAME_LONG', source, destination) :
+                strf('FILE_EXTRACTED', source);
           }
           if (item.type === ProgressItemType.MOVE) {
             return hasDestination ?
diff --git a/ui/file_manager/integration_tests/file_manager/quick_view.js b/ui/file_manager/integration_tests/file_manager/quick_view.js
index 51d51c49..acae4534 100644
--- a/ui/file_manager/integration_tests/file_manager/quick_view.js
+++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -30,6 +30,16 @@
 };
 
 /**
+ * Checks if dark mode has been turned on or not.
+ *
+ * @return {!Promise<boolean>} enabled or not.
+ */
+async function isDarkModeEnabled() {
+  const isDarkModeEnabled = await sendTestMessage({name: 'isDarkModeEnabled'});
+  return isDarkModeEnabled === 'true';
+}
+
+/**
  * Returns the $i18n{} label for the Quick View item |text| if devtools code
  * coverage is enabled. Otherwise, returns |text|.
  *
@@ -1303,7 +1313,7 @@
       haveElements = elements[0].styles.display.includes('block');
     }
     if (!haveElements || !elements[0].styles.backgroundColor) {
-      return pending(caller, 'Waiting for <file-safe-media> element.');
+      return pending(caller, 'Waiting for <files-safe-media> element.');
     }
     return elements[0].styles.backgroundColor;
   }
@@ -1313,8 +1323,12 @@
         'deepQueryAllElements', appId, [fileSafeMedia, styles]));
   });
 
-  // Check: the <files-safe-media> backgroundColor should be solid white.
-  chrome.test.assertEq('rgb(255, 255, 255)', backgroundColor);
+  // Check: the <files-safe-media> backgroundColor: var(--cros-bg-color).
+  if (await isDarkModeEnabled()) {
+    chrome.test.assertEq('rgb(32, 33, 36)', backgroundColor);
+  } else {
+    chrome.test.assertEq('rgb(255, 255, 255)', backgroundColor);
+  }
 };
 
 /**
diff --git a/ui/file_manager/integration_tests/file_manager/zip_files.js b/ui/file_manager/integration_tests/file_manager/zip_files.js
index f14c339..4b8c2a5 100644
--- a/ui/file_manager/integration_tests/file_manager/zip_files.js
+++ b/ui/file_manager/integration_tests/file_manager/zip_files.js
@@ -344,7 +344,7 @@
   await repeatUntil(async () => {
     element = await remoteCall.waitForElement(
         appId, ['#progress-panel', 'xf-panel-item']);
-    const expectedMsg = `Extracting ${entry.nameText}…`;
+    const expectedMsg = `Extracting ${entry.nameText} to Downloads`;
     const actualMsg = element.attributes['primary-text'];
 
     if (actualMsg === expectedMsg) {
diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
index 33d552b..fff5586 100755
--- a/ui/gl/generate_bindings.py
+++ b/ui/gl/generate_bindings.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -3287,8 +3287,8 @@
     else:
       num_dynamic = num_dynamic + 1
 
-  print "[%s] %d static bindings, %d dynamic bindings" % (
-      set_name, len(functions) - num_dynamic, num_dynamic)
+  print("[%s] %d static bindings, %d dynamic bindings" % (
+      set_name, len(functions) - num_dynamic, num_dynamic))
 
   # Write function to initialize the function pointers that are always the same
   # and to initialize bindings where choice of the function depends on the
@@ -3329,10 +3329,10 @@
     conditions = []
     if 'gl_versions' in version:
       conditions.extend(
-          [GetGLVersionCondition(v) for v in version['gl_versions']])
+          sorted([GetGLVersionCondition(v) for v in version['gl_versions']]))
     if 'extensions' in version and version['extensions']:
       conditions.extend(
-          ['ext.b_%s' % e for e in version['extensions']])
+          sorted(['ext.b_%s' % e for e in version['extensions']]))
     return ' || '.join(conditions)
 
   def WriteConditionalFuncBinding(file, func):
@@ -3644,7 +3644,7 @@
 """)
   uniquely_named_functions = GetUniquelyNamedFunctions(functions)
 
-  for key in sorted(uniquely_named_functions.iterkeys()):
+  for key in sorted(uniquely_named_functions.keys()):
     func = uniquely_named_functions[key]
     file.write('static %s GL_BINDING_CALL Mock_%s(%s);\n' %
         (func['return_type'], func['name'], func['arguments']))
@@ -3676,7 +3676,7 @@
 
   # Write functions that trampoline into the set MockGLInterface instance.
   uniquely_named_functions = GetUniquelyNamedFunctions(functions)
-  sorted_function_names = sorted(uniquely_named_functions.iterkeys())
+  sorted_function_names = sorted(uniquely_named_functions.keys())
 
   for key in sorted_function_names:
     func = uniquely_named_functions[key]
@@ -3955,12 +3955,12 @@
 
       in_both = explicit_extensions.intersection(extensions_from_headers)
       if len(in_both):
-        print "[%s] Specified redundant extensions for binding: %s" % (
-            name, ', '.join(in_both))
+        print("[%s] Specified redundant extensions for binding: %s" % (
+            name, ', '.join(in_both)))
       diff = explicit_extensions - extensions_from_headers
       if len(diff):
-        print "[%s] Specified extra extensions for binding: %s" % (
-            name, ', '.join(diff))
+        print("[%s] Specified extra extensions for binding: %s" % (
+            name, ', '.join(diff)))
 
       if version.get('explicit_only', False):
         all_extensions = explicit_extensions
@@ -3993,11 +3993,11 @@
 
   # Print out used function count by GL(ES) version.
   for v in sorted([v for v in used_functions_by_version if v.is_es]):
-    print "OpenGL ES %d.%d: %d used functions" % (
-        v.major_version, v.minor_version, len(used_functions_by_version[v]))
+    print("OpenGL ES %d.%d: %d used functions" % (
+        v.major_version, v.minor_version, len(used_functions_by_version[v])))
   for v in sorted([v for v in used_functions_by_version if not v.is_es]):
-    print "OpenGL %d.%d: %d used functions" % (
-        v.major_version, v.minor_version, len(used_functions_by_version[v]))
+    print("OpenGL %d.%d: %d used functions" % (
+        v.major_version, v.minor_version, len(used_functions_by_version[v])))
 
   return used_extensions, used_client_extensions
 
@@ -4034,7 +4034,7 @@
   if options.inputs:
     for [_, _, headers, _] in FUNCTION_SETS:
       for header in headers:
-        print ResolveHeader(header, HEADER_PATHS)
+        print(ResolveHeader(header, HEADER_PATHS))
     return 0
 
   directory = SELF_LOCATION
@@ -4078,7 +4078,7 @@
         functions, extension_headers, extensions)
 
     header_file = open(
-        os.path.join(directory, 'gl_bindings_autogen_%s.h' % set_name), 'wb')
+        os.path.join(directory, 'gl_bindings_autogen_%s.h' % set_name), 'w')
     GenerateHeader(header_file, functions, set_name,
                    used_extensions, used_client_extensions)
     header_file.close()
@@ -4086,13 +4086,13 @@
 
     header_file = open(
         os.path.join(directory, 'gl_bindings_api_autogen_%s.h' % set_name),
-        'wb')
+        'w')
     GenerateAPIHeader(header_file, functions, set_name)
     header_file.close()
     ClangFormat(header_file.name)
 
     source_file = open(
-        os.path.join(directory, 'gl_bindings_autogen_%s.cc' % set_name), 'wb')
+        os.path.join(directory, 'gl_bindings_autogen_%s.cc' % set_name), 'w')
     GenerateSource(source_file, functions, set_name,
                    used_extensions, used_client_extensions, options)
     source_file.close()
@@ -4100,37 +4100,37 @@
 
   if not options.verify_order:
     header_file = open(
-        os.path.join(directory, 'gl_mock_autogen_gl.h'), 'wb')
+        os.path.join(directory, 'gl_mock_autogen_gl.h'), 'w')
     GenerateMockHeader(header_file, GL_FUNCTIONS, 'gl')
     header_file.close()
     ClangFormat(header_file.name)
 
     header_file = open(os.path.join(directory, 'gl_bindings_autogen_mock.h'),
-                       'wb')
+                       'w')
     GenerateMockBindingsHeader(header_file, GL_FUNCTIONS)
     header_file.close()
     ClangFormat(header_file.name)
 
     source_file = open(os.path.join(directory, 'gl_bindings_autogen_mock.cc'),
-                       'wb')
+                       'w')
     GenerateMockBindingsSource(source_file, GL_FUNCTIONS, 'gl')
     source_file.close()
     ClangFormat(source_file.name)
 
     header_file = open(
-        os.path.join(directory, 'gl_mock_autogen_egl.h'), 'wb')
+        os.path.join(directory, 'gl_mock_autogen_egl.h'), 'w')
     GenerateMockHeader(header_file, EGL_FUNCTIONS, 'egl')
     header_file.close()
     ClangFormat(header_file.name)
 
     header_file = open(os.path.join(directory, 'egl_bindings_autogen_mock.h'),
-                       'wb')
+                       'w')
     GenerateMockBindingsHeader(header_file, EGL_FUNCTIONS)
     header_file.close()
     ClangFormat(header_file.name)
 
     source_file = open(os.path.join(directory, 'egl_bindings_autogen_mock.cc'),
-                       'wb')
+                       'w')
     GenerateMockBindingsSource(source_file, EGL_FUNCTIONS, 'egl')
     source_file.close()
     ClangFormat(source_file.name)
@@ -4139,19 +4139,19 @@
                              for h in GLES2_HEADERS_WITH_ENUMS]
     header_file = open(os.path.join(directory,
                                     'gl_enums_implementation_autogen.h'),
-                       'wb')
+                       'w')
     GenerateEnumUtils(header_file, enum_header_filenames)
     header_file.close()
     ClangFormat(header_file.name)
 
     header_file = open(
-        os.path.join(directory, 'gl_stub_autogen_gl.h'), 'wb')
+        os.path.join(directory, 'gl_stub_autogen_gl.h'), 'w')
     GenerateStubHeader(header_file, GL_FUNCTIONS)
     header_file.close()
     ClangFormat(header_file.name)
 
     header_file = open(
-        os.path.join(directory, 'gl_stub_autogen_gl.cc'), 'wb')
+        os.path.join(directory, 'gl_stub_autogen_gl.cc'), 'w')
     GenerateStubSource(header_file, GL_FUNCTIONS)
     header_file.close()
     ClangFormat(header_file.name)
diff --git a/ui/gl/gl_bindings_autogen_egl.cc b/ui/gl/gl_bindings_autogen_egl.cc
index e556688..3c910e1 100644
--- a/ui/gl/gl_bindings_autogen_egl.cc
+++ b/ui/gl/gl_bindings_autogen_egl.cc
@@ -235,8 +235,8 @@
   ext.b_GL_CHROMIUM_egl_khr_fence_sync_hack =
       gfx::HasExtension(extensions, "GL_CHROMIUM_egl_khr_fence_sync_hack");
 
-  if (ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base ||
-      ext.b_EGL_KHR_gl_texture_2D_image) {
+  if (ext.b_EGL_KHR_gl_texture_2D_image || ext.b_EGL_KHR_image ||
+      ext.b_EGL_KHR_image_base) {
     fn.eglCreateImageKHRFn = reinterpret_cast<eglCreateImageKHRProc>(
         GetGLProcAddress("eglCreateImageKHR"));
   }
diff --git a/ui/gl/gl_bindings_autogen_gl.cc b/ui/gl/gl_bindings_autogen_gl.cc
index 767e864e..68d5642 100644
--- a/ui/gl/gl_bindings_autogen_gl.cc
+++ b/ui/gl/gl_bindings_autogen_gl.cc
@@ -528,7 +528,7 @@
   if (ver->IsAtLeastGL(3u, 0u) || ext.b_GL_ARB_blend_func_extended) {
     fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
         GetGLProcAddress("glBindFragDataLocation"));
-  } else if (ext.b_GL_EXT_gpu_shader4 || ext.b_GL_EXT_blend_func_extended) {
+  } else if (ext.b_GL_EXT_blend_func_extended || ext.b_GL_EXT_gpu_shader4) {
     fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
         GetGLProcAddress("glBindFragDataLocationEXT"));
   }
@@ -585,7 +585,7 @@
         reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glBindTransformFeedbackFn =
         reinterpret_cast<glBindTransformFeedbackProc>(
@@ -623,7 +623,7 @@
         GetGLProcAddress("glBlendBarrierKHR"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glBlendEquationiOESFn = reinterpret_cast<glBlendEquationiOESProc>(
         GetGLProcAddress("glBlendEquationi"));
   } else if (ext.b_GL_OES_draw_buffers_indexed) {
@@ -631,7 +631,7 @@
         GetGLProcAddress("glBlendEquationiOES"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glBlendEquationSeparateiOESFn =
         reinterpret_cast<glBlendEquationSeparateiOESProc>(
             GetGLProcAddress("glBlendEquationSeparatei"));
@@ -641,7 +641,7 @@
             GetGLProcAddress("glBlendEquationSeparateiOES"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glBlendFunciOESFn =
         reinterpret_cast<glBlendFunciOESProc>(GetGLProcAddress("glBlendFunci"));
   } else if (ext.b_GL_OES_draw_buffers_indexed) {
@@ -649,7 +649,7 @@
         GetGLProcAddress("glBlendFunciOES"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glBlendFuncSeparateiOESFn =
         reinterpret_cast<glBlendFuncSeparateiOESProc>(
             GetGLProcAddress("glBlendFuncSeparatei"));
@@ -779,7 +779,7 @@
             GetGLProcAddress("glCompressedTexSubImage3DRobustANGLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
         GetGLProcAddress("glCopyBufferSubData"));
   }
@@ -963,7 +963,7 @@
         GetGLProcAddress("glDeleteSyncAPPLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glDeleteTransformFeedbacksFn =
         reinterpret_cast<glDeleteTransformFeedbacksProc>(
@@ -1021,12 +1021,12 @@
             GetGLProcAddress("glDispatchComputeIndirect"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 1u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 1u)) {
     fn.glDrawArraysIndirectFn = reinterpret_cast<glDrawArraysIndirectProc>(
         GetGLProcAddress("glDrawArraysIndirect"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glDrawArraysInstancedANGLEFn =
         reinterpret_cast<glDrawArraysInstancedANGLEProc>(
             GetGLProcAddress("glDrawArraysInstanced"));
@@ -1070,12 +1070,12 @@
         GetGLProcAddress("glDrawBuffersEXT"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 1u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 1u)) {
     fn.glDrawElementsIndirectFn = reinterpret_cast<glDrawElementsIndirectProc>(
         GetGLProcAddress("glDrawElementsIndirect"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glDrawElementsInstancedANGLEFn =
         reinterpret_cast<glDrawElementsInstancedANGLEProc>(
             GetGLProcAddress("glDrawElementsInstanced"));
@@ -1231,7 +1231,7 @@
             GetGLProcAddress("glFramebufferTextureLayer"));
   }
 
-  if (ext.b_GL_OVR_multiview2 || ext.b_GL_OVR_multiview) {
+  if (ext.b_GL_OVR_multiview || ext.b_GL_OVR_multiview2) {
     fn.glFramebufferTextureMultiviewOVRFn =
         reinterpret_cast<glFramebufferTextureMultiviewOVRProc>(
             GetGLProcAddress("glFramebufferTextureMultiviewOVR"));
@@ -1307,7 +1307,7 @@
         GetGLProcAddress("glGenSemaphoresEXT"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glGenTransformFeedbacksFn =
         reinterpret_cast<glGenTransformFeedbacksProc>(
@@ -1326,7 +1326,7 @@
         GetGLProcAddress("glGenVertexArraysAPPLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glGetActiveUniformBlockivFn =
         reinterpret_cast<glGetActiveUniformBlockivProc>(
             GetGLProcAddress("glGetActiveUniformBlockiv"));
@@ -1338,13 +1338,13 @@
             GetGLProcAddress("glGetActiveUniformBlockivRobustANGLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glGetActiveUniformBlockNameFn =
         reinterpret_cast<glGetActiveUniformBlockNameProc>(
             GetGLProcAddress("glGetActiveUniformBlockName"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
         GetGLProcAddress("glGetActiveUniformsiv"));
   }
@@ -1666,7 +1666,7 @@
   if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
     fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
         GetGLProcAddress("glGetQueryObjecti64v"));
-  } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
+  } else if (ext.b_GL_EXT_disjoint_timer_query || ext.b_GL_EXT_timer_query) {
     fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
         GetGLProcAddress("glGetQueryObjecti64vEXT"));
   }
@@ -1697,7 +1697,7 @@
   if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
     fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
         GetGLProcAddress("glGetQueryObjectui64v"));
-  } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
+  } else if (ext.b_GL_EXT_disjoint_timer_query || ext.b_GL_EXT_timer_query) {
     fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
         GetGLProcAddress("glGetQueryObjectui64vEXT"));
   }
@@ -1871,7 +1871,7 @@
             GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
         GetGLProcAddress("glGetUniformBlockIndex"));
   }
@@ -1882,7 +1882,7 @@
             GetGLProcAddress("glGetUniformfvRobustANGLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
         GetGLProcAddress("glGetUniformIndices"));
   }
@@ -2067,7 +2067,7 @@
         reinterpret_cast<glIsSyncAPPLEProc>(GetGLProcAddress("glIsSyncAPPLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
         GetGLProcAddress("glIsTransformFeedback"));
@@ -2126,7 +2126,7 @@
             GetGLProcAddress("glMaxShaderCompilerThreadsKHR"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 1u) || ver->IsAtLeastGL(4u, 5u)) {
+  if (ver->IsAtLeastGL(4u, 5u) || ver->IsAtLeastGLES(3u, 1u)) {
     fn.glMemoryBarrierByRegionFn =
         reinterpret_cast<glMemoryBarrierByRegionProc>(
             GetGLProcAddress("glMemoryBarrierByRegion"));
@@ -2147,7 +2147,7 @@
             GetGLProcAddress("glMemoryObjectParameterivEXT"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u)) {
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glMinSampleShadingFn = reinterpret_cast<glMinSampleShadingProc>(
         GetGLProcAddress("glMinSampleShading"));
   }
@@ -2205,7 +2205,7 @@
         GetGLProcAddress("glObjectPtrLabelKHR"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 2u) ||
       ext.b_GL_ARB_tessellation_shader) {
     fn.glPatchParameteriFn = reinterpret_cast<glPatchParameteriProc>(
         GetGLProcAddress("glPatchParameteri"));
@@ -2246,7 +2246,7 @@
         GetGLProcAddress("glPathStencilFuncCHROMIUM"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glPauseTransformFeedbackFn =
         reinterpret_cast<glPauseTransformFeedbackProc>(
@@ -2577,7 +2577,7 @@
             GetGLProcAddress("glRequestExtensionANGLE"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
+  if (ver->IsAtLeastGL(4u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
       ext.b_GL_ARB_transform_feedback2) {
     fn.glResumeTransformFeedbackFn =
         reinterpret_cast<glResumeTransformFeedbackProc>(
@@ -2748,14 +2748,14 @@
         reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 2u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 2u)) {
     fn.glTexBufferFn =
         reinterpret_cast<glTexBufferProc>(GetGLProcAddress("glTexBuffer"));
   } else if (ext.b_GL_OES_texture_buffer) {
     fn.glTexBufferFn =
         reinterpret_cast<glTexBufferProc>(GetGLProcAddress("glTexBufferOES"));
-  } else if (ext.b_GL_EXT_texture_buffer_object ||
-             ext.b_GL_EXT_texture_buffer) {
+  } else if (ext.b_GL_EXT_texture_buffer ||
+             ext.b_GL_EXT_texture_buffer_object) {
     fn.glTexBufferFn =
         reinterpret_cast<glTexBufferProc>(GetGLProcAddress("glTexBufferEXT"));
   }
@@ -2917,7 +2917,7 @@
         reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
   }
 
-  if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
+  if (ver->IsAtLeastGL(3u, 1u) || ver->IsAtLeastGLES(3u, 0u)) {
     fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
         GetGLProcAddress("glUniformBlockBinding"));
   }
diff --git a/ui/gl/gl_enums_implementation_autogen.h b/ui/gl/gl_enums_implementation_autogen.h
index 18362ee..56cfe69 100644
--- a/ui/gl/gl_enums_implementation_autogen.h
+++ b/ui/gl/gl_enums_implementation_autogen.h
@@ -6790,6 +6790,10 @@
         "GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM",
     },
     {
+        0x96BA,
+        "GL_RGBX8_ANGLE",
+    },
+    {
         0xC0,
         "GL_SHARED_EDGE_NV",
     },
diff --git a/ui/ozone/BUILD.gn b/ui/ozone/BUILD.gn
index 76a228f..b123f60 100644
--- a/ui/ozone/BUILD.gn
+++ b/ui/ozone/BUILD.gn
@@ -34,11 +34,6 @@
 ozone_platform_interactive_ui_tests_sources =
     ozone_external_interactive_ui_tests_deps
 
-if (ozone_platform_windows) {
-  ozone_platforms += [ "windows" ]
-  ozone_platform_deps += [ "platform/windows" ]
-}
-
 if (ozone_platform_headless) {
   ozone_platforms += [ "headless" ]
   ozone_platform_deps += [ "platform/headless" ]
diff --git a/ui/ozone/common/egl_util.cc b/ui/ozone/common/egl_util.cc
index 9ebf5d4d..75c59f93 100644
--- a/ui/ozone/common/egl_util.cc
+++ b/ui/ozone/common/egl_util.cc
@@ -19,16 +19,6 @@
 namespace ui {
 namespace {
 
-#if BUILDFLAG(IS_WIN)
-const base::FilePath::CharType kDefaultEglSoname[] =
-    FILE_PATH_LITERAL("libEGL.dll");
-const base::FilePath::CharType kDefaultGlesSoname[] =
-    FILE_PATH_LITERAL("libGLESv2.dll");
-const base::FilePath::CharType kAngleEglSoname[] =
-    FILE_PATH_LITERAL("libEGL.dll");
-const base::FilePath::CharType kAngleGlesSoname[] =
-    FILE_PATH_LITERAL("libGLESv2.dll");
-#else
 #if BUILDFLAG(IS_FUCHSIA)
 const base::FilePath::CharType kDefaultEglSoname[] =
     FILE_PATH_LITERAL("libEGL.so");
@@ -44,7 +34,6 @@
     FILE_PATH_LITERAL("libEGL.so");
 const base::FilePath::CharType kAngleGlesSoname[] =
     FILE_PATH_LITERAL("libGLESv2.so");
-#endif  // BUILDFLAG(IS_WIN)
 
 bool LoadEGLGLES2Bindings(const base::FilePath& egl_library_path,
                           const base::FilePath& gles_library_path) {
diff --git a/ui/ozone/demo/ozone_demo.cc b/ui/ozone/demo/ozone_demo.cc
index 71f2a80..8a9fb2a 100644
--- a/ui/ozone/demo/ozone_demo.cc
+++ b/ui/ozone/demo/ozone_demo.cc
@@ -35,11 +35,6 @@
   // Initialize logging so we can enable VLOG messages.
   logging::LoggingSettings settings;
 
-// Logs to system debug by default on POSIX.
-#if BUILDFLAG(IS_WIN)
-  settings.log_file_path = FILE_PATH_LITERAL("ozone_demo.log");
-#endif
-
   logging::InitLogging(settings);
 
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(kHelp)) {
diff --git a/ui/ozone/platform/headless/headless_surface_factory.cc b/ui/ozone/platform/headless/headless_surface_factory.cc
index 8c81c38a..9558451 100644
--- a/ui/ozone/platform/headless/headless_surface_factory.cc
+++ b/ui/ozone/platform/headless/headless_surface_factory.cc
@@ -49,15 +49,8 @@
   if (base_path.empty() || base_path == base::FilePath(kDevNull))
     return base_path;
 
-    // Disambiguate multiple window output files with the window id.
-#if BUILDFLAG(IS_WIN)
-  std::string path =
-      base::NumberToString(reinterpret_cast<int>(widget)) + ".png";
-  std::wstring wpath(path.begin(), path.end());
-  return base_path.Append(wpath);
-#else
+  // Disambiguate multiple window output files with the window id.
   return base_path.Append(base::NumberToString(widget) + ".png");
-#endif
 }
 
 void WriteDataToFile(const base::FilePath& location, const SkBitmap& bitmap) {
diff --git a/ui/ozone/platform/headless/headless_window.cc b/ui/ozone/platform/headless/headless_window.cc
index da36b88..17b0f3f 100644
--- a/ui/ozone/platform/headless/headless_window.cc
+++ b/ui/ozone/platform/headless/headless_window.cc
@@ -16,20 +16,12 @@
                                HeadlessWindowManager* manager,
                                const gfx::Rect& bounds)
     : StubWindow(delegate, false, bounds), manager_(manager) {
-#if BUILDFLAG(IS_WIN)
-  widget_ = reinterpret_cast<gfx::AcceleratedWidget>(manager_->AddWindow(this));
-#else
   widget_ = manager_->AddWindow(this);
-#endif
   delegate->OnAcceleratedWidgetAvailable(widget_);
 }
 
 HeadlessWindow::~HeadlessWindow() {
-#if BUILDFLAG(IS_WIN)
-  manager_->RemoveWindow(reinterpret_cast<uint64_t>(widget_), this);
-#else
   manager_->RemoveWindow(widget_, this);
-#endif
 }
 
 }  // namespace ui
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java
index 0c2685a..6bbd04b 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java
@@ -28,6 +28,7 @@
 
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.DisableIf;
+import org.chromium.base.test.util.DisabledTest;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 import org.chromium.weblayer.Browser;
 import org.chromium.weblayer.Callback;
@@ -1413,6 +1414,7 @@
      */
     @Test
     @SmallTest
+    @DisabledTest(message = "crbug.com/1329813")
     public void
     testNonHandledExternalIntentWithFallbackUrlThatLaunchesIntentAfterRedirectBlocksFallbackIntent()
             throws Throwable {